List all global integrators Get every global integrator registered across the platform

GET /api/configuration/admin/integrators

Success: 200 OK

Overview

Returns the whole catalogue of global integrators — the partner records Gladstone Support curates and every tenant can opt into. This is the administrative view of that catalogue: it is the same list a tenant sees, without any tenant-specific detail.

The call takes no parameters and no filters. Every global integrator is returned, active and inactive alike, sorted by name ascending. Soft-deleted integrators are still in the list and are identified only by isActive being false. Private, tenant-owned integrators never appear here.

No API key material is returned by this endpoint — not the key, and not even its prefix. A key exists only against a tenant's activation of an integrator, which this catalogue view knows nothing about. The plaintext key is shown exactly once, in the response to Activate a global integrator, and nothing can recover it afterwards. If you need to know whether the current tenant has activated an integrator and which key prefix it holds, use List global integrators with tenant activation status instead.

The call requires an ADMIN feature claim on your token. Without it the request is rejected with 403 before anything is read, so this endpoint is for Gladstone Support rather than for tenants or their integrations.

An empty catalogue is 200 with []. There is no 404, no paging and no ordering parameter.

The scope, capability and rate-limit values on each entry are the template applied to every API key issued under that integrator — see Create a global integrator for how they are set and what they do at token-issue time.

Endpoint

GET {base_url}/api/configuration/admin/integrators

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

Sample request

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

Response fields

FieldTypeDescription
[].idinteger (int32)The integrator's identifier, allocated by the system when it was created. This is the value a tenant passes to Activate a global integrator, and the value you use to update or soft-delete it. Because names are not unique, it is the only reliable way to tell two catalogue entries apart.
[].namestringThe integrator's display name, as shown to tenants browsing the catalogue. Up to 255 characters and never blank. Not unique — two integrators can share a name, which is a common symptom of a create request having been retried after a timeout. The list is sorted by this field ascending.
[].descriptionstringFree-text explanation of what the integration does, with no length limit. null when none was given.
[].originstringThe single web origin the integration is allowed to call from, up to 255 characters — for example https://app.example.com. It is enforced when a token is requested: a token request carrying an Origin header must match this value, compared case-insensitively and ignoring a trailing slash, or it is rejected with 401. A token request with no Origin header skips the check. Exactly one origin; wildcards and lists are not supported.
[].logoUrlstringAbsolute URL of the integrator's logo for catalogue display, up to 500 characters. null when none was set. Returned as given — the platform never fetches or validates it.
[].isGlobalbooleanAlways true on every entry, because this endpoint returns only global integrators. It is what makes a record visible to every tenant. A false here would mean a tenant-private integrator, and those are excluded from this list entirely.
[].isBillablebooleanWhether usage under this integrator is chargeable. Carried as a billable claim on every token minted from a key issued under it.
[].environmentIdinteger (int32)Always null on these entries: a global catalogue entry belongs to no single tenant. The consequence matters — tokens minted from a global integrator's key carry no tenant claims, so they cannot be used for member login or member-token refresh. Only a private integrator, which does carry an environmentId, can do that.
[].allowedScopesstringThe features the integrator may reach, held as a JSON array encoded into a string — for example "[\"FOHGENERIC\"]". At token-issue time it is parsed and each entry becomes both a features claim and a products claim; gateway routes require both. A value that is null, empty, or not valid JSON produces tokens with no scope claims, which every route rejects with 403, and the parse failure is silent — there is no error at creation and none at token issue. Auditing this field across the catalogue is the main reason to call this endpoint.
[].canReadbooleanWhether the integrator may perform read operations. Emitted as a can_read claim on every token issued under it.
[].canWritebooleanWhether the integrator may perform write operations. Emitted as a can_write claim.
[].canDeletebooleanWhether the integrator may perform delete operations. Emitted as a can_delete claim.
[].rateLimitPerMinuteinteger (int32)The per-minute request budget recorded against the integrator. Never negative — writes reject that. Note that an integrator created without an explicit value holds 0, not 60.
[].rateLimitPerHourinteger (int32)The per-hour request budget recorded against the integrator, with the same never-negative rule; an integrator created without an explicit value holds 0, not 1000.
[].isActivebooleanWhether the catalogue entry is live. true from creation; false after a soft delete, which leaves the integrator in this list. This is the only field distinguishing a withdrawn integrator from a current one, so filter on it yourself if you are rendering a catalogue. It says nothing about whether any tenant has activated the integrator.
[].createdOnstring (date-time)UTC timestamp the catalogue entry was created, set automatically. null only in the rare case it was not set.
[].modifiedOnstring (date-time)UTC timestamp of the last change to the entry. null on an integrator that has never been updated, so treat null as "unchanged since creation" rather than as missing data.

Sample response

200 OK
[
  {
    "id": 12345,
    "name": "string",
    "description": "string",
    "origin": "string",
    "logoUrl": "string",
    "isGlobal": true,
    "isBillable": true,
    "environmentId": 12345,
    "allowedScopes": "string",
    "canRead": true,
    "canWrite": true,
    "canDelete": true,
    "rateLimitPerMinute": 1,
    "rateLimitPerHour": 1,
    "isActive": true,
    "createdOn": "2026-08-14T19:00:00Z",
    "modifiedOn": "2026-08-14T19:00:00Z"
  }
]

Errors

StatusMeaningWhen
403ForbiddenYour token does not carry the ADMIN feature claim. The check runs before anything is read, and the response has no body and no message. This is the failure you will actually hit if you try this endpoint with an ordinary tenant or partner token.
500Internal server errorAn unexpected server-side failure while reading the catalogue. The body is empty; the detail is not returned to you. Retry; nothing about the request can avoid it.
503Service unavailableNot returned by this endpoint itself.

This page as markdown · All pages · llms.txt