Get activity details

GET /api/configuration/activity/{id}

Success: 200 OK

Overview

Returns the full configuration of one activity — its names and translations, what kind of activity it is, its participant limits, its image and the tags it carries. Use it after listing activities or fetching them by tag, when you have an identifier and need the detail behind it.

Like the tag lookup, this endpoint is available anonymously, so a public booking journey can show an activity's detail page before anyone signs in.

A missing activity returns 404 with the plain string Activity not found — this is one of the few activity endpoints where 404 genuinely means "no such activity" rather than something structural. The lookup is an exact match on the identifier, so case and spacing must agree with the value you were given.

Activity identifiers are tenant-specific and operator-chosen. They differ between customers and between environments, so always come by them from a list call rather than hard-coding them.

The response does not include the activity's own identifier. It returns the detail and nothing that echoes back what you asked for, so keep the id you called with if you need to correlate responses.

Read this endpoint live rather than from a cache of your own: unlike the activity list, nothing here is served from a cache, so it always reflects the current configuration.

Endpoint

GET {base_url}/api/configuration/activity/{id}

{base_url} is the environment URL issued to your integration. See Authenticating with Gladstone APIs.

Path parameters

NameTypeRequiredDescription
idstringYesThe activity identifier, as returned in id by the list-activities or activities-by-tags endpoints. Up to 15 characters and stored upper-cased. It is matched exactly, so an identifier in the wrong case or with stray whitespace returns 404 rather than the activity.

Sample request

cURL
curl -X GET '{base_url}/api/configuration/activity/{id}' \
  -H 'Authorization: Bearer {accessToken}' \
  -H 'X-Use-SSO: true'

Response fields

FieldTypeDescription
namestringThe activity's short label, suitable for a heading or a list entry. It is the activity's short description, which is why it reads as a name rather than a description.
descriptionstringThe longer explanatory text about the activity, for a detail panel. It can be null or empty when the operator has not filled it in, so do not build a layout that assumes it is present.
typeIndstringWhat kind of activity this is, as a lower-case word: partyactivity, hostedreservation, activity, course or class. It is worked out from several of the activity's settings each time you read it, and the first match wins in that order — so a party activity reports partyactivity even if it is also hosted. It governs what the rest of the record means: activity is a straightforward bookable slot, whereas class and course are the types that can require a minimum number of participants.
imageURLstringA URL for the activity's image, ready to use as-is. A stored reference is expanded into a full public CDN URL for the tenant before being returned; a value already beginning http is passed through untouched. Null or empty when the operator has set no image, so provide your own placeholder.
siteIdstringThe site this activity belongs to. Each activity belongs to exactly one site, so the same activity run at several venues is several records with different identifiers — this field is how you tell them apart.
activityGroupIdstringThe activity group this activity is filed under, used to organise activities into families such as "Racket sports". Look it up there for the group's own name and translations.
minBookeesinteger (int32)The minimum number of participants the activity needs. 0 means no minimum. Only class-style activities may set this above 0 — the update endpoint rejects a non-zero value on an activity type outright — so expect 0 whenever typeInd is activity.
maxBookeesinteger (int32)The maximum number of participants the activity accepts. It is always greater than or equal to minBookees, because the update endpoint refuses any pair where it is not. This is the configured ceiling for the activity, not live remaining capacity — ask the availability endpoints for that.
translationsarray of objectLocalised versions of the activity's own text, one entry per translated field and culture. Returned as an empty array, not null, when nothing has been translated. Only cultures that have actually been translated appear, so fall back to name and description when nothing matches your user.
translations[].TypestringWhich piece of the activity's text this entry translates. Note the capital T — this one field is serialised in Pascal case while its siblings are camel case.
translations[].culturestringThe culture code the translated text is for, matching the codes configured in the tenant's cultures list.
translations[].textstringThe translated text itself, to be shown in place of the field named by Type when the user is in the matching culture.
tagsarray of objectThe tags attached to this activity — the operator-defined categories used for filtering and navigation. Empty when the activity is untagged. These are the same tags you can search by with get activities by tags, so tags[].id here is the value to feed into that endpoint's tagIds.
tags[].idinteger (int32)The tag's numeric identifier, and the value to send to the activities-by-tags endpoint. Numeric and tenant-specific — tags are configured per customer, so do not carry ids between environments.
tags[].namestringThe tag's display label, suitable for a filter chip or category heading. Use tags[].translations in preference where a translation exists for the user's culture.
tags[].descriptionstringLonger text explaining the tag, where the operator has supplied one. Frequently null — treat it as optional supporting copy rather than something to rely on.
tags[].tagGroupIdinteger (int32)The tag group the tag belongs to, which is how tags are organised into facets. Group tags by this value if you are rendering several filter categories at once. Only tags in groups of the activities or system type can be attached to an activity in the first place.
tags[].translationsarray of objectLocalised versions of the tag's text, held separately from the activity's own translations. An empty array, not null, when the tag has none.
tags[].translations[].TypestringWhich piece of the tag's text this entry translates. Pascal-cased like its counterpart on the activity.
tags[].translations[].culturestringThe culture code the translated tag text is for, matching the codes configured in the tenant's cultures list.
tags[].translations[].textstringThe translated tag text, to be shown in place of tags[].name or tags[].description for the matching culture.

Sample response

200 OK
{
  "name": "string",
  "description": "string",
  "typeInd": "string",
  "imageURL": "string",
  "siteId": "string",
  "activityGroupId": "string",
  "minBookees": 1,
  "maxBookees": 1,
  "translations": [
    {
      "Type": "string",
      "culture": "string",
      "text": "string"
    }
  ],
  "tags": [
    {
      "id": 12345,
      "name": "string",
      "description": "string",
      "tagGroupId": 12345,
      "translations": [
        {
          "Type": "string",
          "culture": "string",
          "text": "string"
        }
      ]
    }
  ]
}

Errors

StatusMeaningWhen
404Not foundNo activity has that identifier, including when the case or spacing does not match the stored value. The body is the plain string Activity not found.
500Internal server errorThe activity, tag or translation read failed, or the image URL could not be built. The body is empty.

This page as markdown · All pages · llms.txt