Create a venue
Places module
POST/venuesvenues.create
A venue. Creates a venue. Requires `Idempotency-Key`; a replay returns the original response. The organization is derived from the credential or the parent row, never from the body.
- Requires the capability places.venue.write.
- OAuth scopes: places.
- Send an Idempotency-Key header. A replay with the same key returns the original response.
- Error statuses: 400, 401, 409, 422, 429. Errors are RFC 9457 problem details.
Request body: VenueCreate
| Field | Type | Required | Description |
|---|---|---|---|
| name | string | Yes | Venue name.Constraints: length 1 to 300 |
| street_address | string | null | No | Street address.Constraints: length 1 to 300 |
| locality | string | null | No | City.Constraints: length 1 to 300 |
| postal_code | string | null | No | Postal code.Constraints: pattern ^[A-Za-z0-9][A-Za-z0-9._-]{0,63}$ |
| jurisdiction_id | JurisdictionId | Yes | Jurisdiction identifier from `xpms.dim_jurisdiction`. An unpopulated jurisdiction returns no answer.Constraints: pattern ^[A-Z]{2}(-[A-Z0-9]+)*$ |
| time_zone | string | Yes | IANA time zone the local time was entered in.Constraints: pattern ^[A-Za-z_]+(\/[A-Za-z0-9_+-]+)*$ |
| latitude | number | null | No | WGS 84 latitude.Constraints: range -90 to 90 |
| longitude | number | null | No | WGS 84 longitude.Constraints: range -180 to 180 |
{
"name": "Harborfront Lawn",
"street_address": "100 Harbor Way",
"locality": "Miami",
"postal_code": "33132",
"jurisdiction_id": "US-FL",
"time_zone": "America/New_York",
"latitude": 25.7617,
"longitude": -80.1918
}Response 201: Venue
| Field | Type | Required | Description |
|---|---|---|---|
| id | string (uuid) | Yes | Identifier of the venue. |
| org_id | string (uuid) | Yes | Identifier of the owning organization, derived from the parent row and never accepted from the caller. |
| created_at | string (date-time) | Yes | When the row was created. |
| created_by | string (uuid) | null | Yes | Identifier of the person who created the row; null when a seed, platform or system process created it. |
| updated_at | string (date-time) | Yes | When the row was last updated. |
| updated_by | string (uuid) | null | Yes | Identifier of the person who last updated the row; null when a seed, platform or system process updated it. |
| name | string | Yes | Venue name.Constraints: length 1 to 300 |
| street_address | string | null | Yes | Street address.Constraints: length 1 to 300 |
| locality | string | null | Yes | City.Constraints: length 1 to 300 |
| postal_code | string | null | Yes | Postal code.Constraints: pattern ^[A-Za-z0-9][A-Za-z0-9._-]{0,63}$ |
| jurisdiction_id | JurisdictionId | Yes | Jurisdiction identifier from `xpms.dim_jurisdiction`. An unpopulated jurisdiction returns no answer.Constraints: pattern ^[A-Z]{2}(-[A-Z0-9]+)*$ |
| time_zone | string | Yes | IANA time zone the local time was entered in.Constraints: pattern ^[A-Za-z_]+(\/[A-Za-z0-9_+-]+)*$ |
| latitude | number | null | Yes | WGS 84 latitude.Constraints: range -90 to 90 |
| longitude | number | null | Yes | WGS 84 longitude.Constraints: range -180 to 180 |
{
"id": "0192f1e2-7c3a-7b4d-9e8f-1a2b3c4d5e6f",
"org_id": "0192f1e2-7c3a-7b4d-9e8f-1a2b3c4d5e6f",
"created_at": "2026-10-08T14:30:00Z",
"created_by": "0192f1e2-7c3a-7b4d-9e8f-1a2b3c4d5e6f",
"updated_at": "2026-10-08T14:30:00Z",
"updated_by": "0192f1e2-7c3a-7b4d-9e8f-1a2b3c4d5e6f",
"name": "Harborfront Lawn",
"street_address": "100 Harbor Way",
"locality": "Miami",
"postal_code": "33132",
"jurisdiction_id": "US-FL",
"time_zone": "America/New_York",
"latitude": 25.7617,
"longitude": -80.1918
}Code samples
curl -X POST "$XOS_BASE_URL/venues" \
-H "Authorization: Bearer $XOS_API_KEY" \
-H "Idempotency-Key: $(uuidgen)" \
-H "Content-Type: application/json" \
-d '{"name":"Harborfront Lawn","street_address":"100 Harbor Way","locality":"Miami","postal_code":"33132","jurisdiction_id":"US-FL","time_zone":"America/New_York","latitude":25.7617,"longitude":-80.1918}'const { data } = await xos.venues.create({
"name": "Harborfront Lawn",
"street_address": "100 Harbor Way",
"locality": "Miami",
"postal_code": "33132",
"jurisdiction_id": "US-FL",
"time_zone": "America/New_York",
"latitude": 25.7617,
"longitude": -80.1918
});response = xos.venues.create({"name": "Harborfront Lawn", "street_address": "100 Harbor Way", "locality": "Miami", "postal_code": "33132", "jurisdiction_id": "US-FL", "time_zone": "America/New_York", "latitude": 25.7617, "longitude": -80.1918})xos venues create --data '{"name":"Harborfront Lawn","street_address":"100 Harbor Way","locality":"Miami","postal_code":"33132","jurisdiction_id":"US-FL","time_zone":"America/New_York","latitude":25.7617,"longitude":-80.1918}'