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. |
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. |
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 |
|---|---|---|
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 |
offset |
Number |
The offset value used to generate the page |
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
|
Users
Get User Info
A GET request will return 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 |
|---|---|---|
sub |
String |
Subject Identifier (Unique identifier for the user) |
firstName |
String |
First Name for the user |
lastName |
String |
Last Name for the user |
String |
Email for the user |
Usage Example with Curl
Curl request
$ curl 'https://developer.rakenapp.com/api/userInfo' -i -X GET
Response body
{
"sub" : "907d7378-465e-4a4e-a8fb-1dd94e64b911",
"email" : "Will.Smith@rakenapp.com",
"firstName" : "Will",
"lastName" : "Smith"
}
Projects
List
A GET request will list all the projects.
Query parameters
| Parameter | Description | Required | Constraints |
|---|---|---|---|
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. |
No |
Format: "yyyy-MM-ddThh:mm:ssZ" |
changedUntil |
Return only projects updated before this time, exclusive. |
No |
Format: "yyyy-MM-ddThh:mm:ssZ" |
Entity response fields
| Field | Type | Description |
|---|---|---|
uuid |
String |
Unique identifier for the project |
name |
String |
Project Name |
number |
String |
Project Number |
startDate |
String |
Project Start Date |
endDate |
String |
Project End Date |
status |
String |
Status of project |
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 |
updatedAt |
String |
Date and Time (UTC) when the project was updated |
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" : "ee0d8858-98fc-4c38-9ea5-cf85a08ea578",
"name" : "Hills-Rice",
"number" : "PRJ1",
"address" : {
"streetAddress1" : "884 Wyman Estate",
"city" : "New Ermaborough",
"state" : "New Mexico",
"country" : "US",
"postalCode" : "76983"
},
"status" : "ACTIVE",
"startDate" : "2020-01-01",
"endDate" : "2020-12-01",
"externalId" : "EXT|728-56-6309",
"externalEmailRecipients" : [ "leeanne.dibbert@gmail.com", "rana.gaylord@yahoo.com" ],
"internalEmailRecipients" : [ "rogelio.klein@gmail.com" ],
"createdAt" : "2022-07-17T22:47:03Z",
"updatedAt" : "2022-07-19T22:41:27Z"
}, {
"uuid" : "65fbbea7-b5c4-4a69-99e7-cc19e1420202",
"name" : "Blanda and Sons",
"number" : "PRJ2",
"address" : {
"streetAddress1" : "03573 Dietrich Stravenue",
"city" : "West Johniebury",
"state" : "Kansas",
"country" : "US",
"postalCode" : "93289"
},
"status" : "ACTIVE",
"startDate" : "2020-01-01",
"endDate" : "2020-12-01",
"externalId" : "EXT|737-56-2210",
"externalEmailRecipients" : [ "luther.parker@yahoo.com", "derek.lockman@gmail.com" ],
"internalEmailRecipients" : [ "letha.mcdermott@gmail.com" ],
"createdAt" : "2022-07-17T22:47:03Z",
"updatedAt" : "2022-07-19T22:41:27Z"
}, {
"uuid" : "d661ce05-cd03-4e10-95ac-d74a594a0c66",
"name" : "Doyle and Sons",
"number" : "PRJ3",
"address" : {
"streetAddress1" : "640 Schuster Meadow",
"city" : "Toniefurt",
"state" : "Connecticut",
"country" : "US",
"postalCode" : "40572"
},
"status" : "ACTIVE",
"startDate" : "2020-01-01",
"endDate" : "2020-12-01",
"externalId" : "EXT|271-21-3461",
"externalEmailRecipients" : [ "dario.wunsch@yahoo.com", "rufus.conn@yahoo.com" ],
"internalEmailRecipients" : [ "keshia.leannon@yahoo.com" ],
"createdAt" : "2022-07-17T22:47:03Z",
"updatedAt" : "2022-07-19T22:41:27Z"
}, {
"uuid" : "36da513b-0f69-4b2f-8a79-db2da806ac4c",
"name" : "Murray LLC",
"number" : "PRJ4",
"address" : {
"streetAddress1" : "907 Milan Extensions",
"city" : "New Sammie",
"state" : "Florida",
"country" : "US",
"postalCode" : "39965"
},
"status" : "ACTIVE",
"startDate" : "2020-01-01",
"endDate" : "2020-12-01",
"externalId" : "EXT|026-99-6249",
"externalEmailRecipients" : [ "quentin.jerde@hotmail.com", "obdulia.corwin@hotmail.com" ],
"internalEmailRecipients" : [ "jeanice.rutherford@hotmail.com" ],
"createdAt" : "2022-07-17T22:47:03Z",
"updatedAt" : "2022-07-19T22:41:27Z"
}, {
"uuid" : "8bdacc47-c5a2-4758-b23c-e8c9ef1b27a8",
"name" : "Casper, Becker and DuBuque",
"number" : "PRJ5",
"address" : {
"streetAddress1" : "881 Jonah Circles",
"city" : "Wizaland",
"state" : "South Carolina",
"country" : "US",
"postalCode" : "33738"
},
"status" : "ACTIVE",
"startDate" : "2020-01-01",
"endDate" : "2020-12-01",
"externalId" : "EXT|889-61-0280",
"externalEmailRecipients" : [ "larry.gleason@hotmail.com", "jonas.rowe@gmail.com" ],
"internalEmailRecipients" : [ "billie.oconner@hotmail.com" ],
"createdAt" : "2022-07-17T22:47:03Z",
"updatedAt" : "2022-07-19T22:41:27Z"
} ]
}
Create
A POST request will create a new project.
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 |
|---|---|---|
uuid |
String |
Unique identifier for the project |
name |
String |
Project Name |
number |
String |
Project Number |
startDate |
String |
Project Start Date |
endDate |
String |
Project End Date |
status |
String |
Status of project |
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 |
updatedAt |
String |
Date and Time (UTC) when the project was updated |
Usage Example with Curl
Curl request
$ curl 'https://developer.rakenapp.com/api/projects' -i -X POST \
-H 'Content-Type: application/json' \
-d '{
"address" : {
"city" : "Strackeview",
"country" : "US",
"postalCode" : "39937",
"state" : "Nevada",
"streetAddress1" : "889 Rayford Lights"
},
"endDate" : "2020-12-01",
"externalEmailRecipients" : [ "mitchell.mraz@gmail.com", "jeffrey.donnelly@yahoo.com" ],
"externalId" : "EXT|210-77-2525",
"internalEmailRecipients" : [ "javier.heidenreich@hotmail.com" ],
"name" : "Koelpin, Marvin and Treutel",
"number" : "PRJ103",
"startDate" : "2020-01-01",
"status" : "ACTIVE"
}'
Response body
{
"uuid" : "26238e4d-1e71-4800-96ae-81dbed35f02b",
"name" : "Koelpin, Marvin and Treutel",
"number" : "PRJ103",
"address" : {
"streetAddress1" : "889 Rayford Lights",
"city" : "Strackeview",
"state" : "Nevada",
"country" : "US",
"postalCode" : "39937"
},
"status" : "ACTIVE",
"startDate" : "2020-01-01",
"endDate" : "2020-12-01",
"externalId" : "EXT|210-77-2525",
"externalEmailRecipients" : [ "mitchell.mraz@gmail.com", "jeffrey.donnelly@yahoo.com" ],
"internalEmailRecipients" : [ "javier.heidenreich@hotmail.com" ],
"createdAt" : "2022-07-17T22:47:03Z",
"updatedAt" : "2022-07-19T22:41:27Z"
}
Update
A PATCH request will update a project.
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 |
|---|---|---|
uuid |
String |
Unique identifier for the project |
name |
String |
Project Name |
number |
String |
Project Number |
startDate |
String |
Project Start Date |
endDate |
String |
Project End Date |
status |
String |
Status of project |
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 |
updatedAt |
String |
Date and Time (UTC) when the project was updated |
Usage Example with Curl
Curl request
$ curl 'https://developer.rakenapp.com/api/projects/2b5cde0a-d838-4fb0-adb3-ee13f28cf56e' -i -X PATCH \
-H 'Content-Type: application/json' \
-d '{
"address" : {
"city" : "Lake Berylside",
"country" : "US",
"postalCode" : "04138",
"state" : "Maryland",
"streetAddress1" : "650 Marlen Lock"
},
"endDate" : "2020-12-01",
"externalEmailRecipients" : [ "kary.klein@hotmail.com", "margarito.bernhard@yahoo.com" ],
"externalId" : "EXT|137-60-9298",
"internalEmailRecipients" : [ "elwood.denesik@hotmail.com" ],
"name" : "Dooley-Kiehn",
"number" : "PRJ202",
"startDate" : "2020-01-01",
"status" : "ACTIVE"
}'
Response body
{
"uuid" : "2b5cde0a-d838-4fb0-adb3-ee13f28cf56e",
"name" : "Dooley-Kiehn",
"number" : "PRJ202",
"address" : {
"streetAddress1" : "650 Marlen Lock",
"city" : "Lake Berylside",
"state" : "Maryland",
"country" : "US",
"postalCode" : "04138"
},
"status" : "ACTIVE",
"startDate" : "2020-01-01",
"endDate" : "2020-12-01",
"externalId" : "EXT|137-60-9298",
"externalEmailRecipients" : [ "kary.klein@hotmail.com", "margarito.bernhard@yahoo.com" ],
"internalEmailRecipients" : [ "elwood.denesik@hotmail.com" ],
"createdAt" : "2022-07-17T22:47:03Z",
"updatedAt" : "2022-07-19T22:41:27Z"
}
Get Child Projects
A GET request will return all the child projects for a parent project.
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.
Entity response fields
| Field | Type | Description |
|---|---|---|
uuid |
String |
Unique identifier for the project |
name |
String |
Project Name |
startDate |
String |
Project Start Date |
endDate |
String |
Project End Date |
status |
String |
Status of project |
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 |
updatedAt |
String |
Date and Time (UTC) when the project was updated |
Usage Example with Curl
Curl request
$ curl 'https://developer.rakenapp.com/api/projects/6555f0ed-4b32-4169-a762-5714655f2d26/childProjects' -i -X GET
Response body
{
"page" : {
"offset" : 0,
"limit" : 3,
"totalElements" : 3
},
"collection" : [ {
"createdAt" : "2022-07-17T22:47:03Z",
"updatedBy" : {
"name" : "Frederic Davis",
"uuid" : "16b8621d-6a9c-47dd-a71d-0f8a093a2083"
},
"endDate" : "2022-12-01",
"createdBy" : {
"name" : "Anette Koepp",
"uuid" : "a9355d32-f3f1-466f-84fd-97eb049f8cc6"
},
"name" : "Similique at rem a quas adipisci magni consectetur.",
"company" : {
"name" : "Sanford-Denesik",
"uuid" : "8302ad67-f101-4432-9c61-1f8dd24f23e4"
},
"uuid" : "2f98f5c6-7dc2-419d-a4f4-ec71e7d30223",
"startDate" : "2022-01-01",
"status" : "ACTIVE",
"updatedAt" : "2022-07-19T20:41:27Z"
}, {
"createdAt" : "2022-07-17T22:47:03Z",
"updatedBy" : {
"name" : "Fran Bayer",
"uuid" : "120d04f3-e072-4d77-b837-f9a363b92e35"
},
"endDate" : "2022-12-01",
"createdBy" : {
"name" : "Nery Paucek",
"uuid" : "deeb82ef-027d-4315-b522-740c890f7489"
},
"name" : "Nisi veniam unde optio libero porro sapiente.",
"company" : {
"name" : "Schmitt-O'Hara",
"uuid" : "b9cfee5c-ffd7-42d4-b977-fcb4d63961f1"
},
"uuid" : "14fceee5-5227-4e1e-abbc-1236b66418e6",
"startDate" : "2022-01-01",
"status" : "INACTIVE",
"updatedAt" : "2022-07-19T20:41:27Z"
}, {
"createdAt" : "2022-07-17T22:47:03Z",
"updatedBy" : {
"name" : "Hilario Jacobson",
"uuid" : "a1b5cdb8-0271-4ee4-bfb2-bee680349d10"
},
"endDate" : "2022-12-01",
"createdBy" : {
"name" : "Hosea Wehner V",
"uuid" : "ecb70769-c9be-4a37-aaf0-04c7918cf1f4"
},
"name" : "Atque libero veritatis ratione.",
"company" : {
"name" : "Wolff Group",
"uuid" : "6eeb4221-782b-482c-b858-40188bcc4d22"
},
"uuid" : "48e00f98-414e-48a0-92ca-051915e04911",
"startDate" : "2022-01-01",
"status" : "ACTIVE",
"updatedAt" : "2022-07-19T20:41:27Z"
} ]
}
Get Project Notes
A GET request will return all the project notes between a date range on your Raken account.
Query parameters
| Parameter | Description | Required | Constraints |
|---|---|---|---|
fromDate |
Return notes created at or after this date |
Yes |
Format: "yyyy-MM-dd" |
toDate |
Return notes created at or before this date. The date range between fromDate and toDate must not exceed 31 days |
Yes |
Format: "yyyy-MM-dd" |
Entity response fields
| Field | Type | Description |
|---|---|---|
uuid |
String |
Unique identifier for the note |
description |
String |
Note description |
category |
String |
Note category |
date |
String |
Note date |
attachments |
Array |
Note attachments |
attachments[].uuid |
String |
Unique identifier for this attachment |
attachments[].mediaType |
String |
Media type for this attachment |
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 |
updatedAt |
String |
Date and Time (UTC) when the note was last updated |
Usage Example with Curl
Curl request
$ curl 'https://developer.rakenapp.com/api/projects/47de513a-bf2f-4c88-89b9-f93e4f8a4bf3/notes?fromDate=2022-07-01&toDate=2022-07-31&limit=5&offset=5' -i -X GET
Response body
{
"page" : {
"next" : "/projects/47de513a-bf2f-4c88-89b9-f93e4f8a4bf3/notes?offset=10&limit=5",
"offset" : 5,
"previous" : "/projects/47de513a-bf2f-4c88-89b9-f93e4f8a4bf3/notes?offset=0&limit=5",
"limit" : 5,
"nextOffset" : "10",
"totalElements" : 15
},
"collection" : [ {
"date" : "2022-07-17",
"createdAt" : "2022-07-17T22:47:03Z",
"attachments" : [ {
"fileName" : "cumque.jpg",
"fileSize" : 45396,
"description" : "Description",
"mediaType" : "IMAGE",
"uuid" : "eebb1e5e-8e7f-46a2-be85-78032c46befa",
"contentType" : "image/png",
"url" : "https://www.example.com/image",
"thumbnailUrl" : "https://www.example.com/thumbnailImage"
}, {
"fileName" : "ut.jpg",
"fileSize" : 92623,
"description" : "Description",
"mediaType" : "IMAGE",
"uuid" : "c7ca869c-9dd1-4f02-a889-0a4ac438fb1d",
"contentType" : "image/png",
"url" : "https://www.example.com/image",
"thumbnailUrl" : "https://www.example.com/thumbnailImage"
} ],
"updatedBy" : {
"name" : "Adeline Lowe",
"uuid" : "f834737f-0a7e-477b-8a1e-dce32e06416b"
},
"createdBy" : {
"name" : "Karisa Nader",
"uuid" : "e5c006be-3114-40e1-ad6a-b7d8f794eb9c"
},
"description" : "Eaque recusandae suscipit quidem consequuntur.",
"category" : "NOTES",
"uuid" : "108c307f-75d1-4398-8e77-b7c968fad47c",
"updatedAt" : "2022-07-19T20:41:27Z"
}, {
"date" : "2022-07-17",
"createdAt" : "2022-07-17T22:47:03Z",
"attachments" : [ {
"fileName" : "atque.jpg",
"fileSize" : 1401,
"description" : "Description",
"mediaType" : "IMAGE",
"uuid" : "81498a80-69d6-450e-af94-fddad0a7c9a3",
"contentType" : "image/png",
"url" : "https://www.example.com/image",
"thumbnailUrl" : "https://www.example.com/thumbnailImage"
}, {
"fileName" : "quaerat.jpg",
"fileSize" : 56294,
"description" : "Description",
"mediaType" : "IMAGE",
"uuid" : "4b9d9b20-80a8-4d7c-a432-693062dd7bed",
"contentType" : "image/png",
"url" : "https://www.example.com/image",
"thumbnailUrl" : "https://www.example.com/thumbnailImage"
} ],
"updatedBy" : {
"name" : "Johnie Rice",
"uuid" : "3e9b3152-6436-46e2-b282-c30c6969944e"
},
"createdBy" : {
"name" : "Mrs. Leland Watsica",
"uuid" : "b565c422-7176-4ab3-966b-f4557e85f701"
},
"description" : "Quis possimus ratione aliquam nam aperiam officiis illo.",
"category" : "QUALITY",
"uuid" : "f1f30d74-8469-4136-a331-318f6358dcf5",
"updatedAt" : "2022-07-19T20:41:27Z"
}, {
"date" : "2022-07-17",
"createdAt" : "2022-07-17T22:47:03Z",
"attachments" : [ {
"fileName" : "quaerat.jpg",
"fileSize" : 43242,
"description" : "Description",
"mediaType" : "IMAGE",
"uuid" : "a207fb35-ae55-4c2f-87ff-125d453a2600",
"contentType" : "image/png",
"url" : "https://www.example.com/image",
"thumbnailUrl" : "https://www.example.com/thumbnailImage"
}, {
"fileName" : "doloribus.jpg",
"fileSize" : 66579,
"description" : "Description",
"mediaType" : "IMAGE",
"uuid" : "592fd6b6-7f9f-4019-81a5-a84753b32b20",
"contentType" : "image/png",
"url" : "https://www.example.com/image",
"thumbnailUrl" : "https://www.example.com/thumbnailImage"
} ],
"updatedBy" : {
"name" : "Latoya Bashirian Jr.",
"uuid" : "2374d1c1-34a5-45db-9c3a-9cc0697ebc37"
},
"createdBy" : {
"name" : "Taisha Schumm",
"uuid" : "7531a04e-ef4c-4a89-aedf-aff6dc296684"
},
"description" : "Deleniti maxime quis doloremque totam libero nemo facilis iste.",
"category" : "SAFETY",
"uuid" : "19aadf19-25b6-4785-97e4-26f0540e687d",
"updatedAt" : "2022-07-19T20:41:27Z"
}, {
"date" : "2022-07-17",
"createdAt" : "2022-07-17T22:47:03Z",
"attachments" : [ {
"fileName" : "iure.jpg",
"fileSize" : 23869,
"description" : "Description",
"mediaType" : "IMAGE",
"uuid" : "9287ae26-edb5-4896-bab5-363376b4f405",
"contentType" : "image/png",
"url" : "https://www.example.com/image",
"thumbnailUrl" : "https://www.example.com/thumbnailImage"
}, {
"fileName" : "nobis.jpg",
"fileSize" : 77128,
"description" : "Description",
"mediaType" : "IMAGE",
"uuid" : "d4f37c55-d3ba-4b39-914a-30a23b490312",
"contentType" : "image/png",
"url" : "https://www.example.com/image",
"thumbnailUrl" : "https://www.example.com/thumbnailImage"
} ],
"updatedBy" : {
"name" : "Travis Klocko",
"uuid" : "67db5403-70af-40c3-aa1b-0d6808586fde"
},
"createdBy" : {
"name" : "Melia Lang V",
"uuid" : "3aa35465-c342-4f07-94f9-384e29a8bf51"
},
"description" : "Neque aliquam veritatis neque assumenda odit amet ex.",
"category" : "SAFETY",
"uuid" : "6a33d5ed-dde9-41db-a034-e6e8700cb94c",
"updatedAt" : "2022-07-19T20:41:27Z"
}, {
"date" : "2022-07-17",
"createdAt" : "2022-07-17T22:47:03Z",
"attachments" : [ {
"fileName" : "veritatis.jpg",
"fileSize" : 15914,
"description" : "Description",
"mediaType" : "IMAGE",
"uuid" : "e3a21041-496c-48dd-86bc-0ae2c9831d83",
"contentType" : "image/png",
"url" : "https://www.example.com/image",
"thumbnailUrl" : "https://www.example.com/thumbnailImage"
}, {
"fileName" : "beatae.jpg",
"fileSize" : 18400,
"description" : "Description",
"mediaType" : "IMAGE",
"uuid" : "df68d9a0-7351-408b-85d4-edb898951ba8",
"contentType" : "image/png",
"url" : "https://www.example.com/image",
"thumbnailUrl" : "https://www.example.com/thumbnailImage"
} ],
"updatedBy" : {
"name" : "Mrs. Heriberto Gorczany",
"uuid" : "949d44b9-8f8b-45af-8a52-4bbf229bd0b1"
},
"createdBy" : {
"name" : "Mrs. Drucilla Jakubowski",
"uuid" : "9bf4391a-74e2-430e-ab2c-c1a25af08d5f"
},
"description" : "Fuga exercitationem accusamus minima perspiciatis possimus tenetur molestiae ab.",
"category" : "QUALITY",
"uuid" : "712a6ac1-8d6d-4e1d-bb9b-7780b62f2ebc",
"updatedAt" : "2022-07-19T20:41:27Z"
} ]
}
Get Project Members
A GET request will return team members for a project on your Raken account.
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 |
Entity response fields
| Field | Type | Description |
|---|---|---|
uuid |
String |
Unique identifier for the member |
firstName |
String |
First Name |
lastName |
String |
Last Name |
role |
String |
Role |
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 |
updatedAt |
String |
Date and Time (UTC) when the member was updated |
lastLoginAt |
String |
Date and Time (UTC) when the member last logged in |
status |
String |
Member status |
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 |
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/61f5c2ab-571c-4c75-97c2-cfbd20fd65c2/members?statuses=ACTIVE,DELETED,INACTIVE,INVITED&roles=ROLE_WORKER,ROLE_USER&classificationUuids=ca1f1c97-8550-48fa-9407-ac695c418b0a,df533ecc-d000-4d32-a7c6-22e2a4d61ab4&limit=5&offset=5' -i -X GET
Response body
{
"page" : {
"next" : "/projects/61f5c2ab-571c-4c75-97c2-cfbd20fd65c2/members?statuses=ACTIVE,DELETED,INACTIVE,INVITED&roles=ROLE_WORKER,ROLE_USER&classificationUuids=ca1f1c97-8550-48fa-9407-ac695c418b0a,df533ecc-d000-4d32-a7c6-22e2a4d61ab4&offset=10&limit=5",
"offset" : 5,
"previous" : "/projects/61f5c2ab-571c-4c75-97c2-cfbd20fd65c2/members?statuses=ACTIVE,DELETED,INACTIVE,INVITED&roles=ROLE_WORKER,ROLE_USER&classificationUuids=ca1f1c97-8550-48fa-9407-ac695c418b0a,df533ecc-d000-4d32-a7c6-22e2a4d61ab4&offset=0&limit=5",
"limit" : 5,
"nextOffset" : "10",
"totalElements" : 15
},
"collection" : [ {
"lastName" : "Greenholt",
"role" : "ROLE_USER",
"employeeId" : "EMP00001",
"classificationUuid" : "44fbd147-5fbe-446e-a634-0640070dfc19",
"title" : "Mr",
"uuid" : "25eb51f3-166a-471f-9d47-a811ba36a131",
"firstName" : "Carl",
"createdAt" : "2022-07-17T22:47:03Z",
"phoneNumber" : "(305) 208-5423",
"lastLoginAt" : "2022-07-18T12:40:33Z",
"email" : "lane.torphy@yahoo.com",
"timeSettings" : {
"defaultCostCode" : "5a91b64e-9ea4-4246-a051-71efe1f8b32c",
"defaultShift" : "202aa97c-670e-4df9-8380-88c7708d637f",
"blockTimeClock" : true
},
"username" : "lane.torphy@yahoo.com",
"status" : "ACTIVE",
"updatedAt" : "2022-07-19T22:41:27Z"
}, {
"lastName" : "Schoen",
"role" : "ROLE_USER",
"employeeId" : "EMP00002",
"classificationUuid" : "d1fb4967-99ce-4444-80d9-4dd6084355f0",
"title" : "Mrs",
"uuid" : "58a9231e-7362-4047-90c1-1b0579fd735d",
"firstName" : "Ollie",
"createdAt" : "2022-07-17T22:47:03Z",
"phoneNumber" : "(505) 656-1588",
"lastLoginAt" : "2022-07-18T12:40:33Z",
"email" : "eli.heaney@hotmail.com",
"timeSettings" : {
"defaultCostCode" : "ade9557a-dd0e-48a7-8471-b6d8d166b214",
"defaultShift" : "cc6808e4-9da5-4777-ab55-2f0b2c083e4d",
"blockTimeClock" : true
},
"username" : "eli.heaney@hotmail.com",
"status" : "ACTIVE",
"updatedAt" : "2022-07-19T22:41:27Z"
}, {
"lastName" : "Considine",
"role" : "ROLE_USER",
"employeeId" : "EMP00003",
"classificationUuid" : "3b446757-9f75-4653-b081-aa0dedc7d4fc",
"title" : "Mr",
"uuid" : "0dc1d8c0-4197-4364-a955-315846af8d5c",
"firstName" : "Eli",
"createdAt" : "2022-07-17T22:47:03Z",
"phoneNumber" : "(317) 733-7707",
"lastLoginAt" : "2022-07-18T12:40:33Z",
"email" : "myong.greenholt@hotmail.com",
"timeSettings" : {
"defaultCostCode" : "24c5a1d4-36f3-4d14-91ad-8de63b4a4e6b",
"defaultShift" : "23aa0e11-b60b-4fc5-8c50-c7da9961277e",
"blockTimeClock" : true
},
"username" : "myong.greenholt@hotmail.com",
"status" : "ACTIVE",
"updatedAt" : "2022-07-19T22:41:27Z"
}, {
"lastName" : "Hettinger",
"role" : "ROLE_USER",
"employeeId" : "EMP00004",
"classificationUuid" : "466ef397-6320-4edb-8449-eff444a29702",
"title" : "Mrs",
"uuid" : "1c239b69-bc2e-4e20-91d2-d12979bc9208",
"firstName" : "Tommy",
"createdAt" : "2022-07-17T22:47:03Z",
"phoneNumber" : "(505) 269-0439",
"lastLoginAt" : "2022-07-18T12:40:33Z",
"email" : "alona.hirthe@hotmail.com",
"timeSettings" : {
"defaultCostCode" : "ad65bc27-6cf3-45c0-a569-97931e902d19",
"defaultShift" : "33311073-f1f7-46d6-bfa4-d8de4adccfc3",
"blockTimeClock" : true
},
"username" : "alona.hirthe@hotmail.com",
"status" : "ACTIVE",
"updatedAt" : "2022-07-19T22:41:27Z"
}, {
"lastName" : "Will",
"role" : "ROLE_USER",
"employeeId" : "EMP00005",
"classificationUuid" : "c10b9ee3-243f-4cf0-a3da-a759f060bff3",
"title" : "Mr",
"uuid" : "52c41222-8e85-432e-b488-4118d64dc68f",
"firstName" : "Rolando",
"createdAt" : "2022-07-17T22:47:03Z",
"phoneNumber" : "(305) 839-2057",
"lastLoginAt" : "2022-07-18T12:40:33Z",
"email" : "charley.hudson@gmail.com",
"timeSettings" : {
"defaultCostCode" : "c426b07a-9371-409d-9607-a83a3139d039",
"defaultShift" : "c4fc4643-8e1a-43ec-baab-59e7f8fb85ea",
"blockTimeClock" : true
},
"username" : "charley.hudson@gmail.com",
"status" : "ACTIVE",
"updatedAt" : "2022-07-19T22:41:27Z"
} ]
}
Get Production Insights for a Project
A GET request will return production insights for a project between a date range on your Raken account.
Query parameters
| Parameter | Description | Required | Constraints |
|---|---|---|---|
fromDate |
Return production insights at or after this date. Defaults to the project start date if not provided |
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 |
Entity response fields
| Field | Type | Description |
|---|---|---|
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/fac157d8-02c0-4af3-8752-eb0d46cacd3d/productionInsights?fromDate=2022-07-01&toDate=2022-07-31&manualTracking=true&costCodeUuid=f9517bac-f632-4143-a7db-c7da6c999d0d&costCodeDivision=division&limit=5&offset=5' -i -X GET
Response body
{
"page" : {
"next" : "/projects/fac157d8-02c0-4af3-8752-eb0d46cacd3d/notes?offset=10&limit=5",
"offset" : 5,
"previous" : "/projects/fac157d8-02c0-4af3-8752-eb0d46cacd3d/notes?offset=0&limit=5",
"limit" : 5,
"nextOffset" : "10",
"totalElements" : 15
},
"collection" : [ {
"division" : "01",
"completeQuantityPercent" : 0.03,
"budgetedHours" : 280.65,
"costCodes" : [ {
"materialStats" : [ {
"completeQuantityPercent" : 0.74,
"material" : {
"name" : "Sand",
"uuid" : "feb2a04f-c36e-4d4e-b57f-9ce9ee5b8819",
"materialUnit" : {
"name" : "inch",
"uuid" : "59869d22-3163-466d-8114-eeb6f0f7befb"
}
},
"actualQuantity" : 108.66,
"budgetedQuantity" : 146.58
}, {
"completeQuantityPercent" : 0.24,
"material" : {
"name" : "Sand",
"uuid" : "09d3b92c-678a-46aa-afda-e5ed22d88b8e",
"materialUnit" : {
"name" : "inch",
"uuid" : "58dc5b07-4ced-49b9-8756-ccb046cf87f3"
}
},
"actualQuantity" : 6.4,
"budgetedQuantity" : 26.36
} ],
"costCode" : {
"division" : "01",
"code" : "78-43333",
"description" : "Sit qui mollitia.",
"uuid" : "25bd0214-84bd-4c53-a481-6d5305a01e99"
},
"budgetedHours" : 375.27,
"actualQuantity" : 6.84,
"remainingHours" : -125.45,
"budgetedQuantity" : 60.4,
"projectedHoursGainOrLoss" : 280.68,
"projectedTotalHours" : 655.95,
"actualHours" : 500.72,
"completeHoursPercent" : 1.33,
"progressHoursPercent" : 0.16
} ],
"remainingHours" : 271.75,
"projectedHoursGainOrLoss" : 228.94,
"projectedTotalHours" : 509.6,
"actualHours" : 8.9,
"completeHoursPercent" : 0.03
}, {
"division" : "02",
"completeQuantityPercent" : 0.08,
"budgetedHours" : 492.94,
"costCodes" : [ {
"materialStats" : [ {
"completeQuantityPercent" : 0.22,
"material" : {
"name" : "Sand",
"uuid" : "04be2fff-eab4-4f3f-b55b-672aef1067ef",
"materialUnit" : {
"name" : "inch",
"uuid" : "418dcc5b-ae58-42ee-a46a-258199a65c2f"
}
},
"actualQuantity" : 168.13,
"budgetedQuantity" : 741.09
}, {
"completeQuantityPercent" : 1.32,
"material" : {
"name" : "Sand",
"uuid" : "08778e75-7daf-4125-8140-3eed68d55be3",
"materialUnit" : {
"name" : "inch",
"uuid" : "a1d8ca66-720f-42e3-8e2d-fe3f98d7cd1d"
}
},
"actualQuantity" : 1053.93,
"budgetedQuantity" : 792.62
} ],
"costCode" : {
"division" : "02",
"code" : "68-70842",
"description" : "Distinctio quos cumque nulla.",
"uuid" : "eaef1e89-8dcc-41f8-bf1a-4b178865f894"
},
"budgetedHours" : 972.31,
"actualQuantity" : 26.69,
"remainingHours" : 966.06,
"budgetedQuantity" : 26.52,
"projectedHoursGainOrLoss" : 257.39,
"projectedTotalHours" : 1229.71,
"actualHours" : 6.24,
"completeHoursPercent" : 0,
"progressHoursPercent" : 0.02
} ],
"remainingHours" : 452.37,
"projectedHoursGainOrLoss" : 63.27,
"projectedTotalHours" : 556.22,
"actualHours" : 40.57,
"completeHoursPercent" : 0.08
}, {
"division" : "03",
"completeQuantityPercent" : 0.99,
"budgetedHours" : 575.13,
"costCodes" : [ {
"materialStats" : [ {
"completeQuantityPercent" : 0.56,
"material" : {
"name" : "Sand",
"uuid" : "2c8c49c2-24ae-40c2-abae-656a07d04db5",
"materialUnit" : {
"name" : "inch",
"uuid" : "23d9d9ee-37e5-41d8-9154-eba9674efba9"
}
},
"actualQuantity" : 297,
"budgetedQuantity" : 524.49
}, {
"completeQuantityPercent" : 0.12,
"material" : {
"name" : "Sand",
"uuid" : "474bca8d-8051-41dd-bd6c-9dfee9a1f6d9",
"materialUnit" : {
"name" : "inch",
"uuid" : "68c771d3-4f16-4164-980b-adaec84f9c44"
}
},
"actualQuantity" : 34.33,
"budgetedQuantity" : 277.87
} ],
"costCode" : {
"division" : "03",
"code" : "39-56142",
"description" : "Assumenda odio nulla.",
"uuid" : "37748877-2d25-4211-a30d-6e7863d807d4"
},
"budgetedHours" : 673.26,
"actualQuantity" : 76.78,
"remainingHours" : 579.46,
"budgetedQuantity" : 4.08,
"projectedHoursGainOrLoss" : 349.32,
"projectedTotalHours" : 1022.58,
"actualHours" : 93.79,
"completeHoursPercent" : 0.13,
"progressHoursPercent" : 0.97
}, {
"materialStats" : [ {
"completeQuantityPercent" : 0.99,
"material" : {
"name" : "Sand",
"uuid" : "85905a99-8022-4b06-a475-71c889960d05",
"materialUnit" : {
"name" : "inch",
"uuid" : "3c75a5d8-d45f-463b-9172-e097e10e56d6"
}
},
"actualQuantity" : 443.8,
"budgetedQuantity" : 444.62
}, {
"completeQuantityPercent" : 0.75,
"material" : {
"name" : "Sand",
"uuid" : "ac31f7a2-39ea-46b6-97e9-b3592ab8bcf6",
"materialUnit" : {
"name" : "inch",
"uuid" : "5f5836d7-c39d-4387-a8ae-e001d4628002"
}
},
"actualQuantity" : 563.55,
"budgetedQuantity" : 748.3
} ],
"costCode" : {
"division" : "03",
"code" : "45-91097",
"description" : "Repellat explicabo.",
"uuid" : "e737e4ce-2397-446b-b968-99e2d004b058"
},
"budgetedHours" : 212.09,
"actualQuantity" : 34.47,
"remainingHours" : 79.27,
"budgetedQuantity" : 64.04,
"projectedHoursGainOrLoss" : 39.97,
"projectedTotalHours" : 252.07,
"actualHours" : 132.82,
"completeHoursPercent" : 0.62,
"progressHoursPercent" : 0.61
} ],
"remainingHours" : 4.94,
"projectedHoursGainOrLoss" : 127.57,
"projectedTotalHours" : 702.71,
"actualHours" : 570.18,
"completeHoursPercent" : 0.99
}, {
"division" : "04",
"completeQuantityPercent" : 0.2,
"budgetedHours" : 327.57,
"costCodes" : [ {
"materialStats" : [ {
"completeQuantityPercent" : 1.38,
"material" : {
"name" : "Sand",
"uuid" : "b9a8c7f5-729f-4d11-a4df-dd27a6b06401",
"materialUnit" : {
"name" : "inch",
"uuid" : "8326a570-2f57-4c9f-b062-22be499b5f15"
}
},
"actualQuantity" : 311.41,
"budgetedQuantity" : 224.97
}, {
"completeQuantityPercent" : 0.62,
"material" : {
"name" : "Sand",
"uuid" : "134c93b8-2994-4e64-9c49-dbdc752a552a",
"materialUnit" : {
"name" : "inch",
"uuid" : "75759518-bc3a-4eef-a418-cacf906bb2ba"
}
},
"actualQuantity" : 345.6,
"budgetedQuantity" : 549.35
} ],
"costCode" : {
"division" : "04",
"code" : "60-47223",
"description" : "Earum sit.",
"uuid" : "b762adfb-f436-4d8d-8234-6ac5eed3a5d1"
},
"budgetedHours" : 230.43,
"actualQuantity" : 65.71,
"remainingHours" : 96.02,
"budgetedQuantity" : 17.38,
"projectedHoursGainOrLoss" : 223.67,
"projectedTotalHours" : 454.11,
"actualHours" : 134.4,
"completeHoursPercent" : 0.58,
"progressHoursPercent" : 0.19
} ],
"remainingHours" : 260.16,
"projectedHoursGainOrLoss" : 262.2,
"projectedTotalHours" : 589.78,
"actualHours" : 67.41,
"completeHoursPercent" : 0.2
}, {
"division" : "05",
"completeQuantityPercent" : 0.97,
"budgetedHours" : 971.62,
"costCodes" : [ {
"materialStats" : [ {
"completeQuantityPercent" : 0.95,
"material" : {
"name" : "Sand",
"uuid" : "1f4579df-2888-478e-96be-cf026d877a58",
"materialUnit" : {
"name" : "inch",
"uuid" : "1225cc37-a821-42a6-b6e8-955ea9b9ce4f"
}
},
"actualQuantity" : 541.3,
"budgetedQuantity" : 569.41
}, {
"completeQuantityPercent" : 0.15,
"material" : {
"name" : "Sand",
"uuid" : "a6fa580d-8b6f-48a4-8721-8faec266165a",
"materialUnit" : {
"name" : "inch",
"uuid" : "6651ad0a-6644-4e78-9675-e37c3cf67b1d"
}
},
"actualQuantity" : 67.01,
"budgetedQuantity" : 418.91
} ],
"costCode" : {
"division" : "05",
"code" : "96-93313",
"description" : "Sapiente quisquam maiores.",
"uuid" : "24c4de42-9f1c-4ca6-9eee-89e4da5779dd"
},
"budgetedHours" : 427.57,
"actualQuantity" : 52.06,
"remainingHours" : -19.18,
"budgetedQuantity" : 35.86,
"projectedHoursGainOrLoss" : 58.3,
"projectedTotalHours" : 485.88,
"actualHours" : 446.74,
"completeHoursPercent" : 1.04,
"progressHoursPercent" : 0.55
} ],
"remainingHours" : 26.57,
"projectedHoursGainOrLoss" : 652,
"projectedTotalHours" : 1623.63,
"actualHours" : 945.04,
"completeHoursPercent" : 0.97
} ]
}
Members
List
A GET request will list all the members on your Raken account.
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.
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 |
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. |
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.
|
Entity response fields
| Field | Type | Description |
|---|---|---|
uuid |
String |
Unique identifier for the member |
firstName |
String |
First Name |
lastName |
String |
Last Name |
role |
String |
Role |
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 |
updatedAt |
String |
Date and Time (UTC) when the member was updated |
lastLoginAt |
String |
Date and Time (UTC) when the member last logged in |
status |
String |
Member status |
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 |
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=7d7e6dba-1dbb-4bb8-b567-62898153ff7e&classificationUuids=693c41e9-857f-4ac1-bd62-963a774404bd,beb2bbd0-9d92-4526-84f5-6871934c52cf&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=7d7e6dba-1dbb-4bb8-b567-62898153ff7e&classificationUuids=693c41e9-857f-4ac1-bd62-963a774404bd,beb2bbd0-9d92-4526-84f5-6871934c52cf&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=7d7e6dba-1dbb-4bb8-b567-62898153ff7e&classificationUuids=693c41e9-857f-4ac1-bd62-963a774404bd,beb2bbd0-9d92-4526-84f5-6871934c52cf&changedSince=2024-02-03T14:00:00Z&changedUntil=2024-02-13T14:00:00Z&offset=10&limit=5",
"nextOffset" : "10"
},
"collection" : [ {
"uuid" : "2ef9bd02-9009-4df6-9776-2b3b2329d704",
"firstName" : "Lawerence",
"lastName" : "Stiedemann",
"role" : "ROLE_USER",
"email" : "huong.hirthe@hotmail.com",
"employeeId" : "EMP00001",
"username" : "huong.hirthe@hotmail.com",
"classificationUuid" : "33742c7c-4541-4a7e-b81a-1e8eee79d506",
"status" : "ACTIVE",
"phoneNumber" : "(327) 262-0901",
"title" : "Mr",
"lastLoginAt" : "2022-07-18T12:40:33Z",
"createdAt" : "2022-07-17T22:47:03Z",
"updatedAt" : "2022-07-19T22:41:27Z",
"timeSettings" : {
"blockTimeClock" : true,
"defaultCostCode" : "cd435259-d5b9-4678-9aa5-c9eac97d48c0",
"defaultShift" : "6f2a4f2c-02f7-448c-8d14-73d7592efc12"
}
}, {
"uuid" : "64eac98d-e805-43ad-a762-f61a8dc5563e",
"firstName" : "Harley",
"lastName" : "Kuhn",
"role" : "ROLE_USER",
"email" : "erwin.buckridge@gmail.com",
"employeeId" : "EMP00002",
"username" : "erwin.buckridge@gmail.com",
"classificationUuid" : "3109108f-f07b-4237-9042-80c285352e38",
"status" : "ACTIVE",
"phoneNumber" : "(505) 697-7080",
"title" : "Mrs",
"lastLoginAt" : "2022-07-18T12:40:33Z",
"createdAt" : "2022-07-17T22:47:03Z",
"updatedAt" : "2022-07-19T22:41:27Z",
"timeSettings" : {
"blockTimeClock" : true,
"defaultCostCode" : "c45f7117-ee09-40bd-92b9-cb8c35e7b2aa",
"defaultShift" : "70af827f-c08c-4252-970e-177721160f68"
}
}, {
"uuid" : "1697b57e-b3ee-42a1-b396-206b29f73e61",
"firstName" : "Fern",
"lastName" : "Auer",
"role" : "ROLE_USER",
"email" : "trang.nader@hotmail.com",
"employeeId" : "EMP00003",
"username" : "trang.nader@hotmail.com",
"classificationUuid" : "2960d6be-fc7c-4240-bb5b-324374d834e2",
"status" : "ACTIVE",
"phoneNumber" : "(505) 648-0195",
"title" : "Mr",
"lastLoginAt" : "2022-07-18T12:40:33Z",
"createdAt" : "2022-07-17T22:47:03Z",
"updatedAt" : "2022-07-19T22:41:27Z",
"timeSettings" : {
"blockTimeClock" : true,
"defaultCostCode" : "71014a01-6b83-4ad2-a00b-57ad3f1f5bd4",
"defaultShift" : "c5419797-694a-4906-b838-4acbd0618831"
}
}, {
"uuid" : "84b5f796-bf45-4b7f-8fae-60b96a9f7e45",
"firstName" : "Colette",
"lastName" : "Becker",
"role" : "ROLE_USER",
"email" : "mechelle.mann@hotmail.com",
"employeeId" : "EMP00004",
"username" : "mechelle.mann@hotmail.com",
"classificationUuid" : "67e3ef57-c5f2-4033-82dd-a330974f46ac",
"status" : "ACTIVE",
"phoneNumber" : "(505) 290-2397",
"title" : "Mrs",
"lastLoginAt" : "2022-07-18T12:40:33Z",
"createdAt" : "2022-07-17T22:47:03Z",
"updatedAt" : "2022-07-19T22:41:27Z",
"timeSettings" : {
"blockTimeClock" : true,
"defaultCostCode" : "69c3891a-27f2-4751-966d-484f751cf0f5",
"defaultShift" : "ef66aa46-58e1-4811-8a62-8676c443bd32"
}
}, {
"uuid" : "404d2551-7420-4a01-8329-d84e3839c2e8",
"firstName" : "Maynard",
"lastName" : "Konopelski",
"role" : "ROLE_USER",
"email" : "elijah.prohaska@gmail.com",
"employeeId" : "EMP00005",
"username" : "elijah.prohaska@gmail.com",
"classificationUuid" : "97d25439-9e24-4bae-88c1-34b4fd12bddc",
"status" : "ACTIVE",
"phoneNumber" : "(305) 218-6706",
"title" : "Mr",
"lastLoginAt" : "2022-07-18T12:40:33Z",
"createdAt" : "2022-07-17T22:47:03Z",
"updatedAt" : "2022-07-19T22:41:27Z",
"timeSettings" : {
"blockTimeClock" : true,
"defaultCostCode" : "9403d48f-ef7f-456a-b733-6a893047a4c0",
"defaultShift" : "4f78354f-2cc8-40f6-8380-3dac0dba4e37"
}
} ]
}
Get
A GET request will get a member by UUID on your Raken account.
It returns more details including projectUuids for the member, compared to the list request.
Response fields
| Field | Type | Description |
|---|---|---|
uuid |
String |
Unique identifier for the member |
firstName |
String |
First Name |
lastName |
String |
Last Name |
role |
String |
Role |
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 |
updatedAt |
String |
Date and Time (UTC) when the member was updated |
lastLoginAt |
String |
Date and Time (UTC) when the member last logged in |
status |
String |
Member status |
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 |
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/f96254c6-b656-4fdb-8791-57a75c8a1ca8' -i -X GET
Response body
{
"uuid" : "f96254c6-b656-4fdb-8791-57a75c8a1ca8",
"firstName" : "Dean",
"lastName" : "Krajcik",
"role" : "ROLE_WORKER",
"email" : "simona.hegmann@gmail.com",
"employeeId" : "EMP00001",
"username" : "simona.hegmann@gmail.com",
"classificationUuid" : "7b0b8986-b3b9-460c-b700-62955b0b73fb",
"status" : "ACTIVE",
"phoneNumber" : "(386) 946-1764",
"title" : "Mr",
"lastLoginAt" : "2022-07-18T12:40:33Z",
"createdAt" : "2022-07-17T22:47:03Z",
"updatedAt" : "2022-07-19T22:41:27Z",
"timeSettings" : {
"blockTimeClock" : true,
"defaultCostCode" : "4146c16a-d4f2-431e-93c8-47f210aaeeb4",
"defaultShift" : "020f0338-013b-4721-9606-ccef5d1a64ff"
},
"projectUuids" : [ "010deb52-a77b-4310-b007-7613ade4306a", "cf8f96e6-934d-4d86-a591-c9b886338ae9" ],
"memberCertifications" : [ {
"uuid" : "23637072-3eb5-4e36-b4d1-9e5b6d725463",
"certificationName" : "Velit ipsam.",
"expired" : false,
"description" : "Perferendis blanditiis at magnam aliquid. Deserunt necessitatibus quidem eligendi vero iste quae.",
"attachments" : [ {
"uuid" : "281d0497-f122-4608-82c3-c0ac51451693",
"url" : "https://www.example.com/image",
"description" : "Description",
"fileName" : "dolor.jpg",
"thumbnailUrl" : "https://www.example.com/thumbnailImage",
"contentType" : "image/png",
"mediaType" : "IMAGE",
"fileSize" : 13480
} ]
} ]
}
List Member Projects
A GET request will get projects of a member by UUID on your Raken account.
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 |
Entity response fields
| Field | Type | Description |
|---|---|---|
uuid |
String |
Unique identifier for the project |
name |
String |
Project Name |
teamType |
String |
Team type |
Usage Example with Curl
Curl request
$ curl 'https://developer.rakenapp.com/api/members/ce758414-ad28-4e48-b329-94cc722cae13/projects?statuses=ACTIVE&limit=5&offset=5' -i -X GET
Response body
{
"page" : {
"offset" : 5,
"limit" : 5,
"totalElements" : 15,
"previous" : "/members/ce758414-ad28-4e48-b329-94cc722cae13/projects?statuses=ACTIVE&offset=0&limit=5",
"next" : "/members/ce758414-ad28-4e48-b329-94cc722cae13/projects?statuses=ACTIVE&offset=10&limit=5",
"nextOffset" : "10"
},
"collection" : [ {
"uuid" : "ac7b94ce-a3fb-436f-8839-2f3af3295943",
"name" : "Ed Ible",
"teamType" : "GENERAL_CONTRACTOR"
}, {
"uuid" : "e3962e29-c3e4-4e2a-99c3-5e653b92a388",
"name" : "Missy Sippy",
"teamType" : "GENERAL_CONTRACTOR"
}, {
"uuid" : "2a317f96-4ac1-4d51-839d-9ac171fc8950",
"name" : "Joy Kil",
"teamType" : "GENERAL_CONTRACTOR"
}, {
"uuid" : "60576da8-96e8-48c2-a8a3-7338fa09e9f0",
"name" : "Sam Pull",
"teamType" : "GENERAL_CONTRACTOR"
}, {
"uuid" : "d1d5b2e2-6538-43a3-8e1d-dc6b55c02729",
"name" : "Marty Graw",
"teamType" : "GENERAL_CONTRACTOR"
} ]
}
Create
A POST request will create a new member on your Raken account.
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 |
|---|---|---|
uuid |
String |
Unique identifier for the member |
firstName |
String |
First Name |
lastName |
String |
Last Name |
role |
String |
Role |
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 |
updatedAt |
String |
Date and Time (UTC) when the member was updated |
lastLoginAt |
String |
Date and Time (UTC) when the member last logged in |
status |
String |
Member status |
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 |
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" : "Glen",
"lastName" : "Ritchie",
"projectUuids" : [ "8b258244-7c5a-41f2-a022-5e1813b9e95e" ],
"role" : "ROLE_WORKER",
"timeSettings" : {
"blockTimeClock" : true,
"defaultCostCode" : "b739422b-885a-4239-8a9b-76f991ea43bf",
"defaultShift" : "a66288ee-e26c-4966-889a-9212822d009b"
}
}'
Response body
{
"uuid" : "9650ca83-c5ab-449a-aeda-995415bb0468",
"firstName" : "Glen",
"lastName" : "Ritchie",
"role" : "ROLE_WORKER",
"email" : "linwood.wunsch@gmail.com",
"employeeId" : "EMP00001",
"username" : "linwood.wunsch@gmail.com",
"classificationUuid" : "7bde3fea-a07f-438d-bba6-19599b6a37e8",
"status" : "ACTIVE",
"phoneNumber" : "(920) 563-7495",
"title" : "Mr",
"lastLoginAt" : "2022-07-18T12:40:33Z",
"createdAt" : "2022-07-17T22:47:03Z",
"updatedAt" : "2022-07-19T22:41:27Z",
"timeSettings" : {
"blockTimeClock" : true,
"defaultCostCode" : "77b94f4c-56db-4149-943e-1a90a77ade11",
"defaultShift" : "d196924c-e5e1-4e4d-8382-c03d6aecbf4e"
},
"projectUuids" : [ "fbf086ad-640b-4c26-974c-3b44c76e6475", "95f39cfd-44ae-44b5-85e1-6f261d7ccaad" ]
}
Update
A PATCH request will update a project member. Please note that 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 |
|---|---|---|
uuid |
String |
Unique identifier for the member |
firstName |
String |
First Name |
lastName |
String |
Last Name |
role |
String |
Role |
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 |
updatedAt |
String |
Date and Time (UTC) when the member was updated |
lastLoginAt |
String |
Date and Time (UTC) when the member last logged in |
status |
String |
Member status |
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 |
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/1918a1f7-3f8c-4ba3-991a-d79894585ce0' -i -X PATCH \
-H 'Content-Type: application/json' \
-d '{
"firstName" : "Melodie"
}'
Response body
{
"uuid" : "1918a1f7-3f8c-4ba3-991a-d79894585ce0",
"firstName" : "Melodie",
"lastName" : "Crona",
"role" : "ROLE_WORKER",
"email" : "doris.lowe@hotmail.com",
"employeeId" : "EMP00001",
"username" : "doris.lowe@hotmail.com",
"classificationUuid" : "d6bd65ff-027e-4d4b-a67b-937abe843b27",
"status" : "ACTIVE",
"phoneNumber" : "(505) 432-5902",
"title" : "Mr",
"lastLoginAt" : "2022-07-18T12:40:33Z",
"createdAt" : "2022-07-17T22:47:03Z",
"updatedAt" : "2022-07-19T22:41:27Z",
"timeSettings" : {
"blockTimeClock" : true,
"defaultCostCode" : "7071c038-0374-4b1f-bc69-18c50c07a336",
"defaultShift" : "6a642cd3-8522-41f5-adc0-2f82a0207852"
},
"projectUuids" : [ "47bcb892-5aeb-4d5e-984d-9a2cf2dd52be", "cde268d2-aec6-42f3-8ee6-ae2ceafc8a48" ]
}
Update members project assignment
A POST request will change project assignments for members, in batch, on your Raken account.
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" : [ "c3c12a42-9309-4eda-ad1d-93c222a91dbb" ],
"projectAssignmentType" : "APPEND",
"projectState" : "ACTIVE",
"projectUuids" : [ "f052fdd5-6a41-4ea9-bd56-76bc4837e1b6", "3d90440f-ee21-431f-bb24-66bb78473925" ]
}'
Cost Codes
List
A GET request will list all the cost codes.
Query parameters
| Parameter | Description | Required | Constraints |
|---|---|---|---|
projectUuid |
Restrict the cost codes to the projects represented by this UUID. |
No |
|
changedSince |
Return only time cards updated at or after this time, inclusive. The date is capped to a month to changedUntil. |
No |
Format: "yyyy-MM-ddThh:mm:ssZ" |
changedUntil |
Return only time cards updated before this time, exclusive. The date is capped to a month to changedSince. |
No |
Format: "yyyy-MM-ddThh:mm:ssZ" |
Entity response fields
| Field | Type | Description |
|---|---|---|
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 |
updatedAt |
String |
Date and Time (UTC) when the cost code was updated |
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" : "33e12d07-cb22-4f53-adc0-040cadf89e8b",
"code" : "0110",
"division" : "01 - General Conditions",
"description" : "Mockups",
"createdAt" : "2022-07-17T22:47:03Z",
"updatedAt" : "2022-07-19T22:41:27Z"
}, {
"uuid" : "e9f3f54d-f80d-43ff-8107-79a08c5a4b3d",
"code" : "0300",
"division" : "03 - Structural & Architectural Concrete",
"description" : "Structural Concrete",
"createdAt" : "2022-07-07T21:41:13Z",
"updatedAt" : "2022-07-09T21:41:17Z"
} ]
}
Create
A POST request will create a new cost code.
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 |
|---|---|---|
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 |
updatedAt |
String |
Date and Time (UTC) when the cost code was updated |
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" : "8b4fbfa4-dcf1-4d3d-ad0a-f469e0953433",
"code" : "0110",
"division" : "01 - General Conditions",
"description" : "Mockups",
"createdAt" : "2022-07-17T22:47:03Z",
"updatedAt" : "2022-07-19T22:41:27Z"
}
Update
A PATCH request will update a cost code.
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 |
|---|---|---|
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 |
updatedAt |
String |
Date and Time (UTC) when the cost code was updated |
Usage Example with Curl
Curl request
$ curl 'https://developer.rakenapp.com/api/costCodes/7bf236a0-c6d2-44a6-a826-04f96cd0530a' -i -X PATCH \
-H 'Content-Type: application/json' \
-d '{
"division" : "01 - General Conditions",
"description" : "Mockups"
}'
Response body
{
"uuid" : "7bf236a0-c6d2-44a6-a826-04f96cd0530a",
"code" : "0110",
"division" : "01 - General Conditions",
"description" : "Mockups",
"createdAt" : "2022-07-17T22:47:03Z",
"updatedAt" : "2022-07-19T22:41:27Z"
}
Classifications
List
A GET request will list all the 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" |
Entity response fields
| Field | Type | Description |
|---|---|---|
uuid |
String |
Unique identifier for the classification |
name |
String |
Classification Name |
status |
String |
Classification status |
createdAt |
String |
Date and Time (UTC) when the classification was created |
updatedAt |
String |
Date and Time (UTC) when the classification was updated |
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" : "725b0cbc-22b8-4f27-830e-195fe7da286b",
"name" : "Foreman",
"status" : "ACTIVE",
"updatedAt" : "2024-06-07T09:45:01Z",
"createdAt" : "2024-05-27T03:11:44Z"
}, {
"uuid" : "a915146d-7828-4521-ad31-fe96c8510cd0",
"name" : "Journeyman",
"status" : "ACTIVE",
"updatedAt" : "2025-09-17T10:30:45Z",
"createdAt" : "2025-05-27T19:54:11Z"
} ]
}
Create
A POST request will create a new classification on your Raken account.
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 |
|---|---|---|
uuid |
String |
Unique identifier for the classification |
name |
String |
Classification Name |
status |
String |
Classification status |
createdAt |
String |
Date and Time (UTC) when the classification was created |
updatedAt |
String |
Date and Time (UTC) when the classification was updated |
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" : "c50caa6b-0c3f-4464-bd49-7c2750e2fa20",
"name" : "FOREMAN",
"status" : "ACTIVE",
"updatedAt" : "2026-05-30T13:18:57Z",
"createdAt" : "2026-03-19T17:07:22Z"
}
Work Logs
List
A GET request will list the matching work logs.
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. The date is capped to a month to toDate. Provide either |
No |
Format: "yyyy-MM-dd" |
toDate |
Return work logs ending on this date. The date is capped to a month from fromDate. |
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 |
Entity response fields
| Field | Type | Description |
|---|---|---|
uuid |
String |
Unique identifier for the work log |
date |
String |
Date of the work log |
status |
String |
Work log status |
totalHours |
Number |
Total hours on this work log |
description |
String |
Description of the work log |
projectUuid |
String |
Project this work log is for |
workLogType |
String |
Type of work log |
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 |
updatedAt |
String |
Date and Time (UTC) when the work log was updated |
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 |
timeCards[].updatedAt |
String |
Date and Time (UTC) when this time card was updated |
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 |
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 |
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=2012-01-01&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=2012-01-01&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=2012-01-01&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" : "3017a2c9-b2c3-4b71-be44-f38c73963990",
"totalHours" : 8.0,
"date" : "2020-10-15",
"timeCards" : [ {
"uuid" : "22b62ac5-fadf-462b-88cb-be9a807f7c7a",
"workerUuid" : "a2daabb2-da39-4b91-8921-f749f6ddcc42",
"totalHours" : 8.0,
"startTime" : "05:00:00",
"endTime" : "17:00:00",
"attachments" : [ {
"uuid" : "fbbb7410-9434-4f86-853b-c1324b293604",
"url" : "https://www.example.com/image",
"description" : "Description",
"fileName" : "adipisci.jpg",
"thumbnailUrl" : "https://www.example.com/thumbnailImage",
"contentType" : "image/png",
"mediaType" : "IMAGE",
"fileSize" : 34438
} ],
"timeEntries" : [ {
"hours" : 8.0,
"payType" : {
"uuid" : "b7c818ec-1e93-4da7-9e0d-01c771838d28",
"name" : "Regular Time",
"code" : "RT"
},
"shift" : {
"uuid" : "49ff46a7-72e3-444f-9281-76aa90dbdae8",
"name" : "Night Shift",
"code" : "NS"
},
"classification" : {
"uuid" : "347eabe1-038a-4b84-abe3-705bd71f974c",
"name" : "Apprentice"
},
"costCode" : {
"uuid" : "9a6506cd-0c0d-48dc-8f6c-12251a6592dc",
"code" : "C1",
"division" : "D1"
}
} ],
"note" : "Payroll Note",
"createdAt" : "2020-10-16T12:00:00Z",
"updatedAt" : "2020-10-16T12:30:00Z",
"createdBy" : {
"uuid" : "83d230bb-2200-409e-bd0e-3617b12239f8",
"name" : "Willie Altenwerth"
},
"updatedBy" : {
"uuid" : "01bd6e5b-b023-45d4-81c3-f44eb15a5272",
"name" : "Roy Leannon"
},
"breaks" : [ {
"name" : "Meal Break",
"duration" : 30.0,
"startTime" : "10:00:00"
} ]
} ],
"status" : "COMPLETED",
"description" : "Description",
"projectUuid" : "b7e2f247-f8d3-4bef-9540-6d965a7fbe22",
"attachments" : [ {
"uuid" : "6af30282-7223-4218-82d2-53b57c711c01",
"url" : "https://www.example.com/image",
"description" : "Description",
"fileName" : "placeat.jpg",
"thumbnailUrl" : "https://www.example.com/thumbnailImage",
"contentType" : "image/png",
"mediaType" : "IMAGE",
"fileSize" : 21244
} ],
"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"
} ]
}
Equipment Logs
List
A GET request will list the matching equipment logs 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 |
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. |
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. |
No |
Format: "yyyy-MM-ddThh:mm:ssZ" |
toCreatedAt |
Return only equipment deployments created before this time, exclusive. |
No |
Format: "yyyy-MM-ddThh:mm:ssZ" |
Entity response fields
| Field | Type | Description |
|---|---|---|
uuid |
String |
Unique identifier for the equipment deployment |
startDate |
String |
Date on which the equipment deployment started |
endDate |
String |
Date on which the equipment deployment ended |
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 |
updatedBy |
String |
Unique identifier for the user who updated the equipment log |
updatedAt |
String |
Date and Time (UTC) when the equipment deployement was updated |
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 |
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 |
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 |
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 |
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 |
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 |
costCode.updatedAt |
String |
Date and Time (UTC) when this cost code was updated |
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 |
logs[].costCode.updatedAt |
String |
Date and Time (UTC) when this cost code was updated |
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" : "aa1cbf90-37c9-4f4b-a549-9cf845855888",
"createdAt" : "2026-06-18T22:22:51Z",
"updatedBy" : "4afd8e59-7e3f-4e95-9a0a-01bfc6640c9c",
"updatedAt" : "2026-06-18T22:22:51Z",
"uuid" : "ee1d9935-808c-4ec0-98d6-0312ee118576",
"equipment" : {
"uuid" : "bc878d5b-f93d-4f1d-b145-3f2b72cea2c2",
"name" : "Compactor",
"equipmentId" : "EQ-1"
},
"projectUuid" : "d320e983-b492-42c3-b2c5-c04f294bc434",
"startDate" : "2020-10-10",
"endDate" : "2020-10-13",
"logs" : [ {
"createdBy" : "fc4ad5f1-6fa3-4aea-942b-c2d6faacc6ea",
"createdAt" : "2026-06-18T22:22:51Z",
"updatedBy" : "0eb8f33b-84eb-4f5a-a359-59af0ec193f2",
"updatedAt" : "2026-06-18T22:22:51Z",
"uuid" : "496a00bd-08d0-45df-90a5-a48b4807051f",
"description" : "Delivered @ 8am",
"date" : "2020-10-11",
"hours" : 3.0,
"idleHours" : 1.0,
"status" : "IN_USE",
"attachments" : [ {
"uuid" : "2a83e11e-82b7-4c11-8ea1-e64a1cfc70c3",
"url" : "https://www.example.com/image",
"description" : "Description",
"fileName" : "harum.jpg",
"thumbnailUrl" : "https://www.example.com/thumbnailImage",
"contentType" : "image/png",
"mediaType" : "IMAGE",
"fileSize" : 76750
} ],
"operator" : "e8136081-09e6-4aae-bbfc-f4865a3bfa07",
"odometerReading" : 45.0,
"fuelConsumption" : 10.0,
"costCode" : {
"uuid" : "ad8a0d50-d0ed-42c4-a7cc-098a50a8e419",
"code" : "code",
"division" : "division",
"description" : "description",
"createdAt" : "2026-06-18T22:22:51Z",
"updatedAt" : "2026-06-18T22:22:51Z"
},
"equipmentDeficiencies" : [ {
"faultCode" : "101",
"description" : "Fault description"
} ]
} ],
"costCode" : {
"uuid" : "25bc11ac-5a45-4294-9328-43ecd1b1c168",
"code" : "code",
"division" : "division",
"description" : "description",
"createdAt" : "2026-06-18T22:22:51Z",
"updatedAt" : "2026-06-18T22:22:51Z"
},
"daysOnsite" : 10,
"daysNotInUse" : 5
} ]
}
Equipment
List
A GET request will list the matching 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 |
Entity response fields
| Field | Type | Description |
|---|---|---|
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 |
equipmentId |
String |
External ID for the equipment |
owned |
Boolean |
Flag indicating whether the equipment is owned or rentedBoolean 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 |
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 |
odometerReading |
Number |
Current odometer reading for the equipment |
fuelGaugeType |
String |
Fuel gauge measurement unit type for the equipment |
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 |
deficiencyCount |
Number |
Number of deficiencies for the equipment with the status OPEN |
nextAvailableDate |
String |
Date on which the equipment will next be available |
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 |
deployment.endDate |
String |
End date for this equipment deployment |
createdBy |
String |
Unique identifier for the user who created the equipment |
createdAt |
String |
Date and Time (UTC) when the equipment was created |
updatedBy |
String |
Unique identifier for the user who updated the equipment log |
updatedAt |
String |
Date and Time (UTC) when the equipment deployement was updated |
Usage Example with Curl
Curl request
$ curl 'https://developer.rakenapp.com/api/equipment?conditions=AVAILABLE,DEPLOYED&deployedToProjectUuids=0f951d25-aaf8-409d-88a7-bbaf475e1903&query=query&limit=5&offset=5' -i -X GET
Response body
{
"page" : {
"offset" : 5,
"limit" : 5,
"totalElements" : 15,
"previous" : "/equipment?conditions=AVAILABLE,DEPLOYED&deployedToProjectUuids=0f951d25-aaf8-409d-88a7-bbaf475e1903&query=query&offset=0&limit=5",
"next" : "/equipment?conditions=AVAILABLE,DEPLOYED&deployedToProjectUuids=0f951d25-aaf8-409d-88a7-bbaf475e1903&query=query&offset=10&limit=5",
"nextOffset" : "10"
},
"collection" : [ {
"createdBy" : "80edbe8f-2e06-443e-a4ba-e40f2f14a552",
"createdAt" : "2026-06-18T22:22:50Z",
"updatedBy" : "b6557564-98fa-4a05-97f7-233f113491e9",
"updatedAt" : "2026-06-18T22:22:50Z",
"uuid" : "2bde5653-97d6-4ee3-bf09-1876e01481d7",
"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-06-18",
"deficiencyCount" : 2,
"nextAvailableDate" : "2026-06-28",
"nextMaintenance" : "2024-10-12",
"deployment" : {
"uuid" : "f2c0d6e2-4091-4a51-a9b2-d9649c2df763",
"projectUuid" : "a1a83bdf-a3cb-4540-b6ff-77c637df2b47",
"startDate" : "2026-06-18",
"endDate" : "2026-06-28"
}
} ]
}
Checklist Types
List
A GET request will list all the checklist types on your Raken account.
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 |
Entity response fields
| Field | Type | Description |
|---|---|---|
uuid |
String |
Unique identifier for the checklist type |
createdAt |
String |
Date and Time (UTC) when the checklist type was created |
status |
String |
Status of the checklist type |
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 |
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" : "03dda154-4ee8-4ecf-8d44-7b2a12395b54",
"createdAt" : "2026-06-18T22:22:43Z",
"status" : "ACTIVE",
"createdBy" : {
"uuid" : "84099187-8e6d-4d66-b12c-e25ad4b55823",
"name" : "User Name"
},
"updatedAt" : "2026-06-18T22:22:43Z",
"class" : "GENERAL",
"name" : "Hazard Mitigation"
}, {
"uuid" : "5fd6374e-6078-4000-9cb6-d990ca3d883c",
"createdAt" : "2026-06-18T22:22:43Z",
"status" : "ACTIVE",
"createdBy" : {
"uuid" : "f6c3bbd6-a980-4758-8d52-57bf8d44cf57",
"name" : "User Name"
},
"updatedAt" : "2026-06-18T22:22:43Z",
"class" : "GENERAL",
"name" : "Hazard Mitigation"
}, {
"uuid" : "94fe17c2-6138-4268-aedb-e88538fde90b",
"createdAt" : "2026-06-18T22:22:43Z",
"status" : "ACTIVE",
"createdBy" : {
"uuid" : "9a9d6215-2c6c-49a6-8479-1065ee2677e2",
"name" : "User Name"
},
"updatedAt" : "2026-06-18T22:22:43Z",
"class" : "GENERAL",
"name" : "Hazard Mitigation"
}, {
"uuid" : "fb45cdfa-c270-4f1e-af99-8f9010dfc200",
"createdAt" : "2026-06-18T22:22:43Z",
"status" : "ACTIVE",
"createdBy" : {
"uuid" : "98e07b2c-70c4-4f49-9081-3543580a1fd5",
"name" : "User Name"
},
"updatedAt" : "2026-06-18T22:22:43Z",
"class" : "GENERAL",
"name" : "Hazard Mitigation"
}, {
"uuid" : "18e8890e-9f5c-4559-8603-fd5057bd66fe",
"createdAt" : "2026-06-18T22:22:43Z",
"status" : "ACTIVE",
"createdBy" : {
"uuid" : "da886423-b9c3-4235-8d2a-cb1124c61c03",
"name" : "User Name"
},
"updatedAt" : "2026-06-18T22:22:43Z",
"class" : "GENERAL",
"name" : "Hazard Mitigation"
} ]
}
Checklists
List
A GET request will list all the checklists on your Raken account.
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 |
No |
Enums: COMPLETED, DRAFT, DELETED |
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 |
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 |
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 |
Entity response fields
| Field | Type | Description |
|---|---|---|
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 |
updatedAt |
String |
Date and Time (UTC) when the checklist was updated |
status |
String |
Status of the checklist |
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=f1a8013e-a797-4b44-92bd-52c6e84294a3&templateUuid=937fa6b4-9616-4470-b87c-43033c664ba6&createdByUuid=cbd1cf91-d9ef-4813-8721-1c8f2c70459a&fromCreatedAt=2026-06-17T22:22:44Z&toCreatedAt=2026-06-18T22:22:44Z&checklistTypeUuid=6c2b1da3-b96f-4099-b838-ebe501581f23&statuses=COMPLETED&statuses=DRAFT&checklistDateFrom=2026-06-17T22:22:44Z&checklistDateTo=2026-06-18T22:22:44Z&limit=5&offset=5' -i -X GET
Response body
{
"page" : {
"offset" : 5,
"limit" : 5,
"totalElements" : 15,
"previous" : "/checklists?projectUuid=f1a8013e-a797-4b44-92bd-52c6e84294a3&templateUuid=937fa6b4-9616-4470-b87c-43033c664ba6&createdByUuid=cbd1cf91-d9ef-4813-8721-1c8f2c70459a&fromCreatedAt=2026-06-17T22:22:44Z&toCreatedAt=2026-06-18T22:22:44Z&checklistTypeUuid=6c2b1da3-b96f-4099-b838-ebe501581f23&statuses=COMPLETED&statuses=DRAFT&checklistDateFrom=2026-06-17T22:22:44Z&checklistDateTo=2026-06-18T22:22:44Z&offset=0&limit=5",
"next" : "/checklists?projectUuid=f1a8013e-a797-4b44-92bd-52c6e84294a3&templateUuid=937fa6b4-9616-4470-b87c-43033c664ba6&createdByUuid=cbd1cf91-d9ef-4813-8721-1c8f2c70459a&fromCreatedAt=2026-06-17T22:22:44Z&toCreatedAt=2026-06-18T22:22:44Z&checklistTypeUuid=6c2b1da3-b96f-4099-b838-ebe501581f23&statuses=COMPLETED&statuses=DRAFT&checklistDateFrom=2026-06-17T22:22:44Z&checklistDateTo=2026-06-18T22:22:44Z&offset=10&limit=5",
"nextOffset" : "10"
},
"collection" : [ {
"uuid" : "16dad860-cd93-452f-9dce-9953a81b4d49",
"templateUuid" : "16d8cdf3-d244-49bf-b77f-86e358e33041",
"name" : "Activity Risk Assessment",
"status" : "COMPLETED",
"projectUuid" : "bb5d07c9-231c-4e97-b031-a2c0d34fa01c",
"pdfUrl" : "https://www.noble-christiansen.com:18141/blanditiis/corruptiearum?reiciendis=cupiditate&officia=pariatur#doloremque",
"createdBy" : {
"uuid" : "bc1c41bd-367e-469a-bffc-70cc4eb652ba",
"name" : "Ocie Shields III"
},
"createdAt" : "2026-04-28T05:11:25Z",
"updatedAt" : "2026-05-14T20:39:59Z",
"location" : {
"fullPath" : "Location full path",
"name" : "Bogan Avenue"
},
"checklistTypeUuid" : "c4fc2233-2e4f-454e-b46b-1612d9fa4cfe",
"observationsClosedCount" : 4,
"observationsRaisedCount" : 2,
"responsibleClassificationUuid" : "15705f6b-8e6f-4f97-b897-c4c1a88ba316",
"checklistDate" : "2026-06-18T22:22:44"
}, {
"uuid" : "942809a4-1100-4533-9d0a-25af1721a2c9",
"templateUuid" : "ac4059b3-8f21-42c2-8d3c-b066c1bbe6f7",
"name" : "Construction Quality Control",
"status" : "DRAFT",
"projectUuid" : "105d4563-f055-447c-88c7-2ab4a027b54b",
"pdfUrl" : "http://www.rigoberto-rice.io/?fugiat=nostrum&dolorem=iste#tempore",
"createdBy" : {
"uuid" : "39f49eff-da13-4715-8f92-b1b0e92504d8",
"name" : "Keneth Ritchie"
},
"createdAt" : "2025-05-29T00:51:45Z",
"updatedAt" : "2026-01-18T09:15:27Z",
"location" : {
"fullPath" : "Location full path",
"name" : "Collins Tunnel"
},
"checklistTypeUuid" : "509d7d24-4318-473b-83f7-82da3ad5a191",
"observationsClosedCount" : 8,
"observationsRaisedCount" : 4,
"responsibleClassificationUuid" : "9c22762e-575d-485c-b5e5-5de1d98f7ce2",
"checklistDate" : "2026-06-18T22:22:44"
}, {
"uuid" : "649b2854-221c-4280-b2a9-66f78a2a3b1d",
"templateUuid" : "c3e2b38d-44ba-42bc-993f-2f790261bf4d",
"name" : "Covid-19 Inspection",
"status" : "COMPLETED",
"projectUuid" : "4388dd0d-d1f2-4ea2-8670-6570e73d05cd",
"pdfUrl" : "https://www.elliott-powlowski.name/rem/mollitia?necessitatibus=corrupti&iste=nam#dolorum",
"createdBy" : {
"uuid" : "7095cc59-f5dc-4de6-b407-4abaf08dd431",
"name" : "Dorla Dickens"
},
"createdAt" : "2025-07-30T02:36:24Z",
"updatedAt" : "2026-06-04T02:51:55Z",
"location" : {
"fullPath" : "Location full path",
"name" : "McCullough Islands"
},
"checklistTypeUuid" : "b50092c1-a960-412f-915a-9ef42e418684",
"observationsClosedCount" : 2,
"observationsRaisedCount" : 4,
"responsibleClassificationUuid" : "71fea962-dcb4-429e-ac16-bbb13089b29f",
"checklistDate" : "2026-06-18T22:22:44"
}, {
"uuid" : "76cb537b-dca6-4298-8a37-f02c613724b7",
"templateUuid" : "5b918b9a-19d7-4e23-b23b-31500a1ef787",
"name" : "Framing Pre-Inspection",
"status" : "DRAFT",
"projectUuid" : "dc7f2ec1-a610-4fc2-95b5-6fcbbb452773",
"pdfUrl" : "http://www.hollis-kuphal.name/porro/dolores#minus",
"createdBy" : {
"uuid" : "b81ca431-e65c-441e-9c72-c490f6645a17",
"name" : "Theo Kutch"
},
"createdAt" : "2025-08-16T10:52:03Z",
"updatedAt" : "2025-09-23T23:49:56Z",
"location" : {
"fullPath" : "Location full path",
"name" : "Bette Green"
},
"checklistTypeUuid" : "b2f74f30-febf-48e1-b4cb-481a8125f895",
"observationsClosedCount" : 4,
"observationsRaisedCount" : 2,
"responsibleClassificationUuid" : "23b8ca35-d8a6-4991-ab66-2c855ad6fe17",
"checklistDate" : "2026-06-18T22:22:44"
}, {
"uuid" : "e1b77a3c-f86c-4f82-8db1-cefc08990a90",
"templateUuid" : "5d85c71a-7171-449d-a839-437702e15ce1",
"name" : "Material Delivery",
"status" : "COMPLETED",
"projectUuid" : "e4cfa4cd-8687-4ddc-83be-c98f4947c6c1",
"pdfUrl" : "https://www.elaine-morar.org:47830/libero/repudiandae?quidem=a&eos=aliquam#iusto",
"createdBy" : {
"uuid" : "aed35a1c-37fc-4f0f-b772-a57c751694e5",
"name" : "Tommy Durgan"
},
"createdAt" : "2026-02-12T15:37:28Z",
"updatedAt" : "2026-03-08T15:12:56Z",
"location" : {
"fullPath" : "Location full path",
"name" : "Edgardo Station"
},
"checklistTypeUuid" : "42b2f0b0-e76f-43cb-a233-6dfa8ea513ba",
"observationsClosedCount" : 9,
"observationsRaisedCount" : 1,
"responsibleClassificationUuid" : "93bfa478-5448-4cf8-89e2-18da328af371",
"checklistDate" : "2026-06-18T22:22:44"
} ]
}
Get
A GET request will get a checklist by UUID on your Raken account.
Response fields
| Field | Type | Description |
|---|---|---|
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 |
updatedAt |
String |
Date and Time (UTC) when the checklist was updated |
status |
String |
Status of the checklist |
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 |
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 |
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 |
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 |
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/de0d799e-4186-4f50-9ec9-7e98b140d95c' -i -X GET
Response body
{
"uuid" : "de0d799e-4186-4f50-9ec9-7e98b140d95c",
"templateUuid" : "b52b5022-4f6f-4f50-8320-f74bad741637",
"name" : "Construction Quality Control",
"status" : "COMPLETED",
"projectUuid" : "ea56225a-e150-48a6-ad73-d09a65987cb1",
"pdfUrl" : "http://www.cyrus-connelly.org:8202/ad/neque",
"createdBy" : {
"uuid" : "87fd1bce-512e-4102-b0f3-d74ffb2205de",
"name" : "Miesha Champlin III"
},
"createdAt" : "2026-01-09T12:51:17Z",
"updatedAt" : "2026-03-04T21:37:18Z",
"location" : {
"fullPath" : "Location full path",
"name" : "Jeri Pike"
},
"checklistTypeUuid" : "7035c5ef-7a3e-4d11-b055-35c5a09cb583",
"observationsClosedCount" : 5,
"observationsRaisedCount" : 4,
"responsibleClassificationUuid" : "771d3898-8483-4c7d-a8f0-c253e3e0bf0e",
"checklistDate" : "2026-06-18T22:22:44",
"checklistSections" : [ {
"checklistQuestions" : [ {
"checklistResponses" : [ {
"value" : "Laboriosam voluptate similique iste.",
"note" : "Aut sequi pariatur animi ex laboriosam sint. Ipsa praesentium neque. Eveniet ab mollitia cum in.",
"checklistResponseAttachments" : [ {
"uuid" : "93e91185-a132-4eb7-b4b5-6501aa7074ca",
"url" : "https://www.example.com/image",
"description" : "Description",
"fileName" : "enim.jpg",
"thumbnailUrl" : "https://www.example.com/thumbnailImage",
"contentType" : "image/png",
"mediaType" : "IMAGE",
"fileSize" : 70807
} ],
"choices" : [ {
"description" : "Choice 1",
"position" : 1,
"selected" : true
}, {
"description" : "Choice 2",
"position" : 2,
"selected" : false
} ],
"observations" : [ {
"uuid" : "30a70c49-2d10-4392-8e6f-308cd04f4297",
"category" : "NEGATIVE"
} ]
} ],
"questionText" : "Are access routes in good condition and clearly signposted?",
"responseType" : "CHECKBOX",
"position" : 1,
"required" : true
}, {
"checklistResponses" : [ {
"value" : "Corporis doloribus accusamus ea blanditiis facere.",
"note" : "Porro illo eum quisquam voluptatem veniam. Inventore provident eaque reprehenderit veritatis laborum eos. Omnis optio exercitationem eos ipsa tenetur fugiat.",
"checklistResponseAttachments" : [ {
"uuid" : "7bd8c2dc-9d32-4c8f-9536-2f28fb25bf85",
"url" : "https://www.example.com/image",
"description" : "Description",
"fileName" : "nam.jpg",
"thumbnailUrl" : "https://www.example.com/thumbnailImage",
"contentType" : "image/png",
"mediaType" : "IMAGE",
"fileSize" : 86759
} ],
"choices" : [ {
"description" : "Choice 1",
"position" : 1,
"selected" : true
}, {
"description" : "Choice 2",
"position" : 2,
"selected" : false
} ],
"observations" : [ {
"uuid" : "48b4fe34-84f7-441f-9293-db924efd7631",
"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
A GET request will list all the checklist templates on your Raken account.
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 |
Entity response fields
| Field | Type | Description |
|---|---|---|
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 |
updatedAt |
String |
Date and Time (UTC) when the checklist template was updated |
status |
String |
Status of the checklist template |
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=6df406aa-a3b4-4792-a087-41f389095b75&limit=5&offset=5' -i -X GET
Response body
{
"page" : {
"offset" : 5,
"limit" : 5,
"totalElements" : 15,
"previous" : "/checklists/templates?statuses=ACTIVE&statuses=DRAFT&checklistTypeUuids=6df406aa-a3b4-4792-a087-41f389095b75&offset=0&limit=5",
"next" : "/checklists/templates?statuses=ACTIVE&statuses=DRAFT&checklistTypeUuids=6df406aa-a3b4-4792-a087-41f389095b75&offset=10&limit=5",
"nextOffset" : "10"
},
"collection" : [ {
"uuid" : "d14ae122-3b23-4a9d-9c25-63528cda8816",
"name" : "Activity Risk Assessment",
"status" : "ACTIVE",
"createdAt" : "2026-06-16T21:38:02Z",
"updatedAt" : "2026-06-17T01:45:19Z",
"checklistType" : {
"uuid" : "6b14b210-fee7-4f28-ad61-ed7aa12e73e5",
"class" : "EQUIPMENT",
"name" : "Raken Equipment Checklists"
}
}, {
"uuid" : "c35ecaf0-6ec7-4acf-866e-ae889cd4445f",
"name" : "Construction Quality Control",
"status" : "ACTIVE",
"createdAt" : "2025-07-04T16:46:04Z",
"updatedAt" : "2026-02-13T21:58:48Z",
"checklistType" : {
"uuid" : "7a3073e1-cac1-4e26-a873-0dac255705b9",
"class" : "GENERAL",
"name" : "Raken General Checklists"
}
}, {
"uuid" : "4cdae9c1-f5e1-41a2-9658-23fa9a3ab1e8",
"name" : "Covid-19 Inspection",
"status" : "DRAFT",
"createdAt" : "2026-02-24T03:00:43Z",
"updatedAt" : "2026-05-22T05:40:37Z",
"checklistType" : {
"uuid" : "5f3ba668-e433-45f1-b2f9-93efee4f6efd",
"class" : "QUALITY",
"name" : "Raken Quality Checklists"
}
}, {
"uuid" : "16667186-7e01-476d-b1bc-6da1de0b740e",
"name" : "Framing Pre-Inspection",
"status" : "DRAFT",
"createdAt" : "2026-05-17T05:48:30Z",
"updatedAt" : "2026-05-19T00:45:09Z",
"checklistType" : {
"uuid" : "cee22559-22eb-4a7e-9002-d61810f0aea2",
"class" : "SAFETY",
"name" : "Raken Safety Checklists"
}
}, {
"uuid" : "be928541-3d51-4da1-81e0-b9b097ccedf0",
"name" : "Material Delivery",
"status" : "DRAFT",
"createdAt" : "2026-04-20T22:17:32Z",
"updatedAt" : "2026-05-07T17:43:00Z",
"checklistType" : {
"uuid" : "47ff5867-fb15-456e-bee5-a5975edce3f2",
"class" : "EQUIPMENT",
"name" : "Raken Equipment Checklists"
}
} ]
}
Materials
List
A GET request will list all the materials on your Raken account.
Query parameters
| Parameter | Description | Required | Constraints |
|---|---|---|---|
projectUuid |
If specified, return materials only for this project |
No |
Entity response fields
| Field | Type | Description |
|---|---|---|
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=960abceb-46de-42ca-9890-a2800c7f5823&limit=5&offset=5' -i -X GET
Response body
{
"page" : {
"offset" : 5,
"limit" : 5,
"totalElements" : 15,
"previous" : "/materials?projectUuid=960abceb-46de-42ca-9890-a2800c7f5823&offset=0&limit=5",
"next" : "/materials?projectUuid=960abceb-46de-42ca-9890-a2800c7f5823&offset=10&limit=5",
"nextOffset" : "10"
},
"collection" : [ {
"uuid" : "8e011fd6-28e8-4dde-82af-17163c22ebf4",
"name" : "Cement",
"materialUnit" : {
"uuid" : "ce8fbc3f-3fae-4cfe-94c3-c60f940dfdfd",
"name" : "kg"
},
"projects" : [ {
"uuid" : "97b2f125-0d94-48ec-8673-b8aff76f5567"
} ]
}, {
"uuid" : "c2542e06-e760-4446-8917-fd2b8da8359d",
"name" : "Sand",
"materialUnit" : {
"uuid" : "61707881-e586-40c4-9b8a-45bb6cfb2610",
"name" : "kg"
},
"projects" : [ {
"uuid" : "a483a0d7-3afd-45bc-869b-11c0c793de6d"
} ]
}, {
"uuid" : "6bf04766-d232-4746-8db5-a9fcf46a5b22",
"name" : "Steel",
"materialUnit" : {
"uuid" : "8167b7a7-f139-4b22-9eaa-5417bfe5f3c2",
"name" : "kg"
},
"projects" : [ {
"uuid" : "0f5a0d32-2a78-4b7c-aa9c-ea5ad7c986ff"
} ]
}, {
"uuid" : "699b30a0-194b-4c79-a068-7a7a55d11fbe",
"name" : "Concrete",
"materialUnit" : {
"uuid" : "a139912d-8255-4f84-a0b8-58a74ab237e8",
"name" : "kg"
},
"projects" : [ {
"uuid" : "0c4f304b-1fba-4626-bb46-8942287ba5db"
} ]
}, {
"uuid" : "366fe8ca-ab3f-4c9b-9269-c9eb8492b487",
"name" : "Bricks",
"materialUnit" : {
"uuid" : "e011c6de-db0c-4964-bc39-62b2e1cea92f",
"name" : "kg"
},
"projects" : [ {
"uuid" : "221c7dcc-8dc3-4c63-aefd-d849e98ffd81"
} ]
} ]
}
Create
A POST request will create a new material on your Raken account.
-
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 |
|---|---|---|
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" : "c66ee792-afb0-46e7-b8c7-98cd31c71721",
"name" : "Sand",
"projectUuid" : "84756c3b-94e5-4dd6-8e37-0e14bdd5f5f3"
}'
Response body
{
"uuid" : "7a3e6a13-f21e-467c-b81e-c6ddf3dd74f3",
"name" : "Sand",
"materialUnit" : {
"uuid" : "c66ee792-afb0-46e7-b8c7-98cd31c71721",
"name" : "kg"
},
"projects" : [ {
"uuid" : "84756c3b-94e5-4dd6-8e37-0e14bdd5f5f3"
} ]
}
Update
A PATCH request will update a material.
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 |
|---|---|---|
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/072f6989-50a8-4702-b8f6-5636291de433' -i -X PATCH \
-H 'Content-Type: application/json' \
-d '{
"name" : "Steel"
}'
Response body
{
"uuid" : "072f6989-50a8-4702-b8f6-5636291de433",
"name" : "Steel",
"materialUnit" : {
"uuid" : "5849155f-d559-4202-aac0-a5f76e1c674a",
"name" : "kg"
},
"projects" : [ {
"uuid" : "0d718d64-af5d-44a5-af1f-0bbb76a9f516"
} ]
}
Material Units
List
A GET request will list all the material units on your Raken account
Entity response fields
| Field | Type | Description |
|---|---|---|
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" : "6e764edd-0e16-4217-b581-46b4e5300e4d",
"name" : "m"
}, {
"uuid" : "57d3bda6-3013-4fda-811b-cab89843d18f",
"name" : "inch"
}, {
"uuid" : "ccc707c1-1366-4d92-a82b-3d2989733eee",
"name" : "gallon"
}, {
"uuid" : "83fa886b-7e66-45c8-b123-c2b498387ceb",
"name" : "m²"
}, {
"uuid" : "7e4b4b82-4850-49c3-bae7-61d104c14e15",
"name" : "ea"
} ]
}
Create
A POST request will create a new material unit.
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 |
|---|---|---|
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" : "5aaa0857-2e0e-415d-bce8-176a8c48096b",
"name" : "inch"
}
Material Logs
List
A GET request will list the matching material logs.
Query parameters
| Parameter | Description | Required | Constraints |
|---|---|---|---|
projectUuid |
Return material logs for this project |
Yes |
|
fromDate |
Return material logs starting on this date |
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. |
No |
Format: "yyyy-MM-ddThh:mm:ssZ" |
changedUntil |
Return only material logs updated before this time, exclusive. |
No |
Format: "yyyy-MM-ddThh:mm:ssZ" |
Entity response fields
| Field | Type | Description |
|---|---|---|
uuid |
String |
Unique identifier for the material log |
date |
String |
Date of this log |
updatedAt |
String |
Date and Time (UTC) when the material log was updated |
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 |
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" : "3360c151-2138-4062-a96f-790c4c4f7490",
"material" : {
"uuid" : "5fec8830-3c5b-4cd9-a6f4-939d394b4c62",
"name" : "Concrete",
"materialUnit" : {
"uuid" : "8bf07953-97a4-43dd-9c22-1b52db4d522a",
"name" : "Cubic Ft"
}
},
"costCode" : {
"description" : "Structural Concrete",
"uuid" : "e52822ae-9a2d-4739-a7af-a53872069dc8",
"code" : "0110",
"division" : "division"
},
"attachments" : [ {
"uuid" : "55f62cca-7248-4020-805c-2dab9f53de99",
"url" : "https://www.example.com/image",
"description" : "Description",
"fileName" : "dolore.jpg",
"thumbnailUrl" : "https://www.example.com/thumbnailImage",
"contentType" : "image/png",
"mediaType" : "IMAGE",
"fileSize" : 63348
} ],
"quantity" : 50.0,
"date" : "2020-10-10",
"updatedAt" : "2026-06-18T22:22:53Z"
} ]
}
Pay Types
List
A GET request will list all the pay types.
Entity response fields
| Field | Type | Description |
|---|---|---|
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"
} ]
}
Budgets
List
A GET request will list all the budgets.
Query parameters
| Parameter | Description | Required | Constraints |
|---|---|---|---|
projectUuid |
Restrict the budgets to the projects represented by this UUID. |
Yes |
Entity response fields
| Field | Type | Description |
|---|---|---|
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" : 7.87,
"costCode" : {
"uuid" : "608269aa-c4b1-4391-8d3e-14c07bffa5a7"
},
"budgetedMaterials" : [ {
"quantity" : 85.0,
"material" : {
"uuid" : "c3268661-3229-469b-b7d7-6aed885a7fbb"
}
}, {
"quantity" : 6.0,
"material" : {
"uuid" : "1e6f7bab-870d-43ea-b691-269c7cf98181"
}
} ]
}, {
"budgetedHours" : 90.91,
"costCode" : {
"uuid" : "77a17b7b-d1d0-4d07-85e6-bffdf459bf88"
},
"budgetedMaterials" : [ {
"quantity" : 61.0,
"material" : {
"uuid" : "8bef426a-571d-468f-a4de-5a781b01e019"
}
}, {
"quantity" : 43.0,
"material" : {
"uuid" : "ceddbef8-1d4f-402a-a5a6-77c4a16fc928"
}
} ]
} ]
}
Daily Reports
List
A GET request will list all the daily reports on your Raken account.
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 |
No |
Format: "yyyy-MM-dd" |
toDate |
Return daily reports created on or before this date. The date range between fromDate and toDate must not exceed 31 days |
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. |
No |
Format: "yyyy-MM-ddThh:mm:ssZ" |
changedUntil |
Return only daily reports updated before this time, exclusive. The date range between changedSince and changedUntil must not exceed 31 days |
No |
Format: "yyyy-MM-ddThh:mm:ssZ" |
Entity response fields
| Field | Type | Description |
|---|---|---|
uuid |
String |
Unique identifier for the report |
status |
String |
Status of the report |
projectUuid |
String |
Unique identifier for the project that the report is in |
reportDate |
String |
Date of the report |
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 |
createdAt |
String |
Date and Time (UTC) when the report was created |
updatedAt |
String |
Date and Time (UTC) when the report was updated |
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=aabec3c8-1a22-47e2-b188-be14bb473721&fromDate=2026-06-18&toDate=2026-07-08&statuses=COMPLETED,UNSIGNED&limit=5&offset=5' -i -X GET
Response body
{
"page" : {
"offset" : 5,
"limit" : 5,
"totalElements" : 15,
"previous" : "/dailyReports?projectUuid=aabec3c8-1a22-47e2-b188-be14bb473721&fromDate=2026-06-18&toDate=2026-07-08&statuses=COMPLETED,UNSIGNED&offset=0&limit=5",
"next" : "/dailyReports?projectUuid=aabec3c8-1a22-47e2-b188-be14bb473721&fromDate=2026-06-18&toDate=2026-07-08&statuses=COMPLETED,UNSIGNED&offset=10&limit=5",
"nextOffset" : "10"
},
"collection" : [ {
"uuid" : "8377cb9e-5c6d-4852-ac84-de7912163c70",
"status" : "COMPLETED",
"reportDate" : "2025-09-11",
"projectUuid" : "40a4a389-5339-4dfb-96ab-5b6d604cbd5a",
"signedBy" : {
"uuid" : "9e1cceef-079a-4636-9e6a-9487721efc61",
"name" : "Lynelle McKenzie"
},
"signedAt" : "2026-06-18T02:53:31Z",
"createdBy" : {
"uuid" : "1da8291c-293f-4d2d-a588-b3dcc2299b3b",
"name" : "Buena Dooley"
},
"createdAt" : "2025-09-11T16:37:03Z",
"updatedBy" : {
"uuid" : "d518e9f1-6e67-4daa-a454-2f302bcabc43",
"name" : "Ria Halvorson"
},
"updatedAt" : "2026-06-12T08:30:29Z",
"reportLinks" : {
"superDaily" : "http://cdn.rakenapp.com/projects/reports/superdaily/my-projects_2025-09-11_A69CAD39.pdf",
"daily" : "http://cdn.rakenapp.com/projects/reports/my-projects_2025-09-11_1EA49A89.pdf"
}
}, {
"uuid" : "50de5c14-d4f7-47ec-b792-e42e9d1f2454",
"status" : "COMPLETED",
"reportDate" : "2026-05-19",
"projectUuid" : "dcc9a6a5-fd25-4825-8aac-8bf6f1848b79",
"signedBy" : {
"uuid" : "f3cfc1cf-63e6-41bf-838f-13ab76d56635",
"name" : "Dixie Robel"
},
"signedAt" : "2026-06-18T13:13:09Z",
"createdBy" : {
"uuid" : "46ebdefc-a3d6-492c-a12f-22ec5c088550",
"name" : "Ms. Robin Anderson"
},
"createdAt" : "2026-05-19T18:06:28Z",
"updatedBy" : {
"uuid" : "259b3eb8-7a25-4351-9113-01d7e9284d99",
"name" : "Mrs. Berry Stracke"
},
"updatedAt" : "2026-06-16T02:06:50Z",
"reportLinks" : {
"superDaily" : "http://cdn.rakenapp.com/projects/reports/superdaily/my-projects_2026-05-19_D0273D91.pdf",
"daily" : "http://cdn.rakenapp.com/projects/reports/my-projects_2026-05-19_A502DCD4.pdf"
}
}, {
"uuid" : "3782856b-0167-4e50-92e6-8fad987a06e7",
"status" : "UNSIGNED",
"reportDate" : "2026-04-16",
"projectUuid" : "a3b6f07d-2095-4304-8e3a-d2f218184673",
"createdBy" : {
"uuid" : "204b033a-6e20-4d2a-906c-f701ba984894",
"name" : "Osvaldo Paucek"
},
"createdAt" : "2026-04-16T07:43:47Z",
"updatedBy" : {
"uuid" : "38754589-d3d9-4321-9d72-f3788a6870e1",
"name" : "Dr. Hugh Durgan"
},
"updatedAt" : "2026-06-12T22:04:09Z",
"reportLinks" : {
"superDaily" : "http://cdn.rakenapp.com/projects/reports/superdaily/my-projects_2026-04-16_9B9E2213.pdf",
"daily" : "http://cdn.rakenapp.com/projects/reports/my-projects_2026-04-16_D0ADE43C.pdf"
}
}, {
"uuid" : "7db3aa9f-bd4f-4c62-8664-4a2739ccf508",
"status" : "COMPLETED",
"reportDate" : "2026-01-12",
"projectUuid" : "b3f4afa5-b6b5-4bfd-8a54-7493a5ae87f9",
"signedBy" : {
"uuid" : "100d0d2f-224f-45a9-b828-d90e336d73af",
"name" : "Miss Sabrina Kessler"
},
"signedAt" : "2026-05-10T09:30:03Z",
"createdBy" : {
"uuid" : "77aaaed7-5d06-4dc9-bf11-59537394b73b",
"name" : "Robena Romaguera"
},
"createdAt" : "2026-01-12T03:22:19Z",
"updatedBy" : {
"uuid" : "394c66d5-37e6-4d94-88ae-14d632e90e61",
"name" : "Miss Alfonso Becker"
},
"updatedAt" : "2026-03-12T18:35:33Z",
"reportLinks" : {
"superDaily" : "http://cdn.rakenapp.com/projects/reports/superdaily/my-projects_2026-01-12_CEDD40AD.pdf",
"daily" : "http://cdn.rakenapp.com/projects/reports/my-projects_2026-01-12_5DAC18D4.pdf"
}
}, {
"uuid" : "c179e0c4-81da-45ed-a750-b4da2b7a5200",
"status" : "UNSIGNED",
"reportDate" : "2026-05-27",
"projectUuid" : "1d3a74a0-4a76-4611-a35f-27775c445fa9",
"createdBy" : {
"uuid" : "95dee98f-c053-4a67-9020-57809dd2704c",
"name" : "Ms. Marty Paucek"
},
"createdAt" : "2026-05-27T23:18:55Z",
"updatedBy" : {
"uuid" : "98f8be68-6a01-42db-8f08-1f4429bd0933",
"name" : "Tracie Nitzsche"
},
"updatedAt" : "2026-06-13T03:00:25Z",
"reportLinks" : {
"superDaily" : "http://cdn.rakenapp.com/projects/reports/superdaily/my-projects_2026-05-27_883412C8.pdf",
"daily" : "http://cdn.rakenapp.com/projects/reports/my-projects_2026-05-27_1C870A3D.pdf"
}
} ]
}
Toolbox Talks
List
A GET request will list all the toolbox talks on your Raken account.
Query parameters
| Parameter | Description | Required | Constraints |
|---|---|---|---|
statuses |
Return only toolbox talks with given statuses. The default is ACTIVE |
No |
Enums: ACTIVE, DELETED |
Entity response fields
| Field | Type | Description |
|---|---|---|
uuid |
String |
Unique identifier for the talk |
name |
String |
Name of the talk |
status |
String |
Status of the talk |
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" : "abbd4ba4-d092-4370-9c12-0d99338a6da9",
"name" : "Minus consequuntur quo error et delectus doloribus.",
"status" : "ACTIVE",
"contentUrl" : "http://cdn.rakenapp.com/toolbox-talks-523AA4B4.pdf"
}, {
"uuid" : "8e8b08cb-ac02-4c58-b803-d7967b4a95ec",
"name" : "Dolorum in vitae nemo ut corrupti necessitatibus non velit.",
"status" : "DELETED",
"contentUrl" : "http://cdn.rakenapp.com/toolbox-talks-17B2672A.pdf"
}, {
"uuid" : "d729a355-6bf6-46df-aff2-105943e170c9",
"name" : "Expedita neque hic consectetur aliquam expedita ad dicta placeat.",
"status" : "ACTIVE",
"contentUrl" : "http://cdn.rakenapp.com/toolbox-talks-024561E5.pdf"
}, {
"uuid" : "0a7ad2b6-c1f1-47cd-8b9e-910029020695",
"name" : "Vel iusto dolore debitis magni inventore.",
"status" : "DELETED",
"contentUrl" : "http://cdn.rakenapp.com/toolbox-talks-A671FDD5.pdf"
}, {
"uuid" : "b490de0c-b591-4a49-9c9a-3305e98f4cfd",
"name" : "Aliquam quo natus quidem rem iste in deleniti cupiditate.",
"status" : "DELETED",
"contentUrl" : "http://cdn.rakenapp.com/toolbox-talks-196C7680.pdf"
} ]
}
List Past Talks
A GET request will list all past toolbox talks on your Raken account.
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 |
No |
Format: "yyyy-MM-dd" |
toCreatedAt |
Return talks created in this range, this is end range. If not specified, it is capped to a month from fromCreatedAt |
No |
Format: "yyyy-MM-dd" |
Entity response fields
| Field | Type | Description |
|---|---|---|
uuid |
String |
Unique identifier for the project talk |
project.uuid |
String |
Unique identifier for the project |
scheduleDate |
String |
Scheduled date for the talk |
status |
String |
Status of the talk |
talk.uuid |
String |
Unique identifier for the talk |
talk.name |
String |
Name of the talk |
type |
String |
Type of the talk |
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 |
updatedAt |
String |
Date and Time (UTC) when the project talk was updated |
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=f5a92e96-46f6-4aee-9e92-65e0a4e07d4c&limit=5&offset=5' -i -X GET
Response body
{
"page" : {
"offset" : 5,
"limit" : 5,
"totalElements" : 15,
"previous" : "/toolboxTalks/past?projectUuid=f5a92e96-46f6-4aee-9e92-65e0a4e07d4c&offset=0&limit=5",
"next" : "/toolboxTalks/past?projectUuid=f5a92e96-46f6-4aee-9e92-65e0a4e07d4c&offset=10&limit=5",
"nextOffset" : "10"
},
"collection" : [ {
"uuid" : "be96f6c0-52ac-4bd7-82f7-c805b13276e5",
"project" : {
"uuid" : "1b6c7283-f52f-4ef1-a630-ac245746671e"
},
"scheduleDate" : "2026-06-20",
"createdAt" : "2026-06-18T22:23:00Z",
"updatedAt" : "2026-06-18T22:23:00Z",
"talk" : {
"uuid" : "b5b7613f-9971-4321-a38c-11eb387817dc",
"name" : "Occaecati doloribus est possimus earum itaque."
},
"status" : "MISSED",
"type" : "TAKEN_PHOTO",
"attendees" : [ {
"member" : {
"uuid" : "f8d865d5-3907-4e26-9616-63f6dfcd2825",
"name" : "Luigi Baumbach"
},
"signatureDate" : "2026-06-18T22:23:00"
} ],
"signaturePhotos" : [ {
"contentUrl" : "http://cdn.rakenapp.com/toolbox-talks-93F90E83.pdf",
"thumbnailUrl" : "http://cdn.rakenapp.com/toolbox-talks-8B61AC88.pdf"
} ],
"pdfUrl" : "http://cdn.rakenapp.com/toolbox-talks-075AAFDB.pdf",
"createdBy" : {
"uuid" : "865ae114-5b28-4514-9963-2bac9239014d"
},
"updatedBy" : {
"uuid" : "9c6ec2b1-c2e0-4706-b689-606b10a6e1f2"
}
}, {
"uuid" : "dd25625e-75be-4720-84ac-31c30b4e0969",
"project" : {
"uuid" : "f8321c9d-f787-4b55-b951-ee53cc1fee8b"
},
"scheduleDate" : "2026-06-20",
"createdAt" : "2026-06-18T22:23:00Z",
"updatedAt" : "2026-06-18T22:23:00Z",
"talk" : {
"uuid" : "3be3a110-4dde-4d3b-8d62-0ebc4762eee2",
"name" : "Animi perspiciatis perspiciatis aut sint magni magni."
},
"status" : "COMPLETED",
"type" : "TAKEN_PHOTO",
"attendees" : [ {
"member" : {
"uuid" : "1c960bbf-8fae-4f6a-bd15-144cbb2d4af9",
"name" : "Tod Boyle"
},
"signatureDate" : "2026-06-18T22:23:00"
} ],
"signaturePhotos" : [ {
"contentUrl" : "http://cdn.rakenapp.com/toolbox-talks-7614CE5D.pdf",
"thumbnailUrl" : "http://cdn.rakenapp.com/toolbox-talks-7DA39327.pdf"
} ],
"pdfUrl" : "http://cdn.rakenapp.com/toolbox-talks-D9C0A919.pdf",
"createdBy" : {
"uuid" : "aee1789c-6e34-4840-9a9e-ad0c7604b170"
},
"updatedBy" : {
"uuid" : "a641d28f-19bd-47b8-aa0b-3feb7f961a54"
}
}, {
"uuid" : "ab46abae-0456-4a15-a22e-b32753f1ce3b",
"project" : {
"uuid" : "a168d910-f472-4dac-88bb-2ca117206aa8"
},
"scheduleDate" : "2026-06-20",
"createdAt" : "2026-06-18T22:23:00Z",
"updatedAt" : "2026-06-18T22:23:00Z",
"talk" : {
"uuid" : "74dd3efa-607a-4ae2-bf8f-8a983f8fb66a",
"name" : "Eaque quidem aliquid."
},
"status" : "MISSED",
"type" : "DIGITAL_SIGNATURES",
"attendees" : [ {
"member" : {
"uuid" : "90c451d0-90f8-4ebe-aea8-595d78c8ca53",
"name" : "Tomika Koss"
},
"signatureDate" : "2026-06-18T22:23:00"
} ],
"signaturePhotos" : [ {
"contentUrl" : "http://cdn.rakenapp.com/toolbox-talks-EE00D439.pdf",
"thumbnailUrl" : "http://cdn.rakenapp.com/toolbox-talks-33FD5ACE.pdf"
} ],
"pdfUrl" : "http://cdn.rakenapp.com/toolbox-talks-E458C45A.pdf",
"createdBy" : {
"uuid" : "a3208ea5-2e09-460d-952d-fc0a60471279"
},
"updatedBy" : {
"uuid" : "5447171f-7453-480f-bef7-f8bad2b51be8"
}
}, {
"uuid" : "b4250b0a-352b-43a3-a715-ea2f4352961b",
"project" : {
"uuid" : "3b316e59-5ab1-4c6f-8c77-2566832fd98f"
},
"scheduleDate" : "2026-06-20",
"createdAt" : "2026-06-18T22:23:00Z",
"updatedAt" : "2026-06-18T22:23:00Z",
"talk" : {
"uuid" : "af07caef-bef2-4f56-adc5-2b153ece3749",
"name" : "Sequi dolores dicta quod atque repudiandae labore."
},
"status" : "COMPLETED",
"type" : "TAKEN_PHOTO",
"attendees" : [ {
"member" : {
"uuid" : "3e3fc255-db90-4f90-96fc-f70c8887e661",
"name" : "Enoch Gutkowski"
},
"signatureDate" : "2026-06-18T22:23:00"
} ],
"signaturePhotos" : [ {
"contentUrl" : "http://cdn.rakenapp.com/toolbox-talks-326A03AB.pdf",
"thumbnailUrl" : "http://cdn.rakenapp.com/toolbox-talks-48ACD044.pdf"
} ],
"pdfUrl" : "http://cdn.rakenapp.com/toolbox-talks-AAE151D5.pdf",
"createdBy" : {
"uuid" : "a9746dc7-3daa-42da-b881-dca4c494de8f"
},
"updatedBy" : {
"uuid" : "46d911c2-775a-4334-a6e8-eebbbf8ae268"
}
}, {
"uuid" : "3cf7de1c-5291-4110-b2ec-5a68fd0d9163",
"project" : {
"uuid" : "9c59bd78-eea7-4087-beaa-c5a739e985e6"
},
"scheduleDate" : "2026-06-20",
"createdAt" : "2026-06-18T22:23:00Z",
"updatedAt" : "2026-06-18T22:23:00Z",
"talk" : {
"uuid" : "2282b2a4-06e8-4e2d-9a45-dbdfa9e4d9ab",
"name" : "Possimus minus non."
},
"status" : "COMPLETED",
"type" : "DIGITAL_SIGNATURES",
"attendees" : [ {
"member" : {
"uuid" : "77ec474d-0040-4e1b-b6fd-301041139efd",
"name" : "Anna Tromp"
},
"signatureDate" : "2026-06-18T22:23:00"
} ],
"signaturePhotos" : [ {
"contentUrl" : "http://cdn.rakenapp.com/toolbox-talks-0D55B5B8.pdf",
"thumbnailUrl" : "http://cdn.rakenapp.com/toolbox-talks-937407B7.pdf"
} ],
"pdfUrl" : "http://cdn.rakenapp.com/toolbox-talks-203B31F6.pdf",
"createdBy" : {
"uuid" : "398e1acc-0e39-44dc-ad2b-b604625bf804"
},
"updatedBy" : {
"uuid" : "c04440fe-f2ae-4a81-8db3-aad720a3d46b"
}
} ]
}
Shifts
List
A GET request will list all the 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 |
Entity response fields
| Field | Type | Description |
|---|---|---|
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 |
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" : "00d6efa2-f03f-410d-9770-1eb3dbf393ce",
"name" : "Night Shift",
"code" : "NS",
"status" : "ACTIVE"
}, {
"uuid" : "8663e324-c878-453b-939b-95596400404f",
"name" : "Swing Shift",
"code" : "SS",
"status" : "ACTIVE"
} ]
}
Create
A POST request will create a new shift on your Raken account.
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 |
|---|---|---|
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 |
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" : "a6700279-330c-40b5-a196-eaae439c8c73",
"name" : "Night Shift",
"code" : "NS",
"status" : "ACTIVE"
}
Update
A PATCH request will update a shift.
You can change a shifts’s name or code but their combination have 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 |
|---|---|---|
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 |
Usage Example with Curl
Curl request
$ curl 'https://developer.rakenapp.com/api/shifts/08c60ab5-5c6d-4170-9f47-618f8dbde294' -i -X PATCH \
-H 'Content-Type: application/json' \
-d '{
"code" : "NS",
"name" : "Night Shift"
}'
Response body
{
"uuid" : "08c60ab5-5c6d-4170-9f47-618f8dbde294",
"name" : "Night Shift",
"code" : "NS",
"status" : "ACTIVE"
}
Time Cards
List
A GET request will list all the time cards.
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. The date is capped to a month to toDate. |
No |
Format: "yyyy-MM-dd" |
toDate |
Return time cards ending on this date. The date is capped to a month from fromDate. |
No |
Format: "yyyy-MM-dd" |
changedSince |
Return only time cards updated at or after this time, inclusive. The date is capped to a month to changedUntil. |
No |
Format: "yyyy-MM-ddThh:mm:ssZ" |
changedUntil |
Return only time cards updated before this time, exclusive. The date is capped to a month to changedSince. |
No |
Format: "yyyy-MM-ddThh:mm:ssZ" |
deletedFrom |
Return only time cards deleted at or after this time, inclusive. The date is capped to a month 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 before this time, exclusive. The date is capped to a month to deletedFrom. 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" |
Entity response fields
| Field | Type | Description |
|---|---|---|
uuid |
String |
Unique identifier for the time card |
date |
String |
Date of the time card |
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 |
updatedAt |
String |
Date and Time (UTC) when this time card was updated |
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 |
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" : "e259f7b3-321b-4b7e-a070-9e2f7b2b0081",
"worker" : {
"uuid" : "9169fd06-0997-4673-b537-4d9d401b8922"
},
"totalHours" : 8.0,
"startTime" : "05:00:00",
"endTime" : "17:00:00",
"attachments" : [ {
"uuid" : "5f9cf287-496a-435b-adb8-8a915c9b4feb",
"url" : "https://www.example.com/image",
"description" : "Description",
"fileName" : "tenetur.jpg",
"thumbnailUrl" : "https://www.example.com/thumbnailImage",
"contentType" : "image/png",
"mediaType" : "IMAGE",
"fileSize" : 71879
} ],
"timeEntries" : [ {
"hours" : 8.0,
"payType" : {
"uuid" : "ba24fcd9-9704-41c3-8ebe-d7d396667a01",
"name" : "Regular Time",
"code" : "RT"
},
"shift" : {
"uuid" : "c1fd42fb-313c-4663-b08f-873707b0fb96",
"name" : "Night Shift",
"code" : "NS"
},
"classification" : {
"uuid" : "2da08798-2784-4783-8d89-e26031146b0b",
"name" : "Apprentice"
},
"costCode" : {
"uuid" : "7690630a-80f6-4e92-a68e-8f073d00d124",
"code" : "C1",
"division" : "D1"
}
} ],
"note" : "Payroll Note",
"createdAt" : "2020-10-16T12:00:00Z",
"updatedAt" : "2020-10-16T12:30:00Z",
"createdBy" : {
"uuid" : "e13dcc68-93df-42f2-82d7-a6906b034b1e",
"name" : "Marylyn Reynolds IV"
},
"updatedBy" : {
"uuid" : "95b15921-450d-402d-beb9-8786c3a4b6a8",
"name" : "Alton Bergnaum"
},
"breaks" : [ {
"name" : "Meal Break",
"duration" : 30.0,
"startTime" : "10:00:00"
} ],
"deletedAt" : "2020-10-18T12:00:00Z",
"project" : {
"uuid" : "74063354-7218-4cca-bee5-97a2413c0198"
},
"date" : "2020-10-15",
"approved" : false,
"signed" : {
"uuid" : "caf244cb-c1e1-465a-b4e4-37286f1b39e5"
}
} ]
}
Observations
List
A GET request will list all the observations on your Raken account.
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 |
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" |
Entity response fields
| Field | Type | Description |
|---|---|---|
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 |
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 |
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=c0221811-5dc0-4e04-8658-9ca6b3b6928b&projectUuids=baabf008-fbcb-4e59-82fa-bb3e85c5c9f5&statuses=OPEN&statuses=REJECTED&priorities=MEDIUM&priorities=LOW&fromCreatedAt=2026-06-17T22:22:56Z&toCreatedAt=2026-06-18T22:22:56Z&categories=POSITIVE&categories=NEGATIVE&types=Mechanical&changedSince=2026-06-18T22:22:56Z&changedUntil=2026-06-18T22:23:56Z&limit=5&offset=5' -i -X GET
Response body
{
"page" : {
"offset" : 5,
"limit" : 5,
"totalElements" : 15,
"previous" : "/observations?projectUuid=c0221811-5dc0-4e04-8658-9ca6b3b6928b&projectUuids=baabf008-fbcb-4e59-82fa-bb3e85c5c9f5&statuses=OPEN&statuses=REJECTED&priorities=MEDIUM&priorities=LOW&fromCreatedAt=2026-06-17T22:22:56Z&toCreatedAt=2026-06-18T22:22:56Z&categories=POSITIVE&categories=NEGATIVE&types=Mechanical&changedSince=2026-06-18T22:22:56Z&changedUntil=2026-06-18T22:23:56Z&offset=0&limit=5",
"next" : "/observations?projectUuid=c0221811-5dc0-4e04-8658-9ca6b3b6928b&projectUuids=baabf008-fbcb-4e59-82fa-bb3e85c5c9f5&statuses=OPEN&statuses=REJECTED&priorities=MEDIUM&priorities=LOW&fromCreatedAt=2026-06-17T22:22:56Z&toCreatedAt=2026-06-18T22:22:56Z&categories=POSITIVE&categories=NEGATIVE&types=Mechanical&changedSince=2026-06-18T22:22:56Z&changedUntil=2026-06-18T22:23:56Z&offset=10&limit=5",
"nextOffset" : "10"
},
"collection" : [ {
"uuid" : "0d1223c2-1afc-4d2a-97e8-e0a630d4476a",
"assignees" : [ {
"company" : "Altenwerth-Schaefer",
"name" : "Stan Langworth",
"dueAt" : "2026-06-20",
"correctiveAction" : "Ea sed non dolore ipsa perferendis libero. Similique numquam quis est accusantium natus. Deleniti culpa laboriosam debitis aspernatur.",
"status" : "OPEN"
}, {
"company" : "Bechtelar Group",
"name" : "Royce Runolfsdottir",
"dueAt" : "2026-06-19",
"correctiveAction" : "Optio dignissimos harum consequatur est veritatis.",
"status" : "OPEN"
} ],
"attachments" : [ {
"uuid" : "d4f3f5d3-4283-42cf-bd8b-c2e614d4ca3a",
"url" : "https://www.example.com/image",
"description" : "Description",
"fileName" : "sequi.jpg",
"thumbnailUrl" : "https://www.example.com/thumbnailImage",
"contentType" : "image/png",
"mediaType" : "IMAGE",
"fileSize" : 50880
}, {
"uuid" : "08c83b24-5a17-4676-b1ae-73bd914bb951",
"url" : "https://www.example.com/image",
"description" : "Description",
"fileName" : "rem.jpg",
"thumbnailUrl" : "https://www.example.com/thumbnailImage",
"contentType" : "image/png",
"mediaType" : "IMAGE",
"fileSize" : 49447
} ],
"category" : "POSITIVE",
"createdAt" : "2026-06-13T16:09:48Z",
"createdBy" : {
"uuid" : "7087c6ba-d2db-4dff-b742-38c2d70407a0",
"name" : "Christopher Hauck DVM"
},
"description" : "Ratione aut quas explicabo harum dicta consequuntur.",
"location" : {
"fullPath" : "Aspernatur at aspernatur ipsam deserunt nam minima explicabo adipisci.",
"name" : "Reprehenderit sunt nisi ullam."
},
"observationDate" : "2026-06-22",
"priority" : "MEDIUM",
"projectUuid" : "4f037c0a-7e2f-4ed4-8002-a51628906643",
"referenceNumber" : "274-83-5289",
"status" : "OPEN",
"type" : {
"typeClass" : "Commissioning",
"type" : "Mechanical",
"subType" : "Wet commissioning"
},
"updatedAt" : "2026-06-14T23:06:08Z",
"updatedBy" : {
"uuid" : "040e3b48-e049-4801-a9ab-aba88eb3cdc6",
"name" : "Mr. China Huel"
}
}, {
"uuid" : "a3c1c8d4-de19-42a7-9ffe-7419430e6a95",
"assignees" : [ {
"company" : "Veum Inc",
"name" : "Mrs. Virgen Mueller",
"dueAt" : "2026-06-19",
"correctiveAction" : "Repudiandae illo culpa. Suscipit eligendi voluptas quia incidunt itaque laudantium.",
"status" : "OPEN"
}, {
"company" : "Powlowski, Renner and Zulauf",
"name" : "Antone Gottlieb",
"dueAt" : "2026-06-24",
"correctiveAction" : "At iure sapiente amet doloremque. Similique eum repellat porro. Quam praesentium sequi quibusdam magni.",
"status" : "OPEN"
} ],
"attachments" : [ {
"uuid" : "55acade1-34dc-41ca-bc9b-747e92f87535",
"url" : "https://www.example.com/image",
"description" : "Description",
"fileName" : "saepe.jpg",
"thumbnailUrl" : "https://www.example.com/thumbnailImage",
"contentType" : "image/png",
"mediaType" : "IMAGE",
"fileSize" : 76730
}, {
"uuid" : "7f79300a-7782-4a88-bb7b-bcf797dcd8c0",
"url" : "https://www.example.com/image",
"description" : "Description",
"fileName" : "optio.jpg",
"thumbnailUrl" : "https://www.example.com/thumbnailImage",
"contentType" : "image/png",
"mediaType" : "IMAGE",
"fileSize" : 1375
} ],
"category" : "POSITIVE",
"createdAt" : "2026-06-17T07:19:23Z",
"createdBy" : {
"uuid" : "ea995bda-0d49-47e6-ab07-75a370530f92",
"name" : "Dean Weber"
},
"description" : "Rem illum distinctio vero similique placeat accusamus. Facilis nulla aut fuga hic eius labore.",
"location" : {
"fullPath" : "Ea neque vel explicabo deleniti ipsum beatae maxime doloremque.",
"name" : "Corrupti laboriosam delectus aspernatur ut."
},
"observationDate" : "2026-06-24",
"priority" : "MEDIUM",
"projectUuid" : "e68ae2d9-2e7a-4a32-ac83-6afdba54c290",
"referenceNumber" : "023-74-8896",
"status" : "OPEN",
"type" : {
"typeClass" : "Commissioning",
"type" : "Mechanical",
"subType" : "Wet commissioning"
},
"updatedAt" : "2026-06-16T13:21:45Z",
"updatedBy" : {
"uuid" : "12e22c4e-b308-45ff-9f97-46bf7ec0a419",
"name" : "Kisha Ullrich"
}
}, {
"uuid" : "62a369d3-d232-4344-b3f2-de66d4246fe2",
"assignees" : [ {
"company" : "Thiel-Altenwerth",
"name" : "Dr. Leroy Bosco",
"dueAt" : "2026-06-23",
"correctiveAction" : "Iure pariatur unde assumenda hic quis suscipit.",
"status" : "OPEN"
}, {
"company" : "Gaylord-Hoeger",
"name" : "Travis Daniel Jr.",
"dueAt" : "2026-06-21",
"correctiveAction" : "Praesentium impedit quod a aliquam repudiandae mollitia facilis. Corporis debitis mollitia sapiente repudiandae.",
"status" : "OPEN"
} ],
"attachments" : [ {
"uuid" : "97681b78-d7e4-470d-9fdb-dbb81a35ff57",
"url" : "https://www.example.com/image",
"description" : "Description",
"fileName" : "repellat.jpg",
"thumbnailUrl" : "https://www.example.com/thumbnailImage",
"contentType" : "image/png",
"mediaType" : "IMAGE",
"fileSize" : 21068
}, {
"uuid" : "cfb019a8-7395-4f45-bf6b-b34bda1d228e",
"url" : "https://www.example.com/image",
"description" : "Description",
"fileName" : "sed.jpg",
"thumbnailUrl" : "https://www.example.com/thumbnailImage",
"contentType" : "image/png",
"mediaType" : "IMAGE",
"fileSize" : 64299
} ],
"category" : "POSITIVE",
"createdAt" : "2026-06-17T02:46:08Z",
"createdBy" : {
"uuid" : "e6bbe8bc-7de8-4d46-acda-fd79ef2a0258",
"name" : "Etha Langosh DVM"
},
"description" : "Magnam est ea nulla ducimus omnis quidem.",
"location" : {
"fullPath" : "Eius numquam officia labore laboriosam doloremque.",
"name" : "Dolores iure neque blanditiis vero."
},
"observationDate" : "2026-06-24",
"priority" : "MEDIUM",
"projectUuid" : "794608b8-083e-497c-83d1-013c20ab8439",
"referenceNumber" : "848-46-4623",
"status" : "OPEN",
"type" : {
"typeClass" : "Commissioning",
"type" : "Mechanical",
"subType" : "Wet commissioning"
},
"updatedAt" : "2026-06-18T06:34:52Z",
"updatedBy" : {
"uuid" : "5d4c0f25-ed92-4000-99ea-a56672a964d6",
"name" : "Mac Crona"
}
}, {
"uuid" : "25673c54-8fe7-4d83-9287-9cd9a29e1ef0",
"assignees" : [ {
"company" : "Hand, Hahn and Goldner",
"name" : "Virgil Wuckert",
"dueAt" : "2026-06-20",
"correctiveAction" : "Suscipit et commodi adipisci a sapiente sunt. Porro veniam aspernatur quasi placeat quibusdam autem.",
"status" : "OPEN"
}, {
"company" : "Davis Inc",
"name" : "Jewell Ziemann",
"dueAt" : "2026-06-23",
"correctiveAction" : "Hic assumenda expedita consectetur sint eum. Impedit rem consectetur iste. Praesentium harum laborum occaecati corrupti delectus.",
"status" : "OPEN"
} ],
"attachments" : [ {
"uuid" : "aa06d016-6155-4caf-bc0e-485eeca12f3d",
"url" : "https://www.example.com/image",
"description" : "Description",
"fileName" : "aliquid.jpg",
"thumbnailUrl" : "https://www.example.com/thumbnailImage",
"contentType" : "image/png",
"mediaType" : "IMAGE",
"fileSize" : 83271
}, {
"uuid" : "606d9f44-23c3-4f91-8f63-f7cae7f1081b",
"url" : "https://www.example.com/image",
"description" : "Description",
"fileName" : "reprehenderit.jpg",
"thumbnailUrl" : "https://www.example.com/thumbnailImage",
"contentType" : "image/png",
"mediaType" : "IMAGE",
"fileSize" : 94125
} ],
"category" : "POSITIVE",
"createdAt" : "2026-06-12T20:21:00Z",
"createdBy" : {
"uuid" : "1e92a178-55cb-4ea8-9c73-72a1360ce9c3",
"name" : "Isiah Carroll"
},
"description" : "Expedita quidem blanditiis quia. Enim illo magnam sequi pariatur.",
"location" : {
"fullPath" : "Similique tempora repellendus voluptas dolorum nulla tenetur dolorum itaque quo.",
"name" : "Quisquam accusamus asperiores incidunt ipsam."
},
"observationDate" : "2026-06-21",
"priority" : "MEDIUM",
"projectUuid" : "a4d745a3-3806-4a13-af48-aa646cd10dd6",
"referenceNumber" : "228-10-3919",
"status" : "OPEN",
"type" : {
"typeClass" : "Commissioning",
"type" : "Mechanical",
"subType" : "Wet commissioning"
},
"updatedAt" : "2026-06-18T08:21:36Z",
"updatedBy" : {
"uuid" : "bda71206-a84b-421d-9911-7faf613ea6b9",
"name" : "Noemi Torphy"
}
}, {
"uuid" : "cd2be989-41c7-4370-b81f-d719e73643fd",
"assignees" : [ {
"company" : "Schaden Inc",
"name" : "Debby Mitchell",
"dueAt" : "2026-06-22",
"correctiveAction" : "Velit voluptate a cumque nam.",
"status" : "OPEN"
}, {
"company" : "Bruen Group",
"name" : "Rubin Nienow",
"dueAt" : "2026-06-24",
"correctiveAction" : "Cum quia possimus quae perspiciatis tenetur magni doloremque. Eligendi inventore at.",
"status" : "OPEN"
} ],
"attachments" : [ {
"uuid" : "f1e53a4e-debf-4bb1-a4bb-fd16321db5db",
"url" : "https://www.example.com/image",
"description" : "Description",
"fileName" : "sit.jpg",
"thumbnailUrl" : "https://www.example.com/thumbnailImage",
"contentType" : "image/png",
"mediaType" : "IMAGE",
"fileSize" : 48995
}, {
"uuid" : "094ebd3e-c419-4126-ba5a-6c84227e336a",
"url" : "https://www.example.com/image",
"description" : "Description",
"fileName" : "atque.jpg",
"thumbnailUrl" : "https://www.example.com/thumbnailImage",
"contentType" : "image/png",
"mediaType" : "IMAGE",
"fileSize" : 61172
} ],
"category" : "POSITIVE",
"createdAt" : "2026-06-17T22:36:54Z",
"createdBy" : {
"uuid" : "d819bcc8-d84d-4a0a-8550-26a23ff10267",
"name" : "Barney Haag IV"
},
"description" : "Error ad ex reiciendis.",
"location" : {
"fullPath" : "Harum accusamus numquam voluptatum commodi.",
"name" : "Asperiores debitis nostrum qui quibusdam doloribus dolores nihil."
},
"observationDate" : "2026-06-24",
"priority" : "MEDIUM",
"projectUuid" : "fca3d1a6-9553-47c6-bc53-0069be4afe8a",
"referenceNumber" : "861-76-3338",
"status" : "OPEN",
"type" : {
"typeClass" : "Commissioning",
"type" : "Mechanical",
"subType" : "Wet commissioning"
},
"updatedAt" : "2026-06-14T02:27:47Z",
"updatedBy" : {
"uuid" : "59c6379f-d841-47e8-a516-75e82fb5d210",
"name" : "Dr. Robert Ebert"
}
} ]
}
Get
A GET request will get an observation by UUID on your Raken account.
Response fields
| Field | Type | Description |
|---|---|---|
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 |
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 |
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/eff797d3-417f-4c36-b49d-af66e72c1de6' -i -X GET
Response body
{
"uuid" : "eff797d3-417f-4c36-b49d-af66e72c1de6",
"assignees" : [ {
"company" : "Waelchi, Marvin and Becker",
"name" : "Janita Macejkovic",
"dueAt" : "2026-06-22",
"correctiveAction" : "Commodi in ad aliquam corrupti libero sequi placeat. Sed doloribus tenetur deserunt fugit repudiandae. Quidem suscipit magnam mollitia magni architecto.",
"status" : "OPEN"
}, {
"company" : "Zboncak, Corwin and Kris",
"name" : "Miss Barton Tillman",
"dueAt" : "2026-06-25",
"correctiveAction" : "Cumque inventore dolores totam aspernatur sed. Eaque commodi excepturi unde atque.",
"status" : "OPEN"
} ],
"attachments" : [ {
"uuid" : "4f530a90-3a4c-4245-97df-72f9c13b6591",
"url" : "https://www.example.com/image",
"description" : "Description",
"fileName" : "esse.jpg",
"thumbnailUrl" : "https://www.example.com/thumbnailImage",
"contentType" : "image/png",
"mediaType" : "IMAGE",
"fileSize" : 50007
}, {
"uuid" : "83703197-90d8-4f66-a64b-956681a763c1",
"url" : "https://www.example.com/image",
"description" : "Description",
"fileName" : "blanditiis.jpg",
"thumbnailUrl" : "https://www.example.com/thumbnailImage",
"contentType" : "image/png",
"mediaType" : "IMAGE",
"fileSize" : 2556
} ],
"category" : "POSITIVE",
"createdAt" : "2026-06-18T20:22:07Z",
"createdBy" : {
"uuid" : "e3141883-161d-4bca-9178-263c36b29392",
"name" : "Clifford Mayer"
},
"description" : "Quos a excepturi. Veritatis facilis ratione quam odit dicta officia. Odio odio quis adipisci sunt atque eveniet.",
"location" : {
"fullPath" : "Beatae veritatis dicta quidem quo laborum eveniet blanditiis error.",
"name" : "Maxime eveniet accusantium sit labore."
},
"observationDate" : "2026-06-23",
"priority" : "MEDIUM",
"projectUuid" : "41db1c89-28d8-4648-a738-5aaa944c828d",
"referenceNumber" : "118-08-4656",
"status" : "OPEN",
"type" : {
"typeClass" : "Commissioning",
"type" : "Mechanical",
"subType" : "Wet commissioning"
},
"updatedAt" : "2026-06-12T15:56:03Z",
"updatedBy" : {
"uuid" : "cbf166f5-57fd-44f9-8f94-cc168cdb37d4",
"name" : "Faustino Kreiger"
}
}
Groups
List
A GET request will list all groups for your Raken account.
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. |
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 |
No |
Format: "yyyy-MM-ddThh:mm:ssZ" |
toCreatedAt |
Return only groups created before this time, exclusive |
No |
Format: "yyyy-MM-ddThh:mm:ssZ" |
Entity response fields
| Field | Type | Description |
|---|---|---|
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 |
updatedAt |
String |
Date and Time (UTC) when the group was updated |
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" : "e15686c0-60dc-4d92-b97a-0c685df421d1",
"createdBy" : {
"uuid" : "abff2caa-411b-4510-9e2c-d59b8323aec9",
"name" : "arthur.morissette"
},
"updatedBy" : {
"uuid" : "dc212b16-21f1-4b10-95e3-3918ab020030",
"name" : "sulema.conroy"
},
"createdAt" : "2026-06-18T22:22:52Z",
"updatedAt" : "2026-06-18T22:22:52Z",
"name" : "Emergency Department",
"projectUuids" : [ "6faf9fc2-c1d5-4d2c-8208-0bffb02f80f9", "bd1e0b01-63ef-4437-b320-e25cfdffd0d3", "da974e2d-3918-4654-b46b-05fe50340075" ],
"memberUuids" : [ "16c90801-fbef-4e91-a1e8-0c049b641684", "aa078db6-6b25-4c58-b76f-5662a0924874" ],
"class" : "Departments"
} ]
}
Create
A POST request will create a new group on your Raken account.
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 |
|---|---|---|
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 |
updatedAt |
String |
Date and Time (UTC) when the group was updated |
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" : "1c98e0c9-151e-4924-b577-d304ad80b2f0",
"createdBy" : {
"uuid" : "c30f304b-abcf-408f-9a23-c357a261d532",
"name" : "wilfred.marvin"
},
"updatedBy" : {
"uuid" : "df77aadd-d446-45d5-9d1c-3585ab36896f",
"name" : "gillian.feil"
},
"createdAt" : "2026-06-18T22:22:52Z",
"updatedAt" : "2026-06-18T22:22:52Z",
"name" : "Emergency Department",
"class" : "Departments"
}
Update
A PATCH request will update a group on your Raken account.
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 |
|---|---|---|
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 |
updatedAt |
String |
Date and Time (UTC) when the group was updated |
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/abac32e3-85d3-4950-ba5d-7a85ab27e237' -i -X PATCH \
-H 'Content-Type: application/json' \
-d '{
"name" : "Emergency Department",
"class" : "Departments"
}'
Response body
{
"uuid" : "43a4c28c-78c2-4deb-9f90-69e1c1ad5fb3",
"createdBy" : {
"uuid" : "5fc1c523-9453-4e23-ba6c-92aec1621351",
"name" : "jean.ryan"
},
"updatedBy" : {
"uuid" : "ebe5c5a1-9ffb-4bb0-b4c5-0c9b1aaf9f83",
"name" : "jesse.kulas"
},
"createdAt" : "2026-06-18T22:22:53Z",
"updatedAt" : "2026-06-18T22:22:53Z",
"name" : "Emergency Department",
"projectUuids" : [ "1cec6c7e-f70a-4bda-b5da-62866e8ac7dc", "0453a015-e35b-44b6-91f9-00e38309292e", "d7b35f1a-96d6-4465-8702-0f0c7aa79a19" ],
"memberUuids" : [ "f1865c5f-c1fc-4b7d-a118-c67db77377e3", "81792c21-0158-479e-a165-2ff1e78d859e" ],
"class" : "Departments"
}
Certification Types
List
A GET request will list all certification types for your Raken account.
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. |
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 |
No |
Format: "yyyy-MM-ddThh:mm:ssZ" |
toCreatedAt |
Return only certification types created before this time, exclusive |
No |
Format: "yyyy-MM-ddThh:mm:ssZ" |
Entity response fields
| Field | Type | Description |
|---|---|---|
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 createdFormat: "yyyy-MM-ddThh:mm:ssZ" |
updatedAt |
String |
Date and Time (UTC) when the certification type was updatedFormat: "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" : "bcde044d-181a-48c5-947f-cf7b8ff79a1a",
"name" : "Wisoky-Olson",
"description" : "A maiores voluptatum delectus dolores pariatur.",
"createdAt" : "2026-06-18T22:22:40Z",
"updatedAt" : "2026-06-18T22:22:40Z",
"createdBy" : {
"uuid" : "3772d3d5-ecf5-47e0-b9e2-17615ad2ea65",
"name" : "Dean Hill MD"
},
"updatedBy" : {
"uuid" : "1bdefedd-232f-4447-9938-ce3be578e532",
"name" : "Sonya Stiedemann"
}
} ]
}
Certifications
List
A GET request will list all certifications for your Raken account.
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. |
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 |
No |
Format: "yyyy-MM-ddThh:mm:ssZ" |
toCreatedAt |
Return only certifications created before this time, exclusive |
No |
Format: "yyyy-MM-ddThh:mm:ssZ" |
Entity response fields
| Field | Type | Description |
|---|---|---|
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 createdFormat: "yyyy-MM-ddThh:mm:ssZ" |
updatedAt |
String |
Date and Time (UTC) when the certification was updatedFormat: "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=35909001-bbd3-4187-b975-5d5629ad6860,91d7e5b8-4a2e-4911-8c78-9ab2e9ff6f33&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" : "f5f43ee3-b3c5-4de1-8564-60ab03ba9ec9",
"name" : "First Aid",
"certificationType" : {
"uuid" : "a12a2174-d7f8-4608-a31a-2b5da5397ecb",
"name" : "Search and Rescue"
},
"createdAt" : "2026-06-18T22:22:42Z",
"updatedAt" : "2026-06-18T22:22:42Z",
"createdBy" : {
"uuid" : "8316c6a5-a45c-4a31-aabc-dca25269fee7",
"name" : "Evelia Ziemann"
},
"updatedBy" : {
"uuid" : "8d1e5bf4-ec8e-46b7-90db-0a395d771334",
"name" : "Maribeth Lubowitz"
}
} ]
}
Create
A POST request will create a new certification on your Raken account.
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 |
|---|---|---|
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 createdFormat: "yyyy-MM-ddThh:mm:ssZ" |
updatedAt |
String |
Date and Time (UTC) when the certification was updatedFormat: "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" : "27e052f3-534e-44b5-8717-8a61e7bfc858"
}'
Response body
{
"uuid" : "f5f43ee3-b3c5-4de1-8564-60ab03ba9ec9",
"name" : "First Aid",
"certificationType" : {
"uuid" : "f324589c-f931-4e11-8e5c-8c8440cbdbc1",
"name" : "Search and Rescue"
},
"createdAt" : "2026-06-18T22:22:42Z",
"updatedAt" : "2026-06-18T22:22:42Z",
"createdBy" : {
"uuid" : "2d112a03-85c0-4ae4-ad50-0e7a10423042",
"name" : "Miss Milagro Jenkins"
},
"updatedBy" : {
"uuid" : "4bc1e4e8-2ee8-414f-8747-d7ba81394eb8",
"name" : "Barney Schmitt V"
}
}
Update
A PATCH request will update a certification on your Raken account.
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 |
|---|---|---|
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 createdFormat: "yyyy-MM-ddThh:mm:ssZ" |
updatedAt |
String |
Date and Time (UTC) when the certification was updatedFormat: "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/f5f43ee3-b3c5-4de1-8564-60ab03ba9ec9' -i -X PATCH \
-H 'Content-Type: application/json' \
-d '{
"name" : "First Aid",
"certificationTypeUuid" : "c823f482-df08-4f77-9802-02870c19202c",
"certificationTypeName" : "Search and Rescue"
}'
Response body
{
"uuid" : "f5f43ee3-b3c5-4de1-8564-60ab03ba9ec9",
"name" : "First Aid",
"certificationType" : {
"uuid" : "5d1132b5-92aa-40c6-aa20-47c44ccc5881",
"name" : "Search and Rescue"
},
"createdAt" : "2026-06-18T22:22:42Z",
"updatedAt" : "2026-06-18T22:22:42Z",
"createdBy" : {
"uuid" : "d116d9be-20f0-4df7-b4a1-6c300fcf37af",
"name" : "Vicente Rogahn"
},
"updatedBy" : {
"uuid" : "2d0aa2f1-c15f-47e4-8b4e-fc687d93b7cb",
"name" : "Mrs. Roman Witting"
}
}