Introduction
Welcome to the Lumiform Public API documentation! You can use our API to get your organization's Inspections, Questions and Issues.
Lists of Inspections and Issues are paginated. Paginated responses also have a meta and a links property
useful for navigation - or even for helping you build a navigation UI if you desire!
You can view cURL request examples in the dark area to the right, as well as examples of the responses you should expect to get.
Authentication
To obtain your API Bearer token, use this code:
curl GET 'https://public-api.lumiformapp.com/api/v1/oauth2/token' \
-H 'Authorization: Basic yourbase64token'
Make sure to replace
yourbase64tokenwith the token you have obtained by base 64 encoding your API key and API secret concatenated with a colon.If all went well you should receive a response like the following:
{
"access_token": "yourtoken",
"expires_in": 3600,
"token_type": "Bearer"
}
To authorize requests, use this code:
# With shell, you can just pass the correct header with each request
curl "[api_endpoint_here]" \
-H "Accept: application/json" \
-H "Authorization: Bearer yourtoken"
Make sure to replace
yourtokenwith the token you got from the previous response.
Lumiform uses API keys to allow access to the API. Your organization can obtain an API key and secret by visiting the API management page. Once you have obtained them, you can get your API key by following these steps:
- Concatenate your API key and API secret with a colon like so:
apikey:apisecret - Generate a base64 encoded token from your key and secret concatenated string. You can use this website for example.
- Make a request to our OAuth 2.0 Token endpoint using Basic Authorization, and your base64 token as the key, as shown in the code example.
- You should now receive your bearer token in the
access_tokenfield which you can use for authorization!
Lumiform expects your access_token bearer token to be included in the header of all API requests you make:
Authorization: Bearer [your token here]
Filters
Get All Users (v1)
curl --request GET \
--url 'https://public-api.lumiformapp.com/api/v1/filters/users' \
--header 'Authorization: Bearer [your token here]' \
--header 'Accept: application/json' \
--header 'Content-Type: application/json'
The above command returns JSON structured like this:
{
"data": [
{
"id": 1,
"name": "Obi-Wan Kenobi",
"email": "obi.wan@jediknights.com"
},
{
"id": 2,
"name": "Yoda",
"email": "yoda@jediknights.com"
},
{
"id": 3,
"name": "Mace Windu",
"email": "mace.windu@jediknights.com"
},
{
"id": 4,
"name": "Jocasta Nu",
"email": "jocasta.nu@jediknights.com"
},
{
"id": 5,
"name": "Ki-Adi-Mundi",
"email": "ki.adi.mundi@jediknights.com"
}
]
}
This endpoint retrieves all users of your organization.
HTTP Request
GET https://public-api.lumiformapp.com/api/v1/filters/users
Get All Sites (v1)
curl --request GET \
--url 'https://public-api.lumiformapp.com/api/v1/filters/sites' \
--header 'Authorization: Bearer [your token here]' \
--header 'Accept: application/json' \
--header 'Content-Type: application/json'
The above command returns JSON structured like this:
{
"data": [
{
"id": 1,
"title": "Temple of Coruscant"
},
{
"id": 2,
"title": "Temple of Ahch-To"
}
]
}
This endpoint retrieves all sites of your organization.
HTTP Request
GET https://public-api.lumiformapp.com/api/v1/filters/sites
Get All Form Templates
curl --request GET \
--url 'https://public-api.lumiformapp.com/api/v2/filters/form-templates' \
--header 'Authorization: Bearer [your token here]' \
--header 'Accept: application/json' \
--header 'Content-Type: application/json'
The above command returns JSON structured like this:
{
"data": [
{
"id": 1,
"title": "Safety form template",
"status": "active"
},
{
"id": 2,
"title": "Materials form template",
"status": "active"
},
{
"id": 3,
"title": "Kaminoan cloning tank form template",
"status": "inactive"
}
]
}
This endpoint retrieves all form templates of your organization.
HTTP Request
GET https://public-api.lumiformapp.com/api/v2/filters/form-templates
Get All Checklists
curl --request GET \
--url 'https://public-api.lumiformapp.com/api/v1/filters/checklists' \
--header 'Authorization: Bearer [your token here]' \
--header 'Accept: application/json' \
--header 'Content-Type: application/json'
The above command returns JSON structured like this:
{
"data": [
{
"id": 1,
"title": "Safety checklist",
"status": "active"
},
{
"id": 2,
"title": "Materials checklist",
"status": "active"
},
{
"id": 3,
"title": "Kaminoan cloning tank checklist",
"status": "inactive"
}
]
}
This endpoint retrieves all checklists of your organization.
HTTP Request
GET https://public-api.lumiformapp.com/api/v1/filters/checklists
Roles
Get All Roles
curl --request GET \
--url 'https://public-api.lumiformapp.com/api/v1/roles' \
--header 'Authorization: Bearer [your token here]' \
--header 'Accept: application/json' \
--header 'Content-Type: application/json'
The above command returns JSON structured like this:
{
"data": [
{
"id": 1018907909,
"name": "Administrator",
"site_restricted": 0,
"permissions": [],
"users": [
{
"id": 87913847,
"name": "Yoda",
"email": "yoda@jediknights.com",
"admin": 1
}
],
"created_at": null,
"updated_at": null
},
{
"id": 868746486,
"name": "Sith",
"site_restricted": false,
"permissions": [
"manage-users",
"manage-sites"
],
"users": [
{
"id": 87913858,
"name": "Darth Vader",
"email": "darth.vader@sith.com",
"admin": 0
}
],
"created_at": 1588753848,
"updated_at": 1659609697
}
],
"links": {
"first": "https://public-api.lumiformapp.com/api/v1/roles?page=1",
"last": "https://public-api.lumiformapp.com/api/v1/roles?page=2",
"prev": null,
"next": "https://public-api.lumiformapp.com/api/v1/roles?page=2"
},
"meta": {
"current_page": 1,
"from": 1,
"last_page": 2,
"links": [
{
"url": null,
"label": "« Previous",
"active": false
},
{
"url": "https://public-api.lumiformapp.com/api/v1/roles?page=1",
"label": "1",
"active": true
},
{
"url": "https://public-api.lumiformapp.com/api/v1/roles?page=2",
"label": "2",
"active": false
},
{
"url": "https://public-api.lumiformapp.com/api/v1/roles?page=2",
"label": "Next »",
"active": false
}
],
"path": "https://public-api.lumiformapp.com/api/v1/roles",
"per_page": 15,
"to": 15,
"total": 30
}
}
This endpoint retrieves all of your roles.
HTTP Request
GET https://public-api.lumiformapp.com/api/v1/roles
Query Parameters
| Parameter | Required | Type | Example | Description |
|---|---|---|---|---|
| site_restricted | No | Boolean | false | A boolean to try and find in the roles that have site restricted. |
| users | No | Array | 1,2,3 | A list of user IDs, or a single ID, to search for roles they are assigned to. |
| permissions | No | Array | role-1,role-2 | A list of permissions, or single permission, to search for roles that contain them. |
| updated_from | No | Unix time | 1585589759 | The date from which to search for the update date of your roles. |
| updated_to | No | Unix time | 1630185200 | The date to which to search for the update date of your roles. |
| created_from | No | Unix time | 1585589759 | The date from which to search for the creation date of your roles. |
| created_to | No | Unix time | 1630185200 | The date to which to search for the creation date of your roles. |
Get a Specific Role
curl --request GET \
--url 'https://public-api.lumiformapp.com/api/v1/roles/1' \
--header 'Authorization: Bearer [your token here]' \
--header 'Accept: application/json' \
--header 'Content-Type: application/json'
The above command returns JSON structured like this:
{
"data": {
"id": 868746486,
"name": "Sith",
"site_restricted": false,
"permissions": [
"manage-users",
"manage-sites"
],
"users": [
{
"id": 87913858,
"name": "Darth Vader",
"email": "darth.vader@sith.com",
"admin": 0
}
],
"created_at": 1588753848,
"updated_at": 1659609697
}
}
This endpoint retrieves a specific role.
HTTP Request
GET https://public-api.lumiformapp.com/api/v1/roles/<RoleId>
URL Parameters
| Parameter | Required | Type | Example | Description |
|---|---|---|---|---|
| RoleId | Yes | Number | 1 | The ID of the role to retrieve. |
Forms
Get All Forms
curl --request GET \
--url 'https://public-api.lumiformapp.com/api/v2/forms' \
--header 'Authorization: Bearer [your token here]' \
--header 'Accept: application/json' \
--header 'Content-Type: application/json'
The above command returns JSON structured like this:
{
"data": [
{
"id": 1,
"title": "Safety checklist",
"inspection_title": "Safety checklist",
"assignees": [
{
"id": 1,
"name": "Obi-Wan Kenobi",
"email": "obi.wan@jediknights.com"
},
{
"id": 2,
"name": "Yoda",
"email": "yoda@jediknights.com"
}
],
"conducted_by": {
"id": 1,
"name": "Obi-Wan Kenobi",
"email": "obi.wan@jediknights.com"
},
"site": {
"id": 1,
"title": "Temple of Coruscant"
},
"conducted_at": 1585553421,
"status": "closed",
"due_at": 1625050211,
"overdue": false,
"issues": [],
"checklist": {
"id": 1,
"title": "Safety checklist",
"status": "active"
},
"approval": {
"id": 30,
"status": "approved",
"comment": "my comment",
"approver": {
"id": 4,
"name": "Jeff Hanneman",
"email": "jeff.hanneman@slayer.net",
"admin": 1
},
"updated_at": 1748878859
}
},
{
"id": 2,
"title": "Lightsaber practice room materials checklist",
"inspection_title": "Safety checklist",
"assignees": [
{
"id": 2,
"name": "Yoda",
"email": "yoda@jediknights.com"
}
],
"conducted_by": {
"id": 2,
"name": "Yoda",
"email": "yoda@jediknights.com"
},
"site": {
"id": 1,
"title": "Temple of Coruscant"
},
"conducted_at": 1585589759,
"status": "closed",
"due_at": 1595599783,
"overdue": false,
"issues": [
{
"id": 1,
"title": "Missing blinding helmets",
"updated_at": 1593378800,
"site": {
"id": 1,
"title": "Temple of Coruscant"
},
"resolved_at": null,
"resolved_by": null,
"created_at": 1585589759,
"assignees": [
{
"id": 3,
"name": "Mace Windu",
"email": "mace.windu@jediknights.com"
}
],
"status": "in_progress",
"due_at": 1630185200,
"overdue": false,
"priority": "high",
"created_by": {
"id": 2,
"name": "Yoda",
"email": "yoda@jediknights.com"
}
}
],
"checklist": {
"id": 2,
"title": "Materials checklist",
"status": "active"
},
"approval": {
"id": 31,
"status": "approved",
"comment": null,
"approver": {
"id": 4,
"name": "Jeff Hanneman",
"email": "jeff.hanneman@slayer.net",
"admin": 1
},
"updated_at": 1748878859
}
}
],
"links": {
"first": "https://public-api.lumiformapp.com/api/v2/forms?page=1",
"last": "https://public-api.lumiformapp.com/api/v2/forms?page=2",
"prev": null,
"next": "https://public-api.lumiformapp.com/api/v2/forms?page=2"
},
"meta": {
"current_page": 1,
"from": 1,
"last_page": 2,
"links": [
{
"url": null,
"label": "« Previous",
"active": false
},
{
"url": "https://public-api.lumiformapp.com/api/v2/forms?page=1",
"label": "1",
"active": true
},
{
"url": "https://public-api.lumiformapp.com/api/v2/forms?page=2",
"label": "2",
"active": false
},
{
"url": "https://public-api.lumiformapp.com/api/v2/forms?page=2",
"label": "Next »",
"active": false
}
],
"path": "https://public-api.lumiformapp.com/api/v2/forms",
"per_page": 15,
"to": 15,
"total": 30
}
}
This endpoint retrieves all of your forms.
HTTP Request
GET https://public-api.lumiformapp.com/api/v2/forms
Query Parameters
| Parameter | Required | Type | Example | Description |
|---|---|---|---|---|
| page | No | Number | 1 | The results page number to view. If omitted, the default is 1. |
| conducted_from | No | Unix time | 1585589759 | The date from which to search for conducted forms. |
| conducted_to | No | Unix time | 1630185200 | The date to which to search for conducted forms. |
| due_from | No | Unix time | 1585589759 | The date from which to search for the due date of your forms. |
| due_to | No | Unix time | 1630185200 | The date to which to search for the due date of your forms. |
| users | No | Array | 1,2,3 | A list of user IDs, or a single ID, to search for forms they conducted. |
| sites | No | Array | 1,2,3 | A list of site IDs, or a single ID, to search for forms where they were conducted. |
| statuses | No | Array | open,taken | A list of statuses, or a single status, to search forms in. Allowed values: open, taken, closed, cant_do. |
| overdue | No | Boolean | true | Toggle filtering for overdue or not overdue forms. |
| title | No | Text | warehouse | A string of text to try and find in the forms titles. |
| checklist | No | Number | 1 | The ID of a checklist to search its conducted forms. |
| order_by | No | Text | id | The field to order the results by. Allowed values: id, conducted_at. |
| order_way | No | Text | ASC | The field to order the results by. Allowed values: ASC, DESC. |
Get a Specific Form
curl --request GET \
--url 'https://public-api.lumiformapp.com/api/v2/forms/1' \
--header 'Authorization: Bearer [your token here]' \
--header 'Accept: application/json' \
--header 'Content-Type: application/json'
The above command returns JSON structured like this:
{
"data": {
"id": 1,
"title": "Safety checklist",
"inspection_title": "Safety checklist",
"assignees": [
{
"id": 1,
"name": "Obi-Wan Kenobi",
"email": "obi.wan@jediknights.com"
},
{
"id": 2,
"name": "Yoda",
"email": "yoda@jediknights.com"
}
],
"conducted_by": {
"id": 1,
"name": "Obi-Wan Kenobi",
"email": "obi.wan@jediknights.com"
},
"site": {
"id": 1,
"title": "Temple of Coruscant"
},
"conducted_at": 1585553421,
"status": "closed",
"due_at": 1625050211,
"overdue": false,
"issues": [],
"checklist": {
"id": 1,
"title": "Safety checklist",
"status": "active"
},
"photos": [
{
"id": "d0ada570-c2db-4cc7-bb29-c18b6d1fef8e.jpeg",
"url": "https://assets.lumiformapp.com/image-public/d0ada570-c2db-4cc7-bb29-c18b6d1fef8e.jpeg?token=[your token here]",
"width": null,
"height": null
}
],
"approval": {
"id": 29,
"status": "approved",
"comment": "my comment",
"approver": {
"id": 4,
"name": "Jeff Hanneman",
"email": "jeff.hanneman@slayer.net",
"admin": 1
},
"updated_at": 1748878859
}
}
}
This endpoint retrieves a specific form.
HTTP Request
GET https://public-api.lumiformapp.com/api/v2/forms/<FormId>
URL Parameters
| Parameter | Required | Type | Example | Description |
|---|---|---|---|---|
| FormId | Yes | Number | 1 | The ID of the form to retrieve. |
Get Questions of a Form
curl --request GET \
--url 'https://public-api.lumiformapp.com/api/v2/forms/1/questions' \
--header 'Authorization: Bearer [your token here]' \
--header 'Accept: application/json' \
--header 'Content-Type: application/json'
The above command returns JSON structured like this:
{
"data": [
{
"id": 1,
"title": "Are the archives complete?",
"type": "list",
"response": "No",
"max_score": 1,
"score": 0,
"percentage": 0,
"is_negative": true,
"notes": "Planet Kamino is missing from the archives.",
"photos": [
{
"id": "d0ada570-c2db-4cc7-bb29-c18b6d1fef8e.jpeg",
"url": "https://assets.lumiformapp.com/image-public/d0ada570-c2db-4cc7-bb29-c18b6d1fef8e.jpeg?token=[your token here]",
"width": 800,
"height": 802
}
],
"issues": [
{
"id": 2,
"title": "Add Kamino to the archives",
"updated_at": 1593378800,
"site": {
"id": 1,
"title": "Temple of Coruscant"
},
"resolved_at": 1624914800,
"resolved_by": null,
"created_at": 1598649200,
"assignees": [
{
"id": 4,
"name": "Jocasta Nu",
"email": "jocasta.nu@jediknights.com"
}
],
"status": "in_progress",
"due_at": 1630185200,
"overdue": false,
"priority": "high",
"created_by": {
"id": 1,
"name": "Obi-Wan Kenobi",
"email": "obi.wan@jediknights.com"
}
}
]
},
{
"id": 2,
"title": "Did the younglings go to bed early?",
"response": "Yes",
"max_score": 1,
"score": 1,
"percentage": 100,
"is_negative": false,
"notes": null,
"photos": [],
"issues": []
}
],
"links": {
"first": "https://public-api.lumiformapp.com/api/v2/forms/1/questions?page=1",
"last": "https://public-api.lumiformapp.com/api/v2/forms/1/questions?page=2",
"prev": null,
"next": "https://public-api.lumiformapp.com/api/v2/forms/1/questions?page=2"
},
"meta": {
"current_page": 1,
"from": 1,
"last_page": 2,
"links": [
{
"url": null,
"label": "« Previous",
"active": false
},
{
"url": "https://public-api.lumiformapp.com/api/v2/forms/1/questions?page=1",
"label": "1",
"active": true
},
{
"url": "https://public-api.lumiformapp.com/api/v2/forms/1/questions?page=2",
"label": "2",
"active": false
},
{
"url": "https://public-api.lumiformapp.com/api/v2/forms/1/questions?page=2",
"label": "Next »",
"active": false
}
],
"path": "https://public-api.lumiformapp.com/api/v2/forms/1/questions",
"per_page": 15,
"to": 15,
"total": 30
}
}
This endpoint retrieves questions of a specific form.
HTTP Request
GET https://public-api.lumiformapp.com/api/v2/forms/<FormId>/questions
URL Parameters
| Parameter | Required | Type | Example | Description |
|---|---|---|---|---|
| FormId | Yes | Number | 1 | The ID of the form to retrieve questions from. |
Query Parameters
| Parameter | Required | Type | Example | Description |
|---|---|---|---|---|
| conducted_from | No | Unix time | 1585589759 | The date from which to search for answered questions. |
| conducted_to | No | Unix time | 1630185200 | The date to which to search for answered questions. |
| title | No | Text | archives | A string of text to try and find in the question titles. |
| response | No | Text | No | A string of text to try and find in the question response. |
| negative | No | Boolean | true | Toggle filtering for negatively answered questions. |
Export a Specific Form to desired format
curl --request GET \
--url 'https://public-api.lumiformapp.com/api/v2/forms/1/export?format=pdf&timezone=Europe/Berlin' \
--header 'Authorization: Bearer [your token here]' \
--header 'Accept: application/json' \
--header 'Content-Type: application/json'
The above command returns JSON structured like this:
{
"data": "<base64-encoded-string>",
"format": "pdf"
}
This endpoint retrieves a report, encoded in base64 string, for specific form.
CSV Export caveats
CSV export contains direct links to photos however they are unauthorized for download. To download photos, you need to append query parameter with your token. The final URL should look like: https://assets.lumiformapp.com/image-public/d0ada570-c2db-4cc7-bb29-c18b6d1fef8e.jpeg?token=[your token here]
HTTP Request
GET https://public-api.lumiformapp.com/api/v2/forms/<FormId>/export
URL Parameters
| Parameter | Required | Type | Example | Description |
|---|---|---|---|---|
| FormId | Yes | Number | 1 | The ID of the form to retrieve. |
Query Parameters
| Parameter | Required | Type | Example | Description |
|---|---|---|---|---|
| format | yes | Text | Format for export. Supported formats: pdf | |
| timezone | yes | Timezone | Europe/Berlin | Timezone to be used for exporting dates. |
Actions
Get All Actions
curl --request GET \
--url 'https://public-api.lumiformapp.com/api/v2/actions' \
--header 'Authorization: Bearer [your token here]' \
--header 'Accept: application/json' \
--header 'Content-Type: application/json'
The above command returns JSON structured like this:
{
"data": [
{
"id": 1,
"title": "Check the droid attack on the Wookies",
"status": "in_progress",
"due_at": 1630185200
},
{
"id": 2,
"title": "Add Kamino to the archives",
"status": "in_progress",
"due_at": 1630185200
}
],
"links": {
"first": "https://public-api.lumiformapp.com/api/v2/actions?page=1",
"last": "https://public-api.lumiformapp.com/api/v2/actions?page=2",
"prev": null,
"next": "https://public-api.lumiformapp.com/api/v2/actions?page=2"
},
"meta": {
"current_page": 1,
"from": 1,
"last_page": 2,
"links": [
{
"url": null,
"label": "« Previous",
"active": false
},
{
"url": "https://public-api.lumiformapp.com/api/v2/actions?page=1",
"label": "1",
"active": true
},
{
"url": "https://public-api.lumiformapp.com/api/v2/actions?page=2",
"label": "2",
"active": false
},
{
"url": "https://public-api.lumiformapp.com/api/v2/actions?page=2",
"label": "Next »",
"active": false
}
],
"path": "https://public-api.lumiformapp.com/api/v2/actions",
"per_page": 15,
"to": 15,
"total": 30
}
}
This endpoint retrieves all of your actions.
HTTP Request
GET https://public-api.lumiformapp.com/api/v2/actions
Query Parameters
| Parameter | Required | Type | Example | Description |
|---|---|---|---|---|
| page | No | Number | 1 | The results page number to view. If omitted, the default is 1. |
| resolved_by | No | Number | 1 | The user ID to find actions they have resolved. |
| title | No | Text | Check | A string of text to try and find in the actions titles. |
| updated_from | No | Unix time | 1585589759 | The date from which to search for the update date of your action. |
| updated_to | No | Unix time | 1630185200 | The date to which to search for the update date of your actions. |
| created_from | No | Unix time | 1585589759 | The date from which to search for the creation date of your actions. |
| created_to | No | Unix time | 1630185200 | The date to which to search for the creation date of your actions. |
| sites | No | Array | 1,2,3 | A list of site IDs, or a single ID, to search for actions related to them. |
| resolved_from | No | Unix time | 1585589759 | The date from which to search for the resolution date of your actions. |
| resolved_to | No | Unix time | 1630185200 | The date to which to search for the resolution date of your actions. |
| assignees | No | Array | 1,2,3 | A list of user IDs, or a single ID, to search for actions they are assigned to. |
| statuses | No | Array | open,in_progress | A list of statuses, or a single status, to search actions in. Allowed values: open, solved, in_progress, cant_do. |
| due_from | No | Unix time | 1585589759 | The date from which to search for the due date of your actions. |
| due_to | No | Unix time | 1630185200 | The date to which to search for the due date of your actions. |
| overdue | No | Boolean | true | Toggle filtering for overdue or not overdue actions. |
| priorities | No | Array | normal | A list of priorities, or a single priority, to search actions with. Allowed values: normal, high. |
| created_by | No | Number | 1 | The user ID to find actions they have created. |
Get a Specific Action
curl --request GET \
--url 'https://public-api.lumiformapp.com/api/v2/actions/1' \
--header 'Authorization: Bearer [your token here]' \
--header 'Accept: application/json' \
--header 'Content-Type: application/json'
The above command returns JSON structured like this:
{
"data": {
"id": 1,
"title": "Check the droid attack on the Wookies",
"description": "action description",
"updated_at": 1593378800,
"site": {
"id": 1,
"title": "Temple of Coruscant",
"description": "Site description"
},
"resolved_at": 1624914800,
"resolved_by": null,
"created_at": 1598649200,
"assignees": [
{
"id": 2,
"name": "Yoda",
"email": "yoda@jediknights.com"
}
],
"status": "in_progress",
"due_at": 1630185200,
"overdue": false,
"priority": "normal",
"created_by": {
"id": 5,
"name": "Ki-Adi-Mundi",
"email": "ki.adi.mundi@jediknights.com"
},
"photos": [
{
"id": "d0ada570-c2db-4cc7-bb29-c18b6d1fef8e.jpeg",
"url": "https://assets.lumiformapp.com/image-public/d0ada570-c2db-4cc7-bb29-c18b6d1fef8e.jpeg?token=[your token here]",
"width": 800,
"height": 802
}
]
}
}
This endpoint retrieves a specific action.
HTTP Request
GET https://public-api.lumiformapp.com/api/v2/actions/<ActionId>
URL Parameters
| Parameter | Required | Type | Example | Description |
|---|---|---|---|---|
| ActionId | Yes | Number | 1 | The ID of the action to retrieve. |
Create an Action
curl --request POST \
--url 'https://public-api.lumiformapp.com/api/v2/actions' \
--header 'Authorization: Bearer [your token here]' \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--d '{"title": "action title", "description": "action description", "site": 576577251, "status": "open", "assignees":[1,2], "due_at": 1585639822, "priority": "high"}'
Mandatory fields: title
status values: open, solved, in_progress or cant_do
priority values: normal or high
The above command returns JSON structured like this:
{
"id": 123
}
This endpoint creates a site.
HTTP Request
POST https://public-api.lumiformapp.com/api/v2/actions
Update an Action
curl --request PUT \
--url 'https://public-api.lumiformapp.com/api/v2/actions/1' \
--header 'Authorization: Bearer [your token here]' \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--d '{"title": "action title", "description": "action description", "site": 576577251, "status": "open", "assignees":[1,2], "due_at": 1585639822, "priority": "high"}'
Mandatory fields: title
The above command does not return any data
This endpoint updates a specific action.
HTTP Request
PUT https://public-api.lumiformapp.com/api/v2/actions/<ActionId>
URL Parameters
| Parameter | Required | Type | Example | Description |
|---|---|---|---|---|
| ActionId | Yes | Number | 1 | The ID of the action to update. |
Delete an Action
curl --request DELETE \
--url 'https://public-api.lumiformapp.com/api/v2/actions/1' \
--header 'Authorization: Bearer [your token here]' \
--header 'Accept: application/json' \
--header 'Content-Type: application/json'
The above command does not return any data
This endpoint deletes a specific action.
HTTP Request
DELETE https://public-api.lumiformapp.com/api/v2/actions/<ActionId>
URL Parameters
| Parameter | Required | Type | Example | Description |
|---|---|---|---|---|
| ActionId | Yes | Number | 1 | The ID of the action to delete. |
Errors
The Lumiform Public API uses the following error codes:
| Error Code | Meaning |
|---|---|
| 401 | Unauthorized -- Your API key is wrong. |
| 404 | Not Found -- The specified resource could not be found. |
| 405 | Method Not Allowed -- You tried to access a resource with an invalid method. |
| 406 | Not Acceptable -- You requested a format that isn't JSON. |
| 422 | Unprocessable Entity -- Your filters are incorrectly specified. Check the examples! |
| 429 | Too Many Requests -- You're requesting too many resources! Slow down! |
| 500 | Internal Server Error -- We had a problem with our server. Try again later. |
| 503 | Service Unavailable -- We're temporarily offline for maintenance. Please try again later. |
Inspections
Get All Inspections
curl --request GET \
--url 'https://public-api.lumiformapp.com/api/v1/inspections' \
--header 'Authorization: Bearer [your token here]' \
--header 'Accept: application/json' \
--header 'Content-Type: application/json'
The above command returns JSON structured like this:
{
"data": [
{
"id": 1,
"title": "Safety checklist",
"assignees": [
{
"id": 1,
"name": "Obi-Wan Kenobi",
"email": "obi.wan@jediknights.com"
},
{
"id": 2,
"name": "Yoda",
"email": "yoda@jediknights.com"
}
],
"conducted_by": {
"id": 1,
"name": "Obi-Wan Kenobi",
"email": "obi.wan@jediknights.com"
},
"site": {
"id": 1,
"title": "Temple of Coruscant"
},
"conducted_at": 1585553421,
"status": "closed",
"due_at": 1625050211,
"overdue": false,
"issues": [],
"checklist": {
"id": 1,
"title": "Safety checklist",
"status": "active"
}
},
{
"id": 2,
"title": "Lightsaber practice room materials checklist",
"assignees": [
{
"id": 2,
"name": "Yoda",
"email": "yoda@jediknights.com"
}
],
"conducted_by": {
"id": 2,
"name": "Yoda",
"email": "yoda@jediknights.com"
},
"site": {
"id": 1,
"title": "Temple of Coruscant"
},
"conducted_at": 1585589759,
"status": "closed",
"due_at": 1595599783,
"overdue": false,
"issues": [
{
"id": 1,
"title": "Missing blinding helmets",
"updated_at": 1593378800,
"site": {
"id": 1,
"title": "Temple of Coruscant"
},
"resolved_at": null,
"resolved_by": null,
"created_at": 1585589759,
"assignees": [
{
"id": 3,
"name": "Mace Windu",
"email": "mace.windu@jediknights.com"
}
],
"status": "in_progress",
"due_at": 1630185200,
"overdue": false,
"priority": "high",
"created_by": {
"id": 2,
"name": "Yoda",
"email": "yoda@jediknights.com"
}
}
],
"checklist": {
"id": 2,
"title": "Materials checklist",
"status": "active"
}
}
],
"links": {
"first": "https://public-api.lumiformapp.com/api/v1/inspections?page=1",
"last": "https://public-api.lumiformapp.com/api/v1/inspections?page=2",
"prev": null,
"next": "https://public-api.lumiformapp.com/api/v1/inspections?page=2"
},
"meta": {
"current_page": 1,
"from": 1,
"last_page": 2,
"links": [
{
"url": null,
"label": "« Previous",
"active": false
},
{
"url": "https://public-api.lumiformapp.com/api/v1/inspections?page=1",
"label": "1",
"active": true
},
{
"url": "https://public-api.lumiformapp.com/api/v1/inspections?page=2",
"label": "2",
"active": false
},
{
"url": "https://public-api.lumiformapp.com/api/v1/inspections?page=2",
"label": "Next »",
"active": false
}
],
"path": "https://public-api.lumiformapp.com/api/v1/inspections",
"per_page": 15,
"to": 15,
"total": 30
}
}
This endpoint retrieves all of your inspections.
HTTP Request
GET https://public-api.lumiformapp.com/api/v1/inspections
Query Parameters
| Parameter | Required | Type | Example | Description |
|---|---|---|---|---|
| page | No | Number | 1 | The results page number to view. If omitted, the default is 1. |
| conducted_from | No | Unix time | 1585589759 | The date from which to search for conducted inspections. |
| conducted_to | No | Unix time | 1630185200 | The date to which to search for conducted inspections. |
| due_from | No | Unix time | 1585589759 | The date from which to search for the due date of your inspections. |
| due_to | No | Unix time | 1630185200 | The date to which to search for the due date of your inspections. |
| users | No | Array | 1,2,3 | A list of user IDs, or a single ID, to search for inspections they conducted. |
| sites | No | Array | 1,2,3 | A list of site IDs, or a single ID, to search for inspections where they were conducted. |
| statuses | No | Array | open,taken | A list of statuses, or a single status, to search inspections in. Allowed values: open, taken, closed, cant_do. |
| overdue | No | Boolean | true | Toggle filtering for overdue or not overdue inspections. |
| title | No | Text | warehouse | A string of text to try and find in the inspections titles. |
| checklist | No | Number | 1 | The ID of a checklist to search its conducted inspections. |
Get a Specific Inspection
curl --request GET \
--url 'https://public-api.lumiformapp.com/api/v1/inspections/1' \
--header 'Authorization: Bearer [your token here]' \
--header 'Accept: application/json' \
--header 'Content-Type: application/json'
The above command returns JSON structured like this:
{
"data": {
"id": 1,
"title": "Safety checklist",
"assignees": [
{
"id": 1,
"name": "Obi-Wan Kenobi",
"email": "obi.wan@jediknights.com"
},
{
"id": 2,
"name": "Yoda",
"email": "yoda@jediknights.com"
}
],
"conducted_by": {
"id": 1,
"name": "Obi-Wan Kenobi",
"email": "obi.wan@jediknights.com"
},
"site": {
"id": 1,
"title": "Temple of Coruscant"
},
"conducted_at": 1585553421,
"status": "closed",
"due_at": 1625050211,
"overdue": false,
"issues": [],
"checklist": {
"id": 1,
"title": "Safety checklist",
"status": "active"
}
}
}
This endpoint retrieves a specific inspection.
HTTP Request
GET https://public-api.lumiformapp.com/api/v1/inspections/<InspectionId>
URL Parameters
| Parameter | Required | Type | Example | Description |
|---|---|---|---|---|
| InspectionId | Yes | Number | 1 | The ID of the inspection to retrieve. |
Get Questions of an Inspection
curl --request GET \
--url 'https://public-api.lumiformapp.com/api/v1/inspections/1/questions' \
--header 'Authorization: Bearer [your token here]' \
--header 'Accept: application/json' \
--header 'Content-Type: application/json'
The above command returns JSON structured like this:
{
"data": [
{
"id": 1,
"title": "Are the archives complete?",
"response": "No",
"max_score": 1,
"score": 0,
"percentage": 0,
"is_negative": true,
"notes": "Planet Kamino is missing from the archives.",
"issues": [
{
"id": 2,
"title": "Add Kamino to the archives",
"updated_at": 1593378800,
"site": {
"id": 1,
"title": "Temple of Coruscant"
},
"resolved_at": 1624914800,
"resolved_by": null,
"created_at": 1598649200,
"assignees": [
{
"id": 4,
"name": "Jocasta Nu",
"email": "jocasta.nu@jediknights.com"
}
],
"status": "in_progress",
"due_at": 1630185200,
"overdue": false,
"priority": "high",
"created_by": {
"id": 1,
"name": "Obi-Wan Kenobi",
"email": "obi.wan@jediknights.com"
}
}
]
},
{
"id": 2,
"title": "Did the younglings go to bed early?",
"response": "Yes",
"max_score": 1,
"score": 1,
"percentage": 100,
"is_negative": false,
"notes": null,
"issues": []
}
],
"links": {
"first": "https://public-api.lumiformapp.com/api/v1/inspections/1/questions?page=1",
"last": "https://public-api.lumiformapp.com/api/v1/inspections/1/questions?page=2",
"prev": null,
"next": "https://public-api.lumiformapp.com/api/v1/inspections/1/questions?page=2"
},
"meta": {
"current_page": 1,
"from": 1,
"last_page": 2,
"links": [
{
"url": null,
"label": "« Previous",
"active": false
},
{
"url": "https://public-api.lumiformapp.com/api/v1/inspections/1/questions?page=1",
"label": "1",
"active": true
},
{
"url": "https://public-api.lumiformapp.com/api/v1/inspections/1/questions?page=2",
"label": "2",
"active": false
},
{
"url": "https://public-api.lumiformapp.com/api/v1/inspections/1/questions?page=2",
"label": "Next »",
"active": false
}
],
"path": "https://public-api.lumiformapp.com/api/v1/inspections/1/questions",
"per_page": 15,
"to": 15,
"total": 30
}
}
This endpoint retrieves questions of a specific inspection.
HTTP Request
GET https://public-api.lumiformapp.com/api/v1/inspections/<InspectionId>/questions
URL Parameters
| Parameter | Required | Type | Example | Description |
|---|---|---|---|---|
| InspectionId | Yes | Number | 1 | The ID of the inspection to retrieve questions from. |
Query Parameters
| Parameter | Required | Type | Example | Description |
|---|---|---|---|---|
| conducted_from | No | Unix time | 1585589759 | The date from which to search for answered questions. |
| conducted_to | No | Unix time | 1630185200 | The date to which to search for answered questions. |
| title | No | Text | archives | A string of text to try and find in the question titles. |
| response | No | Text | No | A string of text to try and find in the question response. |
| negative | No | Boolean | true | Toggle filtering for negatively answered questions. |
Export a Specific Inspection to desired format
curl --request GET \
--url 'https://public-api.lumiformapp.com/api/v2/inspections/1/export?format=pdf&timezone=Europe/Berlin' \
--header 'Authorization: Bearer [your token here]' \
--header 'Accept: application/json' \
--header 'Content-Type: application/json'
The above command returns JSON structured like this:
{
"data": "<base64-encoded-string>",
"format": "pdf"
}
This endpoint retrieves a report, encoded in base64 string, for specific inspection.
HTTP Request
GET https://public-api.lumiformapp.com/api/v2/inspections/<InspectionId>/export
URL Parameters
| Parameter | Required | Type | Example | Description |
|---|---|---|---|---|
| InspectionId | Yes | Number | 1 | The ID of the inspection to retrieve. |
Query Parameters
| Parameter | Required | Type | Example | Description |
|---|---|---|---|---|
| format | yes | Text | Format for export. Supported formats: pdf | |
| timezone | yes | Timezone | Europe/Berlin | Timezone to be used for exporting dates. |
Issues
Get All Issues
curl --request GET \
--url 'https://public-api.lumiformapp.com/api/v1/issues' \
--header 'Authorization: Bearer [your token here]' \
--header 'Accept: application/json' \
--header 'Content-Type: application/json'
The above command returns JSON structured like this:
{
"data": [
{
"id": 1,
"title": "Check the droid attack on the Wookies",
"updated_at": 1593378800,
"site": {
"id": 1,
"title": "Temple of Coruscant"
},
"resolved_at": 1624914800,
"resolved_by": null,
"created_at": 1598649200,
"assignees": [
{
"id": 2,
"name": "Yoda",
"email": "yoda@jediknights.com"
}
],
"status": "in_progress",
"due_at": 1630185200,
"overdue": false,
"priority": "normal",
"created_by": {
"id": 5,
"name": "Ki-Adi-Mundi",
"email": "ki.adi.mundi@jediknights.com"
}
},
{
"id": 2,
"title": "Add Kamino to the archives",
"updated_at": 1593378800,
"site": {
"id": 1,
"title": "Temple of Coruscant"
},
"resolved_at": 1624914800,
"resolved_by": null,
"created_at": 1598649200,
"assignees": [
{
"id": 4,
"name": "Jocasta Nu",
"email": "jocasta.nu@jediknights.com"
}
],
"status": "in_progress",
"due_at": 1630185200,
"overdue": false,
"priority": "high",
"created_by": {
"id": 1,
"name": "Obi-Wan Kenobi",
"email": "obi.wan@jediknights.com"
}
}
],
"links": {
"first": "https://public-api.lumiformapp.com/api/v1/issues?page=1",
"last": "https://public-api.lumiformapp.com/api/v1/issues?page=2",
"prev": null,
"next": "https://public-api.lumiformapp.com/api/v1/issues?page=2"
},
"meta": {
"current_page": 1,
"from": 1,
"last_page": 2,
"links": [
{
"url": null,
"label": "« Previous",
"active": false
},
{
"url": "https://public-api.lumiformapp.com/api/v1/issues?page=1",
"label": "1",
"active": true
},
{
"url": "https://public-api.lumiformapp.com/api/v1/issues?page=2",
"label": "2",
"active": false
},
{
"url": "https://public-api.lumiformapp.com/api/v1/issues?page=2",
"label": "Next »",
"active": false
}
],
"path": "https://public-api.lumiformapp.com/api/v1/issues",
"per_page": 15,
"to": 15,
"total": 30
}
}
This endpoint retrieves all of your issues.
HTTP Request
GET https://public-api.lumiformapp.com/api/v1/issues
Query Parameters
| Parameter | Required | Type | Example | Description |
|---|---|---|---|---|
| page | No | Number | 1 | The results page number to view. If omitted, the default is 1. |
| resolved_by | No | Number | 1 | The user ID to find issues they have resolved. |
| title | No | Text | Check | A string of text to try and find in the issues titles. |
| updated_from | No | Unix time | 1585589759 | The date from which to search for the update date of your issue. |
| updated_to | No | Unix time | 1630185200 | The date to which to search for the update date of your issues. |
| created_from | No | Unix time | 1585589759 | The date from which to search for the creation date of your issues. |
| created_to | No | Unix time | 1630185200 | The date to which to search for the creation date of your issues. |
| sites | No | Array | 1,2,3 | A list of site IDs, or a single ID, to search for issues related to them. |
| resolved_from | No | Unix time | 1585589759 | The date from which to search for the resolution date of your issues. |
| resolved_to | No | Unix time | 1630185200 | The date to which to search for the resolution date of your issues. |
| assignees | No | Array | 1,2,3 | A list of user IDs, or a single ID, to search for issues they are assigned to. |
| statuses | No | Array | open,in_progress | A list of statuses, or a single status, to search issues in. Allowed values: open, solved, in_progress, cant_do. |
| due_from | No | Unix time | 1585589759 | The date from which to search for the due date of your issues. |
| due_to | No | Unix time | 1630185200 | The date to which to search for the due date of your issues. |
| overdue | No | Boolean | true | Toggle filtering for overdue or not overdue issues. |
| priorities | No | Array | normal | A list of priorities, or a single priority, to search issues with. Allowed values: normal, high. |
| created_by | No | Number | 1 | The user ID to find issues they have created. |
Get a Specific Issue
curl --request GET \
--url 'https://public-api.lumiformapp.com/api/v1/issues/1' \
--header 'Authorization: Bearer [your token here]' \
--header 'Accept: application/json' \
--header 'Content-Type: application/json'
The above command returns JSON structured like this:
{
"data": {
"id": 1,
"title": "Check the droid attack on the Wookies",
"updated_at": 1593378800,
"site": {
"id": 1,
"title": "Temple of Coruscant"
},
"resolved_at": 1624914800,
"resolved_by": null,
"created_at": 1598649200,
"assignees": [
{
"id": 2,
"name": "Yoda",
"email": "yoda@jediknights.com"
}
],
"status": "in_progress",
"due_at": 1630185200,
"overdue": false,
"priority": "normal",
"created_by": {
"id": 5,
"name": "Ki-Adi-Mundi",
"email": "ki.adi.mundi@jediknights.com"
}
}
}
This endpoint retrieves a specific issue.
HTTP Request
GET https://public-api.lumiformapp.com/api/v1/issues/<IssueId>
URL Parameters
| Parameter | Required | Type | Example | Description |
|---|---|---|---|---|
| IssueId | Yes | Number | 1 | The ID of the issue to retrieve. |
Groups
Get All Groups
curl --request GET \
--url 'https://public-api.lumiformapp.com/api/v2/groups' \
--header 'Authorization: Bearer [your token here]' \
--header 'Accept: application/json' \
--header 'Content-Type: application/json'
The above command returns JSON structured like this:
{
"data": [
{
"id": 868746486,
"name": "Jedi Order",
"users": [
{
"id": 87913847,
"name": "Yoda",
"email": "yoda@jediknights.com"
}
]
},
{
"id": 868746478,
"name": "Order of the Sith Lords",
"users": [
{
"id": 87913858,
"name": "Darth Vader",
"email": "darth.vader@sith.com"
}
]
}
],
"links": {
"first": "https://public-api.lumiformapp.com/api/v2/groups?page=1",
"last": "https://public-api.lumiformapp.com/api/v2/groups?page=2",
"prev": null,
"next": "https://public-api.lumiformapp.com/api/v2/groups?page=2"
},
"meta": {
"current_page": 1,
"from": 1,
"last_page": 2,
"links": [
{
"url": null,
"label": "« Previous",
"active": false
},
{
"url": "https://public-api.lumiformapp.com/api/v2/groups?page=1",
"label": "1",
"active": true
},
{
"url": "https://public-api.lumiformapp.com/api/v2/groups?page=2",
"label": "2",
"active": false
},
{
"url": "https://public-api.lumiformapp.com/api/v2/groups?page=2",
"label": "Next »",
"active": false
}
],
"path": "https://public-api.lumiformapp.com/api/v2/groups",
"per_page": 15,
"to": 15,
"total": 30
}
}
This endpoint retrieves all of your groups.
HTTP Request
GET https://public-api.lumiformapp.com/api/v2/groups
Query Parameters
| Parameter | Required | Type | Example | Description |
|---|---|---|---|---|
| name | No | Text | yoda | A string of text to try and find in the groups names. |
| users | No | Array | 1,2,3 | A list of user IDs, or a single ID, to search for groups they are assigned to. |
Get a Specific Group
curl --request GET \
--url 'https://public-api.lumiformapp.com/api/v2/groups/1' \
--header 'Authorization: Bearer [your token here]' \
--header 'Accept: application/json' \
--header 'Content-Type: application/json'
The above command returns JSON structured like this:
{
"data": {
"name": "Jedi Order",
"users": [
{
"id": 2,
"name": "Yoda",
"email": "yoda@jediknights.com"
}
]
}
}
This endpoint retrieves a specific group.
HTTP Request
GET https://public-api.lumiformapp.com/api/v2/groups/<GroupId>
URL Parameters
| Parameter | Required | Type | Example | Description |
|---|---|---|---|---|
| GroupId | Yes | Number | 1 | The ID of the group to retrieve. |
Create a Group
curl --request POST \
--url 'https://public-api.lumiformapp.com/api/v2/groups' \
--header 'Authorization: Bearer [your token here]' \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--d '{"name":"Group name","users":"[1,2]"}'
The above command returns JSON structured like this:
{
"id": 123
}
This endpoint creates a group.
HTTP Request
POST https://public-api.lumiformapp.com/api/v2/groups
Update a Group
curl --request PUT \
--url 'https://public-api.lumiformapp.com/api/v2/groups/1' \
--header 'Authorization: Bearer [your token here]' \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--d '{"name":"New group name","users":"[2,3,4]"}'
The above command does not return any data
This endpoint updates a specific group.
HTTP Request
PUT https://public-api.lumiformapp.com/api/v2/groups/<GroupId>
URL Parameters
| Parameter | Required | Type | Example | Description |
|---|---|---|---|---|
| GroupId | Yes | Number | 1 | The ID of the group to update. |
Delete a Group
curl --request DELETE \
--url 'https://public-api.lumiformapp.com/api/v2/groups/1' \
--header 'Authorization: Bearer [your token here]' \
--header 'Accept: application/json' \
--header 'Content-Type: application/json'
The above command does not return any data
This endpoint deletes a specific group.
HTTP Request
DELETE https://public-api.lumiformapp.com/api/v2/groups/<GroupId>
URL Parameters
| Parameter | Required | Type | Example | Description |
|---|---|---|---|---|
| GroupId | Yes | Number | 1 | The ID of the group to delete. |
Sites
Get All Sites
curl --request GET \
--url 'https://public-api.lumiformapp.com/api/v2/sites' \
--header 'Authorization: Bearer [your token here]' \
--header 'Accept: application/json' \
--header 'Content-Type: application/json'
The above command returns JSON structured like this:
{
"data": [
{
"id": 868746486,
"name": "Tatooine",
"description": "It is the home planet of Luke SKywalker",
"users": [
{
"id": 87913847,
"name": "luke",
"email": "luke@jediknights.com"
}
],
"primary_ssid": null,
"primary_password": null,
"secondary_ssid": null,
"secondary_password": null
},
{
"id": 868746478,
"name": "Alderaan",
"description": "It is the home planet of Princess Leia Organa",
"users": [
{
"id": 87913858,
"name": "Leia Organa",
"email": "leia.organa@sw.com"
}
]
}
],
"links": {
"first": "https://public-api.lumiformapp.com/api/v2/sites?page=1",
"last": "https://public-api.lumiformapp.com/api/v2/sites?page=2",
"prev": null,
"next": "https://public-api.lumiformapp.com/api/v2/sites?page=2"
},
"meta": {
"current_page": 1,
"from": 1,
"last_page": 2,
"links": [
{
"url": null,
"label": "« Previous",
"active": false
},
{
"url": "https://public-api.lumiformapp.com/api/v2/sites?page=1",
"label": "1",
"active": true
},
{
"url": "https://public-api.lumiformapp.com/api/v2/sites?page=2",
"label": "2",
"active": false
},
{
"url": "https://public-api.lumiformapp.com/api/v2/sites?page=2",
"label": "Next »",
"active": false
}
],
"path": "https://public-api.lumiformapp.com/api/v2/sites",
"per_page": 15,
"to": 15,
"total": 30
}
}
This endpoint retrieves all of your sites.
HTTP Request
GET https://public-api.lumiformapp.com/api/v2/sites
Query Parameters
| Parameter | Required | Type | Example | Description |
|---|---|---|---|---|
| title | No | Text | luke | A string of text to try and find in the sites names. |
| users | No | Array | 1,2,3 | A list of user IDs, or a single ID, to search for sites they are assigned to. |
Get a Specific Site
curl --request GET \
--url 'https://public-api.lumiformapp.com/api/v2/sites/1' \
--header 'Authorization: Bearer [your token here]' \
--header 'Accept: application/json' \
--header 'Content-Type: application/json'
The above command returns JSON structured like this:
{
"data": {
"id": 868746486,
"name": "Tatooine",
"description": "It is the home planet of Luke SKywalker",
"users": [
{
"id": 87913847,
"name": "luke",
"email": "luke@jediknights.com"
}
],
"primary_ssid": null,
"primary_password": null,
"secondary_ssid": null,
"secondary_password": null
}
}
This endpoint retrieves a specific site.
HTTP Request
GET https://public-api.lumiformapp.com/api/v2/sites/<SiteId>
URL Parameters
| Parameter | Required | Type | Example | Description |
|---|---|---|---|---|
| SiteId | Yes | Number | 1 | The ID of the site to retrieve. |
Create a Site
curl --request POST \
--url 'https://public-api.lumiformapp.com/api/v2/sites' \
--header 'Authorization: Bearer [your token here]' \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--d '{"title": "Site name", "description": "site description", "users":"[1,2]"}'
Mandatory fields: title
The above command returns JSON structured like this:
{
"id": 123
}
This endpoint creates a site.
HTTP Request
POST https://public-api.lumiformapp.com/api/v2/sites
Update a Site
curl --request PUT \
--url 'https://public-api.lumiformapp.com/api/v2/sites/1' \
--header 'Authorization: Bearer [your token here]' \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--d '{"title": "Site name", "description": "site description", "users":[1,2], "primary_ssid": "123", "primary_password": "123", "secondary_ssid": "123", "secondary_password": "123"}'
Mandatory fields: title
The above command does not return any data
This endpoint updates a specific site.
HTTP Request
PUT https://public-api.lumiformapp.com/api/v2/sites/<SiteId>
URL Parameters
| Parameter | Required | Type | Example | Description |
|---|---|---|---|---|
| SiteId | Yes | Number | 1 | The ID of the site to update. |
Delete a Site
curl --request DELETE \
--url 'https://public-api.lumiformapp.com/api/v2/sites/1' \
--header 'Authorization: Bearer [your token here]' \
--header 'Accept: application/json' \
--header 'Content-Type: application/json'
The above command does not return any data
This endpoint deletes a specific site.
HTTP Request
DELETE https://public-api.lumiformapp.com/api/v2/sites/<SiteId>
URL Parameters
| Parameter | Required | Type | Example | Description |
|---|---|---|---|---|
| SiteId | Yes | Number | 1 | The ID of the site to delete. |
Entity Folders
Get All Entity Folders
curl --request GET \
--url 'https://public-api.lumiformapp.com/api/v2/entity-folders' \
--header 'Authorization: Bearer [your token here]' \
--header 'Accept: application/json' \
--header 'Content-Type: application/json'
The above command returns JSON structured like this:
{
"data": [
{
"id": 1,
"title": "Safety folder",
"parents": [
{
"id": 2,
"title": "Parent folder"
}
],
"children": [
{
"id": 3,
"title": "Child folder"
}
],
"users": [
{
"id": 1,
"name": "Obi-Wan Kenobi",
"email": "obi.wan@jediknights.com",
"admin": 0
}
],
"entity_items": [
{
"id": 1,
"title": "Entity item",
"description": null
}
],
"labels": [
{
"id": 1,
"label": "Label"
}
]
},
{
"id": 2,
"title": "Safety folder",
"parents": [
{
"id": 4,
"title": "Parent folder"
}
],
"children": [
{
"id": 5,
"title": "Child folder"
}
],
"users": [
{
"id": 1,
"name": "Obi-Wan Kenobi",
"email": "obi.wan@jediknights.com",
"admin": 0
}
],
"entity_items": [
{
"id": 1,
"title": "Entity item",
"description": null
}
],
"labels": [
{
"id": 1,
"label": "Label"
}
]
}
],
"links": {
"first": "https://public-api.lumiformapp.com/api/v2/entity-folders?page=1",
"last": "https://public-api.lumiformapp.com/api/v2/entity-folders?page=2",
"prev": null,
"next": "https://public-api.lumiformapp.com/api/v2/entity-folders?page=2"
},
"meta": {
"current_page": 1,
"from": 1,
"last_page": 2,
"links": [
{
"url": null,
"label": "« Previous",
"active": false
},
{
"url": "https://public-api.lumiformapp.com/api/v2/entity-folders?page=1",
"label": "1",
"active": true
},
{
"url": "https://public-api.lumiformapp.com/api/v2/entity-folders?page=2",
"label": "2",
"active": false
},
{
"url": "https://public-api.lumiformapp.com/api/v2/entity-folders?page=2",
"label": "Next »",
"active": false
}
],
"path": "https://public-api.lumiformapp.com/api/v2/entity-folders",
"per_page": 15,
"to": 15,
"total": 30
}
}
This endpoint retrieves all of your entity folders.
HTTP Request
GET https://public-api.lumiformapp.com/api/v2/entity-folders
Query Parameters
| Parameter | Required | Type | Example | Description |
|---|---|---|---|---|
| page | No | Number | 1 | The results page number to view. If omitted, the default is 1. |
| users | No | Array | 1,2,3 | A list of user Ids, or a single Id |
| entityItems | No | Array | 1,2,3 | A list of entity items Ids, or a single Id |
| title | No | Text | warehouse | A string of text to try and find in the entity folders titles. |
Get a Specific Entity Folder
curl --request GET \
--url 'https://public-api.lumiformapp.com/api/v2/entity-folders/1' \
--header 'Authorization: Bearer [your token here]' \
--header 'Accept: application/json' \
--header 'Content-Type: application/json'
The above command returns JSON structured like this:
{
"data": {
"id": 1,
"title": "Safety folder",
"parents": [
{
"id": 2,
"title": "Parent folder"
}
],
"children": [
{
"id": 3,
"title": "Child folder"
}
],
"users": [
{
"id": 1,
"name": "Obi-Wan Kenobi",
"email": "obi.wan@jediknights.com",
"admin": 0
}
],
"entity_items": [
{
"id": 1,
"title": "Entity item",
"description": null
}
],
"labels": [
{
"id": 1,
"label": "Label"
}
]
}
}
This endpoint retrieves a specific Entity Folder.
HTTP Request
GET https://public-api.lumiformapp.com/api/v2/entity-folders/<EntityFolderId>
URL Parameters
| Parameter | Required | Type | Example | Description |
|---|---|---|---|---|
| EntityFolderId | Yes | Number | 1 | The Id of the entity folder to retrieve. |
Create an Entity Folder
curl --request POST \
--url 'https://public-api.lumiformapp.com/api/v2/entity-folders' \
--header 'Authorization: Bearer [your token here]' \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--d '{"title":"Tatooine","children":[1],"labels":["Label 1","Label 2"],"entity_items":[1,2,3],"users":[1,2,3]}'
The above command returns JSON structured like this:
{
"id": 1
}
This endpoint creates an Entity Folder.
HTTP Request
POST https://public-api.lumiformapp.com/api/v2/entity-folders
Update an Entity Folder
curl --request PUT \
--url 'https://public-api.lumiformapp.com/api/v2/entity-folders/1' \
--header 'Authorization: Bearer [your token here]' \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--d '{"title":"Tatooine","children":[1],"labels":["Label 1","Label 2"],"entity_items":[1,2,3],"users":[1,2,3]}'
The above command does not return any data
This endpoint updates a specific Entity Folder.
HTTP Request
PUT https://public-api.lumiformapp.com/api/v2/entity-folders/<EntityFolderId>
URL Parameters
| Parameter | Required | Type | Example | Description |
|---|---|---|---|---|
| EntityFolderId | Yes | Number | 1 | The Id of the Entity Folder to update. |
Delete an Entity Folder
curl --request DELETE \
--url 'https://public-api.lumiformapp.com/api/v2/entity-folders/1' \
--header 'Authorization: Bearer [your token here]' \
--header 'Accept: application/json' \
--header 'Content-Type: application/json'
The above command does not return any data
This endpoint deletes a specific Entity Folder.
HTTP Request
DELETE https://public-api.lumiformapp.com/api/v2/entity-folders/<EntityFolderId>
URL Parameters
| Parameter | Required | Type | Example | Description |
|---|---|---|---|---|
| EntityFolderId | Yes | Number | 1 | The Id of the Entity Folder to delete. |
Entity Types
Get All Entity Types
curl --request GET \
--url 'https://public-api.lumiformapp.com/api/v2/entity-types' \
--header 'Authorization: Bearer [your token here]' \
--header 'Accept: application/json' \
--header 'Content-Type: application/json'
To include properties in the response, add the
include_propertiesquery parameter:
curl --request GET \
--url 'https://public-api.lumiformapp.com/api/v2/entity-types?include_properties=true' \
--header 'Authorization: Bearer [your token here]' \
--header 'Accept: application/json' \
--header 'Content-Type: application/json'
The above command returns JSON structured like this:
{
"data": [
{
"id": 1,
"title": "Safety checklist",
"description": "This checklist is about safety"
},
{
"id": 2,
"title": "Cleaning checklist",
"description": "This checklist is about cleaning facility"
}
],
"links": {
"first": "https://public-api.lumiformapp.com/api/v2/entity-types?page=1",
"last": "https://public-api.lumiformapp.com/api/v2/entity-types?page=2",
"prev": null,
"next": "https://public-api.lumiformapp.com/api/v2/entity-types?page=2"
},
"meta": {
"current_page": 1,
"from": 1,
"last_page": 2,
"links": [
{
"url": null,
"label": "« Previous",
"active": false
},
{
"url": "https://public-api.lumiformapp.com/api/v2/entity-types?page=1",
"label": "1",
"active": true
},
{
"url": "https://public-api.lumiformapp.com/api/v2/entity-types?page=2",
"label": "2",
"active": false
},
{
"url": "https://public-api.lumiformapp.com/api/v2/entity-types?page=2",
"label": "Next »",
"active": false
}
],
"path": "https://public-api.lumiformapp.com/api/v2/entity-types",
"per_page": 15,
"to": 15,
"total": 30
}
}
This endpoint retrieves all of your entity types. By default, properties are not included in the response. To include them, use the include_properties=true query parameter.
HTTP Request
GET https://public-api.lumiformapp.com/api/v2/entity-types
Response with Properties
When include_properties=true is included in the query string, the response will include a properties array for each entity type:
Properties included in response:
{
"data": [
{
"id": 1,
"title": "Safety checklist",
"description": "This checklist is about safety",
"properties": [
{
"id": 1,
"label": "Location",
"data_type": "text",
"allow_multi": false
},
{
"id": 2,
"label": "Status",
"data_type": "dropdown",
"option_set_id": 1,
"allow_multi": false,
"option_values": [
{
"id": 1,
"label": "Active"
},
{
"id": 2,
"label": "Inactive"
}
]
}
]
}
],
"links": {
"first": "https://public-api.lumiformapp.com/api/v2/entity-types?page=1&include_properties=true",
"last": "https://public-api.lumiformapp.com/api/v2/entity-types?page=2&include_properties=true",
"prev": null,
"next": "https://public-api.lumiformapp.com/api/v2/entity-types?page=2&include_properties=true"
},
"meta": {
"current_page": 1,
"from": 1,
"last_page": 2,
"path": "https://public-api.lumiformapp.com/api/v2/entity-types",
"per_page": 15,
"to": 15,
"total": 30
}
}
Properties Field Details:
id- The unique identifier of the property definitionlabel- The display label of the propertydata_type- The type of property:"text"or"dropdown"allow_multi- Whether multiple values are allowed for this propertyoption_set_id- The ID of the option set (only present for dropdown-type properties)option_values- Array of available option values (only present for dropdown-type properties). Each option value contains:id- The unique identifier of the option valuelabel- The display label of the option
Query Parameters
| Parameter | Required | Type | Example | Description |
|---|---|---|---|---|
| page | No | Number | 1 | The results page number to view. If omitted, the default is 1. |
| title | No | Text | warehouse | A string of text to try and find in the entity types titles. |
| include_properties | No | Boolean | true | When set to true, includes property definitions for each entity type. Defaults to false. |
Get a Specific Entity Type
curl --request GET \
--url 'https://public-api.lumiformapp.com/api/v2/entity-types/1' \
--header 'Authorization: Bearer [your token here]' \
--header 'Accept: application/json' \
--header 'Content-Type: application/json'
To include properties in the response, add the
include_propertiesquery parameter:
curl --request GET \
--url 'https://public-api.lumiformapp.com/api/v2/entity-types/1?include_properties=true' \
--header 'Authorization: Bearer [your token here]' \
--header 'Accept: application/json' \
--header 'Content-Type: application/json'
The above command returns JSON structured like this:
{
"data": {
"id": 1,
"title": "Safety checklist",
"description": "This checklist is about safety"
}
}
When
include_properties=trueis included, the response will also contain apropertiesarray:
{
"data": {
"id": 1,
"title": "Safety checklist",
"description": "This checklist is about safety",
"properties": [
{
"id": 1,
"label": "Location",
"data_type": "text",
"allow_multi": false
},
{
"id": 2,
"label": "Status",
"data_type": "dropdown",
"option_set_id": 1,
"allow_multi": false,
"option_values": [
{
"id": 1,
"label": "Active"
},
{
"id": 2,
"label": "Inactive"
}
]
}
]
}
}
This endpoint retrieves a specific Entity Type. By default, properties are not included in the response. To include them, use the include_properties=true query parameter.
HTTP Request
GET https://public-api.lumiformapp.com/api/v2/entity-types/<EntityTypeId>
URL Parameters
| Parameter | Required | Type | Example | Description |
|---|---|---|---|---|
| EntityTypeId | Yes | Number | 1 | The Id of the entity type to retrieve. |
Query Parameters
| Parameter | Required | Type | Example | Description |
|---|---|---|---|---|
| include_properties | No | Boolean | true | When set to true, includes property definitions for the entity type. Defaults to false. |
Create an Entity Type
curl --request POST \
--url 'https://public-api.lumiformapp.com/api/v2/entity-types' \
--header 'Authorization: Bearer [your token here]' \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--data '{"title":"Tatooine","description":"Some description"}'
To create an entity type with property definitions, include the
propertiesarray:
curl --request POST \
--url 'https://public-api.lumiformapp.com/api/v2/entity-types' \
--header 'Authorization: Bearer [your token here]' \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--data '{"title":"Tatooine","description":"Some description","properties":[{"label":"Location","dataType":"text","allowMulti":false},{"label":"Status","dataType":"dropdown","optionSetId":1,"allowMulti":false}]}'
The above command returns JSON structured like this:
{
"id": 1
}
This endpoint creates an Entity Type.
HTTP Request
POST https://public-api.lumiformapp.com/api/v2/entity-types
Request Body Parameters
| Parameter | Required | Type | Example | Description |
|---|---|---|---|---|
| title | Yes | String | "Tatooine" | The title of the entity type. |
| description | No | String | "Some description" | The description of the entity type. |
| properties | No | Array | See below | Array of property definitions to create for this entity type. |
Properties Array Structure:
Each property object in the properties array should contain:
| Parameter | Required | Type | Example | Description |
|---|---|---|---|---|
| label | Yes* | String | "Location" | The display label of the property. Required when properties array is provided. |
| dataType | Yes* | String | "text" or "dropdown" | The data type of the property. Must be either "text" or "dropdown". Required when properties array is provided. |
| optionSetId | No | Number | 1 | The ID of the option set. Required when dataType is "dropdown". Not used for "text" properties. |
| allowMulti | No | Boolean | false | Whether multiple values are allowed for this property. Defaults to false. |
Note: For dropdown properties, optionSetId is required. For text properties, optionSetId should not be provided.
Update an Entity Type
curl --request PUT \
--url 'https://public-api.lumiformapp.com/api/v2/entity-types/1' \
--header 'Authorization: Bearer [your token here]' \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--data '{"title":"Tatooine","description":"Some description"}'
To update an entity type with property definitions, include the
propertiesarray:
curl --request PUT \
--url 'https://public-api.lumiformapp.com/api/v2/entity-types/1' \
--header 'Authorization: Bearer [your token here]' \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--data '{"title":"Tatooine","description":"Some description","properties":[{"id":5,"label":"Updated Location","dataType":"text","allowMulti":false},{"label":"New Status","dataType":"dropdown","optionSetId":1,"allowMulti":false}]}'
The above command does not return any data
This endpoint updates a specific Entity Type.
HTTP Request
PUT https://public-api.lumiformapp.com/api/v2/entity-types/<EntityTypeId>
URL Parameters
| Parameter | Required | Type | Example | Description |
|---|---|---|---|---|
| EntityTypeId | Yes | Number | 1 | The Id of the Entity Type to update. |
Request Body Parameters
| Parameter | Required | Type | Example | Description |
|---|---|---|---|---|
| title | Yes | String | "Tatooine" | The title of the entity type. |
| description | No | String | "Some description" | The description of the entity type. |
| properties | No | Array | See below | Array of property definitions to update or create for this entity type. |
Properties Array Structure:
Each property object in the properties array should contain:
| Parameter | Required | Type | Example | Description |
|---|---|---|---|---|
| id | No | Number | 5 | The ID of an existing property to update. Omit to create a new property. |
| label | Yes* | String | "Updated Location" | The display label of the property. Required when properties array is provided. |
| dataType | Yes* | String | "text" or "dropdown" | The data type of the property. Must be either "text" or "dropdown". Required when properties array is provided. |
| optionSetId | No | Number | 1 | The ID of the option set. Required when dataType is "dropdown". Not used for "text" properties. |
| allowMulti | No | Boolean | false | Whether multiple values are allowed for this property. Defaults to false. |
Note: For dropdown properties, optionSetId is required. For text properties, optionSetId should not be provided. Include id to update an existing property, or omit it to create a new property.
Delete an Entity Type
curl --request DELETE \
--url 'https://public-api.lumiformapp.com/api/v2/entity-types/1' \
--header 'Authorization: Bearer [your token here]' \
--header 'Accept: application/json' \
--header 'Content-Type: application/json'
The above command does not return any data
This endpoint deletes a specific Entity Type.
HTTP Request
DELETE https://public-api.lumiformapp.com/api/v2/entity-types/<EntityTypeId>
URL Parameters
| Parameter | Required | Type | Example | Description |
|---|---|---|---|---|
| EntityTypeId | Yes | Number | 1 | The Id of the Entity Type to delete. |
Entity Type Response Sets
Get All Entity Type Response Sets
curl --request GET \
--url 'https://public-api.lumiformapp.com/api/v2/response-sets' \
--header 'Authorization: Bearer [your token here]' \
--header 'Accept: application/json' \
--header 'Content-Type: application/json'
To include option values in the response, add the
include_option_valuesquery parameter:
curl --request GET \
--url 'https://public-api.lumiformapp.com/api/v2/response-sets?include_option_values=true' \
--header 'Authorization: Bearer [your token here]' \
--header 'Accept: application/json' \
--header 'Content-Type: application/json'
The above command returns JSON structured like this:
{
"data": [
{
"id": 1,
"name": "Priority Levels"
},
{
"id": 2,
"name": "Status Options"
}
],
"links": {
"first": "https://public-api.lumiformapp.com/api/v2/response-sets?page=1",
"last": "https://public-api.lumiformapp.com/api/v2/response-sets?page=2",
"prev": null,
"next": "https://public-api.lumiformapp.com/api/v2/response-sets?page=2"
},
"meta": {
"current_page": 1,
"from": 1,
"last_page": 2,
"links": [
{
"url": null,
"label": "« Previous",
"active": false
},
{
"url": "https://public-api.lumiformapp.com/api/v2/response-sets?page=1",
"label": "1",
"active": true
},
{
"url": "https://public-api.lumiformapp.com/api/v2/response-sets?page=2",
"label": "2",
"active": false
},
{
"url": "https://public-api.lumiformapp.com/api/v2/response-sets?page=2",
"label": "Next »",
"active": false
}
],
"path": "https://public-api.lumiformapp.com/api/v2/response-sets",
"per_page": 15,
"to": 15,
"total": 30
}
}
This endpoint retrieves all of your entity type response sets. By default, option values are not included in the response. To include them, use the include_option_values=true query parameter.
HTTP Request
GET https://public-api.lumiformapp.com/api/v2/response-sets
Response with Option Values
When include_option_values=true is included in the query string, the response will include an option_values array for each entity type response set:
Option values included in response:
{
"data": [
{
"id": 1,
"name": "Priority Levels",
"option_values": [
{
"id": 1,
"label": "High"
},
{
"id": 2,
"label": "Medium"
},
{
"id": 3,
"label": "Low"
}
]
}
],
"links": {
"first": "https://public-api.lumiformapp.com/api/v2/response-sets?page=1&include_option_values=true",
"last": "https://public-api.lumiformapp.com/api/v2/response-sets?page=2&include_option_values=true",
"prev": null,
"next": "https://public-api.lumiformapp.com/api/v2/response-sets?page=2&include_option_values=true"
},
"meta": {
"current_page": 1,
"from": 1,
"last_page": 2,
"path": "https://public-api.lumiformapp.com/api/v2/response-sets",
"per_page": 15,
"to": 15,
"total": 30
}
}
Option Values Field Details:
id- The unique identifier of the option valuelabel- The display label of the option value
Query Parameters
| Parameter | Required | Type | Example | Description |
|---|---|---|---|---|
| page | No | Number | 1 | The results page number to view. If omitted, the default is 1. |
| name | No | Text | priority | A string of text to try and find in the entity type response set names. |
| include_option_values | No | Boolean | true | When set to true, includes option values for each entity type response set. Defaults to false. |
Get a Specific Entity Type Response Set
curl --request GET \
--url 'https://public-api.lumiformapp.com/api/v2/response-sets/1' \
--header 'Authorization: Bearer [your token here]' \
--header 'Accept: application/json' \
--header 'Content-Type: application/json'
The above command returns JSON structured like this:
{
"data": {
"id": 1,
"name": "Priority Levels",
"option_values": [
{
"id": 1,
"label": "High"
},
{
"id": 2,
"label": "Medium"
},
{
"id": 3,
"label": "Low"
}
]
}
}
This endpoint retrieves a specific Entity Type Response Set with its option values.
HTTP Request
GET https://public-api.lumiformapp.com/api/v2/response-sets/<ResponseSetId>
URL Parameters
| Parameter | Required | Type | Example | Description |
|---|---|---|---|---|
| ResponseSetId | Yes | Number | 1 | The Id of the entity type response set to retrieve. |
Create an Entity Type Response Set
curl --request POST \
--url 'https://public-api.lumiformapp.com/api/v2/response-sets' \
--header 'Authorization: Bearer [your token here]' \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--data '{"name":"Priority Levels"}'
To create an entity type response set with option values, include the
optionValuesarray:
curl --request POST \
--url 'https://public-api.lumiformapp.com/api/v2/response-sets' \
--header 'Authorization: Bearer [your token here]' \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--data '{
"name": "Priority Levels",
"optionValues": [
{
"label": "High",
"value": "high",
"isActive": true
},
{
"label": "Medium",
"value": "medium",
"isActive": true
},
{
"label": "Low",
"value": "low",
"isActive": true
}
]
}'
The above command returns JSON structured like this:
{
"id": 1
}
This endpoint creates an Entity Type Response Set.
HTTP Request
POST https://public-api.lumiformapp.com/api/v2/response-sets
Request Body Parameters
| Parameter | Required | Type | Example | Description |
|---|---|---|---|---|
| name | Yes | String | "Priority Levels" | The name of the entity type response set. Must be unique within your organization. |
| optionValues | No | Array | See below | Array of option values to create for this entity type response set. |
Option Values Array Structure:
Each option value object in the optionValues array should contain:
| Parameter | Required | Type | Example | Description |
|---|---|---|---|---|
| label | Yes* | String | "High" | The display label of the option value. Required when optionValues array is provided. |
| value | No | String | "high" | The value of the option. Can be null. |
| isActive | No | Boolean | true | Whether the option value is active. Defaults to true. |
Note: The name field must be unique within your organization. If an entity type response set with the same name already exists, the request will fail with a validation error.
Update an Entity Type Response Set
curl --request PUT \
--url 'https://public-api.lumiformapp.com/api/v2/response-sets/1' \
--header 'Authorization: Bearer [your token here]' \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--data '{"name":"Priority Levels Updated"}'
To update an entity type response set with option values, include the
optionValuesarray:
curl --request PUT \
--url 'https://public-api.lumiformapp.com/api/v2/response-sets/1' \
--header 'Authorization: Bearer [your token here]' \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--data '{
"name": "Priority Levels Updated",
"optionValues": [
{
"id": 1,
"label": "High Updated",
"value": "high",
"isActive": true
},
{
"label": "New Option",
"value": "new",
"isActive": true
}
]
}'
The above command does not return any data
This endpoint updates a specific Entity Type Response Set. When updating option values, existing values not included in the request will be deleted.
HTTP Request
PUT https://public-api.lumiformapp.com/api/v2/response-sets/<ResponseSetId>
URL Parameters
| Parameter | Required | Type | Example | Description |
|---|---|---|---|---|
| ResponseSetId | Yes | Number | 1 | The Id of the Entity Type Response Set to update. |
Request Body Parameters
| Parameter | Required | Type | Example | Description |
|---|---|---|---|---|
| name | Yes | String | "Priority Levels Updated" | The name of the entity type response set. Must be unique within your organization. |
| optionValues | No | Array | See below | Array of option values to update or create for this entity type response set. |
Option Values Array Structure:
Each option value object in the optionValues array should contain:
| Parameter | Required | Type | Example | Description |
|---|---|---|---|---|
| id | No | Number | 1 | The ID of an existing option value to update. Omit to create a new option value. |
| label | Yes* | String | "High Updated" | The display label of the option value. Required when optionValues array is provided. |
| value | No | String | "high" | The value of the option. Can be null. |
| isActive | No | Boolean | true | Whether the option value is active. |
Note: The name field must be unique within your organization. Include id to update an existing option value, or omit it to create a new option value. Existing option values not included in the optionValues array will be deleted.
Delete an Entity Type Response Set
curl --request DELETE \
--url 'https://public-api.lumiformapp.com/api/v2/response-sets/1' \
--header 'Authorization: Bearer [your token here]' \
--header 'Accept: application/json' \
--header 'Content-Type: application/json'
The above command does not return any data
This endpoint deletes a specific Entity Type Response Set. Note that you cannot delete an entity type response set if it is being used by any entity type properties.
HTTP Request
DELETE https://public-api.lumiformapp.com/api/v2/response-sets/<ResponseSetId>
URL Parameters
| Parameter | Required | Type | Example | Description |
|---|---|---|---|---|
| ResponseSetId | Yes | Number | 1 | The Id of the Entity Type Response Set to delete. |
Entity Items
Get All Entity Items
curl --request GET \
--url 'https://public-api.lumiformapp.com/api/v2/entity-items' \
--header 'Authorization: Bearer [your token here]' \
--header 'Accept: application/json' \
--header 'Content-Type: application/json'
To include property values in the response, add the
include_propertiesquery parameter:
curl --request GET \
--url 'https://public-api.lumiformapp.com/api/v2/entity-items?include_properties=true' \
--header 'Authorization: Bearer [your token here]' \
--header 'Accept: application/json' \
--header 'Content-Type: application/json'
The above command returns JSON structured like this:
{
"data": [
{
"id": 1,
"title": "Safety checklist",
"description": "This checklist is about safety",
"entity_type": {
"id": 1,
"title": "Safety",
"description": "Safety related entities"
},
"users": [
{
"id": 1,
"name": "John Doe",
"email": "john.doe@lumiformapp.com",
"admin": 0
}
]
},
{
"id": 2,
"title": "Cleaning checklist",
"description": "This checklist is about cleaning facility",
"entity_type": {
"id": 2,
"title": "Cleaning",
"description": "Cleaning related entities"
},
"users": [
{
"id": 1,
"name": "John Doe",
"email": "john.doe@lumiformapp.com",
"admin": 0
}
]
}
],
"links": {
"first": "https://public-api.lumiformapp.com/api/v2/entity-items?page=1",
"last": "https://public-api.lumiformapp.com/api/v2/entity-items?page=2",
"prev": null,
"next": "https://public-api.lumiformapp.com/api/v2/entity-items?page=2"
},
"meta": {
"current_page": 1,
"from": 1,
"last_page": 2,
"links": [
{
"url": null,
"label": "« Previous",
"active": false
},
{
"url": "https://public-api.lumiformapp.com/api/v2/entity-items?page=1",
"label": "1",
"active": true
},
{
"url": "https://public-api.lumiformapp.com/api/v2/entity-items?page=2",
"label": "2",
"active": false
},
{
"url": "https://public-api.lumiformapp.com/api/v2/entity-items?page=2",
"label": "Next »",
"active": false
}
],
"path": "https://public-api.lumiformapp.com/api/v2/entity-items",
"per_page": 15,
"to": 15,
"total": 30
}
}
This endpoint retrieves all of your entity items. By default, property values are not included in the response. To include them, use the include_properties=true query parameter.
HTTP Request
GET https://public-api.lumiformapp.com/api/v2/entity-items
Response with Properties
When include_properties=true is included in the query string, the response will include a properties array for each entity item:
Properties included in response:
{
"data": [
{
"id": 1,
"title": "Safety checklist",
"description": "This checklist is about safety",
"entity_type": {
"id": 1,
"title": "Safety",
"description": "Safety related entities"
},
"users": [
{
"id": 1,
"name": "John Doe",
"email": "john.doe@lumiformapp.com",
"admin": 0
}
],
"properties": [
{
"id": 1,
"entity_type_property_id": 5,
"value_text": "Some text value",
"option_values": null
},
{
"id": 2,
"entity_type_property_id": 6,
"value_text": null,
"option_values": [
{
"id": 10,
"label": "Option 1"
},
{
"id": 11,
"label": "Option 2"
}
]
}
]
}
],
"links": {
"first": "https://public-api.lumiformapp.com/api/v2/entity-items?page=1&include_properties=true",
"last": "https://public-api.lumiformapp.com/api/v2/entity-items?page=2&include_properties=true",
"prev": null,
"next": "https://public-api.lumiformapp.com/api/v2/entity-items?page=2&include_properties=true"
},
"meta": {
"current_page": 1,
"from": 1,
"last_page": 2,
"path": "https://public-api.lumiformapp.com/api/v2/entity-items",
"per_page": 15,
"to": 15,
"total": 30
}
}
Properties Field Details:
id- The unique identifier of the property valueentity_type_property_id- The ID of the property definition this value belongs tovalue_text- The text value (for text-type properties).nullfor dropdown propertiesoption_values- Array of selected option values (for dropdown-type properties).nullor omitted for text properties. Each option value contains:id- The unique identifier of the option valuelabel- The display label of the option
Query Parameters
| Parameter | Required | Item | Example | Description |
|---|---|---|---|---|
| page | No | Number | 1 | The results page number to view. If omitted, the default is 1. |
| users | No | Array | 1,2,3 | A list of user Ids, or a single Id |
| entityType | No | Number | 1 | Single Entity Type Id |
| title | No | Text | warehouse | A string of text to try and find in the entity items titles. |
| include_properties | No | Boolean | true | When set to true, includes property values for each entity item. Defaults to false. |
Get a Specific Entity Item
curl --request GET \
--url 'https://public-api.lumiformapp.com/api/v2/entity-items/1' \
--header 'Authorization: Bearer [your token here]' \
--header 'Accept: application/json' \
--header 'Content-Type: application/json'
To include property values in the response, add the
include_propertiesquery parameter:
curl --request GET \
--url 'https://public-api.lumiformapp.com/api/v2/entity-items/1?include_properties=true' \
--header 'Authorization: Bearer [your token here]' \
--header 'Accept: application/json' \
--header 'Content-Type: application/json'
The above command returns JSON structured like this:
{
"data": {
"id": 1,
"title": "Safety checklist",
"description": "This checklist is about safety",
"entity_type": {
"id": 2,
"title": "Cleaning",
"description": "Cleaning related entities"
},
"users": [
{
"id": 1,
"name": "John Doe",
"email": "john.doe@lumiformapp.com",
"admin": 0
}
]
}
}
When
include_properties=trueis included, the response will also contain apropertiesarray:
{
"data": {
"id": 1,
"title": "Safety checklist",
"description": "This checklist is about safety",
"entity_type": {
"id": 2,
"title": "Cleaning",
"description": "Cleaning related entities"
},
"users": [
{
"id": 1,
"name": "John Doe",
"email": "john.doe@lumiformapp.com",
"admin": 0
}
],
"properties": [
{
"id": 1,
"entity_type_property_id": 5,
"value_text": "Some text value",
"option_values": null
},
{
"id": 2,
"entity_type_property_id": 6,
"value_text": null,
"option_values": [
{
"id": 10,
"label": "Option 1"
},
{
"id": 11,
"label": "Option 2"
}
]
}
]
}
}
This endpoint retrieves a specific Entity Item. By default, property values are not included in the response. To include them, use the include_properties=true query parameter.
HTTP Request
GET https://public-api.lumiformapp.com/api/v2/entity-items/<EntityItemId>
URL Parameters
| Parameter | Required | Item | Example | Description |
|---|---|---|---|---|
| EntityItemId | Yes | Number | 1 | The Id of the entity item to retrieve. |
Query Parameters
| Parameter | Required | Item | Example | Description |
|---|---|---|---|---|
| include_properties | No | Boolean | true | When set to true, includes property values for the entity item. Defaults to false. |
Create an Entity Item
curl --request POST \
--url 'https://public-api.lumiformapp.com/api/v2/entity-items' \
--header 'Authorization: Bearer [your token here]' \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--data '{"title":"Tatooine","description":"Some description","users":[1],"entity_type_id":1}'
To create an entity item with property values, include the
propertiesarray:
curl --request POST \
--url 'https://public-api.lumiformapp.com/api/v2/entity-items' \
--header 'Authorization: Bearer [your token here]' \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--data '{"title":"Tatooine","description":"Some description","users":[1],"entity_type_id":1,"properties":[{"entityTypePropertyId":5,"valueText":"Some text value"},{"entityTypePropertyId":6,"optionValueIds":[10,11]}]}'
The above command returns JSON structured like this:
{
"id": 1
}
This endpoint creates an Entity Item.
HTTP Request
POST https://public-api.lumiformapp.com/api/v2/entity-items
Request Body Parameters
| Parameter | Required | Item | Example | Description |
|---|---|---|---|---|
| title | Yes | String | "Tatooine" | The title of the entity item. |
| description | No | String | "Some description" | The description of the entity item. |
| entity_type_id | Yes | Number | 1 | The ID of the entity type this item belongs to. |
| users | No | Array | [1, 2, 3] | Array of user IDs assigned to this entity item. |
| properties | No | Array | See below | Array of property values to set for this entity item. |
Properties Array Structure:
Each property object in the properties array should contain:
| Parameter | Required | Item | Example | Description |
|---|---|---|---|---|
| entityTypePropertyId | Yes* | Number | 5 | The ID of the entity type property. Required when properties array is provided. |
| valueText | No | String | "Some text value" | The text value for text-type properties. Use this for properties with data_type: "text". |
| optionValueIds | No | Array | [10, 11] | Array of option value IDs for dropdown-type properties. Use this for properties with data_type: "dropdown". |
Note: For text properties, provide valueText. For dropdown properties, provide optionValueIds. You should not provide both for the same property.
Update an Entity Item
curl --request PUT \
--url 'https://public-api.lumiformapp.com/api/v2/entity-items/1' \
--header 'Authorization: Bearer [your token here]' \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--data '{"title":"Tatooine","description":"Some description","users":[1],"entity_type_id":1}'
To update an entity item with property values, include the
propertiesarray:
curl --request PUT \
--url 'https://public-api.lumiformapp.com/api/v2/entity-items/1' \
--header 'Authorization: Bearer [your token here]' \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--data '{"title":"Tatooine","description":"Some description","users":[1],"entity_type_id":1,"properties":[{"entityTypePropertyId":5,"valueText":"Updated text value"},{"entityTypePropertyId":6,"optionValueIds":[10,11]}]}'
The above command does not return any data
This endpoint updates a specific Entity Item.
HTTP Request
PUT https://public-api.lumiformapp.com/api/v2/entity-items/<EntityItemId>
URL Parameters
| Parameter | Required | Item | Example | Description |
|---|---|---|---|---|
| EntityItemId | Yes | Number | 1 | The Id of the Entity Item to update. |
Request Body Parameters
| Parameter | Required | Item | Example | Description |
|---|---|---|---|---|
| title | Yes | String | "Tatooine" | The title of the entity item. |
| description | No | String | "Some description" | The description of the entity item. |
| entity_type_id | Yes | Number | 1 | The ID of the entity type this item belongs to. |
| users | No | Array | [1, 2, 3] | Array of user IDs assigned to this entity item. |
| properties | No | Array | See below | Array of property values to set for this entity item. |
Properties Array Structure:
Each property object in the properties array should contain:
| Parameter | Required | Item | Example | Description |
|---|---|---|---|---|
| entityTypePropertyId | Yes* | Number | 5 | The ID of the entity type property. Required when properties array is provided. |
| valueText | No | String | "Updated text value" | The text value for text-type properties. Use this for properties with data_type: "text". |
| optionValueIds | No | Array | [10, 11] | Array of option value IDs for dropdown-type properties. Use this for properties with data_type: "dropdown". |
Note: For text properties, provide valueText. For dropdown properties, provide optionValueIds. You should not provide both for the same property.
Delete an Entity Item
curl --request DELETE \
--url 'https://public-api.lumiformapp.com/api/v2/entity-items/1' \
--header 'Authorization: Bearer [your token here]' \
--header 'Accept: application/json' \
--header 'Content-Type: application/json'
The above command does not return any data
This endpoint deletes a specific Entity Item.
HTTP Request
DELETE https://public-api.lumiformapp.com/api/v2/entity-items/<EntityItemId>
URL Parameters
| Parameter | Required | Item | Example | Description |
|---|---|---|---|---|
| EntityItemId | Yes | Number | 1 | The Id of the Entity Item to delete. |
Users
Get All Users
curl --request GET \
--url 'https://public-api.lumiformapp.com/api/v2/users' \
--header 'Authorization: Bearer [your token here]' \
--header 'Accept: application/json' \
--header 'Content-Type: application/json'
The above command returns JSON structured like this:
{
"data": [
{
"id": 868746486,
"name": "Leia Organa",
"email": "leia.organa@sw.com",
"role": {
"id": 1018907909,
"name": "Administrator"
},
"admin": 1
},
{
"id": 868746486,
"name": "Luke Skywalker",
"email": "luke@sw.com",
"role": {
"id": 576577251,
"name": "Jedi"
},
"admin": 1
}
],
"links": {
"first": "https://public-api.lumiformapp.com/api/v2/users?page=1",
"last": "https://public-api.lumiformapp.com/api/v2/users?page=2",
"prev": null,
"next": "https://public-api.lumiformapp.com/api/v2/users?page=2"
},
"meta": {
"current_page": 1,
"from": 1,
"last_page": 2,
"links": [
{
"url": null,
"label": "« Previous",
"active": false
},
{
"url": "https://public-api.lumiformapp.com/api/v2/users?page=1",
"label": "1",
"active": true
},
{
"url": "https://public-api.lumiformapp.com/api/v2/users?page=2",
"label": "2",
"active": false
},
{
"url": "https://public-api.lumiformapp.com/api/v2/users?page=2",
"label": "Next »",
"active": false
}
],
"path": "https://public-api.lumiformapp.com/api/v2/users",
"per_page": 15,
"to": 15,
"total": 30
}
}
This endpoint retrieves all of your users.
HTTP Request
GET https://public-api.lumiformapp.com/api/v2/users
Query Parameters
| Parameter | Required | Type | Example | Description |
|---|---|---|---|---|
| name | No | Text | luke | A string of text to try and find in the users names. |
| No | Text | luke@sw.com | A string of text to try and find in the users emails. |
Get a Specific User
curl --request GET \
--url 'https://public-api.lumiformapp.com/api/v2/users/1' \
--header 'Authorization: Bearer [your token here]' \
--header 'Accept: application/json' \
--header 'Content-Type: application/json'
The above command returns JSON structured like this:
{
"data": {
"id": 868746486,
"name": "Luke Skywalker",
"email": "luke@sw.com",
"role": {
"id": 576577251,
"name": "Jedi"
},
"admin": 1
}
}
This endpoint retrieves a specific user.
HTTP Request
GET https://public-api.lumiformapp.com/api/v2/users/<UserId>
URL Parameters
| Parameter | Required | Type | Example | Description |
|---|---|---|---|---|
| UserId | Yes | Number | 1 | The ID of the user to retrieve. |
Create a User
curl --request POST \
--url 'https://public-api.lumiformapp.com/api/v2/users' \
--header 'Authorization: Bearer [your token here]' \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--d '{"name": "User name", "email": "user@mail.com", "role": 123456}'
Mandatory fields: All
The above command returns JSON structured like this:
{
"id": 123
}
This endpoint creates a user.
HTTP Request
POST https://public-api.lumiformapp.com/api/v2/users
Update a User
curl --request PUT \
--url 'https://public-api.lumiformapp.com/api/v2/users/1' \
--header 'Authorization: Bearer [your token here]' \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--d '{"name": "User name", "email": "user@mail.com", "role": 123456}'
Mandatory fields: All
The above command does not return any data
This endpoint updates a specific user.
HTTP Request
PUT https://public-api.lumiformapp.com/api/v2/users/<UserId>
URL Parameters
| Parameter | Required | Type | Example | Description |
|---|---|---|---|---|
| UserId | Yes | Number | 1 | The ID of the user to update. |
Delete a User
curl --request DELETE \
--url 'https://public-api.lumiformapp.com/api/v2/users/1' \
--header 'Authorization: Bearer [your token here]' \
--header 'Accept: application/json' \
--header 'Content-Type: application/json'
The above command does not return any data
This endpoint deletes a specific user.
HTTP Request
DELETE https://public-api.lumiformapp.com/api/v2/users/<UserId>
URL Parameters
| Parameter | Required | Type | Example | Description |
|---|---|---|---|---|
| UserId | Yes | Number | 1 | The ID of the user to delete. |