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.
Job types
Section titled “Job types”GET {BASE_URL}/job-typesReturns 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.
Priorities
Section titled “Priorities”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.
Countries
Section titled “Countries”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"}States
Section titled “States”GET {BASE_URL}/states?country_id=101country_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.
Fetch these once, not every time
Section titled “Fetch these once, not every time”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.