Get pricing timeband by ID
GET /api/configuration/timebands/{timebandId}
Success: 200 OK
- Products: Operator (
FOH) - Features: Front of House Generic Access (
FOHGENERIC)
Overview
Returns a single pricing time band by its id.
A time band is a named pricing period — "Peak", "Off Peak", "Weekend" — that an operator uses to charge different amounts for the same thing at different times. It matters because a product's price is not one number: a price is keyed on product and time band and price level together. So whenever you quote or take a price, a time band is part of the coordinates, and this endpoint is how you resolve that id to something you can show a user.
The record itself carries no clock times. This is the thing most integrators get wrong on first contact. Despite the name, a time band is a label plus an entry-restriction flag; the actual start and end times live elsewhere, in the time band schedule that maps a schedule and a time band to start/end times. Nothing in this response tells you when the band applies. If you need to work out which band is live at a given moment, this endpoint will not give you the answer.
Where you get the id: a site's default time band comes from Get site defaults as timebandId, and the full set an operator has configured comes from Get all pricing timebands. Time band ids are uppercase with spaces stripped — the create call uppercases whatever you send, and auto-generated ids use the prefix TBND — so pass the id back exactly as you received it rather than re-casing it.
Endpoint
GET {base_url}/api/configuration/timebands/{timebandId}
{base_url} is the environment URL issued to your integration. See Authenticating with Gladstone APIs.
Path parameters
| Name | Type | Required | Description |
|---|---|---|---|
timebandId | string | Yes | The time band to read, maximum 15 characters. Take it from timebandId on Get site defaults, from id on Get all pricing timebands, or from the timeBandId attached to a price. An id that does not exist returns 404, not an empty 200. |
Sample request
curl -X GET '{base_url}/api/configuration/timebands/{timebandId}' \
-H 'Authorization: Bearer {accessToken}' \
-H 'X-Use-SSO: true'Response fields
| Field | Type | Description |
|---|---|---|
id | string | The time band's identifier, maximum 15 characters, and the value to send back anywhere a timeBandId is expected. Echoes the id you requested. |
description | string | The operator's name for the band — "Peak", "Off Peak" — and the only human-readable label the record carries. Show this rather than the id. Untranslated: it is in whatever language the operator configured, so use translations if you need to render it in a specific culture. Create and update reject a description over 255 characters with The pricing timeband description cannot be more than 255 characters, but a description longer than 25 characters may not survive a write intact, so do not assume it does. |
restrictEntryInd | integer (int32) | Whether this band denies physical entry at access-control gates. 0 means no; 1 means the band denies swipe access at entry points, so a member whose price or product resolves to this band is refused at the barrier. Returned as a plain integer, so a band with no value configured comes back as 0 — you cannot distinguish "not restricted" from "never configured" through this API. |
translations | array of object | Culture-specific versions of description, for operators running a multilingual site. Always present: a band with no translations configured returns [], never null. This array is populated only on this by-id call and the list call — it is not a full set of localisations, only the translations recorded against this one band. |
translations[].type | string | The property this translation applies to. For time bands this is always description, because description is the only translatable field on the record. |
translations[].culture | string | The culture code the translation is for, drawn from the platform's culture list — for example en-gb, cy-gb, fr. Codes are lowercase. The full set an operator can use is available from Get all available cultures. |
translations[].text | string | The translated description to display when rendering in that culture. Falls back to nothing — if no entry matches the culture you want, use description rather than expecting a default entry. |
Sample response
{
"id": "string",
"description": "string",
"restrictEntryInd": 1,
"translations": [
{
"type": "string",
"culture": "string",
"text": "string"
}
]
}Errors
| Status | Meaning | When |
|---|---|---|
400 | Bad request | timebandId could not be read as a valid value. In practice this is hard to provoke on this endpoint, because timebandId is a string and almost any value binds — a missing or unknown time band gives you 404, not 400. |
404 | Not found | No time band exists with that id. The body is a plain-text message in the form GetTimeband could not find the id {timebandId}, not a JSON error object. Note that some other Configuration endpoints return 400 for a record that does not exist; this one does not, so branch on 404 here. |
500 | Internal server error | An unexpected server-side failure while reading the band. The response has no body. One known cause is a failure while looking up the band's translations. |