Overview
Recent Updates
Click here for recent updates.
HTTP verbs
The Raken Public API tries to adhere as closely as possible to standard HTTP and REST conventions in its use of HTTP verbs.
| Verb | Usage |
|---|---|
|
Used to retrieve a resource or a list of resources |
|
Used to create a resource |
|
Used to update a resource. The value of |
HTTP status codes
The Raken Public API tries to adhere as closely as possible to standard HTTP and REST conventions in its use of HTTP status codes.
| Status code | Usage |
|---|---|
|
The request completed successfully |
|
Indicates the response was not modified from the previous execution (using ETag/If-None-Matches) |
|
The request was malformed. The response body will include an error providing further information |
|
The credentials provided to the request were not sufficient |
|
The requested resource did not exist |
|
The API rate or burst limits are exceeded |
|
The API quota is reached |
HTTP Parameters
The Raken Public API tries to adhere to single-value parameter and multi-valued parameters. When it is multi-valued, generally the parameter naming convention are plural. e.g. projectUuids or classificationUuids
| Parameters | Usage |
|---|---|
|
GET /workLogs?fromDate=2022-11-01&toDate=2022-12-01&projectUuid=5c0de6b3-c871-4987-962e-f214f958d241 |
|
GET /members?classificationUuids=d8d5e0b2-9232-424a-8fbf-ce689a06a0aa,b516b197-f5c6-4fd7-ac94-530c03b11c06 |
|
GET /members?classificationUuids=d8d5e0b2-9232-424a-8fbf-ce689a06a0aa&classificationUuids=b516b197-f5c6-4fd7-ac94-530c03b11c06 |
Authorization
The Raken Public API is protected by Access Token that can be obtained via an OAuth 2.0 Flow.
The following are Raken OAuth 2.0 Flow properties:
| Property | Value |
|---|---|
|
|
Authorization URL |
|
Token URL |
|
Redirect URI |
Validation NOT enforced currently in Raken |
Create an OAuth 2.0 App
Create your OAuth 2.0 app at https://app.rakenapp.com/developer/apps (you MUST log in as Account Administrator).
Take note of client_id and client_secret which will be used in later steps in the OAuth 2.0 Flow.
|
Initiate the OAuth 2.0 Flow
OAuth 2.0 Flow can be initiated by calling the Authorization URL with
-
response_type=code -
client_id=<client_id> -
redirect_uri=<redirect_uri>
For example:
https://app.rakenapp.com/oauth/authorize?response_type=code&client_id=<client_id>&redirect_uri=https://myserver.example.com/oauth/callback
As part of the OAuth 2.0 Flow, you will be asked to log in Raken in browser to authorize the access.
Once you have logged in, your application will receive a response, via redirect_uri, which contains code that can be used to request an access token.
| This is the only step in the Authorization Code OAuth 2.0 Flow that requires a human-interaction. |
Request an Access token
Once your application receives the code, it can request an access token by calling the Token URL.
For example:
curl -X POST 'https://app.rakenapp.com/oauth/token' \
--header 'Content-Type: application/x-www-form-urlencoded' \
--data-urlencode 'grant_type=authorization_code' \
--data-urlencode 'code=<code>' \
--data-urlencode 'client_id=<client_id>' \
--data-urlencode 'client_secret=<client_secret>'
An example of response:
{
"access_token":"vbkNQb6vrsnZe/Sz2c...xbelSdHXCWHwr50pSLmdvn6o3THLjlWYoR3WKpohN3+VX4ubZ5XkNZ4",
"refresh_token":"8bdb2859-031b-4dae-9cbb-2d4b3bf096ca",
"token_type":"bearer",
"expires_in":36000
}
|
Request a New Access token
When your access_token expires, use your current refresh_token to obtain a new access token:
curl -X POST 'https://app.rakenapp.com/oauth/token' \
--header 'Content-Type: application/x-www-form-urlencoded' \
--data-urlencode 'grant_type=refresh_token' \
--data-urlencode 'client_id=<client_id>' \
--data-urlencode 'client_secret=<client_secret>' \
--data-urlencode 'refresh_token=<refresh_token>'
An example of response:
{
"access_token":"WuB29cxca/jwrsO9jO...WsMTyYOj88AHP3zgpV3Qe+eMM7WodHzYlsnyvXGNRLAPTdO7dgbeI7i",
"refresh_token":"c2f4a7e1-9b03-4d6a-bf21-7e5c1a0d8f42",
"token_type":"bearer",
"expires_in":36000
}
|
Refresh tokens may rotate. A Reusing a The refresh token is valid for 180 days. As long as you refresh at least once within this validity period, the validity window is extended on each refresh, so an active integration stays authorized without requiring the user to log in again. |
Revoking access
To end an authorization, POST the token to the revoke endpoint:
curl -X POST 'https://app.rakenapp.com/oauth/revoke' \
--data-urlencode 'token=<access_token or refresh_token>'
Either token of the authorization may be sent. Both identify the same authorization, and revoking tears down the whole of it — the access token and the refresh token — so there is no need to call the endpoint twice.
The endpoint always answers HTTP 200, whether or not the token existed. This is required by the
standard so that the endpoint cannot be used to discover which token values are valid, and it means a
200 is not a confirmation that anything was revoked.
|
The authorization is removed, and there is no way to restore it or to obtain further tokens from it — the user has to authorize your app again.
Always send the access token from the most recent |
Making an API call
Here is an example API call (using curl) utilizing an access token:
curl -X GET "https://developer.rakenapp.com/api/projects?limit=10&offset=0&statuses=ACTIVE" -H "Accept: application/json" -H "Authorization: Bearer <access_token>"
Request Headers
| Name | Description |
|---|---|
|
The Authorization Request Header. Format: "Bearer <access_token>". |
Response Headers
| Name | Description |
|---|---|
|
Identifier representing the response content (May be used for conditional requests) |
|
The Content-Type of the payload, e.g. |
Paging
Many of the requests accept parameters that indicate the paging constraints.
This API uses an offset and limit approach to paging.
Paged responses return their values within two objects.
One describes the page that is being returned, and the other is the collection of items.
|
Response size limit. A response that returns too much data can exceed the maximum size the API is able to process. When this happens the request fails with
To resolve it, lower the |
Page Request
The Common page request parameters:
| Parameter | Description | Required | Constraints |
|---|---|---|---|
changedSince |
Return only projects updated at or after this time, inclusive. changedSince must be before or equal to changedUntil. The date range is capped to 31 days to changedUntil. |
No |
Format: "yyyy-MM-ddThh:mm:ssZ" |
changedUntil |
Return only projects updated before this time, exclusive. |
No |
Format: "yyyy-MM-ddThh:mm:ssZ" |
offset |
The (zero-based) offset of the first item in the collection to return (Default: 0) |
No |
>= 0 |
limit |
The maximum number of entries to return (Default: 10) |
No |
Min: 1, Max: 1,000 |
Page Response
The Common Page object is described here:
| Field | Type | Description | Constraints |
|---|---|---|---|
next |
String |
URI to request the next page, keeping the limit consistent |
|
previous |
String |
URI to request the previous page, keeping the limit consistent |
|
limit |
Number |
The limit used to generate the page |
Must be at least 1 Must be at most 1000 |
offset |
Number |
The offset value used to generate the page |
Must be at least 0 |
nextOffset |
String |
The offset of the next element |
|
totalElements |
Number |
The total number of elements matching the request |
API Rate Limiting
In order to respond quickly to your REST API calls, Raken has implemented overload protection for Public API via rate limiting.
If you are calling the API too frequently or have exceeded the quota available for your company, further API calls would be throttled and fail with HTTP status code 429. In a case where rate limiting occurs, you can retry after the end of the reporting period when API calls will be allowed again.
These limits are enforced on the Public API:
-
Rate limit restricts the maximum number of API requests a user can make per second. When exceeded, the API returns HTTP 429 (Too Many requests).
-
Burst limit restricts the maximum number of API requests a user can make concurrently. When exceeded, the API returns HTTP 429 (Too Many requests).
-
Quota restricts the maximum number of API requests a user can make per day. When exceeded, the API returns HTTP 429 (Limit Exceeded).
The limits are configured by Raken based on your subscription plan. Please contact your customer service manager for details.
Test with Postman
Import Raken Public API 3.0 Postman Collection
-
Make sure you have Postman installed on your system. If you haven’t already done so, you can download and install it from Postman’s official website.
-
Copy this link: Raken Public API 3.0 Postman Collection
-
Open Postman, click
Import, and paste the link to import the collection.
Obtain Client Id and Secret
To use the Raken Public API, you need to obtain your client_id and client_secret. You can do this by following these steps:
-
Visit the Raken Developer Page at https://app.rakenapp.com/developer/apps.
-
Create a new app or use an existing one to obtain your
client_idandclient_secretfrom the App. -
Save the
client_idandclient_secretto two variables under theVariablessection on the Postman collection’s home page:-
api_client_id -
api_client_secret
-
Get a New Access Token
-
Click
Get New Access Tokenunder theAuthorizationsection on the Postman collection’s home page. This action initiates an OAuth2 flow. -
You will be redirected to a browser window where you will be prompted to log in using your Raken user credentials.
-
Once the OAuth2 flow is complete, an access token will be returned.
-
Click
Use Tokento save the token for making public API calls.
Make API Calls
With the access token in place, you can now select and make API calls from the collection. Please note that the payload for some API calls in the collection is for demonstration purposes only. For detailed API information, refer to the API documentation below.
Resources
|
Budgets
List Budgets
GET /budgets
Query parameters
| Parameter | Description | Required | Constraints |
|---|---|---|---|
projectUuid |
Restrict the budgets to the projects represented by this UUID. |
Yes |
Response fields
| Field | Type | Description | Constraints |
|---|---|---|---|
costCode.uuid |
String |
Unique identifier for the cost code |
|
budgetedHours |
Number |
Budgeted hours for the cost code |
|
budgetedMaterials |
Array |
Materials included in the budget |
|
budgetedMaterials[].quantity |
Number |
Budgeted quantity of material |
|
budgetedMaterials[].material.uuid |
String |
Unique identifier for this material |
Usage Example with Curl
Curl request
$ curl 'https://developer.rakenapp.com/api/budgets?projectUuid=8169fd06-0997-4673-b537-4d9d401b8922&limit=5&offset=5' -i -X GET
Response body
{
"page" : {
"offset" : 5,
"limit" : 5,
"totalElements" : 15,
"previous" : "/budgets?projectUuid=8169fd06-0997-4673-b537-4d9d401b8922&offset=0&limit=5",
"next" : "/budgets?projectUuid=8169fd06-0997-4673-b537-4d9d401b8922&offset=10&limit=5",
"nextOffset" : "10"
},
"collection" : [ {
"budgetedHours" : 30.83,
"costCode" : {
"uuid" : "05b1a858-3a66-4efc-bb45-a560d4a0e74e"
},
"budgetedMaterials" : [ {
"quantity" : 39.0,
"material" : {
"uuid" : "4384ac87-a14e-4381-b532-1d38ec0acd4f"
}
}, {
"quantity" : 28.0,
"material" : {
"uuid" : "da952666-e82f-40f6-a91b-d63febcb28a7"
}
} ]
}, {
"budgetedHours" : 16.9,
"costCode" : {
"uuid" : "ebbce023-0aa6-4a6c-a8db-dceab050a735"
},
"budgetedMaterials" : [ {
"quantity" : 47.0,
"material" : {
"uuid" : "c222d621-fb8e-4f49-b4ea-112977c9c27d"
}
}, {
"quantity" : 88.0,
"material" : {
"uuid" : "e69d3edc-d450-41ba-b0cf-8aa3e35a05f2"
}
} ]
} ]
}
Certification Types
List Certification Types
GET /certificationTypes
Query parameters
| Parameter | Description | Required | Constraints |
|---|---|---|---|
query |
Search term to match against name and description of certification types |
No |
|
changedSince |
Return only certification types updated at or after this time, inclusive. changedSince must be before or equal to changedUntil. The date range is capped to 31 days to changedUntil. |
No |
Format: "yyyy-MM-ddThh:mm:ssZ" |
changedUntil |
Return only certification types updated before this time, exclusive. |
No |
Format: "yyyy-MM-ddThh:mm:ssZ" |
fromCreatedAt |
Return only certification types created at or after this time, inclusive. fromCreatedAt must be before or equal to toCreatedAt. The date range is capped to 31 days to toCreatedAt. |
No |
Format: "yyyy-MM-ddThh:mm:ssZ" |
toCreatedAt |
Return only certification types created before this time, exclusive |
No |
Format: "yyyy-MM-ddThh:mm:ssZ" |
Response fields
| Field | Type | Description | Constraints |
|---|---|---|---|
uuid |
String |
Unique identifier for the certification type |
|
name |
String |
Name of the certification type |
|
description |
String |
Description of the certification type |
|
createdBy |
Object |
Member who created the certification type |
|
createdBy.uuid |
String |
Unique identifier for the member who created the certification type |
|
createdBy.name |
String |
Name of the member who created the certification type |
|
updatedBy |
Object |
Member who updated the certification type |
|
updatedBy.uuid |
String |
Unique identifier for the member who updated the certification type |
|
updatedBy.name |
String |
Name of the member who updated the certification type |
|
createdAt |
String |
Date and Time (UTC) when the certification type was created |
Format: "yyyy-MM-ddThh:mm:ssZ" |
updatedAt |
String |
Date and Time (UTC) when the certification type was updated |
Format: "yyyy-MM-ddThh:mm:ssZ" |
Usage Example with Curl
Curl request
$ curl 'https://developer.rakenapp.com/api/certificationTypes?query=query&fromCreatedAt=2024-03-03T14:00:00Z&toCreatedAt=2024-03-13T14:00:00Z&changedSince=2024-03-03T14:00:00Z&changedUntil=2024-03-13T14:00:00Z&limit=10&offset=0' -i -X GET
Response body
{
"page" : {
"offset" : 0,
"limit" : 10,
"totalElements" : 10
},
"collection" : [ {
"uuid" : "d2750a53-9789-4dc8-8a78-53273f6b06b2",
"name" : "Kuphal-Ebert",
"description" : "Libero dolore vitae consectetur rem provident vel.",
"createdAt" : "2026-10-06T01:28:45Z",
"updatedAt" : "2026-10-06T01:28:45Z",
"createdBy" : {
"uuid" : "ec5f274f-8b47-4534-9866-588e33e59807",
"name" : "Miquel Cremin"
},
"updatedBy" : {
"uuid" : "a6b52c4e-bdb7-4357-a062-634f974d3ecb",
"name" : "Timothy VonRueden"
}
} ]
}
Certifications
List Certifications
GET /certifications
Query parameters
| Parameter | Description | Required | Constraints |
|---|---|---|---|
query |
Search for certifications based on certification name and class |
No |
|
certificationTypeUuids |
Return only certifications with the specified certification types |
No |
|
changedSince |
Return only certifications updated at or after this time, inclusive. changedSince must be before or equal to changedUntil. The date range is capped to 31 days to changedUntil. |
No |
Format: "yyyy-MM-ddThh:mm:ssZ" |
changedUntil |
Return only certifications updated before this time, exclusive. |
No |
Format: "yyyy-MM-ddThh:mm:ssZ" |
fromCreatedAt |
Return only certifications created at or after this time, inclusive. fromCreatedAt must be before or equal to toCreatedAt. The date range is capped to 31 days to toCreatedAt. |
No |
Format: "yyyy-MM-ddThh:mm:ssZ" |
toCreatedAt |
Return only certifications created before this time, exclusive |
No |
Format: "yyyy-MM-ddThh:mm:ssZ" |
Response fields
| Field | Type | Description | Constraints |
|---|---|---|---|
uuid |
String |
Unique identifier for the certification |
|
name |
String |
Name of the certification |
|
createdBy |
Object |
Member who created the certification |
|
createdBy.uuid |
String |
Unique identifier for the member who created the certification |
|
createdBy.name |
String |
Name of the member who created the certification |
|
updatedBy |
Object |
Member who updated the certification |
|
updatedBy.uuid |
String |
Unique identifier for the member who updated the certification |
|
updatedBy.name |
String |
Name of the member who updated the certification |
|
createdAt |
String |
Date and Time (UTC) when the certification was created |
Format: "yyyy-MM-ddThh:mm:ssZ" |
updatedAt |
String |
Date and Time (UTC) when the certification was updated |
Format: "yyyy-MM-ddThh:mm:ssZ" |
certificationType |
Object |
Certification type associated with this certification |
|
certificationType.name |
String |
Name of this certification type |
|
certificationType.uuid |
String |
Unique identifier for this classification type |
Usage Example with Curl
Curl request
$ curl 'https://developer.rakenapp.com/api/certifications?query=query&certificationTypeUuids=cae8123b-b525-4822-9e44-7f2e587131cc,4838b701-1e54-4d56-b81a-0c59872072aa&fromCreatedAt=2024-03-03T14:00:00Z&toCreatedAt=2024-03-13T14:00:00Z&changedSince=2024-03-03T14:00:00Z&changedUntil=2024-03-13T14:00:00Z&limit=10&offset=0' -i -X GET
Response body
{
"page" : {
"offset" : 0,
"limit" : 10,
"totalElements" : 10
},
"collection" : [ {
"uuid" : "7c11be6e-6ada-42d3-8f2d-807d6192d177",
"name" : "First Aid",
"certificationType" : {
"uuid" : "2be54f41-6118-4b48-903f-ba901b1fc8b2",
"name" : "Search and Rescue"
},
"createdAt" : "2026-10-06T01:28:52Z",
"updatedAt" : "2026-10-06T01:28:52Z",
"createdBy" : {
"uuid" : "ce023293-30d2-4b9d-ac4b-3826dd352017",
"name" : "Sheryll Wiza V"
},
"updatedBy" : {
"uuid" : "10deddfe-ba77-46d2-9631-7d2f262aace0",
"name" : "Charlette Haley"
}
} ]
}
Create Certification
POST /certifications
Request fields
| Field | Type | Description | Required | Constraints |
|---|---|---|---|---|
name |
String |
Certification name |
Yes |
Must not be blank Size must be between 0 and 255 inclusive |
certificationTypeUuid |
String |
Unique identifier of the certification type for the certification |
Yes |
Response fields
| Field | Type | Description | Constraints |
|---|---|---|---|
uuid |
String |
Unique identifier for the certification |
|
name |
String |
Name of the certification |
|
createdBy |
Object |
Member who created the certification |
|
createdBy.uuid |
String |
Unique identifier for the member who created the certification |
|
createdBy.name |
String |
Name of the member who created the certification |
|
updatedBy |
Object |
Member who updated the certification |
|
updatedBy.uuid |
String |
Unique identifier for the member who updated the certification |
|
updatedBy.name |
String |
Name of the member who updated the certification |
|
createdAt |
String |
Date and Time (UTC) when the certification was created |
Format: "yyyy-MM-ddThh:mm:ssZ" |
updatedAt |
String |
Date and Time (UTC) when the certification was updated |
Format: "yyyy-MM-ddThh:mm:ssZ" |
certificationType |
Object |
Certification type associated with this certification |
|
certificationType.name |
String |
Name of this certification type |
|
certificationType.uuid |
String |
Unique identifier for this classification type |
Usage Example with Curl
Curl request
$ curl 'https://developer.rakenapp.com/api/certifications' -i -X POST \
-H 'Content-Type: application/json' \
-d '{
"name" : "First Aid",
"certificationTypeUuid" : "3c7a437c-e07e-4ffe-8ca0-5f5c9c127432"
}'
Response body
{
"uuid" : "7c11be6e-6ada-42d3-8f2d-807d6192d177",
"name" : "First Aid",
"certificationType" : {
"uuid" : "486c2375-a024-48d1-830c-0e3d34258afd",
"name" : "Search and Rescue"
},
"createdAt" : "2026-10-06T01:28:51Z",
"updatedAt" : "2026-10-06T01:28:51Z",
"createdBy" : {
"uuid" : "23ebed36-d1d0-4ccb-becb-e4d81d3c93ab",
"name" : "Joshua Wintheiser Sr."
},
"updatedBy" : {
"uuid" : "2bb4e7c1-b25b-44dc-97fe-043851897dd6",
"name" : "Will Fritsch"
}
}
Update Certification
PATCH /certifications/{uuid}
Request fields
| Field | Type | Description | Required | Constraints |
|---|---|---|---|---|
name |
String |
Certification name |
Yes |
Must not be blank Size must be between 0 and 255 inclusive |
certificationTypeUuid |
String |
Unique identifier of the certification type for the certification |
Yes |
|
certificationTypeName |
String |
Name of the certification type for the certification |
Yes |
Response fields
| Field | Type | Description | Constraints |
|---|---|---|---|
uuid |
String |
Unique identifier for the certification |
|
name |
String |
Name of the certification |
|
createdBy |
Object |
Member who created the certification |
|
createdBy.uuid |
String |
Unique identifier for the member who created the certification |
|
createdBy.name |
String |
Name of the member who created the certification |
|
updatedBy |
Object |
Member who updated the certification |
|
updatedBy.uuid |
String |
Unique identifier for the member who updated the certification |
|
updatedBy.name |
String |
Name of the member who updated the certification |
|
createdAt |
String |
Date and Time (UTC) when the certification was created |
Format: "yyyy-MM-ddThh:mm:ssZ" |
updatedAt |
String |
Date and Time (UTC) when the certification was updated |
Format: "yyyy-MM-ddThh:mm:ssZ" |
certificationType |
Object |
Certification type associated with this certification |
|
certificationType.name |
String |
Name of this certification type |
|
certificationType.uuid |
String |
Unique identifier for this classification type |
Usage Example with Curl
Curl request
$ curl 'https://developer.rakenapp.com/api/certifications/7c11be6e-6ada-42d3-8f2d-807d6192d177' -i -X PATCH \
-H 'Content-Type: application/json' \
-d '{
"name" : "First Aid",
"certificationTypeUuid" : "192814ed-8af6-4d4a-9ee3-0658dbc735ac",
"certificationTypeName" : "Search and Rescue"
}'
Response body
{
"uuid" : "7c11be6e-6ada-42d3-8f2d-807d6192d177",
"name" : "First Aid",
"certificationType" : {
"uuid" : "ae35c5bc-f18b-4d24-ba60-2860ff385f1c",
"name" : "Search and Rescue"
},
"createdAt" : "2026-10-06T01:28:52Z",
"updatedAt" : "2026-10-06T01:28:52Z",
"createdBy" : {
"uuid" : "02206fc0-7ba6-483f-87bf-5db663beaf3e",
"name" : "Mrs. Nelson Langworth"
},
"updatedBy" : {
"uuid" : "f76a4638-7ac2-473f-80dc-6c2121f954bd",
"name" : "Cami Mann"
}
}
Checklist Types
List Checklist Types
GET /checklistTypes
The maximum value of the limit parameter for this endpoint is 100.
|
Query parameters
| Parameter | Description | Required | Constraints |
|---|---|---|---|
classes |
Return only checklist types with these classes |
No |
Enums: COMMISSIONING, EQUIPMENT, QUALITY, ENVIRONMENTAL, SAFETY, GENERAL |
statuses |
Return only checklist types with this statuses |
No |
Enums: ACTIVE, DELETED |
Response fields
| Field | Type | Description | Constraints |
|---|---|---|---|
uuid |
String |
Unique identifier for the checklist type |
|
createdAt |
String |
Date and Time (UTC) when the checklist type was created |
Format: "yyyy-MM-ddThh:mm:ssZ" |
status |
String |
Status of the checklist type |
Enums: ACTIVE, DELETED |
class |
String |
Class of the checklist type |
|
name |
String |
Name of the checklist type |
|
createdBy.uuid |
String |
Unique identifier for the user who created the checklist type |
|
createdBy.name |
String |
Name of the user who created the checklist |
|
updatedAt |
String |
Date and Time (UTC) when the checklist type was updated |
Format: "yyyy-MM-ddThh:mm:ssZ" |
Usage Example with Curl
Curl request
$ curl 'https://developer.rakenapp.com/api/checklistTypes?classes=GENERAL&classes=QUALITY&statuses=ACTIVE&statuses=DELETED&limit=5&offset=5' -i -X GET
Response body
{
"page" : {
"offset" : 5,
"limit" : 5,
"totalElements" : 15,
"previous" : "/checklistTypes?classes=GENERAL&classes=QUALITY&statuses=ACTIVE&statuses=DELETED&offset=0&limit=5",
"next" : "/checklistTypes?classes=GENERAL&classes=QUALITY&statuses=ACTIVE&statuses=DELETED&offset=10&limit=5",
"nextOffset" : "10"
},
"collection" : [ {
"uuid" : "d7d603d1-842c-4437-a00a-39ce187b6846",
"createdAt" : "2026-10-06T01:28:56Z",
"status" : "ACTIVE",
"createdBy" : {
"uuid" : "8ffedac7-552a-40b2-a19d-38d0ca3dce19",
"name" : "User Name"
},
"updatedAt" : "2026-10-06T01:28:56Z",
"class" : "GENERAL",
"name" : "Hazard Mitigation"
}, {
"uuid" : "ab709320-cd66-4ce8-9086-6e83135836ed",
"createdAt" : "2026-10-06T01:28:56Z",
"status" : "ACTIVE",
"createdBy" : {
"uuid" : "9b38dbaa-481e-422d-932e-4f3eb1df9859",
"name" : "User Name"
},
"updatedAt" : "2026-10-06T01:28:56Z",
"class" : "GENERAL",
"name" : "Hazard Mitigation"
}, {
"uuid" : "973380a6-deb4-479b-a26c-6b5880aa44f6",
"createdAt" : "2026-10-06T01:28:56Z",
"status" : "ACTIVE",
"createdBy" : {
"uuid" : "ae7fe340-3987-4236-aa94-856c66d87131",
"name" : "User Name"
},
"updatedAt" : "2026-10-06T01:28:56Z",
"class" : "GENERAL",
"name" : "Hazard Mitigation"
}, {
"uuid" : "54181d15-cb5e-4a2f-bea3-a4255a762a73",
"createdAt" : "2026-10-06T01:28:56Z",
"status" : "ACTIVE",
"createdBy" : {
"uuid" : "1dfdd37a-e300-4cd1-b208-f70064779587",
"name" : "User Name"
},
"updatedAt" : "2026-10-06T01:28:56Z",
"class" : "GENERAL",
"name" : "Hazard Mitigation"
}, {
"uuid" : "ecc4174a-2b20-4f82-bc97-c780f2af9d0a",
"createdAt" : "2026-10-06T01:28:56Z",
"status" : "ACTIVE",
"createdBy" : {
"uuid" : "c3d02a46-aa9b-473e-8cf1-4a0a5a019e6e",
"name" : "User Name"
},
"updatedAt" : "2026-10-06T01:28:56Z",
"class" : "GENERAL",
"name" : "Hazard Mitigation"
} ]
}
Checklists
List Checklists
GET /checklists
The maximum value of the limit parameter for this endpoint is 100.
|
Query parameters
| Parameter | Description | Required | Constraints |
|---|---|---|---|
projectUuid |
Return only checklists for the project |
No |
|
statuses |
Return only checklists with these statuses. The default is COMPLETED |
No |
Enums: COMPLETED, DRAFT, DELETED, SCHEDULED |
createdByUuid |
Return only checklists created by a user identified by the unique identifier |
No |
|
templateUuid |
Return only checklists created from a template identified by the unique identifier |
No |
|
fromCreatedAt |
Return only checklists created at or after this time, inclusive. fromCreatedAt must be before or equal to toCreatedAt. The date range is capped to 31 days to toCreatedAt. |
No |
Format: "yyyy-MM-ddThh:mm:ssZ" |
toCreatedAt |
Return only checklists created before this time, exclusive |
No |
Format: "yyyy-MM-ddThh:mm:ssZ" |
checklistDateFrom |
Return only checklists with the checklist date at or after this time, inclusive. checklistDateFrom must be before or equal to checklistDateTo. |
No |
Format: "yyyy-MM-ddThh:mm:ssZ" |
checklistDateTo |
Return only checklists with the checklist date at or before this time, inclusive |
No |
Format: "yyyy-MM-ddThh:mm:ssZ" |
checklistTypeUuid |
Return only checklists with a checklist type identified by the unique identifier |
No |
Response fields
| Field | Type | Description | Constraints |
|---|---|---|---|
uuid |
String |
Unique identifier for the checklist |
|
name |
String |
Name of the checklist |
|
projectUuid |
String |
Unique identifier for the project that the checklist belongs to |
|
templateUuid |
String |
Unique identifier for the template of the checklist |
|
pdfUrl |
String |
URL for downloading the checklist PDF |
|
createdAt |
String |
Date and Time (UTC) when the checklist was created |
Format: "yyyy-MM-ddThh:mm:ssZ" |
updatedAt |
String |
Date and Time (UTC) when the checklist was updated |
Format: "yyyy-MM-ddThh:mm:ssZ" |
status |
String |
Status of the checklist |
Enums: COMPLETED, DRAFT, DELETED, SCHEDULED |
createdBy.uuid |
String |
Unique identifier for the user who created the checklist |
|
createdBy.name |
String |
Name of the user who created the checklist |
|
location.name |
String |
Location where the checklist was made |
|
location.fullPath |
String |
Full path location where the checklist was made |
|
checklistTypeUuid |
String |
Unique identifier for the checklist type |
|
observationsClosedCount |
Number |
The number of observations raised on the checklist that have been closed |
|
observationsRaisedCount |
Number |
The number of observations raised on the checklist |
|
responsibleClassificationUuid |
String |
Unique identifier for the responsible party classification |
|
checklistDate |
String |
Date and time for this checklist |
Usage Example with Curl
Curl request
$ curl 'https://developer.rakenapp.com/api/checklists?projectUuid=60611827-5dfb-4d8b-98c8-26ab2672afd8&templateUuid=5cb10c71-1f28-4319-bd79-0a5a4e65c297&createdByUuid=15008a27-3c74-4f7f-b24f-c7b6179bf512&fromCreatedAt=2026-10-05T01:29:01Z&toCreatedAt=2026-10-06T01:29:01Z&checklistTypeUuid=4769ea46-e69b-4f3b-8306-0704805aee47&statuses=COMPLETED&statuses=DRAFT&checklistDateFrom=2026-10-05T01:29:01Z&checklistDateTo=2026-10-06T01:29:01Z&limit=5&offset=5' -i -X GET
Response body
{
"page" : {
"offset" : 5,
"limit" : 5,
"totalElements" : 15,
"previous" : "/checklists?projectUuid=60611827-5dfb-4d8b-98c8-26ab2672afd8&templateUuid=5cb10c71-1f28-4319-bd79-0a5a4e65c297&createdByUuid=15008a27-3c74-4f7f-b24f-c7b6179bf512&fromCreatedAt=2026-10-05T01:29:01Z&toCreatedAt=2026-10-06T01:29:01Z&checklistTypeUuid=4769ea46-e69b-4f3b-8306-0704805aee47&statuses=COMPLETED&statuses=DRAFT&checklistDateFrom=2026-10-05T01:29:01Z&checklistDateTo=2026-10-06T01:29:01Z&offset=0&limit=5",
"next" : "/checklists?projectUuid=60611827-5dfb-4d8b-98c8-26ab2672afd8&templateUuid=5cb10c71-1f28-4319-bd79-0a5a4e65c297&createdByUuid=15008a27-3c74-4f7f-b24f-c7b6179bf512&fromCreatedAt=2026-10-05T01:29:01Z&toCreatedAt=2026-10-06T01:29:01Z&checklistTypeUuid=4769ea46-e69b-4f3b-8306-0704805aee47&statuses=COMPLETED&statuses=DRAFT&checklistDateFrom=2026-10-05T01:29:01Z&checklistDateTo=2026-10-06T01:29:01Z&offset=10&limit=5",
"nextOffset" : "10"
},
"collection" : [ {
"uuid" : "bd4c5c49-2f0a-4751-ac20-f83266ee42ef",
"templateUuid" : "c75b95d7-1be7-41d8-96b6-421d8250f776",
"name" : "Activity Risk Assessment",
"status" : "DRAFT",
"projectUuid" : "00f7560d-ba85-4daa-a7a2-8d3b29b2b665",
"pdfUrl" : "https://www.scarlett-kerluke.io/eaque/autem?totam=reiciendis&laborum=iusto",
"createdBy" : {
"uuid" : "aeb32596-72f1-47e3-8447-0bed80db18ca",
"name" : "Kelsi Zieme"
},
"createdAt" : "2024-12-13T02:27:10Z",
"updatedAt" : "2025-09-03T21:30:15Z",
"location" : {
"fullPath" : "Location full path",
"name" : "Hansen Plain"
},
"checklistTypeUuid" : "6e0f1752-38ec-4538-b397-1e3b4020c2f9",
"observationsClosedCount" : 5,
"observationsRaisedCount" : 3,
"responsibleClassificationUuid" : "901d1452-e7d8-40de-838e-94cc627eda65",
"checklistDate" : "2026-10-06T01:29:01"
}, {
"uuid" : "a6ce47f0-4037-4e6f-8ef2-63bbe3fe97ce",
"templateUuid" : "cddcbf4c-8cee-434b-a53b-68e4180a550d",
"name" : "Construction Quality Control",
"status" : "DRAFT",
"projectUuid" : "e9cc011a-4f86-4828-afbf-83a4985fd063",
"pdfUrl" : "https://www.arthur-weissnat.co/magni/repudiandaequia#quaerat",
"createdBy" : {
"uuid" : "e15b46e9-db92-4403-8100-b95fdc1e88c9",
"name" : "Miss Bud Heathcote"
},
"createdAt" : "2025-12-11T02:37:08Z",
"updatedAt" : "2026-04-21T09:13:33Z",
"location" : {
"fullPath" : "Location full path",
"name" : "Rodriguez Drives"
},
"checklistTypeUuid" : "5edac337-3099-488e-a370-51794ee52789",
"observationsClosedCount" : 4,
"observationsRaisedCount" : 3,
"responsibleClassificationUuid" : "5f837c91-1009-4bf2-8133-a570b730b044",
"checklistDate" : "2026-10-06T01:29:01"
}, {
"uuid" : "ec1fe396-6635-4dba-b423-35204222ea99",
"templateUuid" : "58d3701b-b9bb-49ae-a321-3026854d9f8f",
"name" : "Covid-19 Inspection",
"status" : "DRAFT",
"projectUuid" : "b61aa900-5cc5-4c7c-ae3f-432dda40fd62",
"pdfUrl" : "http://www.walton-wolff.name:49064/",
"createdBy" : {
"uuid" : "0b8f55fd-853f-4a5b-a16c-6c2d60ca643d",
"name" : "Darryl Bruen DDS"
},
"createdAt" : "2026-10-03T01:56:10Z",
"updatedAt" : "2026-10-04T03:33:03Z",
"location" : {
"fullPath" : "Location full path",
"name" : "Bergstrom Overpass"
},
"checklistTypeUuid" : "2726901b-3ad8-43ad-adce-d8523b94ec33",
"observationsClosedCount" : 8,
"observationsRaisedCount" : 3,
"responsibleClassificationUuid" : "09aeb172-d644-40bb-ab5a-544114c96da3",
"checklistDate" : "2026-10-06T01:29:01"
}, {
"uuid" : "517c131b-4faa-4155-9b87-910560e2d449",
"templateUuid" : "86dd362a-e46c-4758-951c-7305d2dba32b",
"name" : "Framing Pre-Inspection",
"status" : "COMPLETED",
"projectUuid" : "14b789a8-91b8-4b51-b739-cc9ed67e822c",
"pdfUrl" : "https://www.zack-daniel.co/amet?adipisci=magnam&vel=similique",
"createdBy" : {
"uuid" : "4ca8c51e-cb95-4e5e-a007-65560ffc766f",
"name" : "Marica Cartwright"
},
"createdAt" : "2025-06-23T06:28:01Z",
"updatedAt" : "2026-03-23T14:26:06Z",
"location" : {
"fullPath" : "Location full path",
"name" : "Moises Junctions"
},
"checklistTypeUuid" : "cd5ac76d-56aa-4d3e-b352-1293997c5e39",
"observationsClosedCount" : 1,
"observationsRaisedCount" : 4,
"responsibleClassificationUuid" : "71a25319-0069-4e79-b917-9a8240371a98",
"checklistDate" : "2026-10-06T01:29:01"
}, {
"uuid" : "2bb25c5f-7163-4067-bada-6236d6726f7d",
"templateUuid" : "d2d4ae99-9307-4367-a355-6bf559e5bf92",
"name" : "Material Delivery",
"status" : "COMPLETED",
"projectUuid" : "1ca46b1f-7d96-42f6-8280-ab46e8e3871d",
"pdfUrl" : "https://www.martine-west.com/perspiciatis/qui?modi=pariatur&omnis=dolor#quisquam",
"createdBy" : {
"uuid" : "e668bc76-2e92-4bb9-94a1-042aa5d39715",
"name" : "Mertie Ledner Jr."
},
"createdAt" : "2026-09-15T18:17:26Z",
"updatedAt" : "2026-10-04T13:40:19Z",
"location" : {
"fullPath" : "Location full path",
"name" : "Ken Villages"
},
"checklistTypeUuid" : "1395bdb4-c627-4d12-bbc6-36d52af3f5e0",
"observationsClosedCount" : 5,
"observationsRaisedCount" : 3,
"responsibleClassificationUuid" : "5919fbfd-4e6d-4e7a-baf5-03e0e09bf4d6",
"checklistDate" : "2026-10-06T01:29:01"
} ]
}
Get Checklist
GET /checklists/{uuid}
Response fields
| Field | Type | Description | Constraints |
|---|---|---|---|
uuid |
String |
Unique identifier for the checklist |
|
name |
String |
Name of the checklist |
|
projectUuid |
String |
Unique identifier for the project that the checklist belongs to |
|
templateUuid |
String |
Unique identifier for the template of the checklist |
|
pdfUrl |
String |
URL for downloading the checklist PDF |
|
createdAt |
String |
Date and Time (UTC) when the checklist was created |
Format: "yyyy-MM-ddThh:mm:ssZ" |
updatedAt |
String |
Date and Time (UTC) when the checklist was updated |
Format: "yyyy-MM-ddThh:mm:ssZ" |
status |
String |
Status of the checklist |
Enums: COMPLETED, DRAFT, DELETED, SCHEDULED |
createdBy.uuid |
String |
Unique identifier for the user who created the checklist |
|
createdBy.name |
String |
Name of the user who created the checklist |
|
location.name |
String |
Location where the checklist was made |
|
location.fullPath |
String |
Full path location where the checklist was made |
|
checklistTypeUuid |
String |
Unique identifier for the checklist type |
|
observationsClosedCount |
Number |
The number of observations raised on the checklist that have been closed |
|
observationsRaisedCount |
Number |
The number of observations raised on the checklist |
|
responsibleClassificationUuid |
String |
Unique identifier for the responsible party classification |
|
checklistDate |
String |
Date and time for this checklist |
|
checklistSections |
Array |
Sections of the checklist |
|
checklistSections[].position |
Number |
Order of the section in the list |
|
checklistSections[].title |
String |
Title of the section |
|
checklistSections[].description |
String |
Description of the section |
|
checklistSections[].checklistQuestions |
Array |
Questions under the section |
|
checklistSections[].checklistQuestions[].questionText |
String |
Question text |
|
checklistSections[].checklistQuestions[].responseType |
String |
Response type |
Enums: TABLE, MULTI_CHOICE, DATE, CHECKBOX, NUMBER, STAR_RATING, YES_NO_NA, TEXT, TIME, YES_NO, SIGNATURE |
checklistSections[].checklistQuestions[].position |
Number |
Order of the question in the section |
|
checklistSections[].checklistQuestions[].required |
Boolean |
Flag that indicates whether or not the question must be answered |
Boolean value: true or false |
checklistSections[].checklistQuestions[].checklistResponses |
Array |
Question responses |
|
checklistSections[].checklistQuestions[].checklistResponses[].value |
String |
Response to the question |
|
checklistSections[].checklistQuestions[].checklistResponses[].note |
String |
Response notes |
|
checklistSections[].checklistQuestions[].checklistResponses[].checklistResponseAttachments |
Array |
Response attachments |
|
checklistSections[].checklistQuestions[].checklistResponses[].checklistResponseAttachments[].uuid |
String |
Unique identifier for this attachment |
|
checklistSections[].checklistQuestions[].checklistResponses[].checklistResponseAttachments[].mediaType |
String |
Media type for this attachment |
Enums: IMAGE, VIDEO, DOCUMENT, AUDIO |
checklistSections[].checklistQuestions[].checklistResponses[].checklistResponseAttachments[].url |
String |
URL for this attachment |
|
checklistSections[].checklistQuestions[].checklistResponses[].checklistResponseAttachments[].thumbnailUrl |
String |
Thumbnail URL for this attachment |
|
checklistSections[].checklistQuestions[].checklistResponses[].checklistResponseAttachments[].contentType |
String |
Content type for this attachment (e.g. 'image/jpeg', 'image/png') |
|
checklistSections[].checklistQuestions[].checklistResponses[].checklistResponseAttachments[].description |
String |
Description of this attachment |
|
checklistSections[].checklistQuestions[].checklistResponses[].checklistResponseAttachments[].fileName |
String |
File name of this attachment |
|
checklistSections[].checklistQuestions[].checklistResponses[].checklistResponseAttachments[].fileSize |
Number |
Size of this attachment in bytes |
|
checklistSections[].checklistQuestions[].checklistResponses[].choices |
Array |
Response choices |
|
checklistSections[].checklistQuestions[].checklistResponses[].choices[].position |
Number |
Order of the choice in the list |
|
checklistSections[].checklistQuestions[].checklistResponses[].choices[].description |
String |
Description of the choice |
|
checklistSections[].checklistQuestions[].checklistResponses[].choices[].selected |
Boolean |
Flag that indicates whether or not the choice is selected |
Boolean value: true or false |
checklistSections[].checklistQuestions[].checklistResponses[].observations[].uuid |
String |
Unique identifier of the observation on this checklist response |
|
checklistSections[].checklistQuestions[].checklistResponses[].observations[].category |
String |
Category of the observation on this checklist response |
Usage Example with Curl
Curl request
$ curl 'https://developer.rakenapp.com/api/checklists/686f9084-ce57-477b-b5bb-c9d9aabdbe90' -i -X GET
Response body
{
"uuid" : "686f9084-ce57-477b-b5bb-c9d9aabdbe90",
"templateUuid" : "b7c5990b-4328-402e-bd66-8336829c1f9e",
"name" : "Construction Quality Control",
"status" : "COMPLETED",
"projectUuid" : "3124eb07-92e2-4d63-abf8-a1dba3aa9913",
"pdfUrl" : "https://www.jaqueline-wyman.info/occaecati?velit=dolor&dolorum=aspernatur",
"createdBy" : {
"uuid" : "a9a11be4-affe-4c47-b768-7fc02a03f237",
"name" : "Jonathon Howe"
},
"createdAt" : "2026-04-02T07:21:36Z",
"updatedAt" : "2026-07-25T09:05:45Z",
"location" : {
"fullPath" : "Location full path",
"name" : "Schoen Ford"
},
"checklistTypeUuid" : "81bddd90-db7e-4b2c-8741-722e45f0899b",
"observationsClosedCount" : 8,
"observationsRaisedCount" : 2,
"responsibleClassificationUuid" : "9aaaa547-c0b7-457d-ac94-67d6b33669e4",
"checklistDate" : "2026-10-06T01:29:01",
"checklistSections" : [ {
"checklistQuestions" : [ {
"checklistResponses" : [ {
"value" : "Eaque dolorem vitae minima error rerum earum.",
"note" : "Maiores perferendis sed. Rerum qui quos sit ipsam et cupiditate. Nihil officia labore commodi odit voluptatibus non.",
"checklistResponseAttachments" : [ {
"uuid" : "3e6a7301-a016-4c1d-acca-6f593aee4911",
"url" : "https://www.example.com/image",
"description" : "Description",
"fileName" : "est.jpg",
"thumbnailUrl" : "https://www.example.com/thumbnailImage",
"contentType" : "image/png",
"mediaType" : "IMAGE",
"fileSize" : 9433
} ],
"choices" : [ {
"description" : "Choice 1",
"position" : 1,
"selected" : true
}, {
"description" : "Choice 2",
"position" : 2,
"selected" : false
} ],
"observations" : [ {
"uuid" : "c370b3b8-ae5e-4a7b-9300-8e3cba04ee35",
"category" : "NEGATIVE"
} ]
} ],
"questionText" : "Are access routes in good condition and clearly signposted?",
"responseType" : "CHECKBOX",
"position" : 1,
"required" : true
}, {
"checklistResponses" : [ {
"value" : "Esse consequatur soluta suscipit.",
"note" : "Earum ea inventore distinctio enim non.",
"checklistResponseAttachments" : [ {
"uuid" : "5786a365-2c91-4336-8df9-dbf454737702",
"url" : "https://www.example.com/image",
"description" : "Description",
"fileName" : "quaerat.jpg",
"thumbnailUrl" : "https://www.example.com/thumbnailImage",
"contentType" : "image/png",
"mediaType" : "IMAGE",
"fileSize" : 12016
} ],
"choices" : [ {
"description" : "Choice 1",
"position" : 1,
"selected" : true
}, {
"description" : "Choice 2",
"position" : 2,
"selected" : false
} ],
"observations" : [ {
"uuid" : "0c0d79dc-8aa3-4de1-8058-1849a4cda46a",
"category" : "NEGATIVE"
} ]
} ],
"questionText" : "Do edges that people could fall from have suitable edge protection?",
"responseType" : "CHECKBOX",
"position" : 2,
"required" : false
} ],
"position" : 1,
"title" : "Section 1",
"description" : "Description about the section"
} ]
}
List Checklist Templates
GET /checklists/templates
The maximum value of the limit parameter for this endpoint is 100.
|
Query parameters
| Parameter | Description | Required | Constraints |
|---|---|---|---|
statuses |
Return only checklist templates with given statuses. The default is ACTIVE |
No |
Enums: ACTIVE, DRAFT, DELETED |
checklistTypeUuids |
Return only checklist templates with the specified checklist type(s) by the unique identifier |
No |
Response fields
| Field | Type | Description | Constraints |
|---|---|---|---|
uuid |
String |
Unique identifier for the checklist template |
|
name |
String |
Name of the checklist template |
|
createdAt |
String |
Date and Time (UTC) when the checklist template was created |
Format: "yyyy-MM-ddThh:mm:ssZ" |
updatedAt |
String |
Date and Time (UTC) when the checklist template was updated |
Format: "yyyy-MM-ddThh:mm:ssZ" |
status |
String |
Status of the checklist template |
Enums: ACTIVE, DRAFT, DELETED |
checklistType.uuid |
String |
Unique identifier for the checklist type |
|
checklistType.class |
String |
Class for the checklist type |
|
checklistType.name |
String |
Name for the checklist type |
Usage Example with Curl
Curl request
$ curl 'https://developer.rakenapp.com/api/checklists/templates?statuses=ACTIVE&statuses=DRAFT&checklistTypeUuids=c7bab5bb-2d3b-438d-9112-167aee7005ab&limit=5&offset=5' -i -X GET
Response body
{
"page" : {
"offset" : 5,
"limit" : 5,
"totalElements" : 15,
"previous" : "/checklists/templates?statuses=ACTIVE&statuses=DRAFT&checklistTypeUuids=c7bab5bb-2d3b-438d-9112-167aee7005ab&offset=0&limit=5",
"next" : "/checklists/templates?statuses=ACTIVE&statuses=DRAFT&checklistTypeUuids=c7bab5bb-2d3b-438d-9112-167aee7005ab&offset=10&limit=5",
"nextOffset" : "10"
},
"collection" : [ {
"uuid" : "dcd3def0-9814-409e-bd99-84ffbe0840d5",
"name" : "Activity Risk Assessment",
"status" : "ACTIVE",
"createdAt" : "2025-11-08T01:43:36Z",
"updatedAt" : "2026-08-12T02:17:15Z",
"checklistType" : {
"uuid" : "30a6182f-033a-42b1-9b89-cf27fe2c3fbe",
"class" : "COMMISSIONING",
"name" : "Raken Commissioning Checklists"
}
}, {
"uuid" : "571a739d-68fc-437b-9ac2-5f51f1ffc73d",
"name" : "Construction Quality Control",
"status" : "ACTIVE",
"createdAt" : "2026-01-24T19:31:20Z",
"updatedAt" : "2026-03-25T19:37:13Z",
"checklistType" : {
"uuid" : "0ff0ae4f-7f18-42cd-8f85-db3fa5075481",
"class" : "COMMISSIONING",
"name" : "Raken Commissioning Checklists"
}
}, {
"uuid" : "e5b35f19-731d-485c-b8ba-04b51278392d",
"name" : "Covid-19 Inspection",
"status" : "ACTIVE",
"createdAt" : "2026-04-05T05:47:08Z",
"updatedAt" : "2026-09-20T21:07:21Z",
"checklistType" : {
"uuid" : "1944eba1-b2df-45f4-9bf0-872a2e5723d5",
"class" : "EQUIPMENT",
"name" : "Raken Equipment Checklists"
}
}, {
"uuid" : "c13e2e9e-77cb-4491-97d2-cac38b3e58d7",
"name" : "Framing Pre-Inspection",
"status" : "DRAFT",
"createdAt" : "2026-01-06T22:18:40Z",
"updatedAt" : "2026-05-09T11:16:08Z",
"checklistType" : {
"uuid" : "175f0714-f1ed-4871-86a0-1c6b9b901338",
"class" : "SAFETY",
"name" : "Raken Safety Checklists"
}
}, {
"uuid" : "a26b44ff-99cb-491c-ba1b-8ff806dfa7b1",
"name" : "Material Delivery",
"status" : "DRAFT",
"createdAt" : "2026-06-23T00:31:39Z",
"updatedAt" : "2026-09-08T06:06:43Z",
"checklistType" : {
"uuid" : "7c749247-4ed0-4dfc-8ada-aafeab158544",
"class" : "SAFETY",
"name" : "Raken Safety Checklists"
}
} ]
}
Classifications
List Classifications
GET /classifications
Query parameters
| Parameter | Description | Required | Constraints |
|---|---|---|---|
statuses |
Restrict the classifications to those with these statuses. Multiple statuses can be specified. |
No |
Enums: ACTIVE, DELETED |
changedSince |
Filters results to include only entities that were updated at or after the specified time (inclusive). Must be used with a corresponding |
No |
Format: "yyyy-MM-ddThh:mm:ssZ" |
changedUntil |
Filters results to include only entities that were updated before the specified time (exclusive) |
No |
Format: "yyyy-MM-ddThh:mm:ssZ" |
Response fields
| Field | Type | Description | Constraints |
|---|---|---|---|
uuid |
String |
Unique identifier for the classification |
|
name |
String |
Classification Name |
|
status |
String |
Classification status |
Enums: ACTIVE, DELETED |
createdAt |
String |
Date and Time (UTC) when the classification was created |
Format: "yyyy-MM-ddThh:mm:ssZ" |
updatedAt |
String |
Date and Time (UTC) when the classification was updated |
Format: "yyyy-MM-ddThh:mm:ssZ" |
Usage Example with Curl
Curl request
$ curl 'https://developer.rakenapp.com/api/classifications?statuses=ACTIVE&changedSince=2024-02-24T16:37:26Z&changedUntil=2024-02-25T16:37:26Z&limit=5&offset=5' -i -X GET
Response body
{
"page" : {
"offset" : 5,
"limit" : 5,
"totalElements" : 15,
"previous" : "/classifications?statuses=ACTIVE&changedSince=2024-02-24T16:37:26Z&changedUntil=2024-02-25T16:37:26Z&offset=0&limit=5",
"next" : "/classifications?statuses=ACTIVE&changedSince=2024-02-24T16:37:26Z&changedUntil=2024-02-25T16:37:26Z&offset=10&limit=5",
"nextOffset" : "10"
},
"collection" : [ {
"uuid" : "eeddc2c8-7656-4915-a220-99802bd9e83e",
"name" : "Foreman",
"status" : "ACTIVE",
"updatedAt" : "2026-07-07T18:10:51Z",
"createdAt" : "2026-06-30T09:33:49Z"
}, {
"uuid" : "fb9f83de-1afa-407b-a70d-fcd4b70f23e9",
"name" : "Journeyman",
"status" : "ACTIVE",
"updatedAt" : "2026-09-13T14:45:30Z",
"createdAt" : "2025-05-10T16:07:17Z"
} ]
}
Create Classification
POST /classifications
Request fields
| Field | Type | Description | Required | Constraints |
|---|---|---|---|---|
name |
String |
Classification Name |
Yes |
Must not be blank Size must be between 0 and 255 inclusive |
Response fields
| Field | Type | Description | Constraints |
|---|---|---|---|
uuid |
String |
Unique identifier for the classification |
|
name |
String |
Classification Name |
|
status |
String |
Classification status |
Enums: ACTIVE, DELETED |
createdAt |
String |
Date and Time (UTC) when the classification was created |
Format: "yyyy-MM-ddThh:mm:ssZ" |
updatedAt |
String |
Date and Time (UTC) when the classification was updated |
Format: "yyyy-MM-ddThh:mm:ssZ" |
Usage Example with Curl
Curl request
$ curl 'https://developer.rakenapp.com/api/classifications' -i -X POST \
-H 'Content-Type: application/json' \
-d '{
"name" : "FOREMAN"
}'
Response body
{
"uuid" : "79f6dc9a-e4df-4017-a7c7-ee241cb246a8",
"name" : "FOREMAN",
"status" : "ACTIVE",
"updatedAt" : "2026-09-24T15:41:27Z",
"createdAt" : "2026-09-16T04:07:12Z"
}
Cost Codes
List Cost Codes
GET /costCodes
Query parameters
| Parameter | Description | Required | Constraints |
|---|---|---|---|
projectUuid |
Restrict the cost codes to the projects represented by this UUID. |
No |
|
changedSince |
Return only cost codes updated at or after this time, inclusive. changedSince must be before or equal to changedUntil. The date range is capped to 31 days to changedUntil. |
No |
Format: "yyyy-MM-ddThh:mm:ssZ" |
changedUntil |
Return only cost codes updated before this time, exclusive. |
No |
Format: "yyyy-MM-ddThh:mm:ssZ" |
Response fields
| Field | Type | Description | Constraints |
|---|---|---|---|
uuid |
String |
Unique identifier for the cost code |
|
code |
String |
Code for the cost code |
|
division |
String |
Division for the cost code |
|
description |
String |
Description for the cost code |
|
createdAt |
String |
Date and Time (UTC) when the cost code was created |
Format: "yyyy-MM-ddThh:mm:ssZ" |
updatedAt |
String |
Date and Time (UTC) when the cost code was updated |
Format: "yyyy-MM-ddThh:mm:ssZ" |
Usage Example with Curl
Curl request
$ curl 'https://developer.rakenapp.com/api/costCodes?projectUuid=8169fd06-0997-4673-b537-4d9d401b8922&changedSince=2024-02-21T01:00:00Z&changedUntil=2024-02-28T01:00:00Z&limit=5&offset=5' -i -X GET
Response body
{
"page" : {
"offset" : 5,
"limit" : 5,
"totalElements" : 15,
"previous" : "/costCodes?projectUuid=8169fd06-0997-4673-b537-4d9d401b8922&changedSince=2024-02-21T01:00:00Z&changedUntil=2024-02-28T01:00:00Z&offset=0&limit=5",
"next" : "/costCodes?projectUuid=8169fd06-0997-4673-b537-4d9d401b8922&changedSince=2024-02-21T01:00:00Z&changedUntil=2024-02-28T01:00:00Z&offset=10&limit=5",
"nextOffset" : "10"
},
"collection" : [ {
"uuid" : "c3f4f457-c983-4ad6-b3c5-9667757ebbf2",
"code" : "0110",
"division" : "01 - General Conditions",
"description" : "Mockups",
"createdAt" : "2022-07-17T22:47:03Z",
"updatedAt" : "2022-07-19T22:41:27Z"
}, {
"uuid" : "5117396f-5cae-4776-a765-c02419108678",
"code" : "0300",
"division" : "03 - Structural & Architectural Concrete",
"description" : "Structural Concrete",
"createdAt" : "2022-07-07T21:41:13Z",
"updatedAt" : "2022-07-09T21:41:17Z"
} ]
}
Create Cost Code
POST /costCodes
Request fields
| Field | Type | Description | Required | Constraints |
|---|---|---|---|---|
code |
String |
Code for the cost code |
Yes |
Must not be blank Size must be between 0 and 20 inclusive |
division |
String |
Division for the cost code |
Yes |
Must not be blank Size must be between 0 and 50 inclusive |
projectUuid |
String |
Project UUID which the cost code is created for |
Yes |
Must not be blank |
description |
String |
Description for the cost code |
No |
Size must be between 0 and 60 inclusive |
Response fields
| Field | Type | Description | Constraints |
|---|---|---|---|
uuid |
String |
Unique identifier for the cost code |
|
code |
String |
Code for the cost code |
|
division |
String |
Division for the cost code |
|
description |
String |
Description for the cost code |
|
createdAt |
String |
Date and Time (UTC) when the cost code was created |
Format: "yyyy-MM-ddThh:mm:ssZ" |
updatedAt |
String |
Date and Time (UTC) when the cost code was updated |
Format: "yyyy-MM-ddThh:mm:ssZ" |
Usage Example with Curl
Curl request
$ curl 'https://developer.rakenapp.com/api/costCodes' -i -X POST \
-H 'Content-Type: application/json' \
-d '{
"code" : "0110",
"division" : "01 - General Conditions",
"description" : "Mockups",
"projectUuid" : "8169fd06-0997-4673-b537-4d9d401b8922"
}'
Response body
{
"uuid" : "4750774d-0d8c-4215-ab38-5d3a297d163b",
"code" : "0110",
"division" : "01 - General Conditions",
"description" : "Mockups",
"createdAt" : "2022-07-17T22:47:03Z",
"updatedAt" : "2022-07-19T22:41:27Z"
}
Update Cost Code
PATCH /costCodes/{uuid}
Request fields
| Field | Type | Description | Required | Constraints |
|---|---|---|---|---|
division |
String |
Division for the cost code |
No |
Must not be blank Size must be between 0 and 50 inclusive |
description |
String |
Description for the cost code |
No |
Size must be between 0 and 60 inclusive |
Response fields
| Field | Type | Description | Constraints |
|---|---|---|---|
uuid |
String |
Unique identifier for the cost code |
|
code |
String |
Code for the cost code |
|
division |
String |
Division for the cost code |
|
description |
String |
Description for the cost code |
|
createdAt |
String |
Date and Time (UTC) when the cost code was created |
Format: "yyyy-MM-ddThh:mm:ssZ" |
updatedAt |
String |
Date and Time (UTC) when the cost code was updated |
Format: "yyyy-MM-ddThh:mm:ssZ" |
Usage Example with Curl
Curl request
$ curl 'https://developer.rakenapp.com/api/costCodes/1418881a-4f72-408f-a5e4-812d76a957d0' -i -X PATCH \
-H 'Content-Type: application/json' \
-d '{
"division" : "01 - General Conditions",
"description" : "Mockups"
}'
Response body
{
"uuid" : "1418881a-4f72-408f-a5e4-812d76a957d0",
"code" : "0110",
"division" : "01 - General Conditions",
"description" : "Mockups",
"createdAt" : "2022-07-17T22:47:03Z",
"updatedAt" : "2022-07-19T22:41:27Z"
}
Daily Reports
List Daily Reports
GET /dailyReports
Query parameters
| Parameter | Description | Required | Constraints |
|---|---|---|---|
projectUuid |
Return only daily reports for the project. |
Yes |
|
fromDate |
Return daily reports created on or after this date. fromDate must be before or equal to toDate. The date range is capped to 31 days to toDate. |
No |
Format: "yyyy-MM-dd" |
toDate |
Return daily reports created on or before this date. |
No |
Format: "yyyy-MM-dd" |
statuses |
Return only daily reports with given statuses. The default is COMPLETED |
No |
Enums: COMPLETED, UNSIGNED, NO_WORK_DONE |
changedSince |
Return only daily reports updated at or after this time, inclusive. changedSince must be before or equal to changedUntil. The date range is capped to 31 days to changedUntil. |
No |
Format: "yyyy-MM-ddThh:mm:ssZ" |
changedUntil |
Return only daily reports updated before this time, exclusive. |
No |
Format: "yyyy-MM-ddThh:mm:ssZ" |
Response fields
| Field | Type | Description | Constraints |
|---|---|---|---|
uuid |
String |
Unique identifier for the report |
|
status |
String |
Status of the report |
Enums: COMPLETED, UNSIGNED, NO_WORK_DONE |
projectUuid |
String |
Unique identifier for the project that the report is in |
|
reportDate |
String |
Date of the report |
Format: "yyyy-MM-dd" |
createdBy.name |
String |
Name of the user who created the report |
|
createdBy.uuid |
String |
Unique identifier for the user who created the report |
|
updatedBy.name |
String |
Name of the user who last updated the report |
|
updatedBy.uuid |
String |
Unique identifier for the user who last updated the report |
|
signedBy.name |
String |
Name of the user who signed the report |
|
signedBy.uuid |
String |
Unique identifier for the user who signed the report |
|
signedAt |
String |
Date and Time (UTC) when the report was signed |
Format: "yyyy-MM-ddThh:mm:ssZ" |
createdAt |
String |
Date and Time (UTC) when the report was created |
Format: "yyyy-MM-ddThh:mm:ssZ" |
updatedAt |
String |
Date and Time (UTC) when the report was updated |
Format: "yyyy-MM-ddThh:mm:ssZ" |
reportLinks.superDaily |
String |
URL of the PDF file for the super daily report |
|
reportLinks.daily |
String |
URL of the PDF file for the daily report |
Usage Example with Curl
Curl request
$ curl 'https://developer.rakenapp.com/api/dailyReports?projectUuid=3de7dc9e-b59d-4bce-9d01-1c0fec203673&fromDate=2026-10-06&toDate=2026-10-26&statuses=COMPLETED,UNSIGNED&limit=5&offset=5' -i -X GET
Response body
{
"page" : {
"offset" : 5,
"limit" : 5,
"totalElements" : 15,
"previous" : "/dailyReports?projectUuid=3de7dc9e-b59d-4bce-9d01-1c0fec203673&fromDate=2026-10-06&toDate=2026-10-26&statuses=COMPLETED,UNSIGNED&offset=0&limit=5",
"next" : "/dailyReports?projectUuid=3de7dc9e-b59d-4bce-9d01-1c0fec203673&fromDate=2026-10-06&toDate=2026-10-26&statuses=COMPLETED,UNSIGNED&offset=10&limit=5",
"nextOffset" : "10"
},
"collection" : [ {
"uuid" : "0b5d2cb5-1a5a-46ea-a941-8bf6b27c9b0d",
"status" : "COMPLETED",
"reportDate" : "2026-05-14",
"projectUuid" : "c87acefa-7e60-4c0e-84bc-6c0e17cbfe0d",
"signedBy" : {
"uuid" : "a588a9ba-6b3c-4dc4-b233-add3f08ce391",
"name" : "Dr. Scott Collins"
},
"signedAt" : "2026-10-02T03:48:08Z",
"createdBy" : {
"uuid" : "7cd43d0f-4ae4-415e-8861-97d12bcb07fc",
"name" : "Miss Alejandro Champlin"
},
"createdAt" : "2026-05-14T05:31:39Z",
"updatedBy" : {
"uuid" : "8293f697-66e2-4818-9582-9a8b5e5873c1",
"name" : "Cletus Kihn"
},
"updatedAt" : "2026-08-10T12:42:28Z",
"reportLinks" : {
"superDaily" : "http://cdn.rakenapp.com/projects/reports/superdaily/my-projects_2026-05-14_CBBCACAE.pdf",
"daily" : "http://cdn.rakenapp.com/projects/reports/my-projects_2026-05-14_479EC8A2.pdf"
}
}, {
"uuid" : "eadb9f79-0e1e-4055-9fdc-4df96999bd5a",
"status" : "NO_WORK_DONE",
"reportDate" : "2026-09-04",
"projectUuid" : "8658aee5-678b-47c6-8ae1-2d3a804fbd74",
"createdBy" : {
"uuid" : "a32b5013-7d2d-4351-a154-763ff154894f",
"name" : "Jackie Brakus DDS"
},
"createdAt" : "2026-09-04T07:52:49Z",
"updatedBy" : {
"uuid" : "30b32b2b-d342-43c3-811a-9dacb4e9eb3f",
"name" : "Leila Ullrich V"
},
"updatedAt" : "2026-10-05T19:20:43Z",
"reportLinks" : {
"superDaily" : "http://cdn.rakenapp.com/projects/reports/superdaily/my-projects_2026-09-04_1625FED6.pdf",
"daily" : "http://cdn.rakenapp.com/projects/reports/my-projects_2026-09-04_F8401A99.pdf"
}
}, {
"uuid" : "b4abeb6e-340e-4b45-904c-c3cf12ebec1f",
"status" : "UNSIGNED",
"reportDate" : "2026-07-29",
"projectUuid" : "9cd2790d-0724-4e85-b742-f8e07a495154",
"createdBy" : {
"uuid" : "6bbe8bd7-ea32-49bf-bf94-58e52a0fa3a2",
"name" : "Jackson Jast"
},
"createdAt" : "2026-07-29T07:42:36Z",
"updatedBy" : {
"uuid" : "6fa2a02a-c5fb-4bbb-8e6e-0d4b753f55a3",
"name" : "Anamaria Jacobs"
},
"updatedAt" : "2026-07-30T09:11:58Z",
"reportLinks" : {
"superDaily" : "http://cdn.rakenapp.com/projects/reports/superdaily/my-projects_2026-07-29_F52F75C5.pdf",
"daily" : "http://cdn.rakenapp.com/projects/reports/my-projects_2026-07-29_971996CE.pdf"
}
}, {
"uuid" : "14f9063a-4f27-49c8-a3a2-ec1818012a81",
"status" : "NO_WORK_DONE",
"reportDate" : "2025-11-05",
"projectUuid" : "314a6e99-90f3-4e48-912c-4726b2fdb970",
"createdBy" : {
"uuid" : "9e75c4d1-1bcb-44fa-8e40-4efccac5f43f",
"name" : "Myriam Hettinger II"
},
"createdAt" : "2025-11-05T16:50:53Z",
"updatedBy" : {
"uuid" : "2e14389c-6b19-4289-9b8a-422a88d24320",
"name" : "Tisa Beahan"
},
"updatedAt" : "2026-05-27T22:20:51Z",
"reportLinks" : {
"superDaily" : "http://cdn.rakenapp.com/projects/reports/superdaily/my-projects_2025-11-05_80429C1C.pdf",
"daily" : "http://cdn.rakenapp.com/projects/reports/my-projects_2025-11-05_ADAEFD15.pdf"
}
}, {
"uuid" : "7ee49e7b-cb40-4735-a4f3-0411b5ff01ec",
"status" : "NO_WORK_DONE",
"reportDate" : "2026-01-06",
"projectUuid" : "0607e5b4-0548-4c50-b636-09d3fe7184b4",
"createdBy" : {
"uuid" : "6cd344cf-9771-4b3e-8c50-3025bbe6ea23",
"name" : "Mr. Troy Pacocha"
},
"createdAt" : "2026-01-06T11:33:03Z",
"updatedBy" : {
"uuid" : "ff9fbfba-6ed9-45ff-b2ca-48beba32129e",
"name" : "Miss Solomon Hansen"
},
"updatedAt" : "2026-03-07T08:33:01Z",
"reportLinks" : {
"superDaily" : "http://cdn.rakenapp.com/projects/reports/superdaily/my-projects_2026-01-06_83C934AB.pdf",
"daily" : "http://cdn.rakenapp.com/projects/reports/my-projects_2026-01-06_108C3372.pdf"
}
} ]
}
Equipment
List Equipment
GET /equipment
Query parameters
| Parameter | Description | Required | Constraints |
|---|---|---|---|
conditions |
List of equipment conditions to filter on |
No |
Enums: AVAILABLE, UNDER_MAINTENANCE, DEPLOYED, RETURNED_RETIRED |
deployedToProjectUuids |
UUIDs to filter equipment deployed projects on |
No |
|
query |
Retrieve equipment that has a match for the provided query string |
No |
Response fields
| Field | Type | Description | Constraints |
|---|---|---|---|
uuid |
String |
Unique identifier for the equipment |
|
name |
String |
Name of the equipment |
|
rate |
Number |
Billing rate for rented equipment. Omitted from response for owned equipment |
|
frequency |
String |
Rate period frequency for rental equipment billing. Omitted from response for owned equipment |
Enums: WEEKLY, DAILY, MONTHLY, HOURLY |
equipmentId |
String |
External ID for the equipment |
|
owned |
Boolean |
Flag indicating whether the equipment is owned or rented |
Boolean value: true or false |
make |
String |
Make for the equipment |
|
model |
String |
Model for the equipment |
|
type |
String |
Type for this equipment |
|
category |
String |
Category for the equipment |
|
serialNumber |
String |
Serial number of the equipment |
|
supplier |
String |
Supplier for rented equipment. Omitted from response for owned equipment |
|
condition |
String |
Condition of the equipment |
Enums: AVAILABLE, UNDER_MAINTENANCE, DEPLOYED, RETURNED_RETIRED |
totalHours |
Number |
Total operating hours for this equipment for all equipment deployments |
|
totalHoursAvailablePerWeek |
Number |
Total hours per week that this equipment is available for use |
|
idleHours |
Number |
Total idle hours for this equipment for all equipment deployments |
|
odometerType |
String |
Odometer measurement unit type for the equipment |
Enums: MILES, KILOMETERS |
odometerReading |
Number |
Current odometer reading for the equipment |
|
fuelGaugeType |
String |
Fuel gauge measurement unit type for the equipment |
Enums: GALLONS, LITERS |
lifeTimeFuelConsumption |
Number |
Lifetime fuel consumption for this equipment for all equipment deployments |
|
year |
Number |
Model year of the equipment. Format: “yyyy” |
|
returnDate |
String |
Rental return date for rented equipment. Omitted from response for owned equipment |
Format: "yyyy-MM-dd" |
deficiencyCount |
Number |
Number of deficiencies for the equipment with the status OPEN |
|
nextAvailableDate |
String |
Date on which the equipment will next be available |
Format: "yyyy-MM-dd" |
nextMaintenance |
String |
Operation hours or distance until the next required maintenance for this equipment |
|
deployment |
Object |
Current equipment deployment for the equipment. Omitted from response if the equipment is not currently deployed |
|
deployment.uuid |
String |
Unique identifier for this equipment deployment |
|
deployment.projectUuid |
String |
Unique identifier for the project that this equipment deployment is associated with |
|
deployment.startDate |
String |
Start date for this equipment deployment |
Format: "yyyy-MM-dd" |
deployment.endDate |
String |
End date for this equipment deployment |
Format: "yyyy-MM-dd" |
createdBy |
String |
Unique identifier for the user who created the equipment |
|
createdAt |
String |
Date and Time (UTC) when the equipment was created |
Format: "yyyy-MM-ddThh:mm:ssZ" |
updatedBy |
String |
Unique identifier for the user who updated the equipment log |
|
updatedAt |
String |
Date and Time (UTC) when the equipment deployement was updated |
Format: "yyyy-MM-ddThh:mm:ssZ" |
Usage Example with Curl
Curl request
$ curl 'https://developer.rakenapp.com/api/equipment?conditions=AVAILABLE,DEPLOYED&deployedToProjectUuids=e561488d-77a1-42f1-9bd8-57a1936c04e1&query=query&limit=5&offset=5' -i -X GET
Response body
{
"page" : {
"offset" : 5,
"limit" : 5,
"totalElements" : 15,
"previous" : "/equipment?conditions=AVAILABLE,DEPLOYED&deployedToProjectUuids=e561488d-77a1-42f1-9bd8-57a1936c04e1&query=query&offset=0&limit=5",
"next" : "/equipment?conditions=AVAILABLE,DEPLOYED&deployedToProjectUuids=e561488d-77a1-42f1-9bd8-57a1936c04e1&query=query&offset=10&limit=5",
"nextOffset" : "10"
},
"collection" : [ {
"createdBy" : "fa4d5eff-6331-4b4b-991d-8a01e3ccb1f6",
"createdAt" : "2026-10-06T01:29:25Z",
"updatedBy" : "a704c69b-86f2-457c-91ad-1100bb235eca",
"updatedAt" : "2026-10-06T01:29:25Z",
"uuid" : "36582b9d-820f-4f00-9080-a9be2fe5cf80",
"name" : "Compactor",
"rate" : 150.0,
"frequency" : "DAILY",
"equipmentId" : "EQ-1",
"owned" : false,
"make" : "Make",
"model" : "Model",
"type" : "Type",
"category" : "Category",
"serialNumber" : "123",
"supplier" : "Supplier",
"condition" : "DEPLOYED",
"totalHours" : 25.0,
"totalHoursAvailablePerWeek" : 40.0,
"idleHours" : 10.0,
"odometerType" : "KILOMETERS",
"odometerReading" : 1000.0,
"fuelGaugeType" : "LITERS",
"lifeTimeFuelConsumption" : 500.0,
"year" : 2024,
"returnDate" : "2026-10-06",
"deficiencyCount" : 2,
"nextAvailableDate" : "2026-10-16",
"nextMaintenance" : "2024-10-12",
"deployment" : {
"uuid" : "11cba654-943f-4e74-afe6-607ff0500a2e",
"projectUuid" : "b6e7e527-55cc-4052-a7af-3ccbdac75fa2",
"startDate" : "2026-10-06",
"endDate" : "2026-10-16"
}
} ]
}
Equipment Logs
List Equipment Logs
GET /equipmentLogs
| Equipment logs are grouped by their deployment. |
Query parameters
| Parameter | Description | Required | Constraints |
|---|---|---|---|
projectUuids |
UUID of the projects to retrieve equipment deployments for |
No |
|
equipmentUuids |
UUID of the equipment to retrieve equipment deployments for |
No |
|
statuses |
List of statuses to filter equipment logs on |
No |
|
fromDate |
Return equipment deployments starting on, or after, this date. fromDate must be before or equal to toDate. The date range is capped to 31 days to toDate. |
No |
Format: "yyyy-MM-dd" |
toDate |
Return equipment deployments ending on, or before, this date |
No |
Format: "yyyy-MM-dd" |
query |
Retrieve equipment deployments that has a match for the provided query string |
No |
|
changedSince |
Return only equipment deployments updated at or after this time, inclusive. changedSince must be before or equal to changedUntil. The date range is capped to 31 days to changedUntil. |
No |
Format: "yyyy-MM-ddThh:mm:ssZ" |
changedUntil |
Return only equipment deployments updated before this time, exclusive. |
No |
Format: "yyyy-MM-ddThh:mm:ssZ" |
fromCreatedAt |
Return only equipment deployments created at or after this time, inclusive. fromCreatedAt must be before or equal to toCreatedAt. The date range is capped to 31 days to toCreatedAt. |
No |
Format: "yyyy-MM-ddThh:mm:ssZ" |
toCreatedAt |
Return only equipment deployments created before this time, exclusive. |
No |
Format: "yyyy-MM-ddThh:mm:ssZ" |
Response fields
| Field | Type | Description | Constraints |
|---|---|---|---|
uuid |
String |
Unique identifier for the equipment deployment |
|
startDate |
String |
Date on which the equipment deployment started |
Format: "yyyy-MM-dd" |
endDate |
String |
Date on which the equipment deployment ended |
Format: "yyyy-MM-dd" |
equipment |
Object |
Equipment associated with the equipment deployment |
|
equipment.uuid |
String |
Unique identifier of the equipment associated with the equipment deployment |
|
equipment.equipmentId |
String |
External ID for the equipment associated with the equipment deployment |
|
equipment.name |
String |
Name of the equipment associated with the equipment deployment |
|
projectUuid |
String |
Unique identifier for the project this equipment deployment is associated with |
|
daysOnsite |
Number |
Number of days the equipment has been on site for this equipment deployment |
|
daysNotInUse |
Number |
Number of days during the equipment deployment on which no equipment logs were recorded |
|
createdBy |
String |
Unique identifier for the user who created the equipment deployment |
|
createdAt |
String |
Date and Time (UTC) when the equipment deployment was created |
Format: "yyyy-MM-ddThh:mm:ssZ" |
updatedBy |
String |
Unique identifier for the user who updated the equipment log |
|
updatedAt |
String |
Date and Time (UTC) when the equipment deployement was updated |
Format: "yyyy-MM-ddThh:mm:ssZ" |
logs[] |
Array |
Collection of equipment log on this equipment deployment |
|
logs[].uuid |
String |
Unique identifier of this equipment log |
|
logs[].description |
String |
Description of this equipment log |
|
logs[].date |
String |
Date of this equipment log |
Format: "yyyy-MM-dd" |
logs[].hours |
Number |
Total hours for this equipment log |
|
logs[].idleHours |
Number |
Total idle hours for this equipment log |
|
logs[].status |
String |
Status of this equipment log |
Enums: WITHDRAWN, NOT_IN_USE, IN_USE |
logs[].operator |
String |
Unique identifier for the operator on this equipment log |
|
logs[].odometerReading |
Number |
Odometer reading for this equipment log. Mileage tracking units can be found by querying for the equipment used on this equipment log on the Equipment endpoint |
|
logs[].fuelConsumption |
Number |
Volume of fuel consumed on this equipment log. Fuel consumption units can be found by querying for the equipment used on this equipment log on the Equipment endpoint |
|
logs[].equipmentDeficiencies |
Array |
Collection of equipment deficiencies associated with this equipment log |
|
logs[].equipmentDeficiencies[].faultCode |
String |
Fault code of this equipment deficiency |
|
logs[].equipmentDeficiencies[].description |
String |
Description of this equipment deficiency |
|
logs[].attachments[] |
Array |
Collection of attachments on this equipment log |
|
logs[].attachments[].uuid |
String |
Unique identifier for this attachment |
|
logs[].attachments[].url |
String |
URL for this attachment |
|
logs[].attachments[].description |
String |
Description for this attachment |
|
logs[].attachments[].thumbnailUrl |
String |
Thumbnail URL for this attachment |
|
logs[].attachments[].contentType |
String |
Content type for this attachment (e.g. ‘image/jpeg’, ‘image/png’) |
|
logs[].attachments[].mediaType |
String |
Media type for this attachment |
Enums: IMAGE, VIDEO, DOCUMENT, AUDIO |
logs[].attachments[].fileName |
String |
File name of this attachment |
|
logs[].attachments[].fileSize |
Number |
Size of this attachment in bytes |
|
logs[].createdBy |
String |
Unique identifier of the user who created this equipment log |
|
logs[].createdAt |
String |
Date and Time (UTC) when the equipment log was created |
Format: "yyyy-MM-ddThh:mm:ssZ" |
logs[].updatedBy |
String |
Unique identifier of the user who updated this equipment log |
|
logs[].updatedAt |
String |
Date and Time (UTC) when the equipment log was updated |
Format: "yyyy-MM-ddThh:mm:ssZ" |
costCode |
Object |
Cost code associated with this equipment log |
|
costCode.uuid |
String |
Unique identifier of this cost code |
|
costCode.code |
String |
Code of this cost code |
|
costCode.division |
String |
Division of this cost code |
|
costCode.description |
String |
Description of this cost code |
|
costCode.createdAt |
String |
Date and Time (UTC) when this cost code was created |
Format: "yyyy-MM-ddThh:mm:ssZ" |
costCode.updatedAt |
String |
Date and Time (UTC) when this cost code was updated |
Format: "yyyy-MM-ddThh:mm:ssZ" |
logs[].costCode |
Object |
Cost code associated with this equipment log |
|
logs[].costCode.uuid |
String |
Unique identifier of this cost code |
|
logs[].costCode.code |
String |
Code of this cost code |
|
logs[].costCode.division |
String |
Division of this cost code |
|
logs[].costCode.description |
String |
Description of this cost code |
|
logs[].costCode.createdAt |
String |
Date and Time (UTC) when this cost code was created |
Format: "yyyy-MM-ddThh:mm:ssZ" |
logs[].costCode.updatedAt |
String |
Date and Time (UTC) when this cost code was updated |
Format: "yyyy-MM-ddThh:mm:ssZ" |
Usage Example with Curl
Curl request
$ curl 'https://developer.rakenapp.com/api/equipmentLogs?fromDate=2024-01-01&toDate=2024-01-25&projectUuids=8169fd06-0997-4673-b537-4d9d401b8922&equipmentUuids=8229fd06-0967-4673-b537-4d9d401b8521&statuses=IN_USE,NOT_IN_USE,WITHDRAWN&query=query&fromCreatedAt=2024-03-03T14:00:00Z&toCreatedAt=2024-03-13T14:00:00Z&changedSince=2024-03-03T14:00:00Z&changedUntil=2024-03-13T14:00:00Z&limit=5&offset=5' -i -X GET
Response body
{
"page" : {
"offset" : 5,
"limit" : 5,
"totalElements" : 15,
"previous" : "/equipmentLogs?fromDate=2024-01-01&toDate=2024-01-25&projectUuids=8169fd06-0997-4673-b537-4d9d401b8922&equipmentUuids=8229fd06-0967-4673-b537-4d9d401b8521&statuses=IN_USE,NOT_IN_USE,WITHDRAWN&query=query&fromCreatedAt=2024-03-03T14:00:00Z&toCreatedAt=2024-03-13T14:00:00Z&changedSince=2024-03-03T14:00:00Z&changedUntil=2024-03-13T14:00:00Z&offset=0&limit=5",
"next" : "/equipmentLogs?fromDate=2024-01-01&toDate=2024-01-25&projectUuids=8169fd06-0997-4673-b537-4d9d401b8922&equipmentUuids=8229fd06-0967-4673-b537-4d9d401b8521&statuses=IN_USE,NOT_IN_USE,WITHDRAWN&query=query&fromCreatedAt=2024-03-03T14:00:00Z&toCreatedAt=2024-03-13T14:00:00Z&changedSince=2024-03-03T14:00:00Z&changedUntil=2024-03-13T14:00:00Z&offset=10&limit=5",
"nextOffset" : "10"
},
"collection" : [ {
"createdBy" : "3d30bb3b-e975-482a-bf43-37d342b1f490",
"createdAt" : "2026-10-06T01:29:29Z",
"updatedBy" : "33632e49-25e2-4c22-9754-cfcfcb848102",
"updatedAt" : "2026-10-06T01:29:29Z",
"uuid" : "2a7484cc-db90-4d16-b4f9-c84ae9674219",
"equipment" : {
"uuid" : "6e90112a-7190-4600-b5a4-0e16e10d995e",
"name" : "Compactor",
"equipmentId" : "EQ-1"
},
"projectUuid" : "ca459627-5973-4a00-8a76-0d2fc685b723",
"startDate" : "2020-10-10",
"endDate" : "2020-10-13",
"logs" : [ {
"createdBy" : "201cc2ae-5956-4b0b-b7c5-76d19e42043c",
"createdAt" : "2026-10-06T01:29:29Z",
"updatedBy" : "735a5851-9250-49f0-a152-e429e32fc30c",
"updatedAt" : "2026-10-06T01:29:29Z",
"uuid" : "610dac50-e2f9-4163-a973-d131364c54fd",
"description" : "Delivered @ 8am",
"date" : "2020-10-11",
"hours" : 3.0,
"idleHours" : 1.0,
"status" : "IN_USE",
"attachments" : [ {
"uuid" : "29665a03-d8f5-4092-8a33-c87a2477711e",
"url" : "https://www.example.com/image",
"description" : "Description",
"fileName" : "eveniet.jpg",
"thumbnailUrl" : "https://www.example.com/thumbnailImage",
"contentType" : "image/png",
"mediaType" : "IMAGE",
"fileSize" : 5744
} ],
"operator" : "08206696-d078-4207-94d7-70cb57b67f93",
"odometerReading" : 45.0,
"fuelConsumption" : 10.0,
"costCode" : {
"uuid" : "de4d61cf-9570-48eb-bdfe-010b90240529",
"code" : "code",
"division" : "division",
"description" : "description",
"createdAt" : "2026-10-06T01:29:29Z",
"updatedAt" : "2026-10-06T01:29:29Z"
},
"equipmentDeficiencies" : [ {
"faultCode" : "101",
"description" : "Fault description"
} ]
} ],
"costCode" : {
"uuid" : "5c4ec159-0ff2-4931-87e1-82c118986938",
"code" : "code",
"division" : "division",
"description" : "description",
"createdAt" : "2026-10-06T01:29:29Z",
"updatedAt" : "2026-10-06T01:29:29Z"
},
"daysOnsite" : 10,
"daysNotInUse" : 5
} ]
}
Groups
List Groups
GET /groups
Query parameters
| Parameter | Description | Required | Constraints |
|---|---|---|---|
query |
Search for groups based on group name and class |
No |
|
classNames |
Return only groups with the specified group class names. Must be an exact match |
No |
|
changedSince |
Return only groups updated at or after this time, inclusive. changedSince must be before or equal to changedUntil. The date range is capped to 31 days to changedUntil. |
No |
Format: "yyyy-MM-ddThh:mm:ssZ" |
changedUntil |
Return only groups updated before this time, exclusive. |
No |
Format: "yyyy-MM-ddThh:mm:ssZ" |
fromCreatedAt |
Return only groups created at or after this time, inclusive. fromCreatedAt must be before or equal to toCreatedAt. The date range is capped to 31 days to toCreatedAt. |
No |
Format: "yyyy-MM-ddThh:mm:ssZ" |
toCreatedAt |
Return only groups created before this time, exclusive |
No |
Format: "yyyy-MM-ddThh:mm:ssZ" |
Response fields
| Field | Type | Description | Constraints |
|---|---|---|---|
uuid |
String |
Unique identifier for the group |
|
class |
String |
Name of the class that the group belongs to |
|
createdBy |
Object |
Member who created the group |
|
createdBy.uuid |
String |
Unique identifier for the user who created the group |
|
createdBy.name |
String |
Name of the user who created the group |
|
updatedBy |
Object |
Member who last updated the group |
|
updatedBy.uuid |
String |
Unique identifier for the user who updated the group |
|
updatedBy.name |
String |
Name of the user who updated the group |
|
createdAt |
String |
Date and Time (UTC) when the group was created |
Format: "yyyy-MM-ddThh:mm:ssZ" |
updatedAt |
String |
Date and Time (UTC) when the group was updated |
Format: "yyyy-MM-ddThh:mm:ssZ" |
name |
String |
Group name |
|
projectUuids |
Array |
Collection of all projects that are assigned to the group |
|
memberUuids |
Array |
Collection of all members that are assigned to the group |
Usage Example with Curl
Curl request
$ curl 'https://developer.rakenapp.com/api/groups?query=query&classNames=groupCLass&fromCreatedAt=2024-03-03T14:00:00Z&toCreatedAt=2024-03-13T14:00:00Z&changedSince=2024-03-03T14:00:00Z&changedUntil=2024-03-13T14:00:00Z&limit=10&offset=0' -i -X GET
Response body
{
"page" : {
"offset" : 0,
"limit" : 10,
"totalElements" : 10
},
"collection" : [ {
"uuid" : "e44ab439-57cd-41b1-852a-c47e9efc4839",
"createdBy" : {
"uuid" : "e2147c49-7549-43e0-a05c-7fb4ced6fecf",
"name" : "angella.bechtelar"
},
"updatedBy" : {
"uuid" : "96999de2-6809-4900-8dda-c11cab41b48f",
"name" : "parker.stark"
},
"createdAt" : "2026-10-06T01:29:35Z",
"updatedAt" : "2026-10-06T01:29:35Z",
"name" : "Emergency Department",
"projectUuids" : [ "04832ab2-145f-4873-8e03-087d3e07134e", "2427d665-beec-457c-a202-a8c03ac80151", "70ccb44a-56b8-41d9-b96c-08a4fbc0e898" ],
"memberUuids" : [ "f7f96c74-0932-42cb-8e5b-770df5ba1b9d", "d2ddfaf6-514d-4d9f-98af-97502a5f3f22" ],
"class" : "Departments"
} ]
}
Create Group
POST /groups
Request fields
| Field | Type | Description | Required | Constraints |
|---|---|---|---|---|
name |
String |
Group name |
Yes |
Must not be blank Size must be between 0 and 255 inclusive |
class |
String |
Name of the class that the group belongs to |
Yes |
Response fields
| Field | Type | Description | Constraints |
|---|---|---|---|
uuid |
String |
Unique identifier for the group |
|
class |
String |
Name of the class that the group belongs to |
|
createdBy |
Object |
Member who created the group |
|
createdBy.uuid |
String |
Unique identifier for the user who created the group |
|
createdBy.name |
String |
Name of the user who created the group |
|
updatedBy |
Object |
Member who last updated the group |
|
updatedBy.uuid |
String |
Unique identifier for the user who updated the group |
|
updatedBy.name |
String |
Name of the user who updated the group |
|
createdAt |
String |
Date and Time (UTC) when the group was created |
Format: "yyyy-MM-ddThh:mm:ssZ" |
updatedAt |
String |
Date and Time (UTC) when the group was updated |
Format: "yyyy-MM-ddThh:mm:ssZ" |
name |
String |
Group name |
Usage Example with Curl
Curl request
$ curl 'https://developer.rakenapp.com/api/groups' -i -X POST \
-H 'Content-Type: application/json' \
-d '{
"name" : "Emergency Department",
"class" : "Departments"
}'
Response body
{
"uuid" : "4ef58f8a-d8da-4c6e-be9c-e75b0d2a6a57",
"createdBy" : {
"uuid" : "93e40e73-423c-482f-978d-80d00e9aa4a4",
"name" : "shanda.tillman"
},
"updatedBy" : {
"uuid" : "628f5378-5760-425b-aec8-7d5a5de6aac9",
"name" : "isabell.collier"
},
"createdAt" : "2026-10-06T01:29:35Z",
"updatedAt" : "2026-10-06T01:29:35Z",
"name" : "Emergency Department",
"class" : "Departments"
}
Update Group
PATCH /groups/{uuid}
Request fields
| Field | Type | Description | Required | Constraints |
|---|---|---|---|---|
name |
String |
Group name |
Yes |
Must not be blank Size must be between 0 and 255 inclusive |
class |
String |
Name of the class that the group belongs to |
Yes |
Response fields
| Field | Type | Description | Constraints |
|---|---|---|---|
uuid |
String |
Unique identifier for the group |
|
class |
String |
Name of the class that the group belongs to |
|
createdBy |
Object |
Member who created the group |
|
createdBy.uuid |
String |
Unique identifier for the user who created the group |
|
createdBy.name |
String |
Name of the user who created the group |
|
updatedBy |
Object |
Member who last updated the group |
|
updatedBy.uuid |
String |
Unique identifier for the user who updated the group |
|
updatedBy.name |
String |
Name of the user who updated the group |
|
createdAt |
String |
Date and Time (UTC) when the group was created |
Format: "yyyy-MM-ddThh:mm:ssZ" |
updatedAt |
String |
Date and Time (UTC) when the group was updated |
Format: "yyyy-MM-ddThh:mm:ssZ" |
name |
String |
Group name |
|
projectUuids |
Array |
Collection of all projects that are assigned to the group |
|
memberUuids |
Array |
Collection of all members that are assigned to the group |
Usage Example with Curl
Curl request
$ curl 'https://developer.rakenapp.com/api/groups/bb1c4d3b-8264-4595-b15b-50d904e2e2da' -i -X PATCH \
-H 'Content-Type: application/json' \
-d '{
"name" : "Emergency Department",
"class" : "Departments"
}'
Response body
{
"uuid" : "e2ba393e-56a4-4be6-bd46-40e51108a477",
"createdBy" : {
"uuid" : "940af594-5ed9-4323-88bf-b26e06420618",
"name" : "hallie.gleichner"
},
"updatedBy" : {
"uuid" : "c3ffb26a-67ed-4923-a968-ebb0cb71b257",
"name" : "lane.berge"
},
"createdAt" : "2026-10-06T01:29:36Z",
"updatedAt" : "2026-10-06T01:29:36Z",
"name" : "Emergency Department",
"projectUuids" : [ "e329a1bd-8fbd-43dd-b9c4-05750cff19fc", "91ebc2c5-0c8a-4534-ad28-a75ae4f94610", "9d26c2c9-c255-48e5-8f30-de32bb9555fb" ],
"memberUuids" : [ "268f612e-7964-441f-bf7e-1bec419525d5", "a3a057b9-37ca-4090-be47-b8a3c4bfcea6" ],
"class" : "Departments"
}
Material Logs
List Material Logs
GET /materialLogs
Query parameters
| Parameter | Description | Required | Constraints |
|---|---|---|---|
projectUuid |
Return material logs for this project |
Yes |
|
fromDate |
Return material logs starting on this date. fromDate must be before or equal to toDate. |
No |
Format: "yyyy-MM-dd" |
toDate |
Return material logs ending on this date |
No |
Format: "yyyy-MM-dd" |
changedSince |
Return only material logs updated at or after this time, inclusive. changedSince must be before or equal to changedUntil. The date range is capped to 31 days to changedUntil. |
No |
Format: "yyyy-MM-ddThh:mm:ssZ" |
changedUntil |
Return only material logs updated before this time, exclusive. |
No |
Format: "yyyy-MM-ddThh:mm:ssZ" |
Response fields
| Field | Type | Description | Constraints |
|---|---|---|---|
uuid |
String |
Unique identifier for the material log |
|
date |
String |
Date of this log |
Format: "yyyy-MM-dd" |
updatedAt |
String |
Date and Time (UTC) when the material log was updated |
Format: "yyyy-MM-ddThh:mm:ssZ" |
material |
Object |
Details of the Material |
|
material.uuid |
String |
Unique identifier of the Material |
|
material.name |
String |
Name of the Material |
|
material.materialUnit |
Object |
Material unit |
|
material.materialUnit.uuid |
String |
Unique identifier of the material unit |
|
material.materialUnit.name |
String |
Name of the material unit |
|
quantity |
Number |
Quantity of this material |
|
costCode |
Object |
Details of the Cost Code |
|
costCode.uuid |
String |
Unique identifier for the Cost Code |
|
costCode.code |
String |
Code for the Cost Code |
|
costCode.division |
String |
Division for the Cost Code |
|
costCode.description |
String |
Description of the Cost Code |
|
attachments[].uuid |
String |
Unique identifier for this attachment on the material log |
|
attachments[].url |
String |
Url for this attachment on the material log |
|
attachments[].description |
String |
Description of this attachment on the material log |
|
attachments[].thumbnailUrl |
String |
Thumbnail Url for this attachment on the material log |
|
attachments[].contentType |
String |
Content type for this attachment on the material log (e.g. 'image/jpeg', 'image/png') |
|
attachments[].mediaType |
String |
Media type for this attachment on the material log |
Enums: IMAGE, VIDEO, DOCUMENT, AUDIO |
attachments[].fileName |
String |
File name of this attachment on the material log |
|
attachments[].fileSize |
Number |
Size of this attachment on the material log in bytes |
Usage Example with Curl
Curl request
$ curl 'https://developer.rakenapp.com/api/materialLogs?fromDate=2011-01-01&toDate=2012-01-01&changedSince=2024-03-03T14:00:00Z&changedUntil=2024-03-13T14:00:00Z&projectUuid=8169fd06-0997-4673-b537-4d9d401b8922&limit=5&offset=5' -i -X GET
Response body
{
"page" : {
"offset" : 5,
"limit" : 5,
"totalElements" : 15,
"previous" : "/materialLogs?fromDate=2011-01-01&toDate=2012-01-01&changedSince=2024-03-03T14:00:00Z&changedUntil=2024-03-13T14:00:00Z&projectUuid=8169fd06-0997-4673-b537-4d9d401b8922&offset=0&limit=5",
"next" : "/materialLogs?fromDate=2011-01-01&toDate=2012-01-01&changedSince=2024-03-03T14:00:00Z&changedUntil=2024-03-13T14:00:00Z&projectUuid=8169fd06-0997-4673-b537-4d9d401b8922&offset=10&limit=5",
"nextOffset" : "10"
},
"collection" : [ {
"uuid" : "2e979ea0-9a2e-4830-a1fc-af218344d300",
"material" : {
"uuid" : "16677084-be36-4f5f-a66c-3e45b191b516",
"name" : "Concrete",
"materialUnit" : {
"uuid" : "078682b4-6e98-43d6-821d-2f87d0b1cd3e",
"name" : "Cubic Ft"
}
},
"costCode" : {
"description" : "Structural Concrete",
"uuid" : "5e349db8-b630-4744-b28f-9570796d5c6f",
"code" : "0110",
"division" : "division"
},
"attachments" : [ {
"uuid" : "3316b328-483b-418b-8ef3-239adc7abd6d",
"url" : "https://www.example.com/image",
"description" : "Description",
"fileName" : "iure.jpg",
"thumbnailUrl" : "https://www.example.com/thumbnailImage",
"contentType" : "image/png",
"mediaType" : "IMAGE",
"fileSize" : 12530
} ],
"quantity" : 50.0,
"date" : "2020-10-10",
"updatedAt" : "2026-10-06T01:29:39Z"
} ]
}
Material Units
List Material Units
GET /materialUnits
Response fields
| Field | Type | Description | Constraints |
|---|---|---|---|
uuid |
String |
Unique identifier for the unit |
|
name |
String |
Name of the unit |
Usage Example with Curl
Curl request
$ curl 'https://developer.rakenapp.com/api/materialUnits?limit=5&offset=5' -i -X GET
Response body
{
"page" : {
"offset" : 5,
"limit" : 5,
"totalElements" : 15,
"previous" : "/materialUnits?offset=0&limit=5",
"next" : "/materialUnits?offset=10&limit=5",
"nextOffset" : "10"
},
"collection" : [ {
"uuid" : "34b7c474-5ad3-44b5-996b-d7c9a49ff859",
"name" : "m"
}, {
"uuid" : "20466530-6182-4e52-ad95-32e72f9bc3a2",
"name" : "inch"
}, {
"uuid" : "c24ce1a7-77e6-4fc5-9b76-0de45ccecd8f",
"name" : "gallon"
}, {
"uuid" : "400b653b-a4d2-4777-ae8b-43eaf5faf720",
"name" : "m²"
}, {
"uuid" : "160564ce-5128-4034-bcb0-2bf160131d5c",
"name" : "ea"
} ]
}
Create Material Unit
POST /materialUnits
Request fields
| Field | Type | Description | Required | Constraints |
|---|---|---|---|---|
name |
String |
Name of the unit |
Yes |
Must not be blank Size must be between 0 and 255 inclusive |
Response fields
| Field | Type | Description | Constraints |
|---|---|---|---|
uuid |
String |
Unique identifier for the unit |
|
name |
String |
Name of the unit |
Usage Example with Curl
Curl request
$ curl 'https://developer.rakenapp.com/api/materialUnits' -i -X POST \
-H 'Content-Type: application/json' \
-d '{
"name" : "inch"
}'
Response body
{
"uuid" : "7616e3ff-1e83-4d71-821b-9c7dea937f33",
"name" : "inch"
}
Materials
List Materials
GET /materials
Query parameters
| Parameter | Description | Required | Constraints |
|---|---|---|---|
projectUuid |
If specified, return materials only for this project |
No |
Response fields
| Field | Type | Description | Constraints |
|---|---|---|---|
uuid |
String |
Unique identifier of the material |
|
name |
String |
Name of the material |
|
materialUnit |
Object |
Material unit |
|
materialUnit.uuid |
String |
Unique identifier of the material unit |
|
materialUnit.name |
String |
Name of the material unit |
|
projects |
Array |
List of projects that the material is assigned to |
|
projects[].uuid |
String |
Unique identifier of the project |
Usage Example with Curl
Curl request
$ curl 'https://developer.rakenapp.com/api/materials?projectUuid=f6efbe0a-606d-4330-8f9d-f8d20cf5518e&limit=5&offset=5' -i -X GET
Response body
{
"page" : {
"offset" : 5,
"limit" : 5,
"totalElements" : 15,
"previous" : "/materials?projectUuid=f6efbe0a-606d-4330-8f9d-f8d20cf5518e&offset=0&limit=5",
"next" : "/materials?projectUuid=f6efbe0a-606d-4330-8f9d-f8d20cf5518e&offset=10&limit=5",
"nextOffset" : "10"
},
"collection" : [ {
"uuid" : "9cbdabbf-0974-4d6d-a33c-b55f16356e61",
"name" : "Cement",
"materialUnit" : {
"uuid" : "74177548-1c68-4ebe-a0ce-354fdd62e168",
"name" : "kg"
},
"projects" : [ {
"uuid" : "8d1fbe0a-3c30-4bb8-beb3-750f266480e9"
} ]
}, {
"uuid" : "18a4e547-251e-4855-8c80-10c0c3912d1b",
"name" : "Sand",
"materialUnit" : {
"uuid" : "06a572e1-cb04-46e9-9a36-f42e8921cf23",
"name" : "kg"
},
"projects" : [ {
"uuid" : "c57fc741-ae88-43c9-a376-13ae5e13a03a"
} ]
}, {
"uuid" : "fc40f12c-31f1-4c11-ba5b-546005167b89",
"name" : "Steel",
"materialUnit" : {
"uuid" : "5f7bbf7e-edf8-4652-bf4b-d2909931c926",
"name" : "kg"
},
"projects" : [ {
"uuid" : "01ad146b-8ebc-434d-b107-070ec1a8a805"
} ]
}, {
"uuid" : "76242eeb-7287-4321-ae96-60ff35b32caa",
"name" : "Concrete",
"materialUnit" : {
"uuid" : "0ab37fbb-7baa-4e72-83b9-5e85319ed456",
"name" : "kg"
},
"projects" : [ {
"uuid" : "60483805-92ed-4484-bfc4-950372d47990"
} ]
}, {
"uuid" : "29350f10-ef51-476a-94e5-393d03e41c68",
"name" : "Bricks",
"materialUnit" : {
"uuid" : "500dbcc5-49fd-4f1f-a0de-33490e1c3f61",
"name" : "kg"
},
"projects" : [ {
"uuid" : "57c54e19-91e9-44af-9a60-104081044610"
} ]
} ]
}
Create Material
POST /materials
-
If
projectUuidis specified when creating a material, the material will be only available to the project. -
If
projectUuidis not specified when creating a material, the material will be available to use by any project on your Raken account.
Request fields
| Field | Type | Description | Required | Constraints |
|---|---|---|---|---|
name |
String |
Name of the material |
Yes |
Must not be blank Size must be between 0 and 255 inclusive |
materialUnitUuid |
String |
Unique identifier for the unit of the material |
Yes |
Must not be null |
projectUuid |
String |
If specified, a material is created for this project and can’t be used by other projects. If not specified, a company level material is created which is available to use by all projects. |
No |
Response fields
| Field | Type | Description | Constraints |
|---|---|---|---|
uuid |
String |
Unique identifier of the material |
|
name |
String |
Name of the material |
|
materialUnit |
Object |
Material unit |
|
materialUnit.uuid |
String |
Unique identifier of the material unit |
|
materialUnit.name |
String |
Name of the material unit |
|
projects |
Array |
List of projects that the material is assigned to |
|
projects[].uuid |
String |
Unique identifier of the project |
Usage Example with Curl
Curl request
$ curl 'https://developer.rakenapp.com/api/materials' -i -X POST \
-H 'Content-Type: application/json' \
-d '{
"materialUnitUuid" : "9022aa71-8ec0-4687-8d04-1bb93f3da3be",
"name" : "Sand",
"projectUuid" : "b220c16e-e782-4b1a-9d8e-f780bcaee803"
}'
Response body
{
"uuid" : "dde875a6-6fbd-4d3d-b4b0-5b70392e0ca5",
"name" : "Sand",
"materialUnit" : {
"uuid" : "9022aa71-8ec0-4687-8d04-1bb93f3da3be",
"name" : "kg"
},
"projects" : [ {
"uuid" : "b220c16e-e782-4b1a-9d8e-f780bcaee803"
} ]
}
Update Material
PATCH /materials/{uuid}
| You can change a material’s name or unit, and also configure which projects the material can be used by. |
Request fields
| Field | Type | Description | Required | Constraints |
|---|---|---|---|---|
name |
String |
Name of the material |
No |
Must not be blank Size must be between 0 and 255 inclusive |
materialUnitUuid |
String |
Unique identifier of the unit for the material |
No |
|
projectUuids |
Array |
List of unique identifiers for projects that the material is assigned to |
No |
Response fields
| Field | Type | Description | Constraints |
|---|---|---|---|
uuid |
String |
Unique identifier of the material |
|
name |
String |
Name of the material |
|
materialUnit |
Object |
Material unit |
|
materialUnit.uuid |
String |
Unique identifier of the material unit |
|
materialUnit.name |
String |
Name of the material unit |
|
projects |
Array |
List of projects that the material is assigned to |
|
projects[].uuid |
String |
Unique identifier of the project |
Usage Example with Curl
Curl request
$ curl 'https://developer.rakenapp.com/api/materials/735b373d-24b8-4fc1-a1e9-fc3e04c928d1' -i -X PATCH \
-H 'Content-Type: application/json' \
-d '{
"name" : "Steel"
}'
Response body
{
"uuid" : "735b373d-24b8-4fc1-a1e9-fc3e04c928d1",
"name" : "Steel",
"materialUnit" : {
"uuid" : "81e01490-3830-4666-8218-6b43ed05462a",
"name" : "kg"
},
"projects" : [ {
"uuid" : "7dad2592-bc18-4bea-8c0a-efe5c9be4e46"
} ]
}
Members
List Members
GET /members
| When a Raken worker is assigned to a project, we call the worker a project member. A worker can be a member of multiple projects. |
Use the query parameter to search members by name, employeeId, email, phone number, or contact-company name (case-insensitive substring match).
|
Query parameters
| Parameter | Description | Required | Constraints |
|---|---|---|---|
query |
Filter members by name, employeeId, email, phone, or contact-company name (case-insensitive substring match). |
No |
|
statuses |
Return only members with the given statuses. Multiple statuses can be specified. If not specified, only |
No |
Enums: ACTIVE, INVITED, INACTIVE, DELETED |
projectUuid |
Return only members for the given project |
No |
|
classificationUuids |
Return only members for the given classification |
No |
|
roles |
Return only members with the given roles. More than one role may be specified. |
No |
Enums: ROLE_WORKER, ROLE_USER, ROLE_ADMIN, ROLE_PROJECT_MEMBER |
changedSince |
Return only members updated at or after this time, inclusive. changedSince must be before or equal to changedUntil. The date range is capped to 31 days to changedUntil. |
No |
Format: "yyyy-MM-ddThh:mm:ssZ" |
changedUntil |
Return only members updated before this time, exclusive. |
No |
Format: "yyyy-MM-ddThh:mm:ssZ" |
|
About the By default, members of all roles are returned. Please reference the list below for notes on the access level of each role and include the appropriate role query parameter in your request.
|
Response fields
| Field | Type | Description | Constraints |
|---|---|---|---|
uuid |
String |
Unique identifier for the member |
|
firstName |
String |
First Name |
|
lastName |
String |
Last Name |
|
role |
String |
Role |
Enums: ROLE_WORKER, ROLE_USER, ROLE_ACCOUNT_ADMIN, ROLE_ADMIN, ROLE_PROJECT_MEMBER |
String |
|||
phoneNumber |
String |
Phone Number |
|
username |
String |
User name (not applicable to ROLE_WORKER that cannot log in Raken |
|
title |
String |
Title |
|
employeeId |
String |
Employee Id (Unique if not empty) |
|
classificationUuid |
String |
Unique identifier of the classification for the member |
|
createdAt |
String |
Date and Time (UTC) when the member was created |
Format: "yyyy-MM-ddThh:mm:ssZ" |
updatedAt |
String |
Date and Time (UTC) when the member was updated |
Format: "yyyy-MM-ddThh:mm:ssZ" |
lastLoginAt |
String |
Date and Time (UTC) when the member last logged in |
Format: "yyyy-MM-ddThh:mm:ssZ" |
status |
String |
Member status |
Enums: ACTIVE, INVITED, INACTIVE, DELETED |
timeSettings |
Object |
Default times settings for the member |
|
timeSettings.blockTimeClock |
Boolean |
Flag that indicates whether or not this member may access the Time Clock feature. If true, they may not access the time clock. If true, they may not access the time clock |
Boolean value: true or false |
timeSettings.defaultCostCode |
String |
The unique identifier of this member’s default cost code |
|
timeSettings.defaultShift |
String |
The unique identifier of this member’s default shift |
Usage Example with Curl
Curl request
$ curl 'https://developer.rakenapp.com/api/members?statuses=ACTIVE&roles=ROLE_WORKER&roles=ROLE_USER&projectUuid=4eb5d34d-a5b1-46e6-82f7-5e4686a42169&classificationUuids=01f68679-a36f-4d3c-ac82-bcb26b56051d,7f91afab-5729-4d3e-9ab2-501abc85f9ea&changedSince=2024-02-03T14:00:00Z&changedUntil=2024-02-13T14:00:00Z&limit=5&offset=5' -i -X GET
Response body
{
"page" : {
"offset" : 5,
"limit" : 5,
"totalElements" : 15,
"previous" : "/members?statuses=ACTIVE&roles=ROLE_WORKER&roles=ROLE_USER&projectUuid=4eb5d34d-a5b1-46e6-82f7-5e4686a42169&classificationUuids=01f68679-a36f-4d3c-ac82-bcb26b56051d,7f91afab-5729-4d3e-9ab2-501abc85f9ea&changedSince=2024-02-03T14:00:00Z&changedUntil=2024-02-13T14:00:00Z&offset=0&limit=5",
"next" : "/members?statuses=ACTIVE&roles=ROLE_WORKER&roles=ROLE_USER&projectUuid=4eb5d34d-a5b1-46e6-82f7-5e4686a42169&classificationUuids=01f68679-a36f-4d3c-ac82-bcb26b56051d,7f91afab-5729-4d3e-9ab2-501abc85f9ea&changedSince=2024-02-03T14:00:00Z&changedUntil=2024-02-13T14:00:00Z&offset=10&limit=5",
"nextOffset" : "10"
},
"collection" : [ {
"uuid" : "c93206c5-c473-40cf-8070-12370ee9bb19",
"firstName" : "Gonzalo",
"lastName" : "Moen",
"role" : "ROLE_USER",
"email" : "truman.kris@gmail.com",
"employeeId" : "EMP00001",
"username" : "truman.kris@gmail.com",
"classificationUuid" : "6506c129-ecab-408f-a153-9850978f21af",
"status" : "ACTIVE",
"phoneNumber" : "(936) 667-5788",
"title" : "Mr",
"lastLoginAt" : "2022-07-18T12:40:33Z",
"createdAt" : "2022-07-17T22:47:03Z",
"updatedAt" : "2022-07-19T22:41:27Z",
"timeSettings" : {
"blockTimeClock" : true,
"defaultCostCode" : "8e78e66d-3bdf-41da-83e4-97ffcae900c5",
"defaultShift" : "3af942ad-c1af-4e16-a304-12550e3a09a6"
}
}, {
"uuid" : "002d8014-fdd6-4e15-aefd-a7d11c41c888",
"firstName" : "Renna",
"lastName" : "Medhurst",
"role" : "ROLE_USER",
"email" : "dorian.stamm@yahoo.com",
"employeeId" : "EMP00002",
"username" : "dorian.stamm@yahoo.com",
"classificationUuid" : "f8705245-2d34-411e-9f9b-4fa4eb7c0ab0",
"status" : "ACTIVE",
"phoneNumber" : "(274) 220-8608",
"title" : "Mrs",
"lastLoginAt" : "2022-07-18T12:40:33Z",
"createdAt" : "2022-07-17T22:47:03Z",
"updatedAt" : "2022-07-19T22:41:27Z",
"timeSettings" : {
"blockTimeClock" : true,
"defaultCostCode" : "1f1fde60-5931-4276-a1b9-0d4e852bb235",
"defaultShift" : "2fa62028-5400-4327-bcd5-cb1572f5fe9b"
}
}, {
"uuid" : "9f31555f-87ae-41c1-b0ea-cf22b6a287b1",
"firstName" : "Darren",
"lastName" : "Leannon",
"role" : "ROLE_USER",
"email" : "porsche.walsh@gmail.com",
"employeeId" : "EMP00003",
"username" : "porsche.walsh@gmail.com",
"classificationUuid" : "59e4c828-9e01-4623-a9bd-6f0a5d2c8886",
"status" : "ACTIVE",
"phoneNumber" : "(305) 298-0193",
"title" : "Mr",
"lastLoginAt" : "2022-07-18T12:40:33Z",
"createdAt" : "2022-07-17T22:47:03Z",
"updatedAt" : "2022-07-19T22:41:27Z",
"timeSettings" : {
"blockTimeClock" : true,
"defaultCostCode" : "d9fe941f-490d-4f4c-92e7-b09bb0422f46",
"defaultShift" : "7848c40a-e469-4098-b79b-8739692402c6"
}
}, {
"uuid" : "7fc38389-b175-42d1-aca8-86afa87fa393",
"firstName" : "Maye",
"lastName" : "Stamm",
"role" : "ROLE_USER",
"email" : "lorine.kris@hotmail.com",
"employeeId" : "EMP00004",
"username" : "lorine.kris@hotmail.com",
"classificationUuid" : "6451f97d-995a-458c-a538-4105d1c9dc25",
"status" : "ACTIVE",
"phoneNumber" : "(505) 640-3931",
"title" : "Mrs",
"lastLoginAt" : "2022-07-18T12:40:33Z",
"createdAt" : "2022-07-17T22:47:03Z",
"updatedAt" : "2022-07-19T22:41:27Z",
"timeSettings" : {
"blockTimeClock" : true,
"defaultCostCode" : "4e38503d-f87d-489f-acec-1cadd4955ea1",
"defaultShift" : "e225e2b2-5bcd-42ee-b61a-2d6da3751568"
}
}, {
"uuid" : "2aa0e025-042b-45c6-bc17-259b719fb750",
"firstName" : "Jeramy",
"lastName" : "Blanda",
"role" : "ROLE_USER",
"email" : "murray.dietrich@yahoo.com",
"employeeId" : "EMP00005",
"username" : "murray.dietrich@yahoo.com",
"classificationUuid" : "e8127387-7119-4b56-89dd-c2562c4c931e",
"status" : "ACTIVE",
"phoneNumber" : "(619) 844-5018",
"title" : "Mr",
"lastLoginAt" : "2022-07-18T12:40:33Z",
"createdAt" : "2022-07-17T22:47:03Z",
"updatedAt" : "2022-07-19T22:41:27Z",
"timeSettings" : {
"blockTimeClock" : true,
"defaultCostCode" : "0fe61af5-bdce-4400-af64-59b4163d88b5",
"defaultShift" : "2b6836bd-0844-4294-a1ea-1b52451e71a3"
}
} ]
}
Get Member
GET /members/{uuid}
It returns more details including projectUuids for the member, compared to the list request.
|
Response fields
| Field | Type | Description | Constraints |
|---|---|---|---|
uuid |
String |
Unique identifier for the member |
|
firstName |
String |
First Name |
|
lastName |
String |
Last Name |
|
role |
String |
Role |
Enums: ROLE_WORKER, ROLE_USER, ROLE_ACCOUNT_ADMIN, ROLE_ADMIN, ROLE_PROJECT_MEMBER |
String |
|||
phoneNumber |
String |
Phone Number |
|
username |
String |
User name (not applicable to ROLE_WORKER that cannot log in Raken |
|
title |
String |
Title |
|
employeeId |
String |
Employee Id (Unique if not empty) |
|
classificationUuid |
String |
Unique identifier of the classification for the member |
|
createdAt |
String |
Date and Time (UTC) when the member was created |
Format: "yyyy-MM-ddThh:mm:ssZ" |
updatedAt |
String |
Date and Time (UTC) when the member was updated |
Format: "yyyy-MM-ddThh:mm:ssZ" |
lastLoginAt |
String |
Date and Time (UTC) when the member last logged in |
Format: "yyyy-MM-ddThh:mm:ssZ" |
status |
String |
Member status |
Enums: ACTIVE, INVITED, INACTIVE, DELETED |
timeSettings |
Object |
Default times settings for the member |
|
timeSettings.blockTimeClock |
Boolean |
Flag that indicates whether or not this member may access the Time Clock feature. If true, they may not access the time clock. If true, they may not access the time clock |
Boolean value: true or false |
timeSettings.defaultCostCode |
String |
The unique identifier of this member’s default cost code |
|
timeSettings.defaultShift |
String |
The unique identifier of this member’s default shift |
|
projectUuids |
Array |
List of unique identifiers for projects that the member is assigned to |
|
memberCertifications |
Array |
A list of this member’s certifications |
|
memberCertifications[].uuid |
String |
Unique identifier for this certification |
|
memberCertifications[].certificationName |
String |
Certification name |
|
memberCertifications[].expired |
Boolean |
A flag that indicates whether or not this certification is expired |
|
memberCertifications[].description |
String |
The description of this certification |
|
memberCertifications[].attachments |
Array |
A list of attachments on this certification |
|
memberCertifications[].attachments[].uuid |
String |
Unique Identifier for this attachment |
|
memberCertifications[].attachments[].url |
String |
URL for this attachment |
|
memberCertifications[].attachments[].description |
String |
Description of this attachment |
|
memberCertifications[].attachments[].thumbnailUrl |
String |
Thumbnail URL for this attachment |
|
memberCertifications[].attachments[].contentType |
String |
Content type for this attachment (e.g. ‘image/jpeg', ‘image/png’) |
|
memberCertifications[].attachments[].mediaType |
String |
Media type for this attachment |
|
memberCertifications[].attachments[].fileName |
String |
File name of this attachment |
|
memberCertifications[].attachments[].fileSize |
Number |
Size of this attachment in bytes |
Usage Example with Curl
Curl request
$ curl 'https://developer.rakenapp.com/api/members/efa95a16-f5d2-424d-9cdb-cdf2dfc1444e' -i -X GET
Response body
{
"uuid" : "efa95a16-f5d2-424d-9cdb-cdf2dfc1444e",
"firstName" : "Jarvis",
"lastName" : "Robel",
"role" : "ROLE_WORKER",
"email" : "howard.nikolaus@hotmail.com",
"employeeId" : "EMP00001",
"username" : "howard.nikolaus@hotmail.com",
"classificationUuid" : "b7693c40-b968-44a4-8bb0-707e413c6f10",
"status" : "ACTIVE",
"phoneNumber" : "(305) 229-2273",
"title" : "Mr",
"lastLoginAt" : "2022-07-18T12:40:33Z",
"createdAt" : "2022-07-17T22:47:03Z",
"updatedAt" : "2022-07-19T22:41:27Z",
"timeSettings" : {
"blockTimeClock" : true,
"defaultCostCode" : "d953c252-7137-4a81-a805-d4e44f418e4d",
"defaultShift" : "fef248ae-fa43-4f60-b692-a87c97acd46d"
},
"projectUuids" : [ "acf35972-610e-4e3a-ad55-0ddbe5d51781", "88380a54-05eb-4abe-8f23-a073a15ef155" ],
"memberCertifications" : [ {
"uuid" : "d617130e-d6ed-4542-aa09-59b926b0ccfa",
"certificationName" : "Itaque repudiandae quia expedita reiciendis expedita.",
"expired" : false,
"description" : "Minus corrupti explicabo exercitationem eius error ipsa.",
"attachments" : [ {
"uuid" : "abc2b933-d490-4ee8-9b2f-fea36f9dfef4",
"url" : "https://www.example.com/image",
"description" : "Description",
"fileName" : "modi.jpg",
"thumbnailUrl" : "https://www.example.com/thumbnailImage",
"contentType" : "image/png",
"mediaType" : "IMAGE",
"fileSize" : 78464
} ]
} ]
}
Create Member
POST /members
Members can be either Workers (ROLE_WORKER) or Team Members who can log in (One of: ROLE_USER, ROLE_PROJECT_MEMBER, ROLE_PROJECT_ADMIN, or ROLE_ACCOUNT_ADMIN).
The email field is only required when creating a team member. New members will receive an invite on the email address for them to set up their Raken account.
For a worker, the email field is optional.
|
About project membership:
For
For other roles:
|
Request fields
| Field | Type | Description | Required | Constraints |
|---|---|---|---|---|
firstName |
String |
First Name |
Yes |
Must not be blank |
lastName |
String |
Last Name |
Yes |
Must not be blank |
role |
String |
Role |
Yes |
Must not be null Role Enums: ROLE_ACCOUNT_ADMIN, ROLE_ADMIN, ROLE_PROJECT_MEMBER, ROLE_USER, ROLE_WORKER |
projectUuids |
Array |
List of unique identifiers for projects that the member is assigned to |
Yes |
Must not be null |
String |
Email (optional for workers but mandatory for team members) |
No |
Must not be blank |
|
phoneNumber |
String |
Phone Number |
No |
|
title |
String |
Title |
No |
|
employeeId |
String |
Employee Id (Unique if not empty) |
No |
|
classificationUuid |
String |
Unique identifier of the classification for the member |
No |
|
timeSettings |
Object |
Default times settings for the member |
No |
|
timeSettings.blockTimeClock |
Boolean |
Flag that indicates whether or not this member may access the Time Clock feature. If true, they may not access the time clock. If true, they may not access the time clock |
No |
Boolean value: true or false |
timeSettings.defaultCostCode |
String |
The unique identifier of this member’s default cost code |
No |
|
timeSettings.defaultShift |
String |
The unique identifier of this member’s default shift |
No |
Response fields
| Field | Type | Description | Constraints |
|---|---|---|---|
uuid |
String |
Unique identifier for the member |
|
firstName |
String |
First Name |
|
lastName |
String |
Last Name |
|
role |
String |
Role |
Enums: ROLE_WORKER, ROLE_USER, ROLE_ACCOUNT_ADMIN, ROLE_ADMIN, ROLE_PROJECT_MEMBER |
String |
|||
phoneNumber |
String |
Phone Number |
|
username |
String |
User name (not applicable to ROLE_WORKER that cannot log in Raken |
|
title |
String |
Title |
|
employeeId |
String |
Employee Id (Unique if not empty) |
|
classificationUuid |
String |
Unique identifier of the classification for the member |
|
createdAt |
String |
Date and Time (UTC) when the member was created |
Format: "yyyy-MM-ddThh:mm:ssZ" |
updatedAt |
String |
Date and Time (UTC) when the member was updated |
Format: "yyyy-MM-ddThh:mm:ssZ" |
lastLoginAt |
String |
Date and Time (UTC) when the member last logged in |
Format: "yyyy-MM-ddThh:mm:ssZ" |
status |
String |
Member status |
Enums: ACTIVE, INVITED, INACTIVE, DELETED |
timeSettings |
Object |
Default times settings for the member |
|
timeSettings.blockTimeClock |
Boolean |
Flag that indicates whether or not this member may access the Time Clock feature. If true, they may not access the time clock. If true, they may not access the time clock |
Boolean value: true or false |
timeSettings.defaultCostCode |
String |
The unique identifier of this member’s default cost code |
|
timeSettings.defaultShift |
String |
The unique identifier of this member’s default shift |
|
projectUuids |
Array |
List of unique identifiers for projects that the member is assigned to |
Usage Example with Curl
Curl request
$ curl 'https://developer.rakenapp.com/api/members' -i -X POST \
-H 'Content-Type: application/json' \
-d '{
"email" : "testing+100@rakenapp.com",
"firstName" : "Jan",
"lastName" : "Rutherford",
"projectUuids" : [ "ef5020fa-b674-443f-9b97-113f1c75bd1c" ],
"role" : "ROLE_WORKER",
"timeSettings" : {
"blockTimeClock" : true,
"defaultCostCode" : "e801d16e-a889-4966-8cde-7b5d19912997",
"defaultShift" : "d84cf0fc-066c-4a4c-96cc-113049b20d89"
}
}'
Response body
{
"uuid" : "808f3031-c0d2-4274-9dd2-39748f4e277c",
"firstName" : "Jan",
"lastName" : "Rutherford",
"role" : "ROLE_WORKER",
"email" : "chong.little@hotmail.com",
"employeeId" : "EMP00001",
"username" : "chong.little@hotmail.com",
"classificationUuid" : "9c937799-aada-4a0d-b7bd-5ab49e87c00a",
"status" : "ACTIVE",
"phoneNumber" : "(505) 644-4164",
"title" : "Mr",
"lastLoginAt" : "2022-07-18T12:40:33Z",
"createdAt" : "2022-07-17T22:47:03Z",
"updatedAt" : "2022-07-19T22:41:27Z",
"timeSettings" : {
"blockTimeClock" : true,
"defaultCostCode" : "d5c2677a-15f9-40af-9811-7269ae559e80",
"defaultShift" : "4ccb9aa2-0d84-496b-bba7-23e8dab7fd4f"
},
"projectUuids" : [ "67283f51-2891-4bbf-b26f-323765e8fb2c", "88604c43-79b1-419b-8caf-3b0d44b97af8" ]
}
Update Member
PATCH /members/{uuid}
For team members with a role other than ROLE_WORKER, the email field is not patchable.
|
Request fields
| Field | Type | Description | Required | Constraints |
|---|---|---|---|---|
firstName |
String |
First Name |
No |
Must not be blank |
lastName |
String |
Last Name |
No |
Must not be blank |
role |
String |
Role |
No |
Role Enums: ROLE_ACCOUNT_ADMIN, ROLE_ADMIN, ROLE_PROJECT_MEMBER, ROLE_USER, ROLE_WORKER |
projectUuids |
Array |
List of unique identifiers for projects that the member is assigned to |
No |
|
String |
Email (optional for workers but mandatory for team members) |
No |
||
phoneNumber |
String |
Phone Number |
No |
|
title |
String |
Title |
No |
|
employeeId |
String |
Employee Id (Unique if not empty) |
No |
|
classificationUuid |
String |
Unique identifier of the classification for the member |
No |
|
timeSettings |
Object |
Default times settings for the member |
No |
|
timeSettings.blockTimeClock |
Boolean |
Flag that indicates whether or not this member may access the Time Clock feature. If true, they may not access the time clock. If true, they may not access the time clock |
No |
Boolean value: true or false |
timeSettings.defaultCostCode |
String |
The unique identifier of this member’s default cost code |
No |
|
timeSettings.defaultShift |
String |
The unique identifier of this member’s default shift |
No |
|
status |
String |
Member status |
No |
MemberStatus Enums: ACTIVE, DELETED, INACTIVE, INVITED |
Response fields
| Field | Type | Description | Constraints |
|---|---|---|---|
uuid |
String |
Unique identifier for the member |
|
firstName |
String |
First Name |
|
lastName |
String |
Last Name |
|
role |
String |
Role |
Enums: ROLE_WORKER, ROLE_USER, ROLE_ACCOUNT_ADMIN, ROLE_ADMIN, ROLE_PROJECT_MEMBER |
String |
|||
phoneNumber |
String |
Phone Number |
|
username |
String |
User name (not applicable to ROLE_WORKER that cannot log in Raken |
|
title |
String |
Title |
|
employeeId |
String |
Employee Id (Unique if not empty) |
|
classificationUuid |
String |
Unique identifier of the classification for the member |
|
createdAt |
String |
Date and Time (UTC) when the member was created |
Format: "yyyy-MM-ddThh:mm:ssZ" |
updatedAt |
String |
Date and Time (UTC) when the member was updated |
Format: "yyyy-MM-ddThh:mm:ssZ" |
lastLoginAt |
String |
Date and Time (UTC) when the member last logged in |
Format: "yyyy-MM-ddThh:mm:ssZ" |
status |
String |
Member status |
Enums: ACTIVE, INVITED, INACTIVE, DELETED |
timeSettings |
Object |
Default times settings for the member |
|
timeSettings.blockTimeClock |
Boolean |
Flag that indicates whether or not this member may access the Time Clock feature. If true, they may not access the time clock. If true, they may not access the time clock |
Boolean value: true or false |
timeSettings.defaultCostCode |
String |
The unique identifier of this member’s default cost code |
|
timeSettings.defaultShift |
String |
The unique identifier of this member’s default shift |
|
projectUuids |
Array |
List of unique identifiers for projects that the member is assigned to |
Usage Example with Curl
Curl request
$ curl 'https://developer.rakenapp.com/api/members/30ece2b2-590c-41c2-a1df-036c4fe1cabc' -i -X PATCH \
-H 'Content-Type: application/json' \
-d '{
"firstName" : "Kasey"
}'
Response body
{
"uuid" : "30ece2b2-590c-41c2-a1df-036c4fe1cabc",
"firstName" : "Kasey",
"lastName" : "Emmerich",
"role" : "ROLE_WORKER",
"email" : "danny.runolfsson@hotmail.com",
"employeeId" : "EMP00001",
"username" : "danny.runolfsson@hotmail.com",
"classificationUuid" : "ee4b4683-4a23-44c7-942f-8a38ce40e228",
"status" : "ACTIVE",
"phoneNumber" : "(952) 212-6414",
"title" : "Mr",
"lastLoginAt" : "2022-07-18T12:40:33Z",
"createdAt" : "2022-07-17T22:47:03Z",
"updatedAt" : "2022-07-19T22:41:27Z",
"timeSettings" : {
"blockTimeClock" : true,
"defaultCostCode" : "a615afc3-5ba8-488d-9245-6504eba4af36",
"defaultShift" : "9429fe0a-78b2-4076-864e-1383f6503630"
},
"projectUuids" : [ "3ed4757e-2f45-4d33-8e2c-174587147e03", "1563a0a9-9218-4cbf-a94b-1137cac7e0a9" ]
}
List Member Projects
GET /members/{uuid}/projects
| It returns subset of project information, compared to the list request. |
Query parameters
| Parameter | Description | Required | Constraints |
|---|---|---|---|
statuses |
Return only projects with the given statuses. Multiple statuses can be specified. If not specified, only |
No |
Enums: ACTIVE, INACTIVE, DELETED |
Path parameters
| Parameter | Description |
|---|---|
|
Return only projects for the given member |
Response fields
| Field | Type | Description | Constraints |
|---|---|---|---|
uuid |
String |
Unique identifier for the project |
|
name |
String |
Project Name |
|
teamType |
String |
Team type |
Enums: GENERAL_CONTRACTOR, COLLABORATOR |
Usage Example with Curl
Curl request
$ curl 'https://developer.rakenapp.com/api/members/f6bc6d72-6cd9-4f81-aa86-8cf2644e56b1/projects?statuses=ACTIVE&limit=5&offset=5' -i -X GET
Response body
{
"page" : {
"offset" : 5,
"limit" : 5,
"totalElements" : 15,
"previous" : "/members/f6bc6d72-6cd9-4f81-aa86-8cf2644e56b1/projects?statuses=ACTIVE&offset=0&limit=5",
"next" : "/members/f6bc6d72-6cd9-4f81-aa86-8cf2644e56b1/projects?statuses=ACTIVE&offset=10&limit=5",
"nextOffset" : "10"
},
"collection" : [ {
"uuid" : "629ec94d-c2c2-4f25-98b4-b32b228c841e",
"name" : "Mary Gold",
"teamType" : "GENERAL_CONTRACTOR"
}, {
"uuid" : "b10ecae7-358b-44e4-9762-20a535d6a598",
"name" : "Duane DeVane",
"teamType" : "GENERAL_CONTRACTOR"
}, {
"uuid" : "7382c638-e86f-4b08-b804-e7755ea1ae89",
"name" : "Rex Easley",
"teamType" : "GENERAL_CONTRACTOR"
}, {
"uuid" : "a83aeedf-27b0-4ca5-8d49-405343133e1a",
"name" : "Rusty Irons",
"teamType" : "GENERAL_CONTRACTOR"
}, {
"uuid" : "35466cfe-d745-4f7d-b2ef-91fe020e24ae",
"name" : "Ty Coon",
"teamType" : "GENERAL_CONTRACTOR"
} ]
}
Update Members Project Assignment
POST /members/projectAssignment
Depending on projectAssignmentType, it can add, remove or replace project assignment for multiple members from selected projects.
Projects can be selected by their UUIDs via projectUuids, or by the project state via projectState.
For example, if projectState is ACTIVE, the project assignment change will involve all active projects on your Raken account.
One of the filed must be provided. If projectUuids is specified, projectState will be ignored.
Since it is a batch operation, the API operates on a best efforts basis and will ignore any issues encountered during the process. For example, when a team member can’t be removed from a project because the member is the last member of the project, if you call the API to remove the member from the project, you will still receive a successful response, even if the member hasn’t been removed due to the constraint.
Request fields
| Field | Type | Description | Required | Constraints |
|---|---|---|---|---|
memberUuids |
Array |
List of unique identifiers for members to change project assignment for |
Yes |
Must not be null Size must be between 1 and 100 inclusive |
projectAssignmentType |
String |
Project assignment type |
Yes |
Must not be null ProjectMembershipUpdateMode Enums: APPEND, REPLACE, REMOVE |
projectUuids |
Array |
List of unique identifiers for projects that members will be assigned, removed or replaced according to projectAssignmentType. Either projectUuids or projectState must be provided |
No |
Size must be between 0 and 10 inclusive |
projectState |
String |
Select projects with the given state. If projectUuids is provided, projectState will be ignored. |
No |
ProjectState Enums: ACTIVE, INACTIVE, DELETED |
Usage Example with Curl
Curl request
$ curl 'https://developer.rakenapp.com/api/members/projectAssignment' -i -X POST \
-H 'Content-Type: application/json' \
-d '{
"memberUuids" : [ "923022ff-c0a4-4371-91c0-1ff0f04f61bf" ],
"projectAssignmentType" : "APPEND",
"projectState" : "ACTIVE",
"projectUuids" : [ "2831adf6-07cd-4091-8390-9c06a24ac8e8", "8857c43b-4e0a-4981-9efd-96f095252b22" ]
}'
Observations
List Observations
GET /observations
Query parameters
| Parameter | Description | Required | Constraints |
|---|---|---|---|
projectUuid |
Deprecated — use |
No |
|
projectUuids |
Return only observations for these projects. At least one of |
No |
|
statuses |
Return only observations with these statuses |
No |
Enums: PENDING_REVIEW, RECORD_ONLY, CLOSED, OPEN, REJECTED |
categories |
Return only observations with this category |
No |
Enums: POSITIVE, NEGATIVE |
types |
Return only observations with these types |
No |
|
priorities |
Return only observations with these priorities |
No |
Enums: HIGH, MEDIUM, LOW, CRITICAL |
fromCreatedAt |
Return only observations created at or after this time, inclusive. fromCreatedAt must be before or equal to toCreatedAt. The date range is capped to 31 days to toCreatedAt. |
No |
Format: "yyyy-MM-ddThh:mm:ssZ" |
toCreatedAt |
Return only observations created before this time, exclusive |
No |
Format: "yyyy-MM-ddThh:mm:ssZ" |
changedSince |
Filters results to include only entities that were updated at or after the specified time (inclusive). Must be used with a corresponding |
No |
Format: "yyyy-MM-ddThh:mm:ssZ" |
changedUntil |
Filters results to include only entities that were updated before the specified time (exclusive) |
No |
Format: "yyyy-MM-ddThh:mm:ssZ" |
Response fields
| Field | Type | Description | Constraints |
|---|---|---|---|
uuid |
String |
Unique identifier for the observation |
|
assignees |
Array |
Observation assignees |
|
assignees[].company |
String |
Company name for this assignee |
|
assignees[].name |
String |
Full name of this assignee |
|
assignees[].dueAt |
String |
Corrective action due date for this assignee |
|
assignees[].correctiveAction |
String |
Corrective action description for this assignee |
|
assignees[].status |
String |
The status of this assignee’s corrective action |
|
attachments |
Array |
Response attachments |
|
attachments[].uuid |
String |
Unique Identifier for this attachment |
|
attachments[].mediaType |
String |
Media type for this attachment |
Enums: IMAGE, VIDEO, DOCUMENT, AUDIO |
attachments[].url |
String |
URL for this attachment |
|
attachments[].thumbnailUrl |
String |
Thumbnail URL for this attachment |
|
attachments[].contentType |
String |
Content type for this attachment |
|
attachments[].description |
String |
Description of this attachment |
|
attachments[].fileName |
String |
File name of this attachment |
|
attachments[].fileSize |
Number |
Size of this attachment in bytes |
|
category |
String |
Category of this observation |
|
createdAt |
String |
Date and Time (UTC) when the observation was created |
|
createdBy.uuid |
String |
Unique identifier for the user who created the observation |
|
createdBy.name |
String |
Name of the user who created the observation |
|
description |
String |
Description of the observation |
|
location.fullPath |
String |
Full path location where the observation was made |
|
location.name |
String |
Location where the observation was made |
|
observationDate |
String |
Date in project timezone when the observation was created |
|
priority |
String |
Priority of the observation |
|
projectUuid |
String |
Unique identifier for the project on which the observation was made |
|
referenceNumber |
String |
Reference number of the observation that was automatically generated when the observation was created |
|
status |
String |
Status of the observation |
Enums: PENDING_REVIEW, RECORD_ONLY, CLOSED, OPEN, REJECTED |
type.subType |
String |
Sub type of the observation |
|
type.type |
String |
Type of the observation |
|
type.typeClass |
String |
Type class of the observation |
|
updatedBy.uuid |
String |
Unique identifier for the user who updated the observation |
|
updatedBy.name |
String |
Name of the user who updated the observation |
|
updatedAt |
String |
Date and Time (UTC) when the observation was updated |
Usage Example with Curl
Curl request
$ curl 'https://developer.rakenapp.com/api/observations?projectUuid=a9545b1f-ead4-45a1-85a5-c3b02d32fbcb&projectUuids=455e743c-4f23-44db-b2b4-9324a7eccb13&statuses=OPEN&statuses=REJECTED&priorities=MEDIUM&priorities=LOW&fromCreatedAt=2026-10-05T01:29:55Z&toCreatedAt=2026-10-06T01:29:55Z&categories=POSITIVE&categories=NEGATIVE&types=Mechanical&changedSince=2026-10-06T01:29:55Z&changedUntil=2026-10-06T01:30:55Z&limit=5&offset=5' -i -X GET
Response body
{
"page" : {
"offset" : 5,
"limit" : 5,
"totalElements" : 15,
"previous" : "/observations?projectUuid=a9545b1f-ead4-45a1-85a5-c3b02d32fbcb&projectUuids=455e743c-4f23-44db-b2b4-9324a7eccb13&statuses=OPEN&statuses=REJECTED&priorities=MEDIUM&priorities=LOW&fromCreatedAt=2026-10-05T01:29:55Z&toCreatedAt=2026-10-06T01:29:55Z&categories=POSITIVE&categories=NEGATIVE&types=Mechanical&changedSince=2026-10-06T01:29:55Z&changedUntil=2026-10-06T01:30:55Z&offset=0&limit=5",
"next" : "/observations?projectUuid=a9545b1f-ead4-45a1-85a5-c3b02d32fbcb&projectUuids=455e743c-4f23-44db-b2b4-9324a7eccb13&statuses=OPEN&statuses=REJECTED&priorities=MEDIUM&priorities=LOW&fromCreatedAt=2026-10-05T01:29:55Z&toCreatedAt=2026-10-06T01:29:55Z&categories=POSITIVE&categories=NEGATIVE&types=Mechanical&changedSince=2026-10-06T01:29:55Z&changedUntil=2026-10-06T01:30:55Z&offset=10&limit=5",
"nextOffset" : "10"
},
"collection" : [ {
"uuid" : "c06d9e82-dd56-4dd9-aaf2-38708ca54bbd",
"assignees" : [ {
"company" : "Schaden Group",
"name" : "Benita Bruen",
"dueAt" : "2026-10-06",
"correctiveAction" : "Tenetur itaque provident recusandae eligendi excepturi dolor.",
"status" : "OPEN"
}, {
"company" : "Balistreri-Donnelly",
"name" : "Mrs. Ivy Beahan",
"dueAt" : "2026-10-06",
"correctiveAction" : "Dolorem eos blanditiis impedit fugiat nemo esse sunt. Vel tempore error rerum neque. Vel vitae vitae ea praesentium nobis vero quasi.",
"status" : "OPEN"
} ],
"attachments" : [ {
"uuid" : "2bbe7279-6ca3-4f31-86dc-c9d14e887f88",
"url" : "https://www.example.com/image",
"description" : "Description",
"fileName" : "vero.jpg",
"thumbnailUrl" : "https://www.example.com/thumbnailImage",
"contentType" : "image/png",
"mediaType" : "IMAGE",
"fileSize" : 12880
}, {
"uuid" : "554e825e-14b3-4f39-8bac-4f1d4d697b70",
"url" : "https://www.example.com/image",
"description" : "Description",
"fileName" : "excepturi.jpg",
"thumbnailUrl" : "https://www.example.com/thumbnailImage",
"contentType" : "image/png",
"mediaType" : "IMAGE",
"fileSize" : 35459
} ],
"category" : "POSITIVE",
"createdAt" : "2026-09-30T12:46:26Z",
"createdBy" : {
"uuid" : "394e860e-9077-47d0-ae43-80ca129ad916",
"name" : "Ashlee Davis"
},
"description" : "Rem voluptatum possimus commodi aut eius.",
"location" : {
"fullPath" : "Est amet modi voluptate officia nobis tempore repellendus neque quidem.",
"name" : "Voluptas fugiat magni cum officia maiores."
},
"observationDate" : "2026-10-08",
"priority" : "MEDIUM",
"projectUuid" : "5aaf4c47-1b60-48b5-af18-43a4909c353c",
"referenceNumber" : "888-70-1875",
"status" : "OPEN",
"type" : {
"typeClass" : "Commissioning",
"type" : "Mechanical",
"subType" : "Wet commissioning"
},
"updatedAt" : "2026-10-04T09:20:19Z",
"updatedBy" : {
"uuid" : "bf574ba5-59d2-453a-8420-8fa03f967b5e",
"name" : "Val Vandervort II"
}
}, {
"uuid" : "b2d07b9e-cf75-4c2d-8a38-f7248fbbcf59",
"assignees" : [ {
"company" : "Dietrich, Cassin and Brown",
"name" : "Marlin Casper",
"dueAt" : "2026-10-11",
"correctiveAction" : "Porro accusantium reprehenderit laboriosam consequatur tempore quos. Quidem facere sed minus. Quidem id alias laudantium recusandae animi exercitationem.",
"status" : "OPEN"
}, {
"company" : "Weissnat-Lindgren",
"name" : "Fredric Daugherty",
"dueAt" : "2026-10-07",
"correctiveAction" : "Accusamus distinctio perferendis aspernatur numquam. Error doloremque quam suscipit.",
"status" : "OPEN"
} ],
"attachments" : [ {
"uuid" : "d8b7f5d2-e8f4-4288-bc31-8b97ac018b69",
"url" : "https://www.example.com/image",
"description" : "Description",
"fileName" : "et.jpg",
"thumbnailUrl" : "https://www.example.com/thumbnailImage",
"contentType" : "image/png",
"mediaType" : "IMAGE",
"fileSize" : 82157
}, {
"uuid" : "405b7d40-fda6-4381-bf8e-2864123e8ecb",
"url" : "https://www.example.com/image",
"description" : "Description",
"fileName" : "deserunt.jpg",
"thumbnailUrl" : "https://www.example.com/thumbnailImage",
"contentType" : "image/png",
"mediaType" : "IMAGE",
"fileSize" : 84363
} ],
"category" : "POSITIVE",
"createdAt" : "2026-10-03T03:07:07Z",
"createdBy" : {
"uuid" : "18fabfd2-7e28-4089-a94f-51b9ee0b6094",
"name" : "Leeann Stehr"
},
"description" : "Culpa sapiente alias. Accusantium at porro laborum dolore labore.",
"location" : {
"fullPath" : "Beatae sunt dicta enim nihil aspernatur facilis cumque reiciendis.",
"name" : "Perspiciatis nam culpa asperiores sequi deserunt."
},
"observationDate" : "2026-10-09",
"priority" : "MEDIUM",
"projectUuid" : "b159d17f-04a6-44a6-b7f0-d10895302a21",
"referenceNumber" : "721-89-6673",
"status" : "OPEN",
"type" : {
"typeClass" : "Commissioning",
"type" : "Mechanical",
"subType" : "Wet commissioning"
},
"updatedAt" : "2026-10-03T04:26:24Z",
"updatedBy" : {
"uuid" : "77b632c5-05f8-4c89-93d6-8782736ee013",
"name" : "Lakeisha King"
}
}, {
"uuid" : "0eb4062f-9c91-4075-8c1a-98a9c0012a7c",
"assignees" : [ {
"company" : "Carroll, Walker and Ledner",
"name" : "Myrtle Howe",
"dueAt" : "2026-10-11",
"correctiveAction" : "Suscipit commodi optio exercitationem reiciendis vitae corrupti.",
"status" : "OPEN"
}, {
"company" : "Jenkins-Kuhn",
"name" : "Bernarda Bernhard",
"dueAt" : "2026-10-12",
"correctiveAction" : "Facilis voluptatem accusamus aperiam eaque. Mollitia excepturi sint molestias ipsa placeat praesentium. Illo veniam assumenda rem excepturi est voluptates veritatis.",
"status" : "OPEN"
} ],
"attachments" : [ {
"uuid" : "b19c1c38-8229-46f9-a9b8-f9e909b27eb3",
"url" : "https://www.example.com/image",
"description" : "Description",
"fileName" : "natus.jpg",
"thumbnailUrl" : "https://www.example.com/thumbnailImage",
"contentType" : "image/png",
"mediaType" : "IMAGE",
"fileSize" : 67734
}, {
"uuid" : "946bec38-2326-4c78-97f5-82c5ec7dd505",
"url" : "https://www.example.com/image",
"description" : "Description",
"fileName" : "aliquid.jpg",
"thumbnailUrl" : "https://www.example.com/thumbnailImage",
"contentType" : "image/png",
"mediaType" : "IMAGE",
"fileSize" : 278
} ],
"category" : "POSITIVE",
"createdAt" : "2026-10-01T13:26:29Z",
"createdBy" : {
"uuid" : "3fcdbb73-970e-4ec9-b42e-a38e53ef598b",
"name" : "Miss Mozelle Schmidt"
},
"description" : "Labore rerum dolor quam optio. Voluptatum beatae maiores saepe expedita error at praesentium.",
"location" : {
"fullPath" : "Fugit ea doloremque dignissimos commodi autem voluptatibus.",
"name" : "Ducimus reiciendis necessitatibus minus similique tempora."
},
"observationDate" : "2026-10-12",
"priority" : "MEDIUM",
"projectUuid" : "44502a4e-60b6-460b-bc9c-b18b343ea113",
"referenceNumber" : "755-49-9202",
"status" : "OPEN",
"type" : {
"typeClass" : "Commissioning",
"type" : "Mechanical",
"subType" : "Wet commissioning"
},
"updatedAt" : "2026-09-29T11:51:22Z",
"updatedBy" : {
"uuid" : "f460002b-fc88-40de-bb02-e50f59460205",
"name" : "Candice Bernier"
}
}, {
"uuid" : "76cf465f-d66b-4648-9434-f1a6821d4f85",
"assignees" : [ {
"company" : "Stroman, Medhurst and Ferry",
"name" : "Tam Hahn",
"dueAt" : "2026-10-12",
"correctiveAction" : "Nam fugiat nisi corporis magni. Iure vel numquam eaque.",
"status" : "OPEN"
}, {
"company" : "Schultz, Abernathy and Klein",
"name" : "Dr. Eliseo Dietrich",
"dueAt" : "2026-10-12",
"correctiveAction" : "Libero placeat omnis. Optio voluptates hic a quisquam quibusdam placeat veniam.",
"status" : "OPEN"
} ],
"attachments" : [ {
"uuid" : "dda8fc1b-d1f4-42bd-8a1c-292b1de031e5",
"url" : "https://www.example.com/image",
"description" : "Description",
"fileName" : "minus.jpg",
"thumbnailUrl" : "https://www.example.com/thumbnailImage",
"contentType" : "image/png",
"mediaType" : "IMAGE",
"fileSize" : 94653
}, {
"uuid" : "dd96af3d-c3ef-4ded-aee4-4ce8e69ba37b",
"url" : "https://www.example.com/image",
"description" : "Description",
"fileName" : "molestiae.jpg",
"thumbnailUrl" : "https://www.example.com/thumbnailImage",
"contentType" : "image/png",
"mediaType" : "IMAGE",
"fileSize" : 24666
} ],
"category" : "POSITIVE",
"createdAt" : "2026-10-05T08:28:47Z",
"createdBy" : {
"uuid" : "6d8d11fc-bcd3-4fe1-ad91-d5edd4cfa748",
"name" : "Shelba Daniel"
},
"description" : "Cupiditate ducimus nemo magnam doloribus deleniti. Nihil consectetur sed labore veritatis labore. Saepe sunt itaque suscipit consequuntur.",
"location" : {
"fullPath" : "Aliquid sequi corporis fugiat itaque temporibus numquam maxime.",
"name" : "Cumque odit architecto aliquam voluptas incidunt."
},
"observationDate" : "2026-10-13",
"priority" : "MEDIUM",
"projectUuid" : "689fded1-3c1a-4107-8fc0-7b8edbc0d8d5",
"referenceNumber" : "046-51-2034",
"status" : "OPEN",
"type" : {
"typeClass" : "Commissioning",
"type" : "Mechanical",
"subType" : "Wet commissioning"
},
"updatedAt" : "2026-10-03T14:47:01Z",
"updatedBy" : {
"uuid" : "037d06e9-bfef-4d8f-922f-8e704c653ce0",
"name" : "Gerda Blick"
}
}, {
"uuid" : "e6840c18-e43d-4649-9629-04bf125f859e",
"assignees" : [ {
"company" : "Blick-Kerluke",
"name" : "Mrs. Daphine Mohr",
"dueAt" : "2026-10-10",
"correctiveAction" : "Ipsa esse vitae cum consequuntur cum inventore reiciendis.",
"status" : "OPEN"
}, {
"company" : "Barrows, Schaefer and Towne",
"name" : "Cristopher Bergnaum",
"dueAt" : "2026-10-10",
"correctiveAction" : "Ipsam maiores perferendis porro minus blanditiis ipsa. Impedit exercitationem vero accusantium. Soluta voluptatem at fuga.",
"status" : "OPEN"
} ],
"attachments" : [ {
"uuid" : "02885b09-3e19-4e12-a325-2341be8b2b7c",
"url" : "https://www.example.com/image",
"description" : "Description",
"fileName" : "illo.jpg",
"thumbnailUrl" : "https://www.example.com/thumbnailImage",
"contentType" : "image/png",
"mediaType" : "IMAGE",
"fileSize" : 75162
}, {
"uuid" : "d4c78d86-60a6-412f-a394-8f097153920b",
"url" : "https://www.example.com/image",
"description" : "Description",
"fileName" : "quos.jpg",
"thumbnailUrl" : "https://www.example.com/thumbnailImage",
"contentType" : "image/png",
"mediaType" : "IMAGE",
"fileSize" : 78250
} ],
"category" : "POSITIVE",
"createdAt" : "2026-09-29T03:36:03Z",
"createdBy" : {
"uuid" : "e23f9ff6-a0c5-4996-9d2a-f1369af4cdb4",
"name" : "Nikita Waters"
},
"description" : "Modi accusantium ea distinctio iste itaque quae. Laudantium ipsa quo. Eveniet tenetur provident molestiae.",
"location" : {
"fullPath" : "Quod minus cumque quisquam beatae.",
"name" : "Hic a libero ullam iure consequuntur."
},
"observationDate" : "2026-10-07",
"priority" : "MEDIUM",
"projectUuid" : "c7bf5976-f184-44d5-b9fb-05c2fdf3a6ad",
"referenceNumber" : "568-75-8659",
"status" : "OPEN",
"type" : {
"typeClass" : "Commissioning",
"type" : "Mechanical",
"subType" : "Wet commissioning"
},
"updatedAt" : "2026-09-30T05:28:41Z",
"updatedBy" : {
"uuid" : "5508ce81-fd1b-4639-b182-5783b499c5e1",
"name" : "Lenard Ferry"
}
} ]
}
Get Observation
GET /observations/{uuid}
Response fields
| Field | Type | Description | Constraints |
|---|---|---|---|
uuid |
String |
Unique identifier for the observation |
|
assignees |
Array |
Observation assignees |
|
assignees[].company |
String |
Company name for this assignee |
|
assignees[].name |
String |
Full name of this assignee |
|
assignees[].dueAt |
String |
Corrective action due date for this assignee |
|
assignees[].correctiveAction |
String |
Corrective action description for this assignee |
|
assignees[].status |
String |
The status of this assignee’s corrective action |
|
attachments |
Array |
Response attachments |
|
attachments[].uuid |
String |
Unique Identifier for this attachment |
|
attachments[].mediaType |
String |
Media type for this attachment |
Enums: IMAGE, VIDEO, DOCUMENT, AUDIO |
attachments[].url |
String |
URL for this attachment |
|
attachments[].thumbnailUrl |
String |
Thumbnail URL for this attachment |
|
attachments[].contentType |
String |
Content type for this attachment |
|
attachments[].description |
String |
Description of this attachment |
|
attachments[].fileName |
String |
File name of this attachment |
|
attachments[].fileSize |
Number |
Size of this attachment in bytes |
|
category |
String |
Category of this observation |
|
createdAt |
String |
Date and Time (UTC) when the observation was created |
|
createdBy.uuid |
String |
Unique identifier for the user who created the observation |
|
createdBy.name |
String |
Name of the user who created the observation |
|
description |
String |
Description of the observation |
|
location.fullPath |
String |
Full path location where the observation was made |
|
location.name |
String |
Location where the observation was made |
|
observationDate |
String |
Date in project timezone when the observation was created |
|
priority |
String |
Priority of the observation |
|
projectUuid |
String |
Unique identifier for the project on which the observation was made |
|
referenceNumber |
String |
Reference number of the observation that was automatically generated when the observation was created |
|
status |
String |
Status of the observation |
Enums: PENDING_REVIEW, RECORD_ONLY, CLOSED, OPEN, REJECTED |
type.subType |
String |
Sub type of the observation |
|
type.type |
String |
Type of the observation |
|
type.typeClass |
String |
Type class of the observation |
|
updatedBy.uuid |
String |
Unique identifier for the user who updated the observation |
|
updatedBy.name |
String |
Name of the user who updated the observation |
|
updatedAt |
String |
Date and Time (UTC) when the observation was updated |
Usage Example with Curl
Curl request
$ curl 'https://developer.rakenapp.com/api/observations/c3c2d38e-94aa-44bf-a1ca-a228be63cd56' -i -X GET
Response body
{
"uuid" : "c3c2d38e-94aa-44bf-a1ca-a228be63cd56",
"assignees" : [ {
"company" : "Legros, Bergnaum and Jaskolski",
"name" : "Madge Oberbrunner",
"dueAt" : "2026-10-11",
"correctiveAction" : "Consequuntur error reiciendis nobis neque eligendi. Reprehenderit aspernatur alias pariatur. Amet consectetur quos deleniti amet corrupti nostrum.",
"status" : "OPEN"
}, {
"company" : "Hessel, Koss and Brakus",
"name" : "Gustavo Collier Jr.",
"dueAt" : "2026-10-12",
"correctiveAction" : "Nam dolor possimus magni quibusdam quis excepturi. Aut illum explicabo vero dolor voluptatibus sed sequi. Officiis excepturi voluptate ipsam eaque delectus quos.",
"status" : "OPEN"
} ],
"attachments" : [ {
"uuid" : "5e4278fe-9b03-4b93-a0c6-8317a8b81211",
"url" : "https://www.example.com/image",
"description" : "Description",
"fileName" : "voluptatibus.jpg",
"thumbnailUrl" : "https://www.example.com/thumbnailImage",
"contentType" : "image/png",
"mediaType" : "IMAGE",
"fileSize" : 79723
}, {
"uuid" : "1f26e509-f21e-47d6-80f3-3d3253fac185",
"url" : "https://www.example.com/image",
"description" : "Description",
"fileName" : "nihil.jpg",
"thumbnailUrl" : "https://www.example.com/thumbnailImage",
"contentType" : "image/png",
"mediaType" : "IMAGE",
"fileSize" : 80695
} ],
"category" : "POSITIVE",
"createdAt" : "2026-10-03T01:32:40Z",
"createdBy" : {
"uuid" : "26a6fd20-3a57-4e8b-bb32-f3e917e71816",
"name" : "Milton Carter"
},
"description" : "Sunt est praesentium ipsum quasi ipsam.",
"location" : {
"fullPath" : "Debitis facere nostrum voluptatum veniam neque quod sed quia molestiae.",
"name" : "Vitae tempora cupiditate nam."
},
"observationDate" : "2026-10-07",
"priority" : "MEDIUM",
"projectUuid" : "a60c9c41-3eeb-4f83-9531-4996b55020cd",
"referenceNumber" : "129-21-8371",
"status" : "OPEN",
"type" : {
"typeClass" : "Commissioning",
"type" : "Mechanical",
"subType" : "Wet commissioning"
},
"updatedAt" : "2026-10-05T10:40:51Z",
"updatedBy" : {
"uuid" : "385be930-eb04-4924-942e-5dca910dd247",
"name" : "Samuel Fay"
}
}
Pay Types
List Pay Types
GET /payTypes
Response fields
| Field | Type | Description | Constraints |
|---|---|---|---|
uuid |
String |
Unique identifier for the pay type |
|
name |
String |
Name for the pay type |
|
code |
String |
Code for the pay type |
Usage Example with Curl
Curl request
$ curl 'https://developer.rakenapp.com/api/payTypes?limit=5&offset=5' -i -X GET
Response body
{
"page" : {
"offset" : 5,
"limit" : 5,
"totalElements" : 15,
"previous" : "/payTypes?offset=0&limit=5",
"next" : "/payTypes?offset=10&limit=5",
"nextOffset" : "10"
},
"collection" : [ {
"uuid" : "757342d8-135b-430a-9b1e-c4d87518b3b2",
"name" : "Regular Time",
"code" : "RT"
}, {
"uuid" : "2dadcdf3-7636-45e3-b16d-f53f3ce7a605",
"name" : "Over Time",
"code" : "OT"
}, {
"uuid" : "912dbbc5-83a2-4b1c-9de0-4a71979e17b4",
"name" : "Double Time",
"code" : "DT"
} ]
}
Projects
List Projects
GET /projects
Use the query parameter to search projects by name or number (case-insensitive substring match).
|
Query parameters
| Parameter | Description | Required | Constraints |
|---|---|---|---|
query |
Filter projects by name or number (case-insensitive substring match). |
No |
|
projectStates |
(Deprecated) Use 'statuses' |
No |
Enums: ACTIVE, INACTIVE, DELETED |
statuses |
Restrict the projects to the projects with this status. Multiple statuses can be specified. |
No |
Enums: ACTIVE, INACTIVE, DELETED |
changedSince |
Return only projects updated at or after this time, inclusive. changedSince must be before or equal to changedUntil. The date range is capped to 31 days to changedUntil. |
No |
Format: "yyyy-MM-ddThh:mm:ssZ" |
changedUntil |
Return only projects updated before this time, exclusive. |
No |
Format: "yyyy-MM-ddThh:mm:ssZ" |
Response fields
| Field | Type | Description | Constraints |
|---|---|---|---|
uuid |
String |
Unique identifier for the project |
|
name |
String |
Project Name |
|
number |
String |
Project Number |
|
startDate |
String |
Project Start Date |
Format: "yyyy-MM-dd" |
endDate |
String |
Project End Date |
Format: "yyyy-MM-dd" |
status |
String |
Status of project |
Enums: ACTIVE, INACTIVE, DELETED |
address |
Object |
Project address |
|
address.streetAddress1 |
String |
Street address |
|
address.city |
String |
City |
|
address.state |
String |
State |
|
address.country |
String |
Country |
|
address.postalCode |
String |
Postal Code |
|
externalId |
String |
Unique identifier for the project in an integrated external system |
|
externalEmailRecipients |
Array |
Email addresses of external recipients for the project |
|
internalEmailRecipients |
Array |
Email addresses of internal recipients for the project |
|
createdAt |
String |
Date and Time (UTC) when the project was created |
Format: "yyyy-MM-ddThh:mm:ssZ" |
updatedAt |
String |
Date and Time (UTC) when the project was updated |
Format: "yyyy-MM-ddThh:mm:ssZ" |
Usage Example with Curl
Curl request
$ curl 'https://developer.rakenapp.com/api/projects?statuses=ACTIVE&changedSince=2024-02-21T01:00:00Z&changedUntil=2024-02-28T01:00:00Z&limit=5&offset=5' -i -X GET
Response body
{
"page" : {
"offset" : 5,
"limit" : 5,
"totalElements" : 15,
"previous" : "/projects?statuses=ACTIVE&changedSince=2024-02-21T01:00:00Z&changedUntil=2024-02-28T01:00:00Z&offset=0&limit=5",
"next" : "/projects?statuses=ACTIVE&changedSince=2024-02-21T01:00:00Z&changedUntil=2024-02-28T01:00:00Z&offset=10&limit=5",
"nextOffset" : "10"
},
"collection" : [ {
"uuid" : "7f3d27ca-5a27-423d-a389-1e15382c046e",
"name" : "Ullrich Inc",
"number" : "PRJ1",
"address" : {
"streetAddress1" : "8050 Murazik Tunnel",
"city" : "South Irvinland",
"state" : "New Mexico",
"country" : "US",
"postalCode" : "71918"
},
"status" : "ACTIVE",
"startDate" : "2020-01-01",
"endDate" : "2020-12-01",
"externalId" : "EXT|385-95-2972",
"externalEmailRecipients" : [ "damien.windler@gmail.com", "florentino.sauer@yahoo.com" ],
"internalEmailRecipients" : [ "wilbur.douglas@yahoo.com" ],
"createdAt" : "2022-07-17T22:47:03Z",
"updatedAt" : "2022-07-19T22:41:27Z"
}, {
"uuid" : "7ea17f1d-db2c-4b6a-a402-1d72930b1ab8",
"name" : "Hamill and Sons",
"number" : "PRJ2",
"address" : {
"streetAddress1" : "3034 Weimann Village",
"city" : "South Simonland",
"state" : "Alabama",
"country" : "US",
"postalCode" : "07619"
},
"status" : "ACTIVE",
"startDate" : "2020-01-01",
"endDate" : "2020-12-01",
"externalId" : "EXT|689-40-1875",
"externalEmailRecipients" : [ "lee.haley@gmail.com", "clarisa.bergnaum@hotmail.com" ],
"internalEmailRecipients" : [ "bryan.koss@yahoo.com" ],
"createdAt" : "2022-07-17T22:47:03Z",
"updatedAt" : "2022-07-19T22:41:27Z"
}, {
"uuid" : "ca19c86b-8422-4d58-a598-81e0bf4320ad",
"name" : "Wintheiser-Kub",
"number" : "PRJ3",
"address" : {
"streetAddress1" : "6737 Liberty Bypass",
"city" : "Port Myong",
"state" : "Arkansas",
"country" : "US",
"postalCode" : "88774"
},
"status" : "ACTIVE",
"startDate" : "2020-01-01",
"endDate" : "2020-12-01",
"externalId" : "EXT|489-70-0638",
"externalEmailRecipients" : [ "fritz.heaney@gmail.com", "charlie.turner@yahoo.com" ],
"internalEmailRecipients" : [ "paris.lang@hotmail.com" ],
"createdAt" : "2022-07-17T22:47:03Z",
"updatedAt" : "2022-07-19T22:41:27Z"
}, {
"uuid" : "146278ce-551f-4ec9-a349-d41355a23a9e",
"name" : "Mante, Auer and Hand",
"number" : "PRJ4",
"address" : {
"streetAddress1" : "296 Kovacek Isle",
"city" : "Lake Clementstad",
"state" : "Maryland",
"country" : "US",
"postalCode" : "97995"
},
"status" : "ACTIVE",
"startDate" : "2020-01-01",
"endDate" : "2020-12-01",
"externalId" : "EXT|885-64-1086",
"externalEmailRecipients" : [ "lesley.rau@yahoo.com", "normand.brekke@yahoo.com" ],
"internalEmailRecipients" : [ "enriqueta.doyle@gmail.com" ],
"createdAt" : "2022-07-17T22:47:03Z",
"updatedAt" : "2022-07-19T22:41:27Z"
}, {
"uuid" : "215d35ec-7a84-4077-8dfc-01daa023cab4",
"name" : "Kohler-Senger",
"number" : "PRJ5",
"address" : {
"streetAddress1" : "14766 Wehner Overpass",
"city" : "Sengerland",
"state" : "Tennessee",
"country" : "US",
"postalCode" : "36967"
},
"status" : "ACTIVE",
"startDate" : "2020-01-01",
"endDate" : "2020-12-01",
"externalId" : "EXT|037-89-7804",
"externalEmailRecipients" : [ "yasmin.mills@yahoo.com", "jan.hagenes@gmail.com" ],
"internalEmailRecipients" : [ "christia.hansen@gmail.com" ],
"createdAt" : "2022-07-17T22:47:03Z",
"updatedAt" : "2022-07-19T22:41:27Z"
} ]
}
Create Project
POST /projects
Request fields
| Field | Type | Description | Required | Constraints |
|---|---|---|---|---|
name |
String |
Project Name |
Yes |
Must not be blank |
number |
String |
Project Number |
No |
|
address |
Object |
Project address |
No |
|
address.streetAddress1 |
String |
Street address |
No |
|
address.city |
String |
City |
No |
|
address.state |
String |
State |
No |
|
address.country |
String |
Country |
No |
|
address.postalCode |
String |
Postal Code |
No |
|
startDate |
String |
Project Start Date |
Yes |
Format: "yyyy-MM-dd" Must not be null |
endDate |
String |
Project End Date |
No |
Format: "yyyy-MM-dd" |
status |
String |
Status of project |
No |
Enums: ACTIVE, INACTIVE, DELETED |
externalEmailRecipients |
Array |
Email addresses of external recipients for the project |
No |
Must be valid email address(es) |
internalEmailRecipients |
Array |
Email addresses of internal recipients for the project |
No |
Must be valid email address(es) |
externalId |
String |
Unique identifier for the project in an integrated external system |
No |
Response fields
| Field | Type | Description | Constraints |
|---|---|---|---|
uuid |
String |
Unique identifier for the project |
|
name |
String |
Project Name |
|
number |
String |
Project Number |
|
startDate |
String |
Project Start Date |
Format: "yyyy-MM-dd" |
endDate |
String |
Project End Date |
Format: "yyyy-MM-dd" |
status |
String |
Status of project |
Enums: ACTIVE, INACTIVE, DELETED |
address |
Object |
Project address |
|
address.streetAddress1 |
String |
Street address |
|
address.city |
String |
City |
|
address.state |
String |
State |
|
address.country |
String |
Country |
|
address.postalCode |
String |
Postal Code |
|
externalId |
String |
Unique identifier for the project in an integrated external system |
|
externalEmailRecipients |
Array |
Email addresses of external recipients for the project |
|
internalEmailRecipients |
Array |
Email addresses of internal recipients for the project |
|
createdAt |
String |
Date and Time (UTC) when the project was created |
Format: "yyyy-MM-ddThh:mm:ssZ" |
updatedAt |
String |
Date and Time (UTC) when the project was updated |
Format: "yyyy-MM-ddThh:mm:ssZ" |
Usage Example with Curl
Curl request
$ curl 'https://developer.rakenapp.com/api/projects' -i -X POST \
-H 'Content-Type: application/json' \
-d '{
"address" : {
"city" : "West Allanmouth",
"country" : "US",
"postalCode" : "06852",
"state" : "North Carolina",
"streetAddress1" : "2161 Mraz Forge"
},
"endDate" : "2020-12-01",
"externalEmailRecipients" : [ "charissa.blick@gmail.com", "song.grant@yahoo.com" ],
"externalId" : "EXT|509-69-5612",
"internalEmailRecipients" : [ "cornelia.murray@yahoo.com" ],
"name" : "Paucek-Crona",
"number" : "PRJ103",
"startDate" : "2020-01-01",
"status" : "ACTIVE"
}'
Response body
{
"uuid" : "2840aaee-091b-4b7e-9d84-07c4293763aa",
"name" : "Paucek-Crona",
"number" : "PRJ103",
"address" : {
"streetAddress1" : "2161 Mraz Forge",
"city" : "West Allanmouth",
"state" : "North Carolina",
"country" : "US",
"postalCode" : "06852"
},
"status" : "ACTIVE",
"startDate" : "2020-01-01",
"endDate" : "2020-12-01",
"externalId" : "EXT|509-69-5612",
"externalEmailRecipients" : [ "charissa.blick@gmail.com", "song.grant@yahoo.com" ],
"internalEmailRecipients" : [ "cornelia.murray@yahoo.com" ],
"createdAt" : "2022-07-17T22:47:03Z",
"updatedAt" : "2022-07-19T22:41:27Z"
}
Update Project
PATCH /projects/{uuid}
Request fields
| Field | Type | Description | Required | Constraints |
|---|---|---|---|---|
name |
String |
Project Name |
No |
Must not be blank |
number |
String |
Project Number |
No |
|
address |
Object |
Project address |
No |
|
address.streetAddress1 |
String |
Street address |
No |
|
address.city |
String |
City |
No |
|
address.state |
String |
State |
No |
|
address.country |
String |
Country |
No |
|
address.postalCode |
String |
Postal Code |
No |
|
startDate |
String |
Project Start Date |
No |
Format: "yyyy-MM-dd" |
endDate |
String |
Project End Date |
No |
Format: "yyyy-MM-dd" |
status |
String |
Status of project |
No |
Enums: ACTIVE, INACTIVE, DELETED |
externalEmailRecipients |
Array |
Email addresses of external recipients for the project |
No |
Must be valid email address(es) |
internalEmailRecipients |
Array |
Email addresses of internal recipients for the project |
No |
Must be valid email address(es) |
externalId |
String |
Unique identifier for the project in an integrated external system |
No |
Response fields
| Field | Type | Description | Constraints |
|---|---|---|---|
uuid |
String |
Unique identifier for the project |
|
name |
String |
Project Name |
|
number |
String |
Project Number |
|
startDate |
String |
Project Start Date |
Format: "yyyy-MM-dd" |
endDate |
String |
Project End Date |
Format: "yyyy-MM-dd" |
status |
String |
Status of project |
Enums: ACTIVE, INACTIVE, DELETED |
address |
Object |
Project address |
|
address.streetAddress1 |
String |
Street address |
|
address.city |
String |
City |
|
address.state |
String |
State |
|
address.country |
String |
Country |
|
address.postalCode |
String |
Postal Code |
|
externalId |
String |
Unique identifier for the project in an integrated external system |
|
externalEmailRecipients |
Array |
Email addresses of external recipients for the project |
|
internalEmailRecipients |
Array |
Email addresses of internal recipients for the project |
|
createdAt |
String |
Date and Time (UTC) when the project was created |
Format: "yyyy-MM-ddThh:mm:ssZ" |
updatedAt |
String |
Date and Time (UTC) when the project was updated |
Format: "yyyy-MM-ddThh:mm:ssZ" |
Usage Example with Curl
Curl request
$ curl 'https://developer.rakenapp.com/api/projects/f7fda90b-b902-4111-a16c-1cccc49e6562' -i -X PATCH \
-H 'Content-Type: application/json' \
-d '{
"address" : {
"city" : "Abramborough",
"country" : "US",
"postalCode" : "13040",
"state" : "Idaho",
"streetAddress1" : "8553 Terry Stravenue"
},
"endDate" : "2020-12-01",
"externalEmailRecipients" : [ "mabelle.hoppe@gmail.com", "brendan.fay@hotmail.com" ],
"externalId" : "EXT|339-71-3059",
"internalEmailRecipients" : [ "yong.gaylord@gmail.com" ],
"name" : "Hartmann, Block and Friesen",
"number" : "PRJ202",
"startDate" : "2020-01-01",
"status" : "ACTIVE"
}'
Response body
{
"uuid" : "f7fda90b-b902-4111-a16c-1cccc49e6562",
"name" : "Hartmann, Block and Friesen",
"number" : "PRJ202",
"address" : {
"streetAddress1" : "8553 Terry Stravenue",
"city" : "Abramborough",
"state" : "Idaho",
"country" : "US",
"postalCode" : "13040"
},
"status" : "ACTIVE",
"startDate" : "2020-01-01",
"endDate" : "2020-12-01",
"externalId" : "EXT|339-71-3059",
"externalEmailRecipients" : [ "mabelle.hoppe@gmail.com", "brendan.fay@hotmail.com" ],
"internalEmailRecipients" : [ "yong.gaylord@gmail.com" ],
"createdAt" : "2022-07-17T22:47:03Z",
"updatedAt" : "2022-07-19T22:41:27Z"
}
Get Project
GET /projects/{uuid}
Response fields
| Field | Type | Description | Constraints |
|---|---|---|---|
uuid |
String |
Unique identifier for the project |
|
name |
String |
Project Name |
|
number |
String |
Project Number |
|
startDate |
String |
Project Start Date |
Format: "yyyy-MM-dd" |
endDate |
String |
Project End Date |
Format: "yyyy-MM-dd" |
status |
String |
Status of project |
Enums: ACTIVE, INACTIVE, DELETED |
address |
Object |
Project address |
|
address.streetAddress1 |
String |
Street address |
|
address.city |
String |
City |
|
address.state |
String |
State |
|
address.country |
String |
Country |
|
address.postalCode |
String |
Postal Code |
|
externalId |
String |
Unique identifier for the project in an integrated external system |
|
externalEmailRecipients |
Array |
Email addresses of external recipients for the project |
|
internalEmailRecipients |
Array |
Email addresses of internal recipients for the project |
|
createdAt |
String |
Date and Time (UTC) when the project was created |
Format: "yyyy-MM-ddThh:mm:ssZ" |
updatedAt |
String |
Date and Time (UTC) when the project was updated |
Format: "yyyy-MM-ddThh:mm:ssZ" |
Usage Example with Curl
Curl request
$ curl 'https://developer.rakenapp.com/api/projects/71a7512c-9c68-46a1-87be-d7860272cb3d' -i -X GET
Response body
{
"uuid" : "71a7512c-9c68-46a1-87be-d7860272cb3d",
"name" : "Schaefer, Cummings and Bartell",
"number" : "PRJ302",
"address" : {
"streetAddress1" : "058 Lane Mountains",
"city" : "Reichelside",
"state" : "Alaska",
"country" : "US",
"postalCode" : "98638"
},
"status" : "ACTIVE",
"startDate" : "2020-01-01",
"endDate" : "2020-12-01",
"externalId" : "EXT|345-23-4877",
"externalEmailRecipients" : [ "anibal.pagac@gmail.com", "tenisha.hermann@hotmail.com" ],
"internalEmailRecipients" : [ "jake.schulist@gmail.com" ],
"createdAt" : "2022-07-17T22:47:03Z",
"updatedAt" : "2022-07-19T22:41:27Z"
}
Get Child Projects
GET /projects/{uuid}/childProjects
Raken allows a customer to invite external users from other companies to work on a project on the customer’s Raken account. These external users are referred as collaborators in Raken.
If a collaborator doesn’t have an existing Raken account, Raken will create a new account for the collaborator. Also, a new project will be created on the collaborator’s account, and the collaborator will become a team member on that project.
The original project where a collaborator is invited to is called a Parent project, while the project created for the collaborator on the other Raken account is called a Child project.
This API endpoint enables an API user to retrieve information about all child projects for a parent project. Calling this API on a child project will always get empty response.
Response fields
| Field | Type | Description | Constraints |
|---|---|---|---|
uuid |
String |
Unique identifier for the project |
|
name |
String |
Project Name |
|
startDate |
String |
Project Start Date |
Format: "yyyy-MM-dd" |
endDate |
String |
Project End Date |
Format: "yyyy-MM-dd" |
status |
String |
Status of project |
Enums: ACTIVE, INACTIVE, DELETED |
company.uuid |
String |
Unique identifier for the company that owns the project |
|
company.name |
String |
Name of the company that owns the project |
|
createdBy.uuid |
String |
Unique identifier for the user who created the project |
|
createdBy.name |
String |
Name of the user who created the project |
|
updatedBy.uuid |
String |
Unique identifier for the user who last updated the project |
|
updatedBy.name |
String |
Name of the user who last updated the project |
|
createdAt |
String |
Date and Time (UTC) when the project was created |
Format: "yyyy-MM-ddThh:mm:ssZ" |
updatedAt |
String |
Date and Time (UTC) when the project was updated |
Format: "yyyy-MM-ddThh:mm:ssZ" |
Usage Example with Curl
Curl request
$ curl 'https://developer.rakenapp.com/api/projects/212ea2dd-1cfd-4797-bfe0-6d4e90c20396/childProjects' -i -X GET
Response body
{
"page" : {
"offset" : 0,
"limit" : 3,
"totalElements" : 3
},
"collection" : [ {
"createdAt" : "2022-07-17T22:47:03Z",
"updatedBy" : {
"name" : "Maryln Romaguera DVM",
"uuid" : "51ceab75-df16-4882-a70d-20eb2bfbcbe3"
},
"endDate" : "2022-12-01",
"createdBy" : {
"name" : "Bennie Powlowski III",
"uuid" : "ad29e17f-951a-4507-9b1f-60d05f82c25b"
},
"name" : "Optio ratione suscipit aut eligendi quas dolorum nemo.",
"company" : {
"name" : "Brakus-Lockman",
"uuid" : "eaf9d12d-fc8d-4d08-bef1-48e551439393"
},
"uuid" : "f4f58a84-3b7f-4fe3-8392-590ca3824257",
"startDate" : "2022-01-01",
"status" : "ACTIVE",
"updatedAt" : "2022-07-19T20:41:27Z"
}, {
"createdAt" : "2022-07-17T22:47:03Z",
"updatedBy" : {
"name" : "Israel Frami",
"uuid" : "fceeb5d2-265d-4ec5-85af-081bba9b4a3f"
},
"endDate" : "2022-12-01",
"createdBy" : {
"name" : "Shizuko Stamm III",
"uuid" : "11174800-c23f-4acf-a11a-dc0213ed461a"
},
"name" : "Reprehenderit reiciendis magni praesentium sed.",
"company" : {
"name" : "Hayes-Becker",
"uuid" : "857f2ecd-1eb0-4a71-b48d-4afa73a06fd0"
},
"uuid" : "7c142f8a-2971-43eb-8b7e-5c06b6dbc6a5",
"startDate" : "2022-01-01",
"status" : "INACTIVE",
"updatedAt" : "2022-07-19T20:41:27Z"
}, {
"createdAt" : "2022-07-17T22:47:03Z",
"updatedBy" : {
"name" : "Ezekiel Luettgen DDS",
"uuid" : "05b86fab-67db-4684-99a1-96095fd908c1"
},
"endDate" : "2022-12-01",
"createdBy" : {
"name" : "Willodean Crist",
"uuid" : "25bd419c-8c91-4a6b-9439-6a47f5a50d7e"
},
"name" : "Odit culpa mollitia animi nam.",
"company" : {
"name" : "Legros LLC",
"uuid" : "9f42535f-bbbd-4592-ac88-2686d6827b26"
},
"uuid" : "3cd3361a-7d60-4c97-a0a7-b50f5707d4dd",
"startDate" : "2022-01-01",
"status" : "ACTIVE",
"updatedAt" : "2022-07-19T20:41:27Z"
} ]
}
Get Project Notes
GET /projects/{uuid}/notes
Query parameters
| Parameter | Description | Required | Constraints |
|---|---|---|---|
fromDate |
Return notes created at or after this date. fromDate must be before or equal to toDate. The date range is capped to 31 days to toDate. |
Yes |
Format: "yyyy-MM-dd" |
toDate |
Return notes created at or before this date. |
Yes |
Format: "yyyy-MM-dd" |
Response fields
| Field | Type | Description | Constraints |
|---|---|---|---|
uuid |
String |
Unique identifier for the note |
|
description |
String |
Note description |
|
category |
String |
Note category |
Enums: NOTES, QUALITY, SAFETY |
date |
String |
Note date |
Format: "yyyy-MM-dd" |
attachments |
Array |
Note attachments |
|
attachments[].uuid |
String |
Unique identifier for this attachment |
|
attachments[].mediaType |
String |
Media type for this attachment |
Enums: IMAGE, VIDEO, DOCUMENT, AUDIO |
attachments[].url |
String |
URL for this attachment) |
|
attachments[].thumbnailUrl |
String |
Thumbnail URL for this attachment |
|
attachments[].contentType |
String |
Content type of the media, e.g., "image/jpeg" |
|
attachments[].description |
String |
Description of this attachment |
|
attachments[].fileName |
String |
File name of this attachment |
|
attachments[].fileSize |
Number |
Size of this attachment in bytes |
|
createdBy.uuid |
String |
Unique identifier for the user who created the note |
|
createdBy.name |
String |
Name of the user who created the note |
|
updatedBy.uuid |
String |
Unique identifier for the user who last updated the note |
|
updatedBy.name |
String |
Name of the user who last updated the note |
|
createdAt |
String |
Date and Time (UTC) when the note was created |
Format: "yyyy-MM-ddThh:mm:ssZ" |
updatedAt |
String |
Date and Time (UTC) when the note was last updated |
Format: "yyyy-MM-ddThh:mm:ssZ" |
Usage Example with Curl
Curl request
$ curl 'https://developer.rakenapp.com/api/projects/b62e6f24-96b3-48a2-b1a9-165f191a8fb4/notes?fromDate=2022-07-01&toDate=2022-07-31&limit=5&offset=5' -i -X GET
Response body
{
"page" : {
"next" : "/projects/b62e6f24-96b3-48a2-b1a9-165f191a8fb4/notes?offset=10&limit=5",
"offset" : 5,
"previous" : "/projects/b62e6f24-96b3-48a2-b1a9-165f191a8fb4/notes?offset=0&limit=5",
"limit" : 5,
"nextOffset" : "10",
"totalElements" : 15
},
"collection" : [ {
"date" : "2022-07-17",
"createdAt" : "2022-07-17T22:47:03Z",
"attachments" : [ {
"fileName" : "explicabo.jpg",
"fileSize" : 93840,
"description" : "Description",
"mediaType" : "IMAGE",
"uuid" : "b6c95d68-333a-4687-98ab-5598fbe7dbbb",
"contentType" : "image/png",
"url" : "https://www.example.com/image",
"thumbnailUrl" : "https://www.example.com/thumbnailImage"
}, {
"fileName" : "voluptatem.jpg",
"fileSize" : 86438,
"description" : "Description",
"mediaType" : "IMAGE",
"uuid" : "e807773c-984e-45b7-8145-21fecb8ecce9",
"contentType" : "image/png",
"url" : "https://www.example.com/image",
"thumbnailUrl" : "https://www.example.com/thumbnailImage"
} ],
"updatedBy" : {
"name" : "Mr. Hollie Tremblay",
"uuid" : "4fa438e0-d8ca-4b36-aa55-43e4005c9323"
},
"createdBy" : {
"name" : "Wilbur Lueilwitz",
"uuid" : "654de93c-51b5-41a2-9287-a279fb9f76e5"
},
"description" : "Inventore inventore excepturi officiis quibusdam est.",
"category" : "SAFETY",
"uuid" : "f063775a-93ef-48a8-a8d9-639b77ef84df",
"updatedAt" : "2022-07-19T20:41:27Z"
}, {
"date" : "2022-07-17",
"createdAt" : "2022-07-17T22:47:03Z",
"attachments" : [ {
"fileName" : "laboriosam.jpg",
"fileSize" : 42258,
"description" : "Description",
"mediaType" : "IMAGE",
"uuid" : "95c73ca1-1e6f-47d8-a0c5-aa41cc2c051d",
"contentType" : "image/png",
"url" : "https://www.example.com/image",
"thumbnailUrl" : "https://www.example.com/thumbnailImage"
}, {
"fileName" : "eligendi.jpg",
"fileSize" : 18998,
"description" : "Description",
"mediaType" : "IMAGE",
"uuid" : "5f2e8fbe-026d-4ac6-99c2-1eeefd92cd49",
"contentType" : "image/png",
"url" : "https://www.example.com/image",
"thumbnailUrl" : "https://www.example.com/thumbnailImage"
} ],
"updatedBy" : {
"name" : "Dirk Bayer",
"uuid" : "a83ed47a-c862-4998-99f6-b0c2779ee134"
},
"createdBy" : {
"name" : "Miss Morton O'Keefe",
"uuid" : "ed7012c2-f2d3-4f8d-9642-469b5d561099"
},
"description" : "Amet ad voluptates est incidunt fugiat odit.",
"category" : "NOTES",
"uuid" : "a7bdb1a8-8ef8-4536-b5d1-3286fcc236f6",
"updatedAt" : "2022-07-19T20:41:27Z"
}, {
"date" : "2022-07-17",
"createdAt" : "2022-07-17T22:47:03Z",
"attachments" : [ {
"fileName" : "aliquam.jpg",
"fileSize" : 92067,
"description" : "Description",
"mediaType" : "IMAGE",
"uuid" : "d8dfceba-6939-4bb9-91af-a78c8aabc912",
"contentType" : "image/png",
"url" : "https://www.example.com/image",
"thumbnailUrl" : "https://www.example.com/thumbnailImage"
}, {
"fileName" : "atque.jpg",
"fileSize" : 93555,
"description" : "Description",
"mediaType" : "IMAGE",
"uuid" : "c5a35b10-f20b-4c63-ae47-84a9130e8467",
"contentType" : "image/png",
"url" : "https://www.example.com/image",
"thumbnailUrl" : "https://www.example.com/thumbnailImage"
} ],
"updatedBy" : {
"name" : "Mr. Elliott Tromp",
"uuid" : "bd8f34a3-56b6-4565-a15f-06308e4a686a"
},
"createdBy" : {
"name" : "Mitch Hessel",
"uuid" : "8f9ec8f6-65bf-449b-936d-ad3ee0d34483"
},
"description" : "Ipsum tempora laudantium necessitatibus similique neque cupiditate fugit.",
"category" : "SAFETY",
"uuid" : "e68b9543-fe16-4b24-8261-9905d23d7f3b",
"updatedAt" : "2022-07-19T20:41:27Z"
}, {
"date" : "2022-07-17",
"createdAt" : "2022-07-17T22:47:03Z",
"attachments" : [ {
"fileName" : "unde.jpg",
"fileSize" : 74328,
"description" : "Description",
"mediaType" : "IMAGE",
"uuid" : "17621acb-1e2a-4fbb-b7cf-40fb86bbaf06",
"contentType" : "image/png",
"url" : "https://www.example.com/image",
"thumbnailUrl" : "https://www.example.com/thumbnailImage"
}, {
"fileName" : "aut.jpg",
"fileSize" : 34371,
"description" : "Description",
"mediaType" : "IMAGE",
"uuid" : "ac82b5ad-7c15-4b16-b7e9-a8f28bb9ed28",
"contentType" : "image/png",
"url" : "https://www.example.com/image",
"thumbnailUrl" : "https://www.example.com/thumbnailImage"
} ],
"updatedBy" : {
"name" : "Sunshine Morar",
"uuid" : "4b81a634-646f-4caa-be8e-753a21a6befb"
},
"createdBy" : {
"name" : "Marco Kerluke",
"uuid" : "0718eed7-95ce-48e2-b219-840bbc6dd4d7"
},
"description" : "Maxime sequi exercitationem distinctio.",
"category" : "QUALITY",
"uuid" : "21e42b9c-ebf5-4ba7-a448-41724e50eaf1",
"updatedAt" : "2022-07-19T20:41:27Z"
}, {
"date" : "2022-07-17",
"createdAt" : "2022-07-17T22:47:03Z",
"attachments" : [ {
"fileName" : "quos.jpg",
"fileSize" : 99041,
"description" : "Description",
"mediaType" : "IMAGE",
"uuid" : "a0f445f4-ea87-47c1-afd7-63ef922a52ab",
"contentType" : "image/png",
"url" : "https://www.example.com/image",
"thumbnailUrl" : "https://www.example.com/thumbnailImage"
}, {
"fileName" : "neque.jpg",
"fileSize" : 75446,
"description" : "Description",
"mediaType" : "IMAGE",
"uuid" : "d0bbf3c6-c93d-4fae-be4d-a14dbca7f497",
"contentType" : "image/png",
"url" : "https://www.example.com/image",
"thumbnailUrl" : "https://www.example.com/thumbnailImage"
} ],
"updatedBy" : {
"name" : "Gregg Williamson IV",
"uuid" : "325cae66-510a-4a2c-9797-2ed669ff20dd"
},
"createdBy" : {
"name" : "Codi Beer",
"uuid" : "c021e7fd-394e-4ce9-b634-8f7850736d34"
},
"description" : "Expedita molestiae officiis occaecati earum iusto quae provident.",
"category" : "QUALITY",
"uuid" : "18a05482-b777-43d5-9d03-a6e634898649",
"updatedAt" : "2022-07-19T20:41:27Z"
} ]
}
Get Project Members
GET /projects/{uuid}/members
Query parameters
| Parameter | Description | Required | Constraints |
|---|---|---|---|
statuses |
Return only members with the given statuses. Multiple statuses can be specified. If not specified, only |
No |
Enums: ACTIVE, INVITED, INACTIVE, DELETED |
classificationUuids |
Return only members for the given classification |
No |
|
roles |
Return only members with the given roles. More than one role may be specified. |
No |
Enums: ROLE_WORKER, ROLE_USER, ROLE_ADMIN, ROLE_PROJECT_MEMBER |
Response fields
| Field | Type | Description | Constraints |
|---|---|---|---|
uuid |
String |
Unique identifier for the member |
|
firstName |
String |
First Name |
|
lastName |
String |
Last Name |
|
role |
String |
Role |
Enums: ROLE_WORKER, ROLE_USER, ROLE_ACCOUNT_ADMIN, ROLE_ADMIN, ROLE_PROJECT_MEMBER |
String |
|||
phoneNumber |
String |
Phone Number |
|
username |
String |
User name (not applicable to ROLE_WORKER that cannot log in Raken |
|
title |
String |
Title |
|
employeeId |
String |
Employee Id (Unique if not empty) |
|
classificationUuid |
String |
Unique identifier of the classification for the member |
|
createdAt |
String |
Date and Time (UTC) when the member was created |
Format: "yyyy-MM-ddThh:mm:ssZ" |
updatedAt |
String |
Date and Time (UTC) when the member was updated |
Format: "yyyy-MM-ddThh:mm:ssZ" |
lastLoginAt |
String |
Date and Time (UTC) when the member last logged in |
Format: "yyyy-MM-ddThh:mm:ssZ" |
status |
String |
Member status |
Enums: ACTIVE, INVITED, INACTIVE, DELETED |
timeSettings |
Object |
Default times settings for the member |
|
timeSettings.blockTimeClock |
Boolean |
Flag that indicates whether or not this member may access the Time Clock feature. If true, they may not access the time clock. If true, they may not access the time clock |
Boolean value: true or false |
timeSettings.defaultCostCode |
String |
The unique identifier of this member’s default cost code |
|
timeSettings.defaultShift |
String |
The unique identifier of this member’s default shift |
Usage Example with Curl
Curl request
$ curl 'https://developer.rakenapp.com/api/projects/c13e22cd-621b-41b8-9d7f-816801f76350/members?statuses=ACTIVE,DELETED,INACTIVE,INVITED&roles=ROLE_WORKER,ROLE_USER&classificationUuids=6e6cb087-e0be-476d-9603-1059180c9ce6,c3cf7b66-bbd0-42ef-94c5-447b7b4fc312&limit=5&offset=5' -i -X GET
Response body
{
"page" : {
"next" : "/projects/c13e22cd-621b-41b8-9d7f-816801f76350/members?statuses=ACTIVE,DELETED,INACTIVE,INVITED&roles=ROLE_WORKER,ROLE_USER&classificationUuids=6e6cb087-e0be-476d-9603-1059180c9ce6,c3cf7b66-bbd0-42ef-94c5-447b7b4fc312&offset=10&limit=5",
"offset" : 5,
"previous" : "/projects/c13e22cd-621b-41b8-9d7f-816801f76350/members?statuses=ACTIVE,DELETED,INACTIVE,INVITED&roles=ROLE_WORKER,ROLE_USER&classificationUuids=6e6cb087-e0be-476d-9603-1059180c9ce6,c3cf7b66-bbd0-42ef-94c5-447b7b4fc312&offset=0&limit=5",
"limit" : 5,
"nextOffset" : "10",
"totalElements" : 15
},
"collection" : [ {
"lastName" : "McDermott",
"role" : "ROLE_USER",
"employeeId" : "EMP00001",
"classificationUuid" : "db8467be-04b1-44ea-9384-f5592b233cdf",
"title" : "Mr",
"uuid" : "e439c7c4-0ad6-4bc6-a3ec-740a1754a2d3",
"firstName" : "Jacinda",
"createdAt" : "2022-07-17T22:47:03Z",
"phoneNumber" : "(472) 983-5386",
"lastLoginAt" : "2022-07-18T12:40:33Z",
"email" : "giselle.herzog@yahoo.com",
"timeSettings" : {
"defaultCostCode" : "cc304d5e-b19a-4a61-a15c-1d2f5b48f8ff",
"defaultShift" : "e61cc10e-227c-4418-b120-e9f69b2bb4fa",
"blockTimeClock" : true
},
"username" : "giselle.herzog@yahoo.com",
"status" : "ACTIVE",
"updatedAt" : "2022-07-19T22:41:27Z"
}, {
"lastName" : "Denesik",
"role" : "ROLE_USER",
"employeeId" : "EMP00002",
"classificationUuid" : "81d46a9e-6874-489a-a622-c09085eefa76",
"title" : "Mrs",
"uuid" : "f81213a3-f8f8-43b3-804a-be105b9ae802",
"firstName" : "Gilberte",
"createdAt" : "2022-07-17T22:47:03Z",
"phoneNumber" : "(305) 261-1572",
"lastLoginAt" : "2022-07-18T12:40:33Z",
"email" : "dorian.boyer@gmail.com",
"timeSettings" : {
"defaultCostCode" : "9b82abc7-4164-4791-984b-72d10cb47c5a",
"defaultShift" : "6689a685-da00-47a0-85a3-5ddc1933fab4",
"blockTimeClock" : true
},
"username" : "dorian.boyer@gmail.com",
"status" : "ACTIVE",
"updatedAt" : "2022-07-19T22:41:27Z"
}, {
"lastName" : "Morar",
"role" : "ROLE_USER",
"employeeId" : "EMP00003",
"classificationUuid" : "dd216a51-f127-4a4a-beb0-31b75f247233",
"title" : "Mr",
"uuid" : "139af7eb-3f15-4c37-ae23-f3adcd80815b",
"firstName" : "Lilla",
"createdAt" : "2022-07-17T22:47:03Z",
"phoneNumber" : "(682) 586-4584",
"lastLoginAt" : "2022-07-18T12:40:33Z",
"email" : "julienne.reichel@gmail.com",
"timeSettings" : {
"defaultCostCode" : "3253f56a-a4e7-4b86-9711-9746fb76aaba",
"defaultShift" : "e3c010de-084a-42b1-80bc-ab6434568cde",
"blockTimeClock" : true
},
"username" : "julienne.reichel@gmail.com",
"status" : "ACTIVE",
"updatedAt" : "2022-07-19T22:41:27Z"
}, {
"lastName" : "Mante",
"role" : "ROLE_USER",
"employeeId" : "EMP00004",
"classificationUuid" : "48b705ea-132a-4cd5-9a9d-a980b62b50f0",
"title" : "Mrs",
"uuid" : "1c88771f-8d1e-4bbf-a0b7-630778f5e0b1",
"firstName" : "Henry",
"createdAt" : "2022-07-17T22:47:03Z",
"phoneNumber" : "(983) 714-3831",
"lastLoginAt" : "2022-07-18T12:40:33Z",
"email" : "diego.weimann@gmail.com",
"timeSettings" : {
"defaultCostCode" : "02d41417-5ece-4414-ba3b-3e4852ceaeee",
"defaultShift" : "34bb99de-1b4c-482c-b5bc-57cf959b94a3",
"blockTimeClock" : true
},
"username" : "diego.weimann@gmail.com",
"status" : "ACTIVE",
"updatedAt" : "2022-07-19T22:41:27Z"
}, {
"lastName" : "Willms",
"role" : "ROLE_USER",
"employeeId" : "EMP00005",
"classificationUuid" : "6c0db04b-1822-4c6b-a997-7730b770ca6c",
"title" : "Mr",
"uuid" : "6a1135b9-3306-4ef7-bd0e-605c2c446c1c",
"firstName" : "Soila",
"createdAt" : "2022-07-17T22:47:03Z",
"phoneNumber" : "(571) 353-9612",
"lastLoginAt" : "2022-07-18T12:40:33Z",
"email" : "ian.legros@hotmail.com",
"timeSettings" : {
"defaultCostCode" : "a46296dc-d981-49a9-81e8-f8c05f0f53b3",
"defaultShift" : "53ba3412-4771-4414-a2c4-64a3a86dc8a8",
"blockTimeClock" : true
},
"username" : "ian.legros@hotmail.com",
"status" : "ACTIVE",
"updatedAt" : "2022-07-19T22:41:27Z"
} ]
}
Get Production Insights for a Project
GET /projects/{uuid}/productionInsights
Query parameters
| Parameter | Description | Required | Constraints |
|---|---|---|---|
fromDate |
Return production insights at or after this date. Defaults to the project start date if not provided. fromDate must be before or equal to toDate. |
No |
Format: "yyyy-MM-dd" |
toDate |
Return production insights at or before this date. Defaults to today’s date if not provided |
No |
Format: "yyyy-MM-dd" |
manualTracking |
Return projected totals data based on manual percent complete entries. If using automatic tracking based on materials installed, set to FALSE. Defaults to FALSE if not provided |
No |
Boolean value: true or false |
costCodeUuid |
Return production insights for specific cost code uuid |
No |
|
costCodeDivision |
Return production insights for specific cost code division |
No |
Response fields
| Field | Type | Description | Constraints |
|---|---|---|---|
division |
String |
Cost Code division name |
|
budgetedHours |
Number |
Budgeted hours set for the Division |
|
actualHours |
Number |
Actual hours completed for the Division |
|
completeHoursPercent |
Number |
Complete percentage of budgeted hours for the Division (actualHours/budgetedHours) |
|
remainingHours |
Number |
Hours remaining in the division budget (budgetedHours - actualHours) |
|
completeQuantityPercent |
Number |
Percentage of material completed for the Division |
|
projectedTotalHours |
Number |
Projected total hours for the Division |
|
projectedHoursGainOrLoss |
Number |
Projected gain or lost of hours for the Division (budgetedHours - projectedTotalHours) |
|
costCodes |
Array |
Production insights by Cost Code in the Division |
|
costCodes[].actualHours |
Number |
Actual hours worked under the Cost Code |
|
costCodes[].actualQuantity |
Number |
Actual material quantity completed under the Cost Code |
|
costCodes[].projectedTotalHours |
Number |
Projected total hours on the Cost Code |
|
costCodes[].projectedHoursGainOrLoss |
Number |
Projected gain or lost of hours on the Cost Code (budgetedHours - projectedTotalHours) |
|
costCodes[].budgetedHours |
Number |
Budgeted hours set for the Cost Code |
|
costCodes[].budgetedQuantity |
Number |
Budgeted material quantity set for the Cost Code |
|
costCodes[].completeHoursPercent |
Number |
Complete percentage of budgeted hours for the Cost Code (actualHours/budgetedHours) |
|
costCodes[].progressHoursPercent |
Number |
Manual estimate of task completion percentage for the Cost Code entered by user |
|
costCodes[].remainingHours |
Number |
Remaining hours left in the budgeted hours for the Cost Code (budgetedHours - actualHours) |
|
costCodes[].costCode |
Object |
Details of the Cost Code |
|
costCodes[].costCode.uuid |
String |
Unique identifier for the Cost Code |
|
costCodes[].costCode.code |
String |
Code for the Cost Code |
|
costCodes[].costCode.division |
String |
Division for the Cost Code |
|
costCodes[].costCode.description |
String |
Description of the Cost Code |
|
costCodes[].materialStats |
Array |
Statistics of material consumption on the Cost Code |
|
costCodes[].materialStats[].budgetedQuantity |
Number |
Budgeted quantity of the Material |
|
costCodes[].materialStats[].actualQuantity |
Number |
Actual quantity installed for the Material |
|
costCodes[].materialStats[].completeQuantityPercent |
Number |
Percentage of actual quantity installed vs budgeted quantity of the Material (actualQuantity / budgetedQuantity) |
|
costCodes[].materialStats[].material |
Object |
Details of the Material |
|
costCodes[].materialStats[].material.uuid |
String |
Unique identifier of the Material |
|
costCodes[].materialStats[].material.name |
String |
Name of the Material |
|
costCodes[].materialStats[].material.materialUnit |
Object |
Material unit |
|
costCodes[].materialStats[].material.materialUnit.uuid |
String |
Unique identifier of the material unit |
|
costCodes[].materialStats[].material.materialUnit.name |
String |
Name of the material unit |
Usage Example with Curl
Curl request
$ curl 'https://developer.rakenapp.com/api/projects/2d866396-ce16-49e7-9e4a-5d61309fd62e/productionInsights?fromDate=2022-07-01&toDate=2022-07-31&manualTracking=true&costCodeUuid=174a11af-03bc-4866-b2ff-ba1a99f126f8&costCodeDivision=division&limit=5&offset=5' -i -X GET
Response body
{
"page" : {
"next" : "/projects/2d866396-ce16-49e7-9e4a-5d61309fd62e/notes?offset=10&limit=5",
"offset" : 5,
"previous" : "/projects/2d866396-ce16-49e7-9e4a-5d61309fd62e/notes?offset=0&limit=5",
"limit" : 5,
"nextOffset" : "10",
"totalElements" : 15
},
"collection" : [ {
"division" : "01",
"completeQuantityPercent" : 0.6,
"budgetedHours" : 206.6,
"costCodes" : [ {
"materialStats" : [ {
"completeQuantityPercent" : 1.04,
"material" : {
"name" : "Sand",
"uuid" : "bf3867c6-a1db-47b3-a789-4943ec0977fd",
"materialUnit" : {
"name" : "inch",
"uuid" : "f191c2be-cb1c-4552-b7ca-18dde4435664"
}
},
"actualQuantity" : 957.89,
"budgetedQuantity" : 918.29
}, {
"completeQuantityPercent" : 0.83,
"material" : {
"name" : "Sand",
"uuid" : "2f47906c-53f1-4864-9c1a-8c36fadaa09b",
"materialUnit" : {
"name" : "inch",
"uuid" : "39003454-ea9a-4511-91a2-06b90b0985b2"
}
},
"actualQuantity" : 781.41,
"budgetedQuantity" : 940.42
} ],
"costCode" : {
"division" : "01",
"code" : "27-21693",
"description" : "Assumenda quia at laborum.",
"uuid" : "8816bed6-1210-40be-97a6-15f216965c11"
},
"budgetedHours" : 722.59,
"actualQuantity" : 6.2,
"remainingHours" : -348.83,
"budgetedQuantity" : 5.79,
"projectedHoursGainOrLoss" : 211.14,
"projectedTotalHours" : 933.74,
"actualHours" : 1071.42,
"completeHoursPercent" : 1.48,
"progressHoursPercent" : 0.03
}, {
"materialStats" : [ {
"completeQuantityPercent" : 0.96,
"material" : {
"name" : "Sand",
"uuid" : "f6ae384e-2509-4ac2-951d-78a287570026",
"materialUnit" : {
"name" : "inch",
"uuid" : "b787d43f-be32-42c1-8aed-cd39f461f8f1"
}
},
"actualQuantity" : 223.68,
"budgetedQuantity" : 231.18
}, {
"completeQuantityPercent" : 0.51,
"material" : {
"name" : "Sand",
"uuid" : "7692a32e-70d8-45b0-8bb9-2495e0d1258e",
"materialUnit" : {
"name" : "inch",
"uuid" : "425bc23d-714d-4ecf-92df-033c955ea0df"
}
},
"actualQuantity" : 19.18,
"budgetedQuantity" : 37.33
} ],
"costCode" : {
"division" : "01",
"code" : "62-07294",
"description" : "Praesentium explicabo.",
"uuid" : "e0a36189-78cd-4754-a08a-08de2d7cff3c"
},
"budgetedHours" : 388.89,
"actualQuantity" : 17.48,
"remainingHours" : 231.34,
"budgetedQuantity" : 7.44,
"projectedHoursGainOrLoss" : 344.66,
"projectedTotalHours" : 733.55,
"actualHours" : 157.55,
"completeHoursPercent" : 0.4,
"progressHoursPercent" : 0.41
} ],
"remainingHours" : 81.92,
"projectedHoursGainOrLoss" : 127.56,
"projectedTotalHours" : 334.16,
"actualHours" : 124.67,
"completeHoursPercent" : 0.6
}, {
"division" : "02",
"completeQuantityPercent" : 1.23,
"budgetedHours" : 640.15,
"costCodes" : [ {
"materialStats" : [ {
"completeQuantityPercent" : 0.88,
"material" : {
"name" : "Sand",
"uuid" : "977e9987-3d57-4867-be1d-453e187e4a34",
"materialUnit" : {
"name" : "inch",
"uuid" : "6787af6d-244f-48fd-a10a-588d2dcc632d"
}
},
"actualQuantity" : 674.7,
"budgetedQuantity" : 758.17
}, {
"completeQuantityPercent" : 0.31,
"material" : {
"name" : "Sand",
"uuid" : "5924de87-246b-4016-9d6b-8cfe22d8ff71",
"materialUnit" : {
"name" : "inch",
"uuid" : "1384e96c-d192-48b8-acca-53f260a6192f"
}
},
"actualQuantity" : 45.45,
"budgetedQuantity" : 143.86
} ],
"costCode" : {
"division" : "02",
"code" : "07-72911",
"description" : "Id magnam magnam.",
"uuid" : "f45b7fe3-7f25-4f73-b273-8a9e791e9a89"
},
"budgetedHours" : 842.66,
"actualQuantity" : 33.57,
"remainingHours" : -364.4,
"budgetedQuantity" : 92.49,
"projectedHoursGainOrLoss" : 767.15,
"projectedTotalHours" : 1609.82,
"actualHours" : 1207.06,
"completeHoursPercent" : 1.43,
"progressHoursPercent" : 0.52
} ],
"remainingHours" : -150.26,
"projectedHoursGainOrLoss" : 484.12,
"projectedTotalHours" : 1124.27,
"actualHours" : 790.4,
"completeHoursPercent" : 1.23
}, {
"division" : "03",
"completeQuantityPercent" : 1.12,
"budgetedHours" : 298.73,
"costCodes" : [ {
"materialStats" : [ {
"completeQuantityPercent" : 1.24,
"material" : {
"name" : "Sand",
"uuid" : "fa1ea715-0316-4f7e-8188-a3f7f071cc0b",
"materialUnit" : {
"name" : "inch",
"uuid" : "7f7a8d93-5163-4ef3-b7a5-42fbfd9e4df0"
}
},
"actualQuantity" : 1014.62,
"budgetedQuantity" : 814.92
}, {
"completeQuantityPercent" : 0.8,
"material" : {
"name" : "Sand",
"uuid" : "d530a0ff-5c17-4c29-be86-d433e05ba356",
"materialUnit" : {
"name" : "inch",
"uuid" : "a9ce2474-b252-4ec1-bc4a-ef57fd79efb9"
}
},
"actualQuantity" : 59.94,
"budgetedQuantity" : 74.72
} ],
"costCode" : {
"division" : "03",
"code" : "95-55095",
"description" : "Aut necessitatibus modi.",
"uuid" : "f5b6713b-4d46-4b3a-8d2a-d39e5098291f"
},
"budgetedHours" : 447.19,
"actualQuantity" : 88.2,
"remainingHours" : 69.4,
"budgetedQuantity" : 42.24,
"projectedHoursGainOrLoss" : 92.06,
"projectedTotalHours" : 539.25,
"actualHours" : 377.79,
"completeHoursPercent" : 0.84,
"progressHoursPercent" : 0.1
} ],
"remainingHours" : -38.82,
"projectedHoursGainOrLoss" : 260.42,
"projectedTotalHours" : 559.15,
"actualHours" : 337.55,
"completeHoursPercent" : 1.12
}, {
"division" : "04",
"completeQuantityPercent" : 0.16,
"budgetedHours" : 898.37,
"costCodes" : [ {
"materialStats" : [ {
"completeQuantityPercent" : 1.38,
"material" : {
"name" : "Sand",
"uuid" : "8d4fc979-e1db-4228-a179-50c8ebecac9b",
"materialUnit" : {
"name" : "inch",
"uuid" : "bcc942b6-7289-4207-8e15-c1e6d82be34f"
}
},
"actualQuantity" : 616.95,
"budgetedQuantity" : 446.85
}, {
"completeQuantityPercent" : 0.34,
"material" : {
"name" : "Sand",
"uuid" : "79ccb2fd-b0ef-421c-abf4-352e7ce2af84",
"materialUnit" : {
"name" : "inch",
"uuid" : "55fdb0d4-f071-4bfe-a72c-ad4c8cd21688"
}
},
"actualQuantity" : 119.09,
"budgetedQuantity" : 341.54
} ],
"costCode" : {
"division" : "04",
"code" : "48-18663",
"description" : "Ea quasi.",
"uuid" : "cc46b31d-e1ea-4d5c-b83e-ba1a83d7b028"
},
"budgetedHours" : 423.8,
"actualQuantity" : 59.77,
"remainingHours" : 31.04,
"budgetedQuantity" : 59.49,
"projectedHoursGainOrLoss" : 404.49,
"projectedTotalHours" : 828.29,
"actualHours" : 392.75,
"completeHoursPercent" : 0.92,
"progressHoursPercent" : 0.04
} ],
"remainingHours" : 754.27,
"projectedHoursGainOrLoss" : 596.33,
"projectedTotalHours" : 1494.7,
"actualHours" : 144.09,
"completeHoursPercent" : 0.16
}, {
"division" : "05",
"completeQuantityPercent" : 1.15,
"budgetedHours" : 191.5,
"costCodes" : [ {
"materialStats" : [ {
"completeQuantityPercent" : 1.12,
"material" : {
"name" : "Sand",
"uuid" : "c03e430c-8d1d-445e-9804-f85ef83ccd5a",
"materialUnit" : {
"name" : "inch",
"uuid" : "6c990386-8a41-42d9-91fe-240244d75619"
}
},
"actualQuantity" : 1033.62,
"budgetedQuantity" : 918.98
}, {
"completeQuantityPercent" : 0.37,
"material" : {
"name" : "Sand",
"uuid" : "276d7b7e-fa88-4f5e-b1f0-4e9aae013be7",
"materialUnit" : {
"name" : "inch",
"uuid" : "d34f126a-929b-400b-81ba-1c60b5ed7bcb"
}
},
"actualQuantity" : 361.59,
"budgetedQuantity" : 975.85
} ],
"costCode" : {
"division" : "05",
"code" : "78-66414",
"description" : "Qui blanditiis ullam quo.",
"uuid" : "63f7e41b-57f1-41a5-96c4-451017d414b1"
},
"budgetedHours" : 175.68,
"actualQuantity" : 35.72,
"remainingHours" : 149.62,
"budgetedQuantity" : 89.73,
"projectedHoursGainOrLoss" : 170.59,
"projectedTotalHours" : 346.27,
"actualHours" : 26.06,
"completeHoursPercent" : 0.14,
"progressHoursPercent" : 0.78
}, {
"materialStats" : [ {
"completeQuantityPercent" : 1.28,
"material" : {
"name" : "Sand",
"uuid" : "40bf51aa-a512-49a9-856e-76f4b1518b09",
"materialUnit" : {
"name" : "inch",
"uuid" : "ec3526f0-7c42-44f1-a5d7-260b09d6197e"
}
},
"actualQuantity" : 569.18,
"budgetedQuantity" : 442.57
}, {
"completeQuantityPercent" : 0.87,
"material" : {
"name" : "Sand",
"uuid" : "5d82c49d-d199-4fe7-bfd6-ceef8821edbb",
"materialUnit" : {
"name" : "inch",
"uuid" : "a3f5d49b-5e54-4bc6-b7f8-9a0ab71f9514"
}
},
"actualQuantity" : 26.44,
"budgetedQuantity" : 30.15
} ],
"costCode" : {
"division" : "05",
"code" : "06-96202",
"description" : "Nisi fugiat ducimus dolore.",
"uuid" : "26e3fefa-9204-4465-9ffe-c14c97bef35e"
},
"budgetedHours" : 951.79,
"actualQuantity" : 9.69,
"remainingHours" : -55.61,
"budgetedQuantity" : 78.93,
"projectedHoursGainOrLoss" : 299.13,
"projectedTotalHours" : 1250.93,
"actualHours" : 1007.4,
"completeHoursPercent" : 1.05,
"progressHoursPercent" : 0.76
} ],
"remainingHours" : -29.15,
"projectedHoursGainOrLoss" : 38.46,
"projectedTotalHours" : 229.97,
"actualHours" : 220.65,
"completeHoursPercent" : 1.15
} ]
}
Shifts
List Shifts
GET /shifts
Query parameters
| Parameter | Description | Required | Constraints |
|---|---|---|---|
projectUuids |
Restrict the shifts to the projects represented by this UUID. |
No |
|
statuses |
Restrict the shifts to those with these statuses. Multiple statuses can be specified |
No |
Enums: ACTIVE, DELETED |
Response fields
| Field | Type | Description | Constraints |
|---|---|---|---|
uuid |
String |
Unique identifier for the shift |
|
code |
String |
Code for the shift |
|
name |
String |
Name for the shift |
|
status |
String |
Status for the shift |
Enums: ACTIVE, DELETED |
Usage Example with Curl
Curl request
$ curl 'https://developer.rakenapp.com/api/shifts?projectUuids=8169fd06-0997-4673-b537-4d9d401b8922&statuses=ACTIVE&limit=5&offset=5' -i -X GET
Response body
{
"page" : {
"offset" : 5,
"limit" : 5,
"totalElements" : 15,
"previous" : "/shifts?projectUuids=8169fd06-0997-4673-b537-4d9d401b8922&statuses=ACTIVE&offset=0&limit=5",
"next" : "/shifts?projectUuids=8169fd06-0997-4673-b537-4d9d401b8922&statuses=ACTIVE&offset=10&limit=5",
"nextOffset" : "10"
},
"collection" : [ {
"uuid" : "c07c8d32-aa99-4e89-a466-65875dd97870",
"name" : "Night Shift",
"code" : "NS",
"status" : "ACTIVE"
}, {
"uuid" : "7a27fb60-4063-4379-acfc-f5080344d356",
"name" : "Swing Shift",
"code" : "SS",
"status" : "ACTIVE"
} ]
}
Create Shift
POST /shifts
Request fields
| Field | Type | Description | Required | Constraints |
|---|---|---|---|---|
code |
String |
Code for the shift |
Yes |
Must not be blank Size must be between 0 and 5 inclusive |
name |
String |
Name for the shift |
Yes |
Size must be between 0 and 30 inclusive |
Response fields
| Field | Type | Description | Constraints |
|---|---|---|---|
uuid |
String |
Unique identifier for the shift |
|
code |
String |
Code for the shift |
|
name |
String |
Name for the shift |
|
status |
String |
Status for the shift |
Enums: ACTIVE, DELETED |
Usage Example with Curl
Curl request
$ curl 'https://developer.rakenapp.com/api/shifts' -i -X POST \
-H 'Content-Type: application/json' \
-d '{
"code" : "NS",
"name" : "Night Shift"
}'
Response body
{
"uuid" : "1fd46c7b-d920-40a9-877f-d6c67aae77be",
"name" : "Night Shift",
"code" : "NS",
"status" : "ACTIVE"
}
Update Shift
PATCH /shifts/{uuid}
| You can change a shift’s name or code but their combination has to be unique. |
Request fields
| Field | Type | Description | Required | Constraints |
|---|---|---|---|---|
code |
String |
Code for the shift |
No |
Must not be blank Size must be between 0 and 5 inclusive |
name |
String |
Name for the shift |
No |
Must not be blank Size must be between 0 and 30 inclusive |
Response fields
| Field | Type | Description | Constraints |
|---|---|---|---|
uuid |
String |
Unique identifier for the shift |
|
code |
String |
Code for the shift |
|
name |
String |
Name for the shift |
|
status |
String |
Status for the shift |
Enums: ACTIVE, DELETED |
Usage Example with Curl
Curl request
$ curl 'https://developer.rakenapp.com/api/shifts/224b6b7b-bedb-43d8-b5ef-dda3ea83aebb' -i -X PATCH \
-H 'Content-Type: application/json' \
-d '{
"code" : "NS",
"name" : "Night Shift"
}'
Response body
{
"uuid" : "224b6b7b-bedb-43d8-b5ef-dda3ea83aebb",
"name" : "Night Shift",
"code" : "NS",
"status" : "ACTIVE"
}
Time Cards
A time card records one worker’s hours for one day on one project. Every time card belongs to a work log, which groups the time cards for a project and date and holds the work description and photos entered alongside them. See Work Logs.
|
Where a time card’s work description and photos live
The To retrieve the work description for a time card, take its Deleted time cards, retrieved with |
List Time Cards
GET /timeCards
Query parameters
| Parameter | Description | Required | Constraints |
|---|---|---|---|
projectUuid |
Return time cards for this project |
No |
|
workerUuid |
Return time cards for this worker |
No |
|
fromDate |
Return time cards starting on this date. fromDate must be before or equal to toDate. The date range is capped to 31 days to toDate. |
No |
Format: "yyyy-MM-dd" |
toDate |
Return time cards ending on this date. |
No |
Format: "yyyy-MM-dd" |
changedSince |
Return only time cards updated at or after this time, inclusive. changedSince must be before or equal to changedUntil. The date range is capped to 31 days to changedUntil. |
No |
Format: "yyyy-MM-ddThh:mm:ssZ" |
changedUntil |
Return only time cards updated before this time, exclusive. |
No |
Format: "yyyy-MM-ddThh:mm:ssZ" |
deletedFrom |
Return only time cards deleted at or after this time, inclusive. deletedFrom must be before or equal to deletedTo. The date range is capped to 31 days to deletedTo. NOTE: when this, together with deletedTo, are provided ONLY deleted time cards will be fetched and other date params will be ignored. |
No |
Format: "yyyy-MM-ddThh:mm:ssZ" |
deletedTo |
Return only time cards deleted at or before this time, inclusive. NOTE: when this, together with deletedFrom, are provided ONLY deleted time cards will be fetched and other date params will be ignored. |
No |
Format: "yyyy-MM-ddThh:mm:ssZ" |
createdAt |
Return time cards created on this date |
No |
Format: "yyyy-MM-dd" |
updatedAt |
Return time cards updated on this date |
No |
Format: "yyyy-MM-dd" |
Response fields
| Field | Type | Description | Constraints |
|---|---|---|---|
uuid |
String |
Unique identifier for the time card |
|
workLogUuid |
String |
Unique identifier for the work log this time card belongs to. Use it to look the work log up in List Work Logs, where the card’s work description and photos are held. Not returned for deleted time cards. |
|
date |
String |
Date of the time card |
Format: "yyyy-MM-dd" |
totalHours |
Number |
Total hours on this time card |
|
project.uuid |
String |
Unique identifier for the Project for this time card |
|
worker.uuid |
String |
Unique identifier for the worker for this time card |
|
approved |
Boolean |
Flag indicating the approval status of the time card |
|
signed.uuid |
String |
Unique identifier for the user who signed the time card |
|
startTime |
String |
Start time for this time card. Exists only for project tracking start and end Time |
|
endTime |
String |
End time for this time card. Exists only for project tracking start and end Time |
|
note |
String |
Note for the time card |
|
createdAt |
String |
Date and Time (UTC) when this time card was created |
Format: "yyyy-MM-ddThh:mm:ssZ" |
updatedAt |
String |
Date and Time (UTC) when this time card was updated |
Format: "yyyy-MM-ddThh:mm:ssZ" |
deletedAt |
String |
Date and Time (UTC) when this time card was deleted |
|
createdBy.uuid |
String |
Unique identifier for the user who created the time card |
|
createdBy.name |
String |
Name of the user who created the time card |
|
updatedBy.uuid |
String |
Unique identifier for the user who updated the time card |
|
updatedBy.name |
String |
Name of the user who updated the time card |
|
breaks[].name |
String |
Break name |
|
breaks[].startTime |
String |
Break start time |
|
breaks[].duration |
Number |
Duration of break in minutes |
|
timeEntries[].shift.uuid |
String |
Unique identifier for the shift on the time entry |
|
timeEntries[].shift.name |
String |
Name for the shift on the time entry |
|
timeEntries[].shift.code |
String |
Code for the shift on the time entry |
|
timeEntries[].payType.uuid |
String |
Unique identifier for the pay type for the time entry |
|
timeEntries[].payType.name |
String |
Name for the pay type for the time entry |
|
timeEntries[].payType.code |
String |
Code for the pay type for the time entry |
|
timeEntries[].hours |
Number |
Hours in the time entry |
|
timeEntries[].classification.uuid |
String |
Unique identifier for the classification for the time entry |
|
timeEntries[].classification.name |
String |
Name for the classification for the time entry |
|
timeEntries[].costCode.uuid |
String |
Unique identifier for the cost code for the time entry |
|
timeEntries[].costCode.code |
String |
Code for the cost code for the time entry |
|
timeEntries[].costCode.division |
String |
Division for the cost code for the time entry |
|
attachments[].uuid |
String |
Unique identifier for this attachment on the time card |
|
attachments[].url |
String |
Url for this attachment on the time card |
|
attachments[].description |
String |
Description of this attachment on the time card |
|
attachments[].thumbnailUrl |
String |
Thumbnail Url for this attachment on the time card |
|
attachments[].contentType |
String |
Content type for this attachment on the time card (e.g. 'image/jpeg', 'image/png') |
|
attachments[].mediaType |
String |
Media type for this attachment on the time card |
Enums: IMAGE, VIDEO, DOCUMENT, AUDIO |
attachments[].fileName |
String |
File name of this attachment on the time card |
|
attachments[].fileSize |
Number |
Size of this attachment on the time card in bytes |
Usage Example with Curl
Curl request
$ curl 'https://developer.rakenapp.com/api/timeCards?fromDate=2022-09-01&toDate=2022-10-01&changedSince=2024-02-21T01:00:00Z&changedUntil=2024-02-28T01:00:00Z&deletedFrom=2024-02-21T01:00:00Z&deletedTo=2024-02-28T01:00:00Z&projectUuid=8169fd06-0997-4673-b537-4d9d401b8922&workerUuid=9169fd06-0997-4673-b537-4d9d401b8922&limit=5&offset=5' -i -X GET
Response body
{
"page" : {
"offset" : 5,
"limit" : 5,
"totalElements" : 15,
"previous" : "/timeCards?fromDate=2022-09-01&toDate=2022-10-01&changedSince=2024-02-21T01:00:00Z&changedUntil=2024-02-28T01:00:00Z&deletedFrom=2024-02-21T01:00:00Z&deletedTo=2024-02-28T01:00:00Z&projectUuid=8169fd06-0997-4673-b537-4d9d401b8922&workerUuid=9169fd06-0997-4673-b537-4d9d401b8922&offset=0&limit=5",
"next" : "/timeCards?fromDate=2022-09-01&toDate=2022-10-01&changedSince=2024-02-21T01:00:00Z&changedUntil=2024-02-28T01:00:00Z&deletedFrom=2024-02-21T01:00:00Z&deletedTo=2024-02-28T01:00:00Z&projectUuid=8169fd06-0997-4673-b537-4d9d401b8922&workerUuid=9169fd06-0997-4673-b537-4d9d401b8922&offset=10&limit=5",
"nextOffset" : "10"
},
"collection" : [ {
"uuid" : "54671870-0ead-430b-89ae-d55e064c4d16",
"worker" : {
"uuid" : "9169fd06-0997-4673-b537-4d9d401b8922"
},
"totalHours" : 8.0,
"startTime" : "05:00:00",
"endTime" : "17:00:00",
"attachments" : [ {
"uuid" : "5a92257d-a765-4904-af27-cb93e0d0609c",
"url" : "https://www.example.com/image",
"description" : "Description",
"fileName" : "maxime.jpg",
"thumbnailUrl" : "https://www.example.com/thumbnailImage",
"contentType" : "image/png",
"mediaType" : "IMAGE",
"fileSize" : 12900
} ],
"timeEntries" : [ {
"hours" : 8.0,
"payType" : {
"uuid" : "62574960-ef71-40ee-8695-4bd8b1482bd4",
"name" : "Regular Time",
"code" : "RT"
},
"shift" : {
"uuid" : "18c9715a-2c96-42fc-8cc9-8df7d1f22fb1",
"name" : "Night Shift",
"code" : "NS"
},
"classification" : {
"uuid" : "3a7867b6-7165-443b-ad9b-6300e868e0e8",
"name" : "Apprentice"
},
"costCode" : {
"uuid" : "0f7164d3-332d-471f-a5d6-80902619d96b",
"code" : "C1",
"division" : "D1"
}
} ],
"note" : "Payroll Note",
"createdAt" : "2020-10-16T12:00:00Z",
"updatedAt" : "2020-10-16T12:30:00Z",
"createdBy" : {
"uuid" : "e1a5409d-6de2-4882-acd2-b764c07fad0d",
"name" : "Miss Fredrick Koepp"
},
"updatedBy" : {
"uuid" : "fee82132-d54f-480a-9cb6-1f876422500c",
"name" : "Mercedes Moore"
},
"breaks" : [ {
"name" : "Meal Break",
"duration" : 30.0,
"startTime" : "10:00:00"
} ],
"deletedAt" : "2020-10-18T12:00:00Z",
"project" : {
"uuid" : "04f4e3ef-9117-4878-bd36-5e61e6f823c4"
},
"workLogUuid" : "ccfefd6d-0c4e-4baa-8028-81bc20d2d7c2",
"date" : "2020-10-15",
"approved" : false,
"signed" : {
"uuid" : "91658458-50f2-4cbd-9662-cf717d941ef7"
}
} ]
}
Toolbox Talks
List Toolbox Talks
GET /toolboxTalks
Query parameters
| Parameter | Description | Required | Constraints |
|---|---|---|---|
statuses |
Return only toolbox talks with given statuses. The default is ACTIVE |
No |
Enums: ACTIVE, DELETED |
Response fields
| Field | Type | Description | Constraints |
|---|---|---|---|
uuid |
String |
Unique identifier for the talk |
|
name |
String |
Name of the talk |
|
status |
String |
Status of the talk |
Enums: ACTIVE, DELETED |
contentUrl |
String |
A URL for downloading the content of the talk |
Usage Example with Curl
Curl request
$ curl 'https://developer.rakenapp.com/api/toolboxTalks?statuses=ACTIVE,DELETED&limit=5&offset=5' -i -X GET
Response body
{
"page" : {
"offset" : 5,
"limit" : 5,
"totalElements" : 15,
"previous" : "/toolboxTalks?statuses=ACTIVE,DELETED&offset=0&limit=5",
"next" : "/toolboxTalks?statuses=ACTIVE,DELETED&offset=10&limit=5",
"nextOffset" : "10"
},
"collection" : [ {
"uuid" : "c4df9fcf-d305-408f-b96c-493e72c34d85",
"name" : "Amet quis est doloremque voluptatem corrupti.",
"status" : "ACTIVE",
"contentUrl" : "http://cdn.rakenapp.com/toolbox-talks-326CE244.pdf"
}, {
"uuid" : "dcebc66e-5ed2-4513-a194-fc407b8e7c47",
"name" : "Doloremque illum quia rerum possimus.",
"status" : "ACTIVE",
"contentUrl" : "http://cdn.rakenapp.com/toolbox-talks-641AF4A0.pdf"
}, {
"uuid" : "6cc4591c-cf59-462f-97d9-c3b744003959",
"name" : "Aut corrupti dicta expedita quod.",
"status" : "DELETED",
"contentUrl" : "http://cdn.rakenapp.com/toolbox-talks-4D845EB4.pdf"
}, {
"uuid" : "d55553ee-7f78-4621-be05-c66cf9b756e0",
"name" : "Fugit rerum facilis doloribus animi.",
"status" : "DELETED",
"contentUrl" : "http://cdn.rakenapp.com/toolbox-talks-E492F57B.pdf"
}, {
"uuid" : "b747cf52-09ba-46b7-9553-e93307cc7acf",
"name" : "Temporibus quidem a inventore recusandae dignissimos.",
"status" : "DELETED",
"contentUrl" : "http://cdn.rakenapp.com/toolbox-talks-F7524DC9.pdf"
} ]
}
List Past Toolbox Talks
GET /toolboxTalks/past
Query parameters
| Parameter | Description | Required | Constraints |
|---|---|---|---|
projectUuid |
Return talks for this project |
No |
|
talkUuid |
Return the talk represented by this identifier |
No |
|
memberUuids |
Return talks attended by this members |
No |
|
fromCreatedAt |
Return talks created in this range, this is start range. fromCreatedAt must be before or equal to toCreatedAt. The date range is capped to 31 days to toCreatedAt. |
No |
Format: "yyyy-MM-dd" |
toCreatedAt |
Return talks created in this range, this is end range. |
No |
Format: "yyyy-MM-dd" |
Response fields
| Field | Type | Description | Constraints |
|---|---|---|---|
uuid |
String |
Unique identifier for the project talk |
|
project.uuid |
String |
Unique identifier for the project |
|
scheduleDate |
String |
Scheduled date for the talk |
Format: "yyyy-MM-dd" |
status |
String |
Status of the talk |
Enums: COMPLETED, INCOMPLETE, MISSED |
talk.uuid |
String |
Unique identifier for the talk |
|
talk.name |
String |
Name of the talk |
|
type |
String |
Type of the talk |
Enums: TAKEN_PHOTO, UNDEFINED, DIGITAL_SIGNATURES |
attendees[].member.uuid |
String |
Unique identifier of the member who attended the talk |
|
attendees[].member.name |
String |
Name of the member who attended the talk |
|
attendees[].signatureDate |
String |
Signature date and time of member who attended the talk |
|
signaturePhotos[].contentUrl |
String |
Link to the photo. Only available when talk type is TAKEN_PHOTO |
|
signaturePhotos[].thumbnailUrl |
String |
Link to the thumbnail of the photo. Only available when talk type is TAKEN_PHOTO |
|
pdfUrl |
String |
A URL for downloading the content of the talk |
|
createdAt |
String |
Date and Time (UTC) when the project talk was created |
Format: "yyyy-MM-ddThh:mm:ssZ" |
updatedAt |
String |
Date and Time (UTC) when the project talk was updated |
Format: "yyyy-MM-ddThh:mm:ssZ" |
createdBy.uuid |
String |
Unique identifier of the user who created this talk |
|
updatedBy.uuid |
String |
Unique identifier of the user who updated this talk |
Usage Example with Curl
Curl request
$ curl 'https://developer.rakenapp.com/api/toolboxTalks/past?projectUuid=f3619cac-b8b5-4283-8d5c-3ec4cb15b7f0&limit=5&offset=5' -i -X GET
Response body
{
"page" : {
"offset" : 5,
"limit" : 5,
"totalElements" : 15,
"previous" : "/toolboxTalks/past?projectUuid=f3619cac-b8b5-4283-8d5c-3ec4cb15b7f0&offset=0&limit=5",
"next" : "/toolboxTalks/past?projectUuid=f3619cac-b8b5-4283-8d5c-3ec4cb15b7f0&offset=10&limit=5",
"nextOffset" : "10"
},
"collection" : [ {
"uuid" : "72ac5193-b2ac-41d1-bac4-59907ad736f8",
"project" : {
"uuid" : "8dbdcbcf-ec61-436f-8abf-50e60cf3076c"
},
"scheduleDate" : "2026-10-08",
"createdAt" : "2026-10-06T01:30:13Z",
"updatedAt" : "2026-10-06T01:30:13Z",
"talk" : {
"uuid" : "690662e0-bfa1-404e-ba6b-799338f8d106",
"name" : "Provident ipsum laudantium velit vero."
},
"status" : "MISSED",
"type" : "TAKEN_PHOTO",
"attendees" : [ {
"member" : {
"uuid" : "b3050c40-87f9-4940-99a8-8e5c5a69baf4",
"name" : "Norberto Hane"
},
"signatureDate" : "2026-10-06T01:30:13"
} ],
"signaturePhotos" : [ {
"contentUrl" : "http://cdn.rakenapp.com/toolbox-talks-28CF5483.pdf",
"thumbnailUrl" : "http://cdn.rakenapp.com/toolbox-talks-95A2E449.pdf"
} ],
"pdfUrl" : "http://cdn.rakenapp.com/toolbox-talks-3EA797A1.pdf",
"createdBy" : {
"uuid" : "928d9993-4e98-49d7-bf62-08135c978a51"
},
"updatedBy" : {
"uuid" : "a02a0e53-6ba7-40a6-a0b3-33041475b405"
}
}, {
"uuid" : "4d214968-b110-41e4-ab05-b0981460d6bb",
"project" : {
"uuid" : "6560fa27-334a-49e2-8f7b-b5284f98f4cc"
},
"scheduleDate" : "2026-10-08",
"createdAt" : "2026-10-06T01:30:13Z",
"updatedAt" : "2026-10-06T01:30:13Z",
"talk" : {
"uuid" : "eb88dea5-24d2-465c-887b-b9c06fede273",
"name" : "Nesciunt corporis enim beatae tempora."
},
"status" : "COMPLETED",
"type" : "TAKEN_PHOTO",
"attendees" : [ {
"member" : {
"uuid" : "4655690e-3b10-4b65-a347-0c7980c9de6a",
"name" : "Maxie Boehm"
},
"signatureDate" : "2026-10-06T01:30:13"
} ],
"signaturePhotos" : [ {
"contentUrl" : "http://cdn.rakenapp.com/toolbox-talks-6D9B18E0.pdf",
"thumbnailUrl" : "http://cdn.rakenapp.com/toolbox-talks-AA0B72BA.pdf"
} ],
"pdfUrl" : "http://cdn.rakenapp.com/toolbox-talks-5002EB23.pdf",
"createdBy" : {
"uuid" : "69b5e664-05ea-44e7-a4fc-57062b1a5627"
},
"updatedBy" : {
"uuid" : "1ce6161a-709d-47b6-9d1a-1327e38c57cf"
}
}, {
"uuid" : "4f03b211-a5cf-44c1-bd40-719f6e1c7a5d",
"project" : {
"uuid" : "1d3d2b9a-cb69-4bab-ba4d-3abf0e14c5ac"
},
"scheduleDate" : "2026-10-08",
"createdAt" : "2026-10-06T01:30:13Z",
"updatedAt" : "2026-10-06T01:30:13Z",
"talk" : {
"uuid" : "5b090047-09a6-4666-af77-bd12a3471842",
"name" : "Neque eligendi itaque."
},
"status" : "MISSED",
"type" : "TAKEN_PHOTO",
"attendees" : [ {
"member" : {
"uuid" : "0232fec6-4329-42b6-a293-72da851db12a",
"name" : "Miss Maryam Douglas"
},
"signatureDate" : "2026-10-06T01:30:13"
} ],
"signaturePhotos" : [ {
"contentUrl" : "http://cdn.rakenapp.com/toolbox-talks-C078367E.pdf",
"thumbnailUrl" : "http://cdn.rakenapp.com/toolbox-talks-C0D97D07.pdf"
} ],
"pdfUrl" : "http://cdn.rakenapp.com/toolbox-talks-67DC2124.pdf",
"createdBy" : {
"uuid" : "55ee1154-4ff1-4d6b-a43a-5520f85c4923"
},
"updatedBy" : {
"uuid" : "005025ff-2fc9-4f7f-80c5-4c3178fe33fc"
}
}, {
"uuid" : "20bbbd72-7130-491f-a676-abc35da95e88",
"project" : {
"uuid" : "2ffede4b-7869-4af6-b6d8-93e61666c747"
},
"scheduleDate" : "2026-10-08",
"createdAt" : "2026-10-06T01:30:13Z",
"updatedAt" : "2026-10-06T01:30:13Z",
"talk" : {
"uuid" : "707a8f4a-dbfa-4d0b-8249-dcb1f106b31c",
"name" : "Voluptatibus omnis."
},
"status" : "COMPLETED",
"type" : "DIGITAL_SIGNATURES",
"attendees" : [ {
"member" : {
"uuid" : "7db9b540-7843-4a83-b033-15cfaf2cc378",
"name" : "Ta Hansen PhD"
},
"signatureDate" : "2026-10-06T01:30:13"
} ],
"signaturePhotos" : [ {
"contentUrl" : "http://cdn.rakenapp.com/toolbox-talks-EC9881C2.pdf",
"thumbnailUrl" : "http://cdn.rakenapp.com/toolbox-talks-CC09BD17.pdf"
} ],
"pdfUrl" : "http://cdn.rakenapp.com/toolbox-talks-7C683E36.pdf",
"createdBy" : {
"uuid" : "922f0563-232a-4d78-91be-966f2388bc92"
},
"updatedBy" : {
"uuid" : "f4fda650-6a84-43f8-9cc9-50aa1089782a"
}
}, {
"uuid" : "a4a8f85b-5e3a-487e-a9e0-66fbb260b441",
"project" : {
"uuid" : "d5c06338-56a9-486f-9ba9-aadae2327759"
},
"scheduleDate" : "2026-10-08",
"createdAt" : "2026-10-06T01:30:13Z",
"updatedAt" : "2026-10-06T01:30:13Z",
"talk" : {
"uuid" : "abae2176-74f9-4a51-afa8-a820be214769",
"name" : "Aliquam iusto ut."
},
"status" : "COMPLETED",
"type" : "TAKEN_PHOTO",
"attendees" : [ {
"member" : {
"uuid" : "fb22cbfb-7acb-4553-bf99-1f6b8b568759",
"name" : "Zola Harris DVM"
},
"signatureDate" : "2026-10-06T01:30:13"
} ],
"signaturePhotos" : [ {
"contentUrl" : "http://cdn.rakenapp.com/toolbox-talks-EF459953.pdf",
"thumbnailUrl" : "http://cdn.rakenapp.com/toolbox-talks-B4AB09DC.pdf"
} ],
"pdfUrl" : "http://cdn.rakenapp.com/toolbox-talks-DECBCB22.pdf",
"createdBy" : {
"uuid" : "be61a48b-fba3-4138-846b-c36f98ebc51d"
},
"updatedBy" : {
"uuid" : "3cae6d7f-9a7e-4da5-8051-70d6ea7d53f2"
}
} ]
}
Users
Get User Info
GET /userInfo
|
This returns the info of the user who is making the API call. Refer to OpenID Connect for more details about the standard. |
Response fields
| Field | Type | Description | Constraints |
|---|---|---|---|
sub |
String |
Subject Identifier (Unique identifier of the user) |
|
firstName |
String |
First Name of the user |
|
lastName |
String |
Last Name of the user |
|
String |
Email of the user |
||
role |
String |
Role of the user |
Enums: ROLE_WORKER, ROLE_USER, ROLE_ACCOUNT_ADMIN, ROLE_ADMIN, ROLE_PROJECT_MEMBER |
companyUuid |
String |
UUID of the company the user belongs to |
Usage Example with Curl
Curl request
$ curl 'https://developer.rakenapp.com/api/userInfo' -i -X GET
Response body
{
"sub" : "7d3b3423-0703-495e-b1b8-e27e5b5e9a62",
"email" : "Will.Smith@rakenapp.com",
"firstName" : "Will",
"lastName" : "Smith",
"role" : "ROLE_ACCOUNT_ADMIN",
"companyUuid" : "bd69a827-7b53-4968-b145-f2a29672ec45"
}
Work Logs
A work log records the work done on a project for a date. It carries the work description and
attachments for that work, and — where time was tracked against it — the timeCards it groups.
The workLogType field says which kind of work log it is:
|
A production work log. Carries a |
|
A crew work log covering several workers. Holds a |
|
A work log holding a single worker’s time card, which is how individually entered time is recorded. Its |
|
Relationship to Time Cards Time cards are returned by both endpoints, from two different angles:
Each time card returned by |
List Work Logs
GET /workLogs
Query parameters
| Parameter | Description | Required | Constraints |
|---|---|---|---|
projectUuid |
Return work logs for this project. This could also be a child project identifier |
Yes |
|
fromDate |
Return work logs starting on this date. fromDate must be before or equal to toDate. The date range is capped to 31 days to toDate. Provide either |
No |
Format: "yyyy-MM-dd" |
toDate |
Return work logs ending on this date. |
No |
Format: "yyyy-MM-dd" |
changedSince |
Filters results to include only entities that were updated at or after the specified time (inclusive). Must be used with a corresponding |
No |
Format: "yyyy-MM-ddThh:mm:ssZ" |
changedUntil |
Filters results to include only entities that were updated before the specified time (exclusive) |
No |
Format: "yyyy-MM-ddThh:mm:ssZ" |
statuses |
Return work logs with this status. Default to COMPLETED |
No |
Enums: COMPLETED, CREATED |
workLogTypes |
Return only work logs of these types, as a comma-separated list. When omitted, all three types are returned. |
No |
Enums: UTC, CREW, STANDARD |
Response fields
| Field | Type | Description | Constraints |
|---|---|---|---|
uuid |
String |
Unique identifier for the work log |
|
date |
String |
Date of the work log |
Format: "yyyy-MM-dd" |
status |
String |
Work log status |
Enums: COMPLETED, CREATED |
totalHours |
Number |
Total hours on this work log |
|
description |
String |
Description of the work done. For work logs holding time cards, this describes the work on those cards — it is not repeated on the individual cards returned by List Time Cards. |
|
projectUuid |
String |
Project this work log is for |
|
workLogType |
String |
Type of work log. |
Enums: UTC, CREW, STANDARD |
subcontractor |
String |
Subcontractor name |
|
name |
String |
Work Log name |
|
hours |
Number |
For standard work logs, the hours for a single worker |
|
workerCount |
Number |
Number of workers for this work log |
|
createdAt |
String |
Date and Time (UTC) when the work log was created |
Format: "yyyy-MM-ddThh:mm:ssZ" |
updatedAt |
String |
Date and Time (UTC) when the work log was updated |
Format: "yyyy-MM-ddThh:mm:ssZ" |
timeCards[].note |
String |
Note for the time card |
|
timeCards[].breaks[].name |
String |
Break name |
|
timeCards[].breaks[].startTime |
String |
Break start time |
|
timeCards[].breaks[].duration |
Number |
Duration of break in minutes |
|
timeCards[].uuid |
String |
Unique identifier for this time card |
|
timeCards[].workerUuid |
String |
Unique identifier for the worker for this time card |
|
timeCards[].totalHours |
Number |
Total number of hours for this time card |
|
timeCards[].startTime |
String |
Start time for this time card |
|
timeCards[].endTime |
String |
End time for this time card |
|
timeCards[].createdAt |
String |
Date and Time (UTC) when this time card was created |
Format: "yyyy-MM-ddThh:mm:ssZ" |
timeCards[].updatedAt |
String |
Date and Time (UTC) when this time card was updated |
Format: "yyyy-MM-ddThh:mm:ssZ" |
timeCards[].createdBy.uuid |
String |
Unique identifier for the user who created this time card |
|
timeCards[].createdBy.name |
String |
Name of the user who created this time card |
|
timeCards[].updatedBy.uuid |
String |
Unique identifier for the user who updated this time card |
|
timeCards[].updatedBy.name |
String |
Name of the user who updated this time card |
|
timeCards[].attachments[].uuid |
String |
Unique identifier for this attachment |
|
timeCards[].attachments[].url |
String |
Url for this attachment |
|
timeCards[].attachments[].description |
String |
Description for this attachment |
|
timeCards[].attachments[].thumbnailUrl |
String |
Thumbnail Url for this attachment |
|
timeCards[].attachments[].contentType |
String |
Content Type for this attachment (e.g. 'image/jpeg', 'image/png') |
|
timeCards[].attachments[].mediaType |
String |
Media Type for this attachment |
Enums: IMAGE, VIDEO, DOCUMENT, AUDIO |
timeCards[].attachments[].fileName |
String |
File name of the attachment |
|
timeCards[].attachments[].fileSize |
Number |
Size of the attachment in bytes |
|
timeCards[].timeEntries[].shift.uuid |
String |
Unique identifier for the shift on the time entry |
|
timeCards[].timeEntries[].shift.name |
String |
Name for the shift on the time entry |
|
timeCards[].timeEntries[].shift.code |
String |
Code for the shift on the time entry |
|
timeCards[].timeEntries[].payType.uuid |
String |
Unique identifier for the pay type for the time entry |
|
timeCards[].timeEntries[].payType.name |
String |
Name for the pay type for the time entry |
|
timeCards[].timeEntries[].payType.code |
String |
Code for the pay type for the time entry |
|
timeCards[].timeEntries[].hours |
Number |
Hours in the time entry |
|
timeCards[].timeEntries[].classification.uuid |
String |
Unique identifier for the classification for the time entry |
|
timeCards[].timeEntries[].classification.name |
String |
Name for the classification for the time entry |
|
timeCards[].timeEntries[].costCode.uuid |
String |
Unique identifier for the cost code for the time entry |
|
timeCards[].timeEntries[].costCode.code |
String |
Code for the cost code for the time entry |
|
timeCards[].timeEntries[].costCode.division |
String |
Division for the cost code for the time entry |
|
attachments[].uuid |
String |
Unique identifier for this attachment on the work log |
|
attachments[].url |
String |
Url for this attachment on the work log |
|
attachments[].description |
String |
Description of this attachment on the work log |
|
attachments[].thumbnailUrl |
String |
Thumbnail Url for this attachment on the work log |
|
attachments[].contentType |
String |
Content type for this attachment on the work log (e.g. 'image/jpeg', 'image/png') |
|
attachments[].mediaType |
String |
Media type for this attachment on the work log |
Enums: IMAGE, VIDEO, DOCUMENT, AUDIO |
attachments[].fileName |
String |
File name of this attachment on the work log |
|
attachments[].fileSize |
Number |
Size of this attachment on the work log in bytes |
Usage Example with Curl
Curl request
$ curl 'https://developer.rakenapp.com/api/workLogs?fromDate=2011-01-01&toDate=2011-01-31&changedSince=2024-02-24T16:37:26Z&changedUntil=2024-02-25T16:37:26Z&projectUuid=8169fd06-0997-4673-b537-4d9d401b8922&limit=5&offset=5' -i -X GET
Response body
{
"page" : {
"offset" : 5,
"limit" : 5,
"totalElements" : 15,
"previous" : "/workLogs?fromDate=2011-01-01&toDate=2011-01-31&changedSince=2024-02-24T16:37:26Z&changedUntil=2024-02-25T16:37:26Z&projectUuid=8169fd06-0997-4673-b537-4d9d401b8922&offset=0&limit=5",
"next" : "/workLogs?fromDate=2011-01-01&toDate=2011-01-31&changedSince=2024-02-24T16:37:26Z&changedUntil=2024-02-25T16:37:26Z&projectUuid=8169fd06-0997-4673-b537-4d9d401b8922&offset=10&limit=5",
"nextOffset" : "10"
},
"collection" : [ {
"uuid" : "0a0fa26d-2825-4ff1-842e-54cec435f90f",
"totalHours" : 8.0,
"date" : "2020-10-15",
"timeCards" : [ {
"uuid" : "38c45d49-ec83-4fb0-9d79-2ce40eb41264",
"workerUuid" : "a7c6a819-eed0-4401-9522-3c4cb436a984",
"totalHours" : 8.0,
"startTime" : "05:00:00",
"endTime" : "17:00:00",
"attachments" : [ {
"uuid" : "e5986c9f-38c9-4ca4-b018-20020ee11213",
"url" : "https://www.example.com/image",
"description" : "Description",
"fileName" : "libero.jpg",
"thumbnailUrl" : "https://www.example.com/thumbnailImage",
"contentType" : "image/png",
"mediaType" : "IMAGE",
"fileSize" : 34427
} ],
"timeEntries" : [ {
"hours" : 8.0,
"payType" : {
"uuid" : "be0f702a-6c3c-4e13-825d-7a887f2fec4e",
"name" : "Regular Time",
"code" : "RT"
},
"shift" : {
"uuid" : "6c9354b2-2e47-4894-a1f8-4ee8a71ca52c",
"name" : "Night Shift",
"code" : "NS"
},
"classification" : {
"uuid" : "9735b73d-02f9-47c0-9f12-4a03d4aa5ed5",
"name" : "Apprentice"
},
"costCode" : {
"uuid" : "ff255792-8eda-4c7c-a65a-19d562b5b726",
"code" : "C1",
"division" : "D1"
}
} ],
"note" : "Payroll Note",
"createdAt" : "2020-10-16T12:00:00Z",
"updatedAt" : "2020-10-16T12:30:00Z",
"createdBy" : {
"uuid" : "41dc8428-239b-469e-b616-6a5f84f4439a",
"name" : "Mr. Melvin Reinger"
},
"updatedBy" : {
"uuid" : "b3c695c8-baeb-4138-8b5c-75e5d19e0fe8",
"name" : "Owen Hane PhD"
},
"breaks" : [ {
"name" : "Meal Break",
"duration" : 30.0,
"startTime" : "10:00:00"
} ]
} ],
"status" : "COMPLETED",
"description" : "Description",
"projectUuid" : "f41bed9b-bc12-4faf-96c4-12e4b5de255f",
"attachments" : [ {
"uuid" : "4084a22a-840a-4926-94f3-32bec3311f36",
"url" : "https://www.example.com/image",
"description" : "Description",
"fileName" : "minima.jpg",
"thumbnailUrl" : "https://www.example.com/thumbnailImage",
"contentType" : "image/png",
"mediaType" : "IMAGE",
"fileSize" : 70093
} ],
"subcontractor" : "SC",
"name" : "Crew working in 1st floor",
"workerCount" : 0,
"workLogType" : "CREW",
"hours" : 8,
"createdAt" : "2020-10-16T12:00:00Z",
"updatedAt" : "2020-10-16T12:30:00Z"
} ]
}