---
title: "List the connector directory"
method: GET
path: "/v1/connectors"
tags: ["Connectors"]
---

# List the connector directory

`GET /v1/connectors`

## Request

- Base URL: `https://api.subscriby.net`
- URL: `https://api.subscriby.net/v1/connectors`
- Auth: HTTP bearer

Every connector Subscriby knows, lane by lane, installable connectors first, each with its badges and, for a registered one, its whole manifest and the connect form. `?status=` narrows to one lane.

```bash
curl https://api.subscriby.net/v1/connectors \
  -H "Authorization: Bearer $SUBSCRIBY_TOKEN"
```

Cards come lane by lane, installable connectors first; within a lane the most installed connector comes first (`installations`, the number of projects running it today, uninstalled rows excluded) and the name breaks ties. The public and in-app directories offer the same order plus Newest (`added_at`) and Name, and filter on `official`, `installable` and `category`; a client sorts and filters on the same fields.

### Lanes and badges

| `status`         | `status_label`    | Meaning                                                                                        |
| ---------------- | ----------------- | ---------------------------------------------------------------------------------------------- |
| `available`      | Available Now     | A package is present and configuration offers it; `installable` is `true`.                     |
| `beta`           | Experimental      | Available, and flagged so; a badge on the card, never a gate. `installable` is `true`.         |
| `paused`         | Paused            | Switched off during an incident. Nothing new is installed and sends queue until it is back.    |
| `in_development` | Under Development | A package exists but configuration does not offer it yet (built, on staging, dark).            |
| `coming_soon`    | Coming Soon       | A roadmap entry with no package behind it: the card, the category and an `eta` sentence only.  |

`badges` are facts the platform stamps, never a package's own claim: `official` or `community` (who publishes it), `new` while the listing was added within the last sixty days, `trending` for the connector(s) creators installed most in the last thirty days. A `coming_soon` card carries none.

## Query parameters

- `status` string

## Response `200`

Array of `ConnectorListingResource`

