The location object
Unique identifier, prefixed with
loc_.Always
location.The organization this location belongs to (
org_…), or null if it is standalone.Display name of the location.
ISO 4217 currency code. One of
CHF, EUR, GBP, BRL, USD, MXN.ISO 3166-1 alpha-2 country code. One of
FR, CH, GB, BR, LU, MX, US.IANA timezone identifier, e.g.
Europe/Zurich.Default language used for customer-facing messaging at this location.
Physical address of the location, or
null if not set.Creation timestamp, ISO 8601 in UTC.
Last update timestamp, ISO 8601 in UTC.
The location object
List locations
Returns a paginated list of locations accessible to your API key, ordered bycreated_at.
Number of objects to return, between
1 and 100.Cursor for forward pagination — a location
id. Mutually exclusive with ending_before.Cursor for backward pagination — a location
id. Mutually exclusive with starting_after.Return locations created at or after this ISO 8601 timestamp.
Return locations created at or before this ISO 8601 timestamp.
Return locations updated at or after this ISO 8601 timestamp.
Return locations updated at or before this ISO 8601 timestamp.
Response
To list only the locations within a specific organization, use
GET /v1/organizations/{organization_id}/locations. See Organizations.Retrieve a location
Retrieves a single location by itsid.
The identifier of the location, e.g.
loc_8sKq2bXt9mZ1.Response
loc_… that does not exist or is not accessible to your key returns a 404 not_found_error. See Errors.
Update a location
Updates the specified location. Only the fields you pass are changed; omitted fields are left untouched.The identifier of the location to update.
Display name of the location.
ISO 4217 currency code. One of
CHF, EUR, GBP, BRL, USD, MXN.ISO 3166-1 alpha-2 country code. One of
FR, CH, GB, BR, LU, MX, US.IANA timezone identifier, e.g.
Europe/Zurich.Default language for customer-facing messaging.
Address fields to merge. See Partial address merge below.
Partial address merge
When you include anaddress object in a PATCH, the keys you provide are merged into the existing address — fields you omit keep their current values. This lets you correct a single line without re-sending the full address.
Merge applies only when the location already has an address. The address as a whole remains optional on existing locations, but
address (with latitude and longitude) is required at creation time — see Creating locations.Response
name, address.line2, and address.postal_code changed — line1, city, country, and the coordinates were preserved from the merge.
Creating locations
Locations cannot be created on the public read/update routes above. Create them through one of:Within an organization
POST /v1/organizations/{organization_id}/locations — creates a location under an existing organization.Admin API
POST /admin/v1/locations or POST /admin/v1/organizations/{organization_id}/locations — for provisioning across organizations.POSTs require an Idempotency-Key header so retries are safe.
Create a location under an organization
Authentication & errors
All endpoints on this page live on the public/v1 surface and authenticate with an organization/location API key (prefix ch_org_) sent in the x-api-key header.
Admin keys (
ch_admin_) are rejected with 403 on /v1, and a missing key returns 401. Dashboard sessions cannot be used on the API. See Authentication.| Status | Type | When |
|---|---|---|
401 | authentication_error | Missing or invalid API key. |
403 | authorization_error | Wrong key type for this surface, or no access to the location. |
404 | not_found_error | The loc_… does not exist or is not visible to your key. |
400 | invalid_request_error | Invalid field value (e.g. unsupported currency, malformed address). |
X-Request-Id; error bodies mirror it as error.request_id. See Errors for the full error shape.
Related
Organizations
Group locations and expand them inline.
Location settings
Opening hours, delivery, acceptance, AI instructions.
Special closings
Schedule one-off closures for a location.