Version
GET

List the places an installation could gate

/v1/projects/{project}/connectors/{key}/installation/spaces in the Connectors API.

curl "https://api.subscriby.net/v1/projects/7f3d1c92-8b45-4e6a-9d21-5c8e0a4b6f13/connectors/example/installation/spaces?kind=role" \  -H "Authorization: Bearer $SUBSCRIBY_TOKEN"

A connector whose installation can list the places it administers (a server's roles and channels) lets a creator pick one instead of answering a picker on the platform; its directory card declares space_browsing. This is that list, read from the platform on every call: a place made a moment ago is on it, a deleted one is not. kind is one of the connector's resource_kinds, as a bare word (role) or spelled connector:kind (example:role). Pass a place's external_id to the from-space endpoint of the Resources API to sell it. A connector that cannot list its places answers 422 VALIDATION_FAILED; the link request is its door.

GET
/v1/projects/{project}/connectors/{key}/installation/spaces

Requires ability

The token must hold this ability, or the call is refused with 403.

Runs the same action from an agent, behind the same ability.

Authorization

bearerToken
AuthorizationBearer <token>

A personal access token minted on the dashboard under Settings, then Tokens, sent as Authorization: Bearer sbt_live_…. The token carries the abilities each endpoint lists under Requires ability and is frozen to one team.

In: header

Path Parameters

project*string

The project, resolved by the route binder.

Formatuuid
key*string

The connector key from the route.

Query Parameters

kind*string

The kind of place to list: one of the connector's resource_kinds as the connector directory spells them, either the bare kind word (role) or spelled connector:kind with this connector's key (discord:role).

Match^(?:[a-z][a-z0-9_-]*:)?[a-z][a-z0-9_-]*$

Responses

200OK

Array of SpaceSummaryResource

401Unauthorized

The request carries no bearer token, or one that is revoked, malformed, or minted for another environment (an sbt_test_ token on production).

403Forbidden

The token is valid but does not carry the ability this endpoint requires; error.context.required_ability names the one to grant. An endpoint that also checks who owns a row or which tier the account is on answers FORBIDDEN, TEAM_TIER_REQUIRED or CONNECTOR_TIER_REQUIRED with the same status, and says so in its own description.

404Not found

An id in the path names nothing the token can see. TENANT_MISMATCH: the project sits outside the token's scope:project: allow-list, or the token carries no team scope. Both answer 404 rather than 403 so that existence outside the token's scope cannot be inferred. On this endpoint: RESOURCE_NOT_FOUND: with reason: unknown_connector, or 404 CONNECTOR_NOT_INSTALLED when the project does not run the connector.

422Validation failed

The payload broke a rule, and error.fields maps each offending key to its messages. A refusal from the domain, such as a plan that cannot go on sale or a member who cannot be removed, uses the same code with error.message saying why and no fields. On this endpoint: CONNECTOR_NOT_CONNECTED: when the installation cannot act right now. VALIDATION_FAILED: when kind is not one the connector gates (error.context.kind names it), or when the connector does not list its places.

429Too many requests

The token has spent its 300 requests a minute or 10,000 an hour; Retry-After says when the next one is accepted.

How is this guide?

Last updated on