Skip to content

Reference data

A job does not carry the words Air Conditioning or medium — it carries the IDs behind them. These four endpoints are where those IDs come from.

They are read-only, and scoped to the company the credential belongs to, so GET /job-types returns your job types rather than a global list.

GET {BASE_URL}/job-types

Returns the active job types for your account.

{
"success": true,
"data": [
{ "id": 12, "name": "Air Conditioning" }
],
"pagination": { "index": 0, "limit": 50, "returned": 1, "total": 1, "has_more": false },
"request_id": "req_abc123",
"timestamp": "2026-09-07T12:00:00Z"
}

The id is what goes into job_type_id when you create a job. These are the same job types the office maintains under work settings, so a new service added there is available here the moment it is saved.

GET {BASE_URL}/priorities
{
"success": true,
"data": [
{ "id": 1, "name": "low" },
{ "id": 2, "name": "medium" },
{ "id": 3, "name": "high" },
{ "id": 4, "name": "urgent" }
],
"pagination": { "index": 0, "limit": 50, "returned": 4, "total": 4, "has_more": false },
"request_id": "req_abc123",
"timestamp": "2026-09-07T12:00:00Z"
}

The IDs above are illustrative, and that is not a formality. Priority IDs are not guaranteed to be sequential, and more priorities can be introduced. Fetch the list and map by name; a hardcoded 3 is a bug waiting for the day somebody adds a priority.

The same is true of job types, which change far more often than priorities do.

GET {BASE_URL}/countries
{
"success": true,
"data": [
{ "id": 1, "name": "Afghanistan" }
],
"pagination": { "index": 0, "limit": 50, "returned": 1, "total": 1, "has_more": false },
"request_id": "req_5d48f5693d7924ef",
"timestamp": "2026-09-07T12:00:00Z"
}
GET {BASE_URL}/states?country_id=101

country_id is required and must be numeric. Paging parameters are optional.

{
"success": true,
"data": [
{
"id": 1,
"name": "Andaman and Nicobar Islands",
"country_id": 101
}
],
"pagination": { "index": 0, "limit": 50, "returned": 1, "total": 1, "has_more": false },
"request_id": "req_5d48f5693d7924ef",
"timestamp": "2026-09-07T12:00:00Z"
}

Country and state IDs are needed when you create a request for a customer who does not exist yet, because the address has to be built from the same lists the app uses.

None of these lists changes minute to minute. Pull them when your integration starts, or on a schedule, and keep a map of name to ID — then a job creation is one call rather than four.

Refresh the map when a lookup misses. A job type your CRM knows about and the API does not usually means somebody renamed it in settings, not that the integration is broken.