Get all pricing timebands
GET /api/configuration/timebands
Success: 200 OK
- Products: Operator (
FOH) - Features: Front of House Generic Access (
FOHGENERIC)
Overview
Lists every pricing timeband defined for the tenant. A timeband is a named label — for example STAND / "Standard" — that other configuration attaches to in order to vary price and entry rules by period. It is the vocabulary you resolve ids against; it is not the schedule itself.
Read this before anything else: a timeband record carries no start or end time. Despite the name, the only fields on it are an id, a description, an entry-restriction flag and translations. The actual date and time ranges live against a product and site elsewhere in the platform and reference the timeband by id; this endpoint does not expose them. If you are looking for "what are the peak hours", this is the wrong call.
The response is a JSON array. There is no paging, no filtering and no query parameter — you always get every timeband. An empty configuration returns 200 with [], not 204 and not 404. A new tenant starts with a single timeband, STAND, so in practice the array is rarely empty.
Timeband ids are operator-defined and tenant-local. They are unique within your tenant, not a platform-wide code, so PEAK in one tenant has no relationship to PEAK in another. Do not hardcode them and do not share them between environments.
Timebands have no active, inactive or archived flag, so there is nothing to filter on and nothing is hidden — a timeband that the operator has stopped using is indistinguishable in this response from one in daily use. If you need to know which are actually in service, you have to determine that from the configuration that references them.
A timeband created, updated or deleted through this API is reflected here immediately; a change made any other way — for example in the operator's back-office application — can take up to six hours to appear here.
To fetch one timeband on its own, use Get pricing timeband by ID.
Endpoint
GET {base_url}/api/configuration/timebands
{base_url} is the environment URL issued to your integration. See Authenticating with Gladstone APIs.
Sample request
curl -X GET '{base_url}/api/configuration/timebands' \
-H 'Authorization: Bearer {accessToken}' \
-H 'X-Use-SSO: true'Response fields
| Field | Type | Description |
|---|---|---|
[].id | string | The timeband's identifier, and the value other configuration uses to reference it. Operator-defined, up to 15 characters, and unique only within the tenant — treat it as an opaque tenant-local string rather than a platform code. The id is upper-cased and stripped of spaces when a timeband is created, so values you receive are always upper-case and space-free. Ids the operator did not choose themselves are generated with the prefix TBND followed by a number. Pass this value to Get pricing timeband by ID. |
[].description | string | The label an operator sees for this timeband in their own systems — for example Standard. Up to 255 characters and never blank; the create and update endpoints reject an empty description. This is the untranslated base text and is returned regardless of any Accept-Language you send; localised alternatives are in translations, which you must apply yourself. |
[].restrictEntryInd | integer (int32) | Whether entry is restricted during this timeband. 0 means entry is not restricted, 1 means it is. No other values are defined. A timeband with no value set is returned as 0 — you cannot distinguish “not restricted” from “never configured” here. |
[].translations | array of object | Localised versions of description, one entry per culture the operator has translated it into. Always present and always an array — an untranslated timeband returns [], never null. Nothing is inherited or defaulted, so if the culture you want is absent, fall back to description yourself. |
[].translations[].type | string | The property this entry translates. For this endpoint it is always the literal string description, because description is the only translatable property a timeband has. It is the field name, not the object type — it never contains TimeBand. Treat any other value as unexpected. |
[].translations[].culture | string | The culture the translation applies to, as a code from the tenant's culture list — for example cy-GB. Up to 20 characters, and always a culture that exists in the tenant, so you will not receive a code that Get all available cultures does not also return. |
[].translations[].text | string | The translated description for that culture. Never null or empty — a culture with nothing entered has no entry in the array at all rather than an entry with blank text. Unbounded in length, unlike description. |
Sample response
[
{
"id": "string",
"description": "string",
"restrictEntryInd": 1,
"translations": [
{
"type": "string",
"culture": "string",
"text": "string"
}
]
}
]Errors
| Status | Meaning | When |
|---|---|---|
400 | Bad request | Not returned in practice: the endpoint takes no route, query or body parameter, so there is nothing to reject. Treat a 400 here as a gateway or authentication problem rather than a fault in your request. |
500 | Internal server error | Any unexpected server-side failure while reading the timebands. The body is empty and carries no detail. Retry; there is no request change that avoids it. |