---
title: "Every connectable product and this organization's connection to each."
method: GET
path: "/integrations"
tags: ["Integrations"]
---

# Every connectable product and this organization's connection to each.

`GET /integrations`

## Request

- Base URL: `https://docs.sleeperhit.studio/api/v1`
- URL: `https://docs.sleeperhit.studio/api/v1/integrations`
- Auth: HTTP bearer

All ten catalogued products, always, each with its card state and the organization's connection: account, chosen places, last and next check, items found, a plain health line (a rate limit never reads as "reconnect"). Read-only. Sleeper Hit never posts, edits or deletes anything. Nothing is used in a story until your team keeps it. Every member reads it. Scope: `story:read`. Free.

## Response `200`

The catalogue with this organization's connections.

- IntegrationCatalog
  - `organization` object, nullable, required
    - `id` string
    - `name` string
    - `role` string
  - `canConnect` boolean, required: Owners and admins connect, choose places and disconnect.
  - `products` IntegrationCatalogEntry[], required: All ten catalogued products, in order, always.
    - `slug` string, required
    - `label` string, required
    - `logoPath` string, nullable, required
    - `blurb` string, nullable, required
    - `state` 'READY' | 'COMING_SOON' | 'PENDING' | 'CONNECTED' | 'NEEDS_ATTENTION' | 'RATE_LIMITED', required
    - `isAvailable` boolean, required: Switched on here and its app is set up.
    - `canRead` boolean, required: Reading from this product is built (otherwise it is "Coming soon").
    - `connection` IntegrationConnection, nullable, required
      - `id` string, required
      - `providerSlug` string, required
      - `status` 'PENDING' | 'CONNECTED' | 'NEEDS_RECONNECT' | 'DISABLED', required
      - `healthCode` 'revoked' | 'admin_policy' | 'rate_limited' | 'missing_scopes' | 'wrong_account' | 'vendor_error' | 'null', nullable, required: Why a connection that still exists is not reading. `rate_limited` and `vendor_error` clear by themselves.
      - `healthLine` string, nullable, required: One plain line from `healthCode`, or null when healthy.
      - `accountLabel` string, required
      - `origins` string[], required: The places chosen to bring in.
      - `lastSyncedAt` string, nullable, required
      - `lastSyncStartedAt` string, nullable, required
      - `nextSyncAt` string, nullable, required
      - `lastRunItemsSeen` integer, nullable, required
      - `lastRunItemsNew` integer, nullable, required
      - `connectedAt` string, required
      - `statusLine` string, required: The card's one status line, e.g. "Acme · 5 pages · feeds Demo · checked 3m ago" or "… · no project reads it yet".
      - `projectsFeeding` object[], required: The projects that read from this product: fed as a project (PUT /story-projects/{projectId}/integration-feed) or through a live season's own rule. Empty means no check runs yet.
        - `projectId` string, required
        - `projectName` string, required
      - `itemsWaiting` integer, required: Items found and waiting for someone to keep or turn down, across every season.
      - `reviewHref` string, nullable, required: The app review queue holding the most waiting items, or null when nothing waits.
      - `itemsHeld` integer, required: Items found for a fed project that has no season yet; its next season's review queue takes them.
      - `heldHref` string, nullable, required: The app Seasons tab of the project holding the most of them, or null.
    - `requested` boolean, required: This member already asked for this product (POST /integrations/providers/{slug}/interest).
  - `readOnly` string, required
  - `keepGate` string, required

## Other responses

- `401`: Missing, malformed, revoked, or expired API key.
- `403`: API key is valid but lacks the scope, is blocked by IP allowlist, or the account is disabled.
- `409`: `organization_required`: the account is not in a business organization.
- `429`: Rate limit for this API key + IP + route family was exceeded.
- `500`: The API failed unexpectedly. Safe to retry with the same Idempotency-Key.

---

[API](https://skmtc.dev/sleeperhit/apis/sleeper-hit-studio-story-api.md) · [All operations](https://skmtc.dev/sleeperhit/apis/sleeper-hit-studio-story-api/llms.txt) · [OpenAPI document](https://skmtc.dev/sleeperhit/apis/sleeper-hit-studio-story-api/revisions/64c1102ccb2f?raw)
