Overview
The Ditio API lets you integrate your systems with Ditio’s construction platform. Whether you need to create projects and employees from your ERP, export time and payroll data, push machine telemetry from your fleet, or pull site photos for an archive — the API provides programmatic access to your Ditio data.
Environments
Section titled “Environments”Ditio has two environments. Credentials are per-environment.
| Production | Test | |
|---|---|---|
| API | https://core-api.ditio.app/core | https://core-api.ditio.dev/core |
| Reporting API | https://core-api.ditio.app/reporting | https://core-api.ditio.dev/reporting |
| Identity server | https://identity.ditio.app | https://identity.ditio.dev |
| Web | https://app.ditio.no | — |
What you can do
Section titled “What you can do”| Goal | Endpoint / tool | Docs |
|---|---|---|
| Create and manage projects | api/v4/integration/projects | Projects |
| Create and manage work orders (tasks) | api/v4/integration/tasks | Work Orders |
| Create and manage employees (v4) | api/v4/integration/users | Users |
| Create and manage employees (v5) | api/v5/integration/employees | Employees v5 |
| Create and manage machines and equipment | api/v4/integration/machines | Machines |
| Manage user certificates | api/v4/integration/certificates | Certificates |
| Attach documents to projects & work orders | api/v4/integration/{projects,tasks}/{id}/documents | Documents |
| Export payroll data | api/payroll-export/ | Payroll Export |
| Extract time, absence, HSE, and metadata | /v1/... on the reporting base | Data Extraction |
| Extract project images | /v1/images | Image Extraction |
| Connect Power BI | Power BI template | Power BI |
| Azure AD single sign-on | Azure Portal | Azure AD SSO |
| Automatic user provisioning | SCIM 2.0 | SCIM Provisioning |
The API surfaces
Section titled “The API surfaces”Integration API (read-write)
Section titled “Integration API (read-write)”The partner-facing CRUD surface under api/v4/integration/* and
api/v5/integration/* on the core API base. This is where you create and
maintain projects, work orders, users, machines, certificates, and documents.
Scope: ditioapiv3.
Data Extraction API (read-only)
Section titled “Data Extraction API (read-only)”Paginated, read-only extraction endpoints under /v1/... on the reporting
base. Designed for BI tools, payroll integrators, and data warehouses — every
endpoint supports cursor-based pagination with ContinuationToken and
incremental sync with ModifiedSince. Scope: reportingapiv1.
Mass Transport API (machine telemetry)
Section titled “Mass Transport API (machine telemetry)”Write endpoints for pushing excavator states and weight measures from fleet
management, telematics, and weighbridge systems. Scope: masstransportapiv1.
See Machine Integration.
Typical integration flow
Section titled “Typical integration flow”Most integrations set up data in this order:
1. Projects → Create your projects first2. Work orders → Add work orders (tasks) to each project3. Users → Create employee accounts4. Machines → Register machines and equipmentProjects must exist before you can add work orders to them. Users and machines can be created independently.
Common conventions
Section titled “Common conventions”- All requests require a valid Bearer token in the
Authorizationheader - All request/response bodies are JSON with
camelCaseproperty names - Dates are in ISO 8601 format:
2026-01-15T00:00:00Z - IDs are strings
companyIdis required on all create operations — this is your Ditio company ID- PUT replaces all fields (full update)
- PATCH updates only the fields you send (partial update)
- DELETE is permanent and cascades to related data
HTTP status codes
Section titled “HTTP status codes”| Code | Meaning |
|---|---|
| 200 | Success |
| 201 | Created |
| 204 | Success (no response body) |
| 400 | Bad request — check required fields and validation rules |
| 401 | Unauthorized — token is missing, expired, or invalid |
| 404 | Resource not found |
| 500 | Server error — contact Ditio support |
See Error Handling for details and retry strategies.
Code examples
Section titled “Code examples”Ready-made code examples and Postman collections:
- GitHub samples: ditioas/Ditio.Core.Samples.Integrations
- Postman collections: in the samples repo, or on request from support@ditio.no
Next steps
Section titled “Next steps”- Authentication — create API credentials and get a token
- Quickstart — your first API calls in five minutes
- Pagination — how extraction paging works