---
title: "Discover supported sources, artifacts, scopes, and documentation surfaces."
method: GET
path: "/capabilities"
tags: ["Discovery"]
---

# Discover supported sources, artifacts, scopes, and documentation surfaces.

`GET /capabilities`

## Request

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

Returns a machine-readable manifest so agent clients can adapt to current feature availability without hardcoded assumptions. Authenticated to keep the API surface uniformly keyed and to attribute usage for capacity planning.

## Response `200`

Capability manifest.

- Capabilities
  - `version` 'v1', required
  - `status` 'foundation', required: Lifecycle marker for the API surface. `foundation` means production-stable identity, auth, credits, and discovery — generation features are rolling out incrementally.
  - `auth` object, required
    - `schemes` string[], required
    - `scopes` Scope[], required
    - `supportsIdempotency` true, required
  - `developmentFlow` DevelopmentFlow, required
    - `warnings` object[], required
      - `id` 'series_bible_before_screenplay' | 'project_stage_before_generation' | 'mood_board_before_storyboard_rendering' | 'coverage_round_after_screenplay', required
      - `stage` 'before_screenplay_generation' | 'before_planning_or_generation' | 'before_storyboard_rendering' | 'after_screenplay_exists', required
      - `severity` 'warning', required
      - `blocking` boolean, required
      - `title` string, required
      - `guidance` string, required
      - `recommendedActions` string[], required
      - `surfaces` string[], required
  - `projects` object, required
    - `available` boolean, required
    - `crudScopes` object, required
      - `read` 'story:read' | 'story:write' | 'source:read' | 'source:write' | 'artifact:read' | 'artifact:publish' | 'publishing:read' | 'publishing:write' | 'publishing:publish' | 'publishing:connect' | 'publishing:analytics' | 'app:connect' | 'credits:read' | 'webhook:write' | 'account:read' | 'account:write', required: OAuth-style scope encoded on a customer API key.
      - `write` 'story:read' | 'story:write' | 'source:read' | 'source:write' | 'artifact:read' | 'artifact:publish' | 'publishing:read' | 'publishing:write' | 'publishing:publish' | 'publishing:connect' | 'publishing:analytics' | 'app:connect' | 'credits:read' | 'webhook:write' | 'account:read' | 'account:write', required: OAuth-style scope encoded on a customer API key.
    - `documents` object, required
      - `seriesBible` object, required
        - `available` boolean, required
        - `scopes` object, required
          - `read` 'story:read' | 'story:write' | 'source:read' | 'source:write' | 'artifact:read' | 'artifact:publish' | 'publishing:read' | 'publishing:write' | 'publishing:publish' | 'publishing:connect' | 'publishing:analytics' | 'app:connect' | 'credits:read' | 'webhook:write' | 'account:read' | 'account:write', required: OAuth-style scope encoded on a customer API key.
          - `write` 'story:read' | 'story:write' | 'source:read' | 'source:write' | 'artifact:read' | 'artifact:publish' | 'publishing:read' | 'publishing:write' | 'publishing:publish' | 'publishing:connect' | 'publishing:analytics' | 'app:connect' | 'credits:read' | 'webhook:write' | 'account:read' | 'account:write', required: OAuth-style scope encoded on a customer API key.
          - `generate` 'story:read' | 'story:write' | 'source:read' | 'source:write' | 'artifact:read' | 'artifact:publish' | 'publishing:read' | 'publishing:write' | 'publishing:publish' | 'publishing:connect' | 'publishing:analytics' | 'app:connect' | 'credits:read' | 'webhook:write' | 'account:read' | 'account:write', required: OAuth-style scope encoded on a customer API key.
        - `promptSystem` 'SidecarPrompt', required
        - `sidecar` 'story_api_series_bible', required
        - `note` string, required
  - `seasonRuns` object, required
    - `available` boolean, required
    - `scopes` object, required
      - `read` 'story:read' | 'story:write' | 'source:read' | 'source:write' | 'artifact:read' | 'artifact:publish' | 'publishing:read' | 'publishing:write' | 'publishing:publish' | 'publishing:connect' | 'publishing:analytics' | 'app:connect' | 'credits:read' | 'webhook:write' | 'account:read' | 'account:write', required: OAuth-style scope encoded on a customer API key.
      - `map` 'story:read' | 'story:write' | 'source:read' | 'source:write' | 'artifact:read' | 'artifact:publish' | 'publishing:read' | 'publishing:write' | 'publishing:publish' | 'publishing:connect' | 'publishing:analytics' | 'app:connect' | 'credits:read' | 'webhook:write' | 'account:read' | 'account:write', required: OAuth-style scope encoded on a customer API key.
      - `approve` 'story:read' | 'story:write' | 'source:read' | 'source:write' | 'artifact:read' | 'artifact:publish' | 'publishing:read' | 'publishing:write' | 'publishing:publish' | 'publishing:connect' | 'publishing:analytics' | 'app:connect' | 'credits:read' | 'webhook:write' | 'account:read' | 'account:write', required: OAuth-style scope encoded on a customer API key.
      - `create` Scope[], required
      - `advance` Scope[], required
    - `statuses` SeasonRunStatus[], required
    - `episodeStatuses` SeasonRunEpisodeStatus[], required
    - `coverageGate` SeasonCoveragePolicy, required: Strict, deterministic coverage gate evaluated before durable MP3 finalization. Score and recommendation defaults are hard safety floors: callers may demand higher scores or fewer allowed recommendations, but may not weaken overall below 8/10, any required category below 7/10, or admit PASS. Revision attempts default to three, while callers may choose any positive integer when they want to keep spending credits on approved revisions.
      - `minimumOverallScore` integer, required
      - `minimumCategoryScore` integer, required
      - `allowedRecommendations` SeasonCoverageRecommendation[], required
      - `maxRevisionAttempts` integer, required
    - `humanApprovals` string[], required
    - `note` string, required
  - `sources` object, required
    - `types` object[], required
      - `type` 'text' | 'markdown' | 'url' | 'pdf', required
      - `availability` 'available' | 'planned', required
      - `maxInlineBytes` integer
      - `note` string
    - `retentionPolicies` RetentionPolicy[], required
    - `note` string, required
  - `artifacts` object, required
  - `jobs` object, required
    - `available` boolean, required
    - `statuses` StoryJobStatus[], required
    - `artifactStatuses` StoryArtifactStatus[], required
    - `scopes` object, required
      - `create` 'story:read' | 'story:write' | 'source:read' | 'source:write' | 'artifact:read' | 'artifact:publish' | 'publishing:read' | 'publishing:write' | 'publishing:publish' | 'publishing:connect' | 'publishing:analytics' | 'app:connect' | 'credits:read' | 'webhook:write' | 'account:read' | 'account:write', required: OAuth-style scope encoded on a customer API key.
      - `read` 'story:read' | 'story:write' | 'source:read' | 'source:write' | 'artifact:read' | 'artifact:publish' | 'publishing:read' | 'publishing:write' | 'publishing:publish' | 'publishing:connect' | 'publishing:analytics' | 'app:connect' | 'credits:read' | 'webhook:write' | 'account:read' | 'account:write', required: OAuth-style scope encoded on a customer API key.
      - `cancel` 'story:read' | 'story:write' | 'source:read' | 'source:write' | 'artifact:read' | 'artifact:publish' | 'publishing:read' | 'publishing:write' | 'publishing:publish' | 'publishing:connect' | 'publishing:analytics' | 'app:connect' | 'credits:read' | 'webhook:write' | 'account:read' | 'account:write', required: OAuth-style scope encoded on a customer API key.
      - `artifactRead` 'story:read' | 'story:write' | 'source:read' | 'source:write' | 'artifact:read' | 'artifact:publish' | 'publishing:read' | 'publishing:write' | 'publishing:publish' | 'publishing:connect' | 'publishing:analytics' | 'app:connect' | 'credits:read' | 'webhook:write' | 'account:read' | 'account:write', required: OAuth-style scope encoded on a customer API key.
      - `renderVideo` 'story:read' | 'story:write' | 'source:read' | 'source:write' | 'artifact:read' | 'artifact:publish' | 'publishing:read' | 'publishing:write' | 'publishing:publish' | 'publishing:connect' | 'publishing:analytics' | 'app:connect' | 'credits:read' | 'webhook:write' | 'account:read' | 'account:write', required: OAuth-style scope encoded on a customer API key.
      - `refine` 'story:read' | 'story:write' | 'source:read' | 'source:write' | 'artifact:read' | 'artifact:publish' | 'publishing:read' | 'publishing:write' | 'publishing:publish' | 'publishing:connect' | 'publishing:analytics' | 'app:connect' | 'credits:read' | 'webhook:write' | 'account:read' | 'account:write', required: OAuth-style scope encoded on a customer API key.
      - `recastVoice` 'story:read' | 'story:write' | 'source:read' | 'source:write' | 'artifact:read' | 'artifact:publish' | 'publishing:read' | 'publishing:write' | 'publishing:publish' | 'publishing:connect' | 'publishing:analytics' | 'app:connect' | 'credits:read' | 'webhook:write' | 'account:read' | 'account:write', required: OAuth-style scope encoded on a customer API key.
      - `modifyVoice` 'story:read' | 'story:write' | 'source:read' | 'source:write' | 'artifact:read' | 'artifact:publish' | 'publishing:read' | 'publishing:write' | 'publishing:publish' | 'publishing:connect' | 'publishing:analytics' | 'app:connect' | 'credits:read' | 'webhook:write' | 'account:read' | 'account:write', required: OAuth-style scope encoded on a customer API key.
      - `finalize` 'story:read' | 'story:write' | 'source:read' | 'source:write' | 'artifact:read' | 'artifact:publish' | 'publishing:read' | 'publishing:write' | 'publishing:publish' | 'publishing:connect' | 'publishing:analytics' | 'app:connect' | 'credits:read' | 'webhook:write' | 'account:read' | 'account:write', required: OAuth-style scope encoded on a customer API key.
      - `scriptRead` 'story:read' | 'story:write' | 'source:read' | 'source:write' | 'artifact:read' | 'artifact:publish' | 'publishing:read' | 'publishing:write' | 'publishing:publish' | 'publishing:connect' | 'publishing:analytics' | 'app:connect' | 'credits:read' | 'webhook:write' | 'account:read' | 'account:write', required: OAuth-style scope encoded on a customer API key.
      - `coverageGenerate` 'story:read' | 'story:write' | 'source:read' | 'source:write' | 'artifact:read' | 'artifact:publish' | 'publishing:read' | 'publishing:write' | 'publishing:publish' | 'publishing:connect' | 'publishing:analytics' | 'app:connect' | 'credits:read' | 'webhook:write' | 'account:read' | 'account:write', required: OAuth-style scope encoded on a customer API key.
      - `coverageRead` 'story:read' | 'story:write' | 'source:read' | 'source:write' | 'artifact:read' | 'artifact:publish' | 'publishing:read' | 'publishing:write' | 'publishing:publish' | 'publishing:connect' | 'publishing:analytics' | 'app:connect' | 'credits:read' | 'webhook:write' | 'account:read' | 'account:write', required: OAuth-style scope encoded on a customer API key.
      - `musicGenerate` 'story:read' | 'story:write' | 'source:read' | 'source:write' | 'artifact:read' | 'artifact:publish' | 'publishing:read' | 'publishing:write' | 'publishing:publish' | 'publishing:connect' | 'publishing:analytics' | 'app:connect' | 'credits:read' | 'webhook:write' | 'account:read' | 'account:write', required: OAuth-style scope encoded on a customer API key.
      - `musicRead` 'story:read' | 'story:write' | 'source:read' | 'source:write' | 'artifact:read' | 'artifact:publish' | 'publishing:read' | 'publishing:write' | 'publishing:publish' | 'publishing:connect' | 'publishing:analytics' | 'app:connect' | 'credits:read' | 'webhook:write' | 'account:read' | 'account:write', required: OAuth-style scope encoded on a customer API key.
      - `sfxManage` 'story:read' | 'story:write' | 'source:read' | 'source:write' | 'artifact:read' | 'artifact:publish' | 'publishing:read' | 'publishing:write' | 'publishing:publish' | 'publishing:connect' | 'publishing:analytics' | 'app:connect' | 'credits:read' | 'webhook:write' | 'account:read' | 'account:write', required: OAuth-style scope encoded on a customer API key.
      - `sfxRead` 'story:read' | 'story:write' | 'source:read' | 'source:write' | 'artifact:read' | 'artifact:publish' | 'publishing:read' | 'publishing:write' | 'publishing:publish' | 'publishing:connect' | 'publishing:analytics' | 'app:connect' | 'credits:read' | 'webhook:write' | 'account:read' | 'account:write', required: OAuth-style scope encoded on a customer API key.
    - `note` string, required
  - `publishing` object, required
    - `available` boolean, required
    - `media` string[], required
    - `providers` string[], required
    - `seriesStatuses` string[], required
    - `destinationStatuses` string[], required
    - `releaseStatuses` string[], required
    - `assetStatuses` string[], required
    - `targetStatuses` string[], required
    - `scopes` object, required
      - `read` 'story:read' | 'story:write' | 'source:read' | 'source:write' | 'artifact:read' | 'artifact:publish' | 'publishing:read' | 'publishing:write' | 'publishing:publish' | 'publishing:connect' | 'publishing:analytics' | 'app:connect' | 'credits:read' | 'webhook:write' | 'account:read' | 'account:write', required: OAuth-style scope encoded on a customer API key.
      - `write` 'story:read' | 'story:write' | 'source:read' | 'source:write' | 'artifact:read' | 'artifact:publish' | 'publishing:read' | 'publishing:write' | 'publishing:publish' | 'publishing:connect' | 'publishing:analytics' | 'app:connect' | 'credits:read' | 'webhook:write' | 'account:read' | 'account:write', required: OAuth-style scope encoded on a customer API key.
      - `publish` 'story:read' | 'story:write' | 'source:read' | 'source:write' | 'artifact:read' | 'artifact:publish' | 'publishing:read' | 'publishing:write' | 'publishing:publish' | 'publishing:connect' | 'publishing:analytics' | 'app:connect' | 'credits:read' | 'webhook:write' | 'account:read' | 'account:write', required: OAuth-style scope encoded on a customer API key.
      - `connect` 'story:read' | 'story:write' | 'source:read' | 'source:write' | 'artifact:read' | 'artifact:publish' | 'publishing:read' | 'publishing:write' | 'publishing:publish' | 'publishing:connect' | 'publishing:analytics' | 'app:connect' | 'credits:read' | 'webhook:write' | 'account:read' | 'account:write', required: OAuth-style scope encoded on a customer API key.
      - `analytics` 'story:read' | 'story:write' | 'source:read' | 'source:write' | 'artifact:read' | 'artifact:publish' | 'publishing:read' | 'publishing:write' | 'publishing:publish' | 'publishing:connect' | 'publishing:analytics' | 'app:connect' | 'credits:read' | 'webhook:write' | 'account:read' | 'account:write', required: OAuth-style scope encoded on a customer API key.
    - `podcastV1` object, required
      - `available` boolean, required
      - `feedRoute` string, required
      - `assetSource` string, required
      - `note` string, required
    - `standingApproval` object, required
      - `available` boolean, required
      - `field` string, required
      - `recurringMedia` string[], required
      - `note` string, required
    - `promptSystem` 'SidecarPrompt', required
    - `sidecars` string[], required
    - `note` string, required
  - `docs` object, required
    - `agentGuidance` DocLink, required
      - `url` string, required
      - `availability` 'available' | 'planned', required
    - `openapi` DocLink, required
      - `url` string, required
      - `availability` 'available' | 'planned', required
    - `examples` DocLink, required
      - `url` string, required
      - `availability` 'available' | 'planned', required
    - `llms` DocLink, required
      - `url` string, required
      - `availability` 'available' | 'planned', required
    - `llmsFull` DocLink, required
      - `url` string, required
      - `availability` 'available' | 'planned', required
    - `docsSite` DocLink, required
      - `url` string, required
      - `availability` 'available' | 'planned', required
    - `agentIndex` DocLink, required
      - `url` string, required
      - `availability` 'available' | 'planned', required
    - `searchIndex` DocLink, required
      - `url` string, required
      - `availability` 'available' | 'planned', required
    - `surfaceContract` DocLink, required
      - `url` string, required
      - `availability` 'available' | 'planned', required
    - `cliCommands` DocLink, required
      - `url` string, required
      - `availability` 'available' | 'planned', required
    - `mcpTools` DocLink, required
      - `url` string, required
      - `availability` 'available' | 'planned', required
    - `sitemap` DocLink, required
      - `url` string, required
      - `availability` 'available' | 'planned', required
    - `robots` DocLink, required
      - `url` string, required
      - `availability` 'available' | 'planned', 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.
- `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/4534f5d25540?raw)