- object
  - `data` ConnectorListingResource[], required: The items.
    - `key` string, required: The connector's key, the value the installation routes take as `{key}`.
    - `name` string, required: The connector's display name.
    - `vendor` string, nullable, required: Who publishes the connector; null on a roadmap card.
    - `version` string, nullable, required: The connector package's version; null on a roadmap card.
    - `status` string, required: The lane: `available`, `beta`, `paused`, `in_development` or `coming_soon`.
    - `status_label` 'Available Now' | 'Experimental' | 'Paused' | 'Under Development' | 'Coming Soon', required: The lane heading the dashboard shows, in the token holder's language.
    - `installable` boolean, required: Whether a creator may install the connector today: true for `available` and `beta` only.
    - `official` boolean, required: Whether Subscriby publishes the connector itself.
    - `badges` unknown[], required: Facts the platform stamps, never the package's own claim: each `{key, label}` is `official` or `community` (who publishes it), `new` while the listing was added within the last sixty days, or `trending` for the connectors creators installed most in the last thirty days. Empty on a roadmap card.
      - unknown
    - `installations` integer, required: How many projects run the connector today, uninstalled rows excluded.
    - `category` string, required: The connector's family, such as `messaging`.
    - `tagline` string, required: The one-line pitch on the card.
    - `overview` string, nullable, required: The longer description; null on a roadmap card.
    - `icon` string, required: The icon slug the directory draws.
    - `eta` string, nullable, required: When a roadmap connector is expected, as a sentence; null once it is registered.
    - `links` object, nullable, required: Where to read more; null on a roadmap card.
      - `documentation` string, nullable, required: The connector's guide on the docs site.
      - `support` string, nullable, required: Where to ask for help, a URL or a `mailto:`.
      - `privacy` string, nullable, required: The platform's privacy policy.
      - `terms` string, nullable, required: The platform's terms of service.
      - `homepage` string, nullable, required: The platform's home page.
    - `added_at` string, nullable, required: The day the listing was added, `YYYY-MM-DD`; null on a roadmap card.
    - `changelog_url` string, nullable, required: Where the connector's changes are announced; null on a roadmap card.
    - `sign_in_required` boolean, required: Whether connecting asks the creator to sign in on the platform rather than paste a credential.
    - `portal_cta` object, nullable, required: The button the member portal shows to open the connector, or null when the connector has nowhere to open; the portal addresses it through the installation's start link.
      - `label` string, required: The button's text, translated.
      - `icon` string, required: The button's icon slug.
    - `install_mode` string, nullable, required: How a creator connects it: `paste_credential` (the creator pastes a token the platform issued), `oauth` (the creator authorises an app) or `shared_platform` (Subscriby runs one shared presence; nothing to connect). Null on a roadmap card.
    - `scopes` string[], required: `project` for an installation a creator sets up on a project, `platform` for a presence Subscriby itself runs on the connector.
    - `resource_kinds` unknown[], required: The kinds of place the connector gates. Each carries `kind`, the creator-facing `label`, the `portal_label` members see, an `icon` slug, the `grant_mode` (`bearer_link`: a single-use link; `membership`: the connector admits the member itself; `role`: a role is granted; `creator_task`: the creator hands access over by hand), `supports_early_admission_hold` (whether a grant can be held ahead of a pass window), `upgrades_from` (the kind of the same connector a place of this kind can be an in-place upgrade of, or null) and `plan_kinds` (the shapes of plan a place can be sold under: `one_time`, `recurring`, `pass`, `pass_series`). A resource's `kind` on the Resources endpoints is `<key>:<kind>`.
      - unknown
    - `capabilities` string[], required: The port families the connector implements: `messaging`, `broadcasts`, `access_control`, `early_admission_hold`, `support_relay`, `native_payments`, `portal_login`, `creator_registration`, `management_surface`, `recovery_probes`, `recovery_standby_installations`, `recovery_resource_standby`, `recovery_mirror`, `recovery_identity_relink`.
    - `messaging` object, nullable, required: The limits every message is checked against; null on a roadmap card.
      - `max_length` integer, required: The longest message body the platform delivers.
      - `buttons_per_row` integer, required: How many buttons a keyboard row may hold.
      - `max_buttons` integer, required: How many buttons a message may carry in total.
      - `callback_data_bytes` integer, required: How many bytes a button's callback payload may hold.
      - `supports_underline` boolean, required: Whether underlined text renders.
      - `supports_spoiler` boolean, required: Whether spoiler text renders.
      - `supports_files` boolean, required: Whether files can be attached.
    - `pacing` object, nullable, required: The rate every bulk send is paced at; null on a roadmap card.
      - `min_interval_microseconds` integer, required: The shortest gap between two sends.
      - `burst` integer, required: How many sends may go out before the gap applies.
      - `per_recipient_interval_microseconds` integer, required: The shortest gap between two sends to the same recipient.
    - `management_commands` string[], required: The core commands the connector's in-chat surface renders, such as `plan_create` or `broadcast`.
    - `missing_commands` string[], required: The core commands the in-chat surface does not render; the Connectors tab shows the gaps from these.
    - `relay_modes` string[], required: How support conversations can be relayed on the connector, such as `owner_dm` or `forum_group`.
    - `recovery` object, nullable, required: Which Disaster Recovery facets the connector implements; null on a roadmap card.
      - `probes` boolean, required: Whether the connector answers health probes.
      - `standby_installations` boolean, required: Whether a spare installation can be kept ready.
      - `resource_standby` boolean, required: Whether a spare place can be kept ready for a resource.
      - `mirror` boolean, required: Whether a standby can be mirrored from the live place.
      - `identity_relink` boolean, required: Whether a creator's account can be relinked after a loss.
    - `install_fields` unknown[], required: The declarative connect form, in order. Each field carries `name`, `type` (`text`, `secret`, `select`, `toggle`, `instructions`, `link`), a translated `label` and `help`, `required`, the validation `rules`, `options` for a select, a default `value`, the numbered walkthrough `steps` (with `:app` and `:button` placeholders for the app's name and the submit button's label) and `links` naming the text a renderer turns into a link.
      - unknown
    - `settings_fields` unknown[], required: The declarative settings form, in the same shape as `install_fields`; its field names are the keys the settings endpoint accepts.
      - unknown

## Other responses

- `401`: `AUTHENTICATION_REQUIRED`: the request carries no bearer token, or one that is revoked, malformed, or minted for another environment (an `sbt_test_` token on production).
- `403`: `TOKEN_MISSING_ABILITY`: 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.
- `422`: `VALIDATION_FAILED`: when `status` names no lane; `error.context.accepted` lists the lanes.
- `429`: `RATE_LIMITED`: the token has spent its 300 requests a minute or 10,000 an hour; `Retry-After` says when the next one is accepted.

---

[API](https://skmtc.dev/memberpass/apis/subscriby-rest-api.md) · [All operations](https://skmtc.dev/memberpass/apis/subscriby-rest-api/llms.txt) · [OpenAPI document](https://skmtc.dev/memberpass/apis/subscriby-rest-api/revisions/59c4df91d764?raw)
