GET /v1/locations to retrieve the locations you have access to.
1. Get an API key
API keys are issued by a Chataigne admin — there is no self-service key creation. Contact your Chataigne representative and request a public API key for your organization or location. You’ll receive a key prefixed withch_org_. This is a location/organization key scoped to the public API surface (/v1).
There are two API surfaces. The Chataigne API (
/v1) uses organization keys (ch_org_…). The Admin API (/admin/v1) uses admin keys (ch_admin_…). The two are isolated: /v1 rejects admin keys and /admin/v1 rejects org keys, both with 403. This guide uses the public /v1 surface.2. Authenticate
All requests use the base URLhttps://server.chataigne.ai and authenticate by passing your key in the x-api-key header.
| Scenario | Result |
|---|---|
| Missing key | 401 authentication_error |
Org key on /admin/v1 | 403 authorization_error |
Admin key on /v1 | 403 authorization_error |
Dashboard session on /v1 or /admin/v1 | Rejected — sessions cannot be used on the API |
3. Make your first call
CallGET /v1/locations to list the locations your key can access.
4. Read the response
A successful call returns a list object. Thedata array holds the location objects, has_more indicates whether more pages exist, and url echoes the resource path.
Response fields
Always
"list" for list responses.An array of
location objects. See the fields below.true if there are more results beyond this page. Use cursor pagination to fetch them.The path this list was retrieved from.
location object includes:
Unique opaque identifier, prefixed
loc_.Always
"location".The parent organization (
org_…), or null if unassigned.The location’s display name.
ISO currency code. One of
CHF, EUR, GBP, BRL, USD, MXN.ISO country code. One of
FR, CH, GB, BR, LU, MX, US.IANA timezone identifier (e.g.
Europe/Zurich).The location’s default language.
Postal address with
line1, line2, postal_code, city, country, latitude, longitude. May be null.ISO 8601 UTC creation timestamp.
ISO 8601 UTC last-update timestamp.
5. Refine the list
The list endpoint supports cursor pagination and timestamp filters as query parameters.Number of results per page, between
1 and 100.Cursor for the next page — the
id of the last object in the previous page. Mutually exclusive with ending_before.Cursor for the previous page — the
id of the first object in the current page. Mutually exclusive with starting_after.Return objects created after this ISO 8601 timestamp.
Return objects created before this ISO 8601 timestamp.
Return objects updated after this ISO 8601 timestamp.
Return objects updated before this ISO 8601 timestamp.
created_at by default. For example, fetch the next page of 50 locations created in 2026:
Every response includes an
X-Request-Id header. Include it when contacting support — error bodies also mirror it as error.request_id. Responses additionally carry X-RateLimit-Limit, X-RateLimit-Remaining, and X-RateLimit-Reset headers; a 429 response adds Retry-After.6. Handle errors
Errors return the appropriate HTTP status with a structured body. Always readerror.type and error.code, and log error.request_id for support.
| HTTP status | error.type |
|---|---|
400 | invalid_request_error |
401 | authentication_error |
403 | authorization_error |
404 | not_found_error |
409 | conflict_error / idempotency_error |
429 | rate_limit_error |
500 | api_error |
Next steps
Inspect a single location
Retrieve full details for one location with
GET /v1/locations/{location_id}.Expand related objects
Use
expand[]=locations on an organization to inline its location objects: GET /v1/organizations/{organization_id}?expand[]=locations.Create with idempotency
Resource-creating
POSTs require an Idempotency-Key header. Replaying the same key with the same body returns the original response (with Idempotent-Replayed: true); keys are retained for 24h.