Get site by ID
GET /api/configuration/sites/{all}
Success: 200 OK
- Products: Operator (
FOH), Consumer (CONSUMER), Integrations (INTEGRATIONS) (any one of these products, not all) - Features: Online Bookings (
ONLINEBOOK), Online Joining (ONLINEJOIN), DataHub (4Global) Integration (DATAHUB), TRP Integration (TRP), Front of House Generic Access (FOHGENERIC) (any one of these features, not all)
Overview
Returns a single site — one physical venue or location in the operator's estate — by its site ID. A site is the unit almost every other Configuration and Booking call is scoped to, so this is usually the call you make first when you need the venue's name, address, coordinates, contact details and public-facing URLs.
Two behaviours are worth knowing before you build against it:
- The response shape changes with
includeFacilitiesAndAmenities. With the flag off (the default) you get the object documented below, andorganisations,imagesandsocialMediacome back asnull— this form of the response never fills them, so null is not evidence the operator has configured none. With the flag set totruethe endpoint populates those three collections and adds two further arrays,amenitiesandfacilities. If you need any of the five, you must sendincludeFacilitiesAndAmenities=true. - Recent changes may not appear immediately. A site created or amended moments earlier may not be reflected in the response straight away.
Site IDs are matched case-insensitively, so MAIN and main resolve to the same record.
Endpoint
GET {base_url}/api/configuration/sites/{all}
{base_url} is the environment URL issued to your integration. See Authenticating with Gladstone APIs.
Path parameters
| Name | Type | Required | Description |
|---|---|---|---|
siteId | string | Yes | The site to return, matched case-insensitively against id. Site IDs are operator-assigned short codes of maximum 15 characters, not sequential numbers — take the value from the id of a site returned by the list-sites call rather than constructing one. An ID that matches no site returns 404. |
Query parameters
| Name | Type | Required | Description |
|---|---|---|---|
includeFacilitiesAndAmenities | boolean | No | Switches the response to the richer shape. Omitted or false returns the object below with organisations, images and socialMedia left unpopulated. Set to true to have those three collections filled and to receive two extra arrays not listed below — amenities and facilities, each carrying id, a key, name, description and translations. Only the literal value true switches shape; any other value is treated as off. |
Sample request
curl -X GET '{base_url}/api/configuration/sites/{all}' \
-H 'Authorization: Bearer {accessToken}' \
-H 'X-Use-SSO: true'Response fields
| Field | Type | Description |
|---|---|---|
id | string | The site's operator-assigned code, maximum 15 characters. This is the value you pass as siteId to site-scoped calls elsewhere in the API. |
name | string | The site's short display name — the label an operator would recognise, such as the branch name. Distinct from legalName and from description. |
legalName | string | The registered legal entity name for the site, used where a trading name is not appropriate — invoices, contracts and statutory documents. Maximum 255 characters. Frequently unset, in which case fall back to name. |
vatId | string | The site's VAT registration number, maximum 20 characters, for tax documentation. Held as free text — no format validation is applied, so do not assume a country-specific pattern. |
description | string | A longer prose description of the site, maximum 255 characters, intended for display to end users. Not the same as name, which is the short label. |
address | object | The site's postal address, always present as an object even when every line inside it is null. |
address.addressLine1 | string | First line of the postal address, maximum 100 characters. |
address.addressLine2 | string | Second line of the postal address, maximum 100 characters. Null when unused. |
address.addressLine3 | string | Third line of the postal address, maximum 100 characters. Null when unused. |
address.townCity | string | Town or city, maximum 100 characters. |
address.region | string | County, state or region, maximum 100 characters. |
address.postalCode | string | Postcode or ZIP code, maximum 25 characters. Returned as entered, so formatting and spacing vary between sites. |
address.country | string | Country name, maximum 100 characters. Free text rather than an ISO country code. |
location | object | The site's geographic coordinates, for map display and distance sorting. Always present as an object; both members are null when the operator has not geocoded the site. |
location.latitude | string | Latitude, carried as a string of maximum 40 characters rather than a number. Parse it before doing arithmetic, and handle null. |
location.longitude | string | Longitude, carried as a string of maximum 40 characters rather than a number. Parse it before doing arithmetic, and handle null. |
contact | object | Public contact details for the site. Always present as an object even when both members are null. |
contact.telephone | string | Public telephone number, maximum 100 characters. Free text — extensions and international prefixes appear inconsistently. |
contact.email | string | Public enquiries email address, maximum 255 characters. No format validation is applied on read. |
websiteUrl | string | The operator's public web page for this site. Null when the operator has not set one. |
logoUrl | string | Absolute or relative URL of the site's logo image, for branding your own UI. Null when no logo has been uploaded. |
termsConditionsUrl | string | URL of the terms and conditions document that applies to this site. Sites in the same estate may point at different documents, so read it per site rather than caching one estate-wide value. |
privacyPolicyUrl | string | URL of the privacy policy that applies to this site. As with termsConditionsUrl, this is per site rather than per operator. |
openActiveTaxMode | string | The tax mode the site declares for the platform's OpenActive integration — the open-data feed through which sessions and facilities are published and harvested. Maximum 100 characters, free text with no validation. |
isActive | boolean | Whether the site is currently in service. Derived by inverting the site's inactive flag, so a site whose flag has never been set reports true. Inactive sites are still returned by this endpoint — filter on this field yourself if you only want live venues. |
isWebVisible | boolean | Whether the operator intends this site to appear in consumer-facing web channels. Reports false when the value has never been set. This is a display hint only — the endpoint does not hide sites on the strength of it, so honour it in your own UI. |
openingDate | string (date-time) | The date the site opens or opened to the public. Returned with the time component truncated to midnight, so treat it as a date and ignore the time. Null for established sites where no opening date was recorded. |
organisations | array of object | The organisations this site belongs to, for group-level reporting and ownership. Returned as null, not [], unless you send includeFacilitiesAndAmenities=true — the default response never populates it, so null here means "not asked for", not "none configured". |
organisations[].id | integer (int32) | The organisation's numeric identifier. |
organisations[].type | string | The organisation's classification. |
organisations[].name | string | The organisation's display name. |
images | array of object | Photographs and other imagery for the site, in no guaranteed order. Returned as null, not [], unless you send includeFacilitiesAndAmenities=true — null means "not asked for", not "none uploaded". |
images[].id | integer (int32) | The image's numeric identifier, and the key its translations entries are held against. |
images[].url | string | URL of the image asset. |
images[].description | string | Caption or alt text for the image, maximum 255 characters, in the site's default language. Use images[].translations for other languages. |
images[].translations | array of object | Localised alternatives to this image's text, keyed on images[].id. Empty when no translations have been captured. |
images[].translations[].type | string | The object type the translation belongs to — SiteImage for entries under images. |
images[].translations[].culture | string | The culture the text is written in. |
images[].translations[].text | string | The translated text for that culture, replacing images[].description when you are rendering in that culture. |
socialMedia | array of object | The site's social media presences. Returned as null, not [], unless you send includeFacilitiesAndAmenities=true — null means "not asked for", not "none configured". |
socialMedia[].id | integer (int32) | The social media link's numeric identifier, and the key its translations entries are held against. |
socialMedia[].url | string | Link to the site's profile or page on that network. |
socialMedia[].description | string | Label for the link, maximum 255 characters, in the site's default language. |
socialMedia[].logoUrl | string | URL of the network's icon, for rendering the link. |
socialMedia[].translations | array of object | Localised alternatives to this link's text, keyed on socialMedia[].id. Empty when no translations have been captured. |
socialMedia[].translations[].type | string | The object type the translation belongs to — SiteSocialMedia for entries under socialMedia. |
socialMedia[].translations[].culture | string | The culture the text is written in. |
socialMedia[].translations[].text | string | The translated text for that culture, replacing socialMedia[].description when you are rendering in that culture. |
translations | array of object | Localised alternatives to the site's own text fields, keyed on id. Always populated in both response shapes, and empty when no translations have been captured. |
translations[].type | string | The object type the translation belongs to — Site for entries in this top-level collection. |
translations[].culture | string | The culture the text is written in. |
translations[].text | string | The translated text for that culture. |
Sample response
{
"id": "string",
"name": "string",
"legalName": "string",
"vatId": "string",
"description": "string",
"address": {
"addressLine1": "string",
"addressLine2": "string",
"addressLine3": "string",
"townCity": "string",
"region": "string",
"postalCode": "string",
"country": "string"
},
"location": {
"latitude": "string",
"longitude": "string"
},
"contact": {
"telephone": "string",
"email": "member@example.com"
},
"websiteUrl": "string",
"logoUrl": "string",
"termsConditionsUrl": "string",
"privacyPolicyUrl": "string",
"openActiveTaxMode": "string",
"isActive": true,
"isWebVisible": true,
"openingDate": "2026-08-14T19:00:00Z",
"organisations": [
{
"id": 12345,
"type": "string",
"name": "string"
}
],
"images": [
{
"id": 12345,
"url": "string",
"description": "string",
"translations": [
{
"type": "string",
"culture": "string",
"text": "string"
}
]
}
],
"socialMedia": [
{
"id": 12345,
"url": "string",
"description": "string",
"logoUrl": "string",
"translations": [
{
"type": "string",
"culture": "string",
"text": "string"
}
]
}
],
"translations": [
{
"type": "string",
"culture": "string",
"text": "string"
}
]
}Errors
| Status | Meaning | When |
|---|---|---|
400 | Bad request | Not returned in practice: siteId is a plain string, so any value is accepted. Do not write handling for it. A site that does not exist returns 404, not 400 — worth noting if you have generalised from other Configuration lookups, several of which do the opposite. |
404 | Not found | No site has that ID. The body is the plain-text string Site ID '{siteId}' does not exist. You also get this when includeFacilitiesAndAmenities=true and the site is missing. |
500 | Internal server error | An unexpected server-side failure in the lookup. The response has an empty body — the detail is not returned to you, so retry once and then raise a support ticket quoting the site ID and approximate time. |