{"version":1,"generatedAt":"1970-01-01T00:00:00.000Z","entries":[{"id":"page:index","kind":"page","title":"Sleeper Hit Studio Story API","url":"https://docs.sleeperhit.studio/","markdownUrl":"https://docs.sleeperhit.studio/docs.md","summary":"Agent and developer documentation for turning sources into narrated table reads and story artifacts.","content":"Sleeper Hit Studio — B2B Story API: Agent Documentation The Story API is the authenticated surface that lets agents and enterprise systems build stories programmatically. Submit sources, get back a source grounded narrative plan, approve it, run a job, and receive shareable deliverables — starting with live audio table reads, with pitch decks, storyboards, trailers, and production videos coming next. This directory is the canonical reference for agent and developer integrations. Mental model Every integration follows the same loop: Every stage is individually pollable, idempotent on re submission with the same Idempotency Key, and inspectable after failure. The artifact id and share URLs are stable across refines — embed once, revise as many times as needed. Key principle: Always fetch GET /api/v1/capabilities at the start of any new run. The manifest lists which artifact types are live...","tags":["overview","agent-docs"],"sourcePath":"docs/agents/README.md"},{"id":"page:quickstart","kind":"page","title":"Quickstart","url":"https://docs.sleeperhit.studio/quickstart","markdownUrl":"https://docs.sleeperhit.studio/quickstart.md","summary":"End-to-end source to playable table read walkthrough.","content":"Quickstart: Source to Playable Table Read This walkthrough goes from a fresh API key to a live, shareable table read URL. It covers every step in the happy path: discover capabilities, check credits, create a project, attach sources, generate and approve a plan, run a job, and read the artifact manifest. All examples use https://sleeperhit.studio as the base URL and $SLEEPERHIT API KEY as the environment variable holding your key. Prerequisites An API key from https://sleeperhit.studio/dashboard/api. The key must have scopes: story:read, story:write, source:write, credits:read, artifact:read. Add artifact:publish for optional refine, voice recast, finalize, render video, music, and SFX mutations. If any scope is missing the API returns insufficient scope — ask the account owner to add it. Enough Studio Credits to cover the quoted artifact work. Planning and source digests are included; c...","tags":["quickstart","api","cli","mcp"],"sourcePath":"docs/agents/quickstart.md"},{"id":"page:concepts","kind":"page","title":"Concepts","url":"https://docs.sleeperhit.studio/concepts","markdownUrl":"https://docs.sleeperhit.studio/concepts.md","summary":"Projects, sources, plans, jobs, artifacts, credits, and lifecycle semantics.","content":"Concepts This page defines the core abstractions in the Sleeper Hit Studio Story API. Understanding these concepts is prerequisite to using the API effectively and interpreting its responses. Projects A StoryProject is a named workspace that groups sources, plans, and jobs together. Every source, plan, and job belongs to exactly one project. Projects are long lived — you can attach more sources and generate new plans against the same project over time. Key properties: id — stable string ID. name — human readable label (1–200 chars). description — optional free form context (up to 4000 chars). metadata — arbitrary JSON blob for your own system's cross reference data. archivedAt — soft delete timestamp; archived projects still exist and can be read. sourceCount — count of non deleted sources attached to this project. A project carries no generative logic itself. It is purely a grouping and...","tags":["concepts","api"],"sourcePath":"docs/agents/concepts.md"},{"id":"page:api-reference","kind":"page","title":"API Reference","url":"https://docs.sleeperhit.studio/api-reference","markdownUrl":"https://docs.sleeperhit.studio/api-reference.md","summary":"Endpoint reference for the Story API.","content":"API Reference Base URL: https://sleeperhit.studio/api/v1 Auth: Authorization: Bearer sh <18 hex prefix <64 hex secret on every request. Content Type: application/json on all POST/PATCH bodies. Errors: always { error: { code, message, requestId } }. Match on code. The requestId is mirrored in X Request Id. Rate limit headers on every response: RateLimit Limit, RateLimit Remaining, RateLimit Reset. 429 responses also include Retry After. Authentication and scopes Keys are created at https://sleeperhit.studio/dashboard/api. A key is shown once. Scope table Scope Required for story:read GET capabilities, GET/list projects, sources, plans, jobs story:write POST/PATCH/DELETE projects; POST sources, plans, jobs; POST approve/reject/cancel source:read GET individual sources source:write POST source creation; DELETE sources artifact:read GET artifacts artifact:publish POST refine, recast, finaliz...","tags":["api","reference"],"sourcePath":"docs/agents/api-reference.md"},{"id":"page:recipes","kind":"page","title":"Recipes","url":"https://docs.sleeperhit.studio/recipes","markdownUrl":"https://docs.sleeperhit.studio/recipes.md","summary":"Task-oriented integration recipes for agents and developers.","content":"Recipes Task oriented patterns for common agent workflows. Each recipe is self contained: it describes the problem, lists the steps, and includes working code. Recipe 1: Turn an RSS feed item into a podcast table read Scenario: Your agent monitors an RSS feed and automatically generates a shareable audio experience for each new item. Steps 1. Fetch the RSS feed, parse item links. 2. For each new item URL, create a project and attach it as a url source. 3. Poll the source until READY. 4. Create a plan with mode: \"podcast\" and autoApprove: true. 5. Poll the plan until APPROVED. 6. Create a job and poll until READY. 7. Store manifest.audio.liveUrl in your database alongside the RSS item. Code Recipe 2: Ingest a PDF research report and produce a documentary table read Scenario: An agent is given a publicly accessible PDF (white paper, annual report, research study) and must produce a documen...","tags":["recipes","api","cli","mcp"],"sourcePath":"docs/agents/recipes.md"},{"id":"page:cli","kind":"page","title":"CLI","url":"https://docs.sleeperhit.studio/cli","markdownUrl":"https://docs.sleeperhit.studio/cli.md","summary":"Install, configure, and automate Sleeper Hit Studio from a terminal.","content":"@sleeperhit/cli Command line client for the Sleeper Hit Studio B2B Story API (/api/v1). It maps 1:1 onto the documented endpoints — create projects, attach sources, generate and approve a StoryPlan, run a job, watch it to completion, and open the live table read theater. The endpoints, auth, error envelope, and flow mirror docs/agents/ (README, quickstart, concepts, api reference). Nothing here contradicts those docs — the CLI is a thin, scriptable wrapper around the same HTTP surface. Requirements Node.js = 20 (uses the built in global fetch and node:crypto.randomUUID). A Sleeper Hit Studio customer API key. Create one at <https://sleeperhit.studio/dashboard/api . Recommended scopes for the full flow: story:read, story:write, source:write, credits:read, artifact:read. Install From the monorepo root (the package lives at packages/cli and is picked up by the existing packages/ workspace g...","tags":["cli","automation"],"sourcePath":"packages/cli/README.md"},{"id":"page:mcp","kind":"page","title":"MCP Server","url":"https://docs.sleeperhit.studio/mcp","markdownUrl":"https://docs.sleeperhit.studio/mcp.md","summary":"Connect the Sleeper Hit MCP server to agent clients.","content":"@sleeperhit/mcp server A Model Context Protocol server that exposes the Sleeper Hit Studio B2B Story API (/api/v1) as MCP tools. Point any MCP capable agent — Claude Desktop, Claude Code, Cursor, etc. — at it and the agent can build a story end to end: ingest sources, plan, approve, generate, and refine artifacts. It is a thin, faithful wrapper over the REST API. Tool names and endpoint paths track docs/agents/api reference.md. For the authoritative, live feature list, read the capabilities resource (it fetches GET /api/v1/capabilities). What an agent can do with this The Story API is a pipeline. The tools mirror each stage: 1. Sources — add source (type text markdown url pdf). Inline text is READY immediately; url/pdf are fetched asynchronously, so poll get source until status: READY. Each source then runs a structured digest (digestStatus). 2. Plan — create plan against a project with...","tags":["mcp","agents"],"sourcePath":"packages/mcp-server/README.md"},{"id":"page:openapi","kind":"page","title":"OpenAPI and surface map","url":"https://docs.sleeperhit.studio/openapi","markdownUrl":"https://docs.sleeperhit.studio/openapi.md","summary":"Unified operation map across API, CLI, and MCP.","content":"Unified API / CLI / MCP operation map This page is generated from the typed operation registry used by the docs site. It shows the same Sleeper Hit Studio workflow across API, CLI, and MCP surfaces. Operation Status API Scope CLI MCP Discover live capabilities available GET /api/v1/capabilities story:read sleeperhit capabilities sleeperhit://capabilities Read agent guidance available GET /api/v1/agent guidance story:read sleeperhit guidance get agent guidance Read Studio Credit balance available GET /api/v1/credits credits:read sleeperhit credits get credits Create a story project available POST /api/v1/story projects story:write sleeperhit projects create name <name create project List story projects available GET /api/v1/story projects story:read sleeperhit projects list list projects Read a story project available GET /api/v1/story projects/{projectId} story:read sleeperhit projects g...","tags":["openapi","api","cli","mcp"],"sourcePath":"packages/web/src/lib/api-v1/surface-registry.ts"},{"id":"page:distribution","kind":"page","title":"AI discovery checklist","url":"https://docs.sleeperhit.studio/distribution","markdownUrl":"https://docs.sleeperhit.studio/distribution.md","summary":"First-party and external surfaces for AI/search/MCP/npm discoverability.","content":"AI discovery and distribution checklist This checklist captures the first party and external surfaces that make Sleeper Hit Studio discoverable to agents and developers. The repo can ship the machine readable docs; owner credentials are still required for external publishing. First party surfaces shipped by this docs site https://docs.sleeperhit.studio/ crawlable human documentation. https://docs.sleeperhit.studio/agent index.json agent native docs index. https://docs.sleeperhit.studio/docs/search index.json searchable docs corpus. https://docs.sleeperhit.studio/docs/cli commands.json CLI command map. https://docs.sleeperhit.studio/docs/mcp tools.json MCP tool map. https://docs.sleeperhit.studio/robots.txt and /sitemap.xml crawler entry points. https://sleeperhit.studio/llms.txt and /llms full.txt public LLM docs map and full guide. https://sleeperhit.studio/api/v1/openapi.json, /api/v1/...","tags":["distribution","ai-discovery"],"sourcePath":"docs/goals/api-cli-mcp-self-hosted-docs-site.md"},{"id":"heading:index:mental-model","kind":"heading","title":"Mental model","url":"https://docs.sleeperhit.studio/#mental-model","markdownUrl":"https://docs.sleeperhit.studio/docs.md","summary":"Agent and developer documentation for turning sources into narrated table reads and story artifacts.","content":"Mental model","tags":["overview","agent-docs"],"sourcePath":"docs/agents/README.md"},{"id":"heading:index:what-is-live-today","kind":"heading","title":"What is live today","url":"https://docs.sleeperhit.studio/#what-is-live-today","markdownUrl":"https://docs.sleeperhit.studio/docs.md","summary":"Agent and developer documentation for turning sources into narrated table reads and story artifacts.","content":"What is live today","tags":["overview","agent-docs"],"sourcePath":"docs/agents/README.md"},{"id":"heading:index:what-is-coming-soon","kind":"heading","title":"What is coming soon","url":"https://docs.sleeperhit.studio/#what-is-coming-soon","markdownUrl":"https://docs.sleeperhit.studio/docs.md","summary":"Agent and developer documentation for turning sources into narrated table reads and story artifacts.","content":"What is coming soon","tags":["overview","agent-docs"],"sourcePath":"docs/agents/README.md"},{"id":"heading:index:pages-in-this-directory","kind":"heading","title":"Pages in this directory","url":"https://docs.sleeperhit.studio/#pages-in-this-directory","markdownUrl":"https://docs.sleeperhit.studio/docs.md","summary":"Agent and developer documentation for turning sources into narrated table reads and story artifacts.","content":"Pages in this directory","tags":["overview","agent-docs"],"sourcePath":"docs/agents/README.md"},{"id":"heading:index:machine-readable-discovery-surfaces","kind":"heading","title":"Machine-readable discovery surfaces","url":"https://docs.sleeperhit.studio/#machine-readable-discovery-surfaces","markdownUrl":"https://docs.sleeperhit.studio/docs.md","summary":"Agent and developer documentation for turning sources into narrated table reads and story artifacts.","content":"Machine-readable discovery surfaces","tags":["overview","agent-docs"],"sourcePath":"docs/agents/README.md"},{"id":"heading:index:authentication-quick-reference","kind":"heading","title":"Authentication quick reference","url":"https://docs.sleeperhit.studio/#authentication-quick-reference","markdownUrl":"https://docs.sleeperhit.studio/docs.md","summary":"Agent and developer documentation for turning sources into narrated table reads and story artifacts.","content":"Authentication quick reference","tags":["overview","agent-docs"],"sourcePath":"docs/agents/README.md"},{"id":"heading:index:pricing-note","kind":"heading","title":"Pricing note","url":"https://docs.sleeperhit.studio/#pricing-note","markdownUrl":"https://docs.sleeperhit.studio/docs.md","summary":"Agent and developer documentation for turning sources into narrated table reads and story artifacts.","content":"Pricing note","tags":["overview","agent-docs"],"sourcePath":"docs/agents/README.md"},{"id":"heading:quickstart:prerequisites","kind":"heading","title":"Prerequisites","url":"https://docs.sleeperhit.studio/quickstart#prerequisites","markdownUrl":"https://docs.sleeperhit.studio/quickstart.md","summary":"End-to-end source to playable table read walkthrough.","content":"Prerequisites","tags":["quickstart","api","cli","mcp"],"sourcePath":"docs/agents/quickstart.md"},{"id":"heading:quickstart:step-1-confirm-capabilities","kind":"heading","title":"Step 1 — Confirm capabilities","url":"https://docs.sleeperhit.studio/quickstart#step-1-confirm-capabilities","markdownUrl":"https://docs.sleeperhit.studio/quickstart.md","summary":"End-to-end source to playable table read walkthrough.","content":"Step 1 — Confirm capabilities","tags":["quickstart","api","cli","mcp"],"sourcePath":"docs/agents/quickstart.md"},{"id":"heading:quickstart:step-2-check-your-credit-balance","kind":"heading","title":"Step 2 — Check your credit balance","url":"https://docs.sleeperhit.studio/quickstart#step-2-check-your-credit-balance","markdownUrl":"https://docs.sleeperhit.studio/quickstart.md","summary":"End-to-end source to playable table read walkthrough.","content":"Step 2 — Check your credit balance","tags":["quickstart","api","cli","mcp"],"sourcePath":"docs/agents/quickstart.md"},{"id":"heading:quickstart:step-3-create-a-project","kind":"heading","title":"Step 3 — Create a project","url":"https://docs.sleeperhit.studio/quickstart#step-3-create-a-project","markdownUrl":"https://docs.sleeperhit.studio/quickstart.md","summary":"End-to-end source to playable table read walkthrough.","content":"Step 3 — Create a project","tags":["quickstart","api","cli","mcp"],"sourcePath":"docs/agents/quickstart.md"},{"id":"heading:quickstart:step-4-attach-sources","kind":"heading","title":"Step 4 — Attach sources","url":"https://docs.sleeperhit.studio/quickstart#step-4-attach-sources","markdownUrl":"https://docs.sleeperhit.studio/quickstart.md","summary":"End-to-end source to playable table read walkthrough.","content":"Step 4 — Attach sources","tags":["quickstart","api","cli","mcp"],"sourcePath":"docs/agents/quickstart.md"},{"id":"heading:quickstart:option-a-inline-text-synchronous-instant-ready","kind":"heading","title":"Option A — Inline text (synchronous, instant READY)","url":"https://docs.sleeperhit.studio/quickstart#option-a-inline-text-synchronous-instant-ready","markdownUrl":"https://docs.sleeperhit.studio/quickstart.md","summary":"End-to-end source to playable table read walkthrough.","content":"Option A — Inline text (synchronous, instant READY)","tags":["quickstart","api","cli","mcp"],"sourcePath":"docs/agents/quickstart.md"},{"id":"heading:quickstart:option-b-url-async-must-poll","kind":"heading","title":"Option B — URL (async, must poll)","url":"https://docs.sleeperhit.studio/quickstart#option-b-url-async-must-poll","markdownUrl":"https://docs.sleeperhit.studio/quickstart.md","summary":"End-to-end source to playable table read walkthrough.","content":"Option B — URL (async, must poll)","tags":["quickstart","api","cli","mcp"],"sourcePath":"docs/agents/quickstart.md"},{"id":"heading:quickstart:option-c-pdf-async-must-poll","kind":"heading","title":"Option C — PDF (async, must poll)","url":"https://docs.sleeperhit.studio/quickstart#option-c-pdf-async-must-poll","markdownUrl":"https://docs.sleeperhit.studio/quickstart.md","summary":"End-to-end source to playable table read walkthrough.","content":"Option C — PDF (async, must poll)","tags":["quickstart","api","cli","mcp"],"sourcePath":"docs/agents/quickstart.md"},{"id":"heading:quickstart:step-5-wait-for-source-digests-optional-but-recommended","kind":"heading","title":"Step 5 — Wait for source digests (optional but recommended)","url":"https://docs.sleeperhit.studio/quickstart#step-5-wait-for-source-digests-optional-but-recommended","markdownUrl":"https://docs.sleeperhit.studio/quickstart.md","summary":"End-to-end source to playable table read walkthrough.","content":"Step 5 — Wait for source digests (optional but recommended)","tags":["quickstart","api","cli","mcp"],"sourcePath":"docs/agents/quickstart.md"},{"id":"heading:quickstart:step-6-generate-a-storyplan","kind":"heading","title":"Step 6 — Generate a StoryPlan","url":"https://docs.sleeperhit.studio/quickstart#step-6-generate-a-storyplan","markdownUrl":"https://docs.sleeperhit.studio/quickstart.md","summary":"End-to-end source to playable table read walkthrough.","content":"Step 6 — Generate a StoryPlan","tags":["quickstart","api","cli","mcp"],"sourcePath":"docs/agents/quickstart.md"},{"id":"heading:quickstart:step-7-poll-the-plan-until-approved","kind":"heading","title":"Step 7 — Poll the plan until approved","url":"https://docs.sleeperhit.studio/quickstart#step-7-poll-the-plan-until-approved","markdownUrl":"https://docs.sleeperhit.studio/quickstart.md","summary":"End-to-end source to playable table read walkthrough.","content":"Step 7 — Poll the plan until approved","tags":["quickstart","api","cli","mcp"],"sourcePath":"docs/agents/quickstart.md"},{"id":"heading:quickstart:step-8-create-a-story-job","kind":"heading","title":"Step 8 — Create a story job","url":"https://docs.sleeperhit.studio/quickstart#step-8-create-a-story-job","markdownUrl":"https://docs.sleeperhit.studio/quickstart.md","summary":"End-to-end source to playable table read walkthrough.","content":"Step 8 — Create a story job","tags":["quickstart","api","cli","mcp"],"sourcePath":"docs/agents/quickstart.md"},{"id":"heading:quickstart:step-9-poll-the-job-until-terminal","kind":"heading","title":"Step 9 — Poll the job until terminal","url":"https://docs.sleeperhit.studio/quickstart#step-9-poll-the-job-until-terminal","markdownUrl":"https://docs.sleeperhit.studio/quickstart.md","summary":"End-to-end source to playable table read walkthrough.","content":"Step 9 — Poll the job until terminal","tags":["quickstart","api","cli","mcp"],"sourcePath":"docs/agents/quickstart.md"},{"id":"heading:quickstart:step-10-read-the-artifact-manifest","kind":"heading","title":"Step 10 — Read the artifact manifest","url":"https://docs.sleeperhit.studio/quickstart#step-10-read-the-artifact-manifest","markdownUrl":"https://docs.sleeperhit.studio/quickstart.md","summary":"End-to-end source to playable table read walkthrough.","content":"Step 10 — Read the artifact manifest","tags":["quickstart","api","cli","mcp"],"sourcePath":"docs/agents/quickstart.md"},{"id":"heading:quickstart:optional-refine-the-artifact","kind":"heading","title":"Optional: refine the artifact","url":"https://docs.sleeperhit.studio/quickstart#optional-refine-the-artifact","markdownUrl":"https://docs.sleeperhit.studio/quickstart.md","summary":"End-to-end source to playable table read walkthrough.","content":"Optional: refine the artifact","tags":["quickstart","api","cli","mcp"],"sourcePath":"docs/agents/quickstart.md"},{"id":"heading:quickstart:optional-recast-a-voice-add-music-or-add-sfx","kind":"heading","title":"Optional: recast a voice, add music, or add SFX","url":"https://docs.sleeperhit.studio/quickstart#optional-recast-a-voice-add-music-or-add-sfx","markdownUrl":"https://docs.sleeperhit.studio/quickstart.md","summary":"End-to-end source to playable table read walkthrough.","content":"Optional: recast a voice, add music, or add SFX","tags":["quickstart","api","cli","mcp"],"sourcePath":"docs/agents/quickstart.md"},{"id":"heading:quickstart:optional-finalize-an-mp3-or-mp4","kind":"heading","title":"Optional: finalize an MP3 or MP4","url":"https://docs.sleeperhit.studio/quickstart#optional-finalize-an-mp3-or-mp4","markdownUrl":"https://docs.sleeperhit.studio/quickstart.md","summary":"End-to-end source to playable table read walkthrough.","content":"Optional: finalize an MP3 or MP4","tags":["quickstart","api","cli","mcp"],"sourcePath":"docs/agents/quickstart.md"},{"id":"heading:quickstart:complete-node-js-example","kind":"heading","title":"Complete Node.js example","url":"https://docs.sleeperhit.studio/quickstart#complete-node-js-example","markdownUrl":"https://docs.sleeperhit.studio/quickstart.md","summary":"End-to-end source to playable table read walkthrough.","content":"Complete Node.js example","tags":["quickstart","api","cli","mcp"],"sourcePath":"docs/agents/quickstart.md"},{"id":"heading:quickstart:error-handling-essentials","kind":"heading","title":"Error handling essentials","url":"https://docs.sleeperhit.studio/quickstart#error-handling-essentials","markdownUrl":"https://docs.sleeperhit.studio/quickstart.md","summary":"End-to-end source to playable table read walkthrough.","content":"Error handling essentials","tags":["quickstart","api","cli","mcp"],"sourcePath":"docs/agents/quickstart.md"},{"id":"heading:concepts:projects","kind":"heading","title":"Projects","url":"https://docs.sleeperhit.studio/concepts#projects","markdownUrl":"https://docs.sleeperhit.studio/concepts.md","summary":"Projects, sources, plans, jobs, artifacts, credits, and lifecycle semantics.","content":"Projects","tags":["concepts","api"],"sourcePath":"docs/agents/concepts.md"},{"id":"heading:concepts:sources","kind":"heading","title":"Sources","url":"https://docs.sleeperhit.studio/concepts#sources","markdownUrl":"https://docs.sleeperhit.studio/concepts.md","summary":"Projects, sources, plans, jobs, artifacts, credits, and lifecycle semantics.","content":"Sources","tags":["concepts","api"],"sourcePath":"docs/agents/concepts.md"},{"id":"heading:concepts:source-types","kind":"heading","title":"Source types","url":"https://docs.sleeperhit.studio/concepts#source-types","markdownUrl":"https://docs.sleeperhit.studio/concepts.md","summary":"Projects, sources, plans, jobs, artifacts, credits, and lifecycle semantics.","content":"Source types","tags":["concepts","api"],"sourcePath":"docs/agents/concepts.md"},{"id":"heading:concepts:source-lifecycle-status","kind":"heading","title":"Source lifecycle (status)","url":"https://docs.sleeperhit.studio/concepts#source-lifecycle-status","markdownUrl":"https://docs.sleeperhit.studio/concepts.md","summary":"Projects, sources, plans, jobs, artifacts, credits, and lifecycle semantics.","content":"Source lifecycle (status)","tags":["concepts","api"],"sourcePath":"docs/agents/concepts.md"},{"id":"heading:concepts:source-fields","kind":"heading","title":"Source fields","url":"https://docs.sleeperhit.studio/concepts#source-fields","markdownUrl":"https://docs.sleeperhit.studio/concepts.md","summary":"Projects, sources, plans, jobs, artifacts, credits, and lifecycle semantics.","content":"Source fields","tags":["concepts","api"],"sourcePath":"docs/agents/concepts.md"},{"id":"heading:concepts:retention-policies","kind":"heading","title":"Retention policies","url":"https://docs.sleeperhit.studio/concepts#retention-policies","markdownUrl":"https://docs.sleeperhit.studio/concepts.md","summary":"Projects, sources, plans, jobs, artifacts, credits, and lifecycle semantics.","content":"Retention policies","tags":["concepts","api"],"sourcePath":"docs/agents/concepts.md"},{"id":"heading:concepts:ssrf-guards-url-and-pdf","kind":"heading","title":"SSRF guards (URL and PDF)","url":"https://docs.sleeperhit.studio/concepts#ssrf-guards-url-and-pdf","markdownUrl":"https://docs.sleeperhit.studio/concepts.md","summary":"Projects, sources, plans, jobs, artifacts, credits, and lifecycle semantics.","content":"SSRF guards (URL and PDF)","tags":["concepts","api"],"sourcePath":"docs/agents/concepts.md"},{"id":"heading:concepts:source-digest","kind":"heading","title":"Source digest","url":"https://docs.sleeperhit.studio/concepts#source-digest","markdownUrl":"https://docs.sleeperhit.studio/concepts.md","summary":"Projects, sources, plans, jobs, artifacts, credits, and lifecycle semantics.","content":"Source digest","tags":["concepts","api"],"sourcePath":"docs/agents/concepts.md"},{"id":"heading:concepts:digest-lifecycle-digeststatus","kind":"heading","title":"Digest lifecycle (digestStatus)","url":"https://docs.sleeperhit.studio/concepts#digest-lifecycle-digeststatus","markdownUrl":"https://docs.sleeperhit.studio/concepts.md","summary":"Projects, sources, plans, jobs, artifacts, credits, and lifecycle semantics.","content":"Digest lifecycle (digestStatus)","tags":["concepts","api"],"sourcePath":"docs/agents/concepts.md"},{"id":"heading:concepts:digest-fields-when-digeststatus-ready","kind":"heading","title":"Digest fields (when digestStatus: READY)","url":"https://docs.sleeperhit.studio/concepts#digest-fields-when-digeststatus-ready","markdownUrl":"https://docs.sleeperhit.studio/concepts.md","summary":"Projects, sources, plans, jobs, artifacts, credits, and lifecycle semantics.","content":"Digest fields (when digestStatus: READY)","tags":["concepts","api"],"sourcePath":"docs/agents/concepts.md"},{"id":"heading:concepts:storyplan","kind":"heading","title":"StoryPlan","url":"https://docs.sleeperhit.studio/concepts#storyplan","markdownUrl":"https://docs.sleeperhit.studio/concepts.md","summary":"Projects, sources, plans, jobs, artifacts, credits, and lifecycle semantics.","content":"StoryPlan","tags":["concepts","api"],"sourcePath":"docs/agents/concepts.md"},{"id":"heading:concepts:plan-lifecycle-status","kind":"heading","title":"Plan lifecycle (status)","url":"https://docs.sleeperhit.studio/concepts#plan-lifecycle-status","markdownUrl":"https://docs.sleeperhit.studio/concepts.md","summary":"Projects, sources, plans, jobs, artifacts, credits, and lifecycle semantics.","content":"Plan lifecycle (status)","tags":["concepts","api"],"sourcePath":"docs/agents/concepts.md"},{"id":"heading:concepts:the-autoapprove-flag","kind":"heading","title":"The autoApprove flag","url":"https://docs.sleeperhit.studio/concepts#the-autoapprove-flag","markdownUrl":"https://docs.sleeperhit.studio/concepts.md","summary":"Projects, sources, plans, jobs, artifacts, credits, and lifecycle semantics.","content":"The autoApprove flag","tags":["concepts","api"],"sourcePath":"docs/agents/concepts.md"},{"id":"heading:concepts:the-plan-envelope","kind":"heading","title":"The plan envelope","url":"https://docs.sleeperhit.studio/concepts#the-plan-envelope","markdownUrl":"https://docs.sleeperhit.studio/concepts.md","summary":"Projects, sources, plans, jobs, artifacts, credits, and lifecycle semantics.","content":"The plan envelope","tags":["concepts","api"],"sourcePath":"docs/agents/concepts.md"},{"id":"heading:concepts:beat-roles","kind":"heading","title":"Beat roles","url":"https://docs.sleeperhit.studio/concepts#beat-roles","markdownUrl":"https://docs.sleeperhit.studio/concepts.md","summary":"Projects, sources, plans, jobs, artifacts, credits, and lifecycle semantics.","content":"Beat roles","tags":["concepts","api"],"sourcePath":"docs/agents/concepts.md"},{"id":"heading:concepts:the-credit-quote","kind":"heading","title":"The credit quote","url":"https://docs.sleeperhit.studio/concepts#the-credit-quote","markdownUrl":"https://docs.sleeperhit.studio/concepts.md","summary":"Projects, sources, plans, jobs, artifacts, credits, and lifecycle semantics.","content":"The credit quote","tags":["concepts","api"],"sourcePath":"docs/agents/concepts.md"},{"id":"heading:concepts:refining-a-plan-via-the-refine-endpoint-see-artifacts","kind":"heading","title":"Refining a plan (via the refine endpoint — see Artifacts)","url":"https://docs.sleeperhit.studio/concepts#refining-a-plan-via-the-refine-endpoint-see-artifacts","markdownUrl":"https://docs.sleeperhit.studio/concepts.md","summary":"Projects, sources, plans, jobs, artifacts, credits, and lifecycle semantics.","content":"Refining a plan (via the refine endpoint — see Artifacts)","tags":["concepts","api"],"sourcePath":"docs/agents/concepts.md"},{"id":"heading:concepts:story-jobs","kind":"heading","title":"Story Jobs","url":"https://docs.sleeperhit.studio/concepts#story-jobs","markdownUrl":"https://docs.sleeperhit.studio/concepts.md","summary":"Projects, sources, plans, jobs, artifacts, credits, and lifecycle semantics.","content":"Story Jobs","tags":["concepts","api"],"sourcePath":"docs/agents/concepts.md"},{"id":"heading:concepts:job-lifecycle-status","kind":"heading","title":"Job lifecycle (status)","url":"https://docs.sleeperhit.studio/concepts#job-lifecycle-status","markdownUrl":"https://docs.sleeperhit.studio/concepts.md","summary":"Projects, sources, plans, jobs, artifacts, credits, and lifecycle semantics.","content":"Job lifecycle (status)","tags":["concepts","api"],"sourcePath":"docs/agents/concepts.md"},{"id":"heading:concepts:canceling-a-job","kind":"heading","title":"Canceling a job","url":"https://docs.sleeperhit.studio/concepts#canceling-a-job","markdownUrl":"https://docs.sleeperhit.studio/concepts.md","summary":"Projects, sources, plans, jobs, artifacts, credits, and lifecycle semantics.","content":"Canceling a job","tags":["concepts","api"],"sourcePath":"docs/agents/concepts.md"},{"id":"heading:concepts:idempotency-on-job-creation","kind":"heading","title":"Idempotency on job creation","url":"https://docs.sleeperhit.studio/concepts#idempotency-on-job-creation","markdownUrl":"https://docs.sleeperhit.studio/concepts.md","summary":"Projects, sources, plans, jobs, artifacts, credits, and lifecycle semantics.","content":"Idempotency on job creation","tags":["concepts","api"],"sourcePath":"docs/agents/concepts.md"},{"id":"heading:concepts:artifacts","kind":"heading","title":"Artifacts","url":"https://docs.sleeperhit.studio/concepts#artifacts","markdownUrl":"https://docs.sleeperhit.studio/concepts.md","summary":"Projects, sources, plans, jobs, artifacts, credits, and lifecycle semantics.","content":"Artifacts","tags":["concepts","api"],"sourcePath":"docs/agents/concepts.md"},{"id":"heading:concepts:artifact-lifecycle-status","kind":"heading","title":"Artifact lifecycle (status)","url":"https://docs.sleeperhit.studio/concepts#artifact-lifecycle-status","markdownUrl":"https://docs.sleeperhit.studio/concepts.md","summary":"Projects, sources, plans, jobs, artifacts, credits, and lifecycle semantics.","content":"Artifact lifecycle (status)","tags":["concepts","api"],"sourcePath":"docs/agents/concepts.md"},{"id":"heading:concepts:the-table-read-artifact","kind":"heading","title":"The table read artifact","url":"https://docs.sleeperhit.studio/concepts#the-table-read-artifact","markdownUrl":"https://docs.sleeperhit.studio/concepts.md","summary":"Projects, sources, plans, jobs, artifacts, credits, and lifecycle semantics.","content":"The table read artifact","tags":["concepts","api"],"sourcePath":"docs/agents/concepts.md"},{"id":"heading:concepts:other-artifact-types-coming-soon","kind":"heading","title":"Other artifact types (coming soon)","url":"https://docs.sleeperhit.studio/concepts#other-artifact-types-coming-soon","markdownUrl":"https://docs.sleeperhit.studio/concepts.md","summary":"Projects, sources, plans, jobs, artifacts, credits, and lifecycle semantics.","content":"Other artifact types (coming soon)","tags":["concepts","api"],"sourcePath":"docs/agents/concepts.md"},{"id":"heading:concepts:credits","kind":"heading","title":"Credits","url":"https://docs.sleeperhit.studio/concepts#credits","markdownUrl":"https://docs.sleeperhit.studio/concepts.md","summary":"Projects, sources, plans, jobs, artifacts, credits, and lifecycle semantics.","content":"Credits","tags":["concepts","api"],"sourcePath":"docs/agents/concepts.md"},{"id":"heading:concepts:credit-lifecycle-for-a-job","kind":"heading","title":"Credit lifecycle for a job","url":"https://docs.sleeperhit.studio/concepts#credit-lifecycle-for-a-job","markdownUrl":"https://docs.sleeperhit.studio/concepts.md","summary":"Projects, sources, plans, jobs, artifacts, credits, and lifecycle semantics.","content":"Credit lifecycle for a job","tags":["concepts","api"],"sourcePath":"docs/agents/concepts.md"},{"id":"heading:concepts:share-tokens","kind":"heading","title":"Share tokens","url":"https://docs.sleeperhit.studio/concepts#share-tokens","markdownUrl":"https://docs.sleeperhit.studio/concepts.md","summary":"Projects, sources, plans, jobs, artifacts, credits, and lifecycle semantics.","content":"Share tokens","tags":["concepts","api"],"sourcePath":"docs/agents/concepts.md"},{"id":"heading:concepts:scopes","kind":"heading","title":"Scopes","url":"https://docs.sleeperhit.studio/concepts#scopes","markdownUrl":"https://docs.sleeperhit.studio/concepts.md","summary":"Projects, sources, plans, jobs, artifacts, credits, and lifecycle semantics.","content":"Scopes","tags":["concepts","api"],"sourcePath":"docs/agents/concepts.md"},{"id":"heading:concepts:idempotency","kind":"heading","title":"Idempotency","url":"https://docs.sleeperhit.studio/concepts#idempotency","markdownUrl":"https://docs.sleeperhit.studio/concepts.md","summary":"Projects, sources, plans, jobs, artifacts, credits, and lifecycle semantics.","content":"Idempotency","tags":["concepts","api"],"sourcePath":"docs/agents/concepts.md"},{"id":"heading:concepts:versioning","kind":"heading","title":"Versioning","url":"https://docs.sleeperhit.studio/concepts#versioning","markdownUrl":"https://docs.sleeperhit.studio/concepts.md","summary":"Projects, sources, plans, jobs, artifacts, credits, and lifecycle semantics.","content":"Versioning","tags":["concepts","api"],"sourcePath":"docs/agents/concepts.md"},{"id":"heading:api-reference:authentication-and-scopes","kind":"heading","title":"Authentication and scopes","url":"https://docs.sleeperhit.studio/api-reference#authentication-and-scopes","markdownUrl":"https://docs.sleeperhit.studio/api-reference.md","summary":"Endpoint reference for the Story API.","content":"Authentication and scopes","tags":["api","reference"],"sourcePath":"docs/agents/api-reference.md"},{"id":"heading:api-reference:scope-table","kind":"heading","title":"Scope table","url":"https://docs.sleeperhit.studio/api-reference#scope-table","markdownUrl":"https://docs.sleeperhit.studio/api-reference.md","summary":"Endpoint reference for the Story API.","content":"Scope table","tags":["api","reference"],"sourcePath":"docs/agents/api-reference.md"},{"id":"heading:api-reference:key-format","kind":"heading","title":"Key format","url":"https://docs.sleeperhit.studio/api-reference#key-format","markdownUrl":"https://docs.sleeperhit.studio/api-reference.md","summary":"Endpoint reference for the Story API.","content":"Key format","tags":["api","reference"],"sourcePath":"docs/agents/api-reference.md"},{"id":"heading:api-reference:discovery","kind":"heading","title":"Discovery","url":"https://docs.sleeperhit.studio/api-reference#discovery","markdownUrl":"https://docs.sleeperhit.studio/api-reference.md","summary":"Endpoint reference for the Story API.","content":"Discovery","tags":["api","reference"],"sourcePath":"docs/agents/api-reference.md"},{"id":"heading:api-reference:get-capabilities","kind":"heading","title":"GET /capabilities","url":"https://docs.sleeperhit.studio/api-reference#get-capabilities","markdownUrl":"https://docs.sleeperhit.studio/api-reference.md","summary":"Endpoint reference for the Story API.","content":"GET /capabilities","tags":["api","reference"],"sourcePath":"docs/agents/api-reference.md"},{"id":"heading:api-reference:get-openapi-json","kind":"heading","title":"GET /openapi.json","url":"https://docs.sleeperhit.studio/api-reference#get-openapi-json","markdownUrl":"https://docs.sleeperhit.studio/api-reference.md","summary":"Endpoint reference for the Story API.","content":"GET /openapi.json","tags":["api","reference"],"sourcePath":"docs/agents/api-reference.md"},{"id":"heading:api-reference:get-examples","kind":"heading","title":"GET /examples","url":"https://docs.sleeperhit.studio/api-reference#get-examples","markdownUrl":"https://docs.sleeperhit.studio/api-reference.md","summary":"Endpoint reference for the Story API.","content":"GET /examples","tags":["api","reference"],"sourcePath":"docs/agents/api-reference.md"},{"id":"heading:api-reference:credits","kind":"heading","title":"Credits","url":"https://docs.sleeperhit.studio/api-reference#credits","markdownUrl":"https://docs.sleeperhit.studio/api-reference.md","summary":"Endpoint reference for the Story API.","content":"Credits","tags":["api","reference"],"sourcePath":"docs/agents/api-reference.md"},{"id":"heading:api-reference:get-credits","kind":"heading","title":"GET /credits","url":"https://docs.sleeperhit.studio/api-reference#get-credits","markdownUrl":"https://docs.sleeperhit.studio/api-reference.md","summary":"Endpoint reference for the Story API.","content":"GET /credits","tags":["api","reference"],"sourcePath":"docs/agents/api-reference.md"},{"id":"heading:api-reference:story-projects","kind":"heading","title":"Story Projects","url":"https://docs.sleeperhit.studio/api-reference#story-projects","markdownUrl":"https://docs.sleeperhit.studio/api-reference.md","summary":"Endpoint reference for the Story API.","content":"Story Projects","tags":["api","reference"],"sourcePath":"docs/agents/api-reference.md"},{"id":"heading:api-reference:post-story-projects","kind":"heading","title":"POST /story-projects","url":"https://docs.sleeperhit.studio/api-reference#post-story-projects","markdownUrl":"https://docs.sleeperhit.studio/api-reference.md","summary":"Endpoint reference for the Story API.","content":"POST /story-projects","tags":["api","reference"],"sourcePath":"docs/agents/api-reference.md"},{"id":"heading:api-reference:get-story-projects","kind":"heading","title":"GET /story-projects","url":"https://docs.sleeperhit.studio/api-reference#get-story-projects","markdownUrl":"https://docs.sleeperhit.studio/api-reference.md","summary":"Endpoint reference for the Story API.","content":"GET /story-projects","tags":["api","reference"],"sourcePath":"docs/agents/api-reference.md"},{"id":"heading:api-reference:get-story-projects-projectid","kind":"heading","title":"GET /story-projects/{projectId}","url":"https://docs.sleeperhit.studio/api-reference#get-story-projects-projectid","markdownUrl":"https://docs.sleeperhit.studio/api-reference.md","summary":"Endpoint reference for the Story API.","content":"GET /story-projects/{projectId}","tags":["api","reference"],"sourcePath":"docs/agents/api-reference.md"},{"id":"heading:api-reference:patch-story-projects-projectid","kind":"heading","title":"PATCH /story-projects/{projectId}","url":"https://docs.sleeperhit.studio/api-reference#patch-story-projects-projectid","markdownUrl":"https://docs.sleeperhit.studio/api-reference.md","summary":"Endpoint reference for the Story API.","content":"PATCH /story-projects/{projectId}","tags":["api","reference"],"sourcePath":"docs/agents/api-reference.md"},{"id":"heading:api-reference:delete-story-projects-projectid","kind":"heading","title":"DELETE /story-projects/{projectId}","url":"https://docs.sleeperhit.studio/api-reference#delete-story-projects-projectid","markdownUrl":"https://docs.sleeperhit.studio/api-reference.md","summary":"Endpoint reference for the Story API.","content":"DELETE /story-projects/{projectId}","tags":["api","reference"],"sourcePath":"docs/agents/api-reference.md"},{"id":"heading:api-reference:sources","kind":"heading","title":"Sources","url":"https://docs.sleeperhit.studio/api-reference#sources","markdownUrl":"https://docs.sleeperhit.studio/api-reference.md","summary":"Endpoint reference for the Story API.","content":"Sources","tags":["api","reference"],"sourcePath":"docs/agents/api-reference.md"},{"id":"heading:api-reference:post-story-projects-projectid-sources","kind":"heading","title":"POST /story-projects/{projectId}/sources","url":"https://docs.sleeperhit.studio/api-reference#post-story-projects-projectid-sources","markdownUrl":"https://docs.sleeperhit.studio/api-reference.md","summary":"Endpoint reference for the Story API.","content":"POST /story-projects/{projectId}/sources","tags":["api","reference"],"sourcePath":"docs/agents/api-reference.md"},{"id":"heading:api-reference:get-story-projects-projectid-sources","kind":"heading","title":"GET /story-projects/{projectId}/sources","url":"https://docs.sleeperhit.studio/api-reference#get-story-projects-projectid-sources","markdownUrl":"https://docs.sleeperhit.studio/api-reference.md","summary":"Endpoint reference for the Story API.","content":"GET /story-projects/{projectId}/sources","tags":["api","reference"],"sourcePath":"docs/agents/api-reference.md"},{"id":"heading:api-reference:get-story-projects-projectid-sources-sourceid","kind":"heading","title":"GET /story-projects/{projectId}/sources/{sourceId}","url":"https://docs.sleeperhit.studio/api-reference#get-story-projects-projectid-sources-sourceid","markdownUrl":"https://docs.sleeperhit.studio/api-reference.md","summary":"Endpoint reference for the Story API.","content":"GET /story-projects/{projectId}/sources/{sourceId}","tags":["api","reference"],"sourcePath":"docs/agents/api-reference.md"},{"id":"heading:api-reference:delete-story-projects-projectid-sources-sourceid","kind":"heading","title":"DELETE /story-projects/{projectId}/sources/{sourceId}","url":"https://docs.sleeperhit.studio/api-reference#delete-story-projects-projectid-sources-sourceid","markdownUrl":"https://docs.sleeperhit.studio/api-reference.md","summary":"Endpoint reference for the Story API.","content":"DELETE /story-projects/{projectId}/sources/{sourceId}","tags":["api","reference"],"sourcePath":"docs/agents/api-reference.md"},{"id":"heading:api-reference:story-plans","kind":"heading","title":"Story Plans","url":"https://docs.sleeperhit.studio/api-reference#story-plans","markdownUrl":"https://docs.sleeperhit.studio/api-reference.md","summary":"Endpoint reference for the Story API.","content":"Story Plans","tags":["api","reference"],"sourcePath":"docs/agents/api-reference.md"},{"id":"heading:api-reference:post-story-projects-projectid-story-plans","kind":"heading","title":"POST /story-projects/{projectId}/story-plans","url":"https://docs.sleeperhit.studio/api-reference#post-story-projects-projectid-story-plans","markdownUrl":"https://docs.sleeperhit.studio/api-reference.md","summary":"Endpoint reference for the Story API.","content":"POST /story-projects/{projectId}/story-plans","tags":["api","reference"],"sourcePath":"docs/agents/api-reference.md"},{"id":"heading:api-reference:get-story-projects-projectid-story-plans","kind":"heading","title":"GET /story-projects/{projectId}/story-plans","url":"https://docs.sleeperhit.studio/api-reference#get-story-projects-projectid-story-plans","markdownUrl":"https://docs.sleeperhit.studio/api-reference.md","summary":"Endpoint reference for the Story API.","content":"GET /story-projects/{projectId}/story-plans","tags":["api","reference"],"sourcePath":"docs/agents/api-reference.md"},{"id":"heading:api-reference:get-story-plans-planid","kind":"heading","title":"GET /story-plans/{planId}","url":"https://docs.sleeperhit.studio/api-reference#get-story-plans-planid","markdownUrl":"https://docs.sleeperhit.studio/api-reference.md","summary":"Endpoint reference for the Story API.","content":"GET /story-plans/{planId}","tags":["api","reference"],"sourcePath":"docs/agents/api-reference.md"},{"id":"heading:api-reference:post-story-plans-planid-approve","kind":"heading","title":"POST /story-plans/{planId}/approve","url":"https://docs.sleeperhit.studio/api-reference#post-story-plans-planid-approve","markdownUrl":"https://docs.sleeperhit.studio/api-reference.md","summary":"Endpoint reference for the Story API.","content":"POST /story-plans/{planId}/approve","tags":["api","reference"],"sourcePath":"docs/agents/api-reference.md"},{"id":"heading:api-reference:post-story-plans-planid-reject","kind":"heading","title":"POST /story-plans/{planId}/reject","url":"https://docs.sleeperhit.studio/api-reference#post-story-plans-planid-reject","markdownUrl":"https://docs.sleeperhit.studio/api-reference.md","summary":"Endpoint reference for the Story API.","content":"POST /story-plans/{planId}/reject","tags":["api","reference"],"sourcePath":"docs/agents/api-reference.md"},{"id":"heading:api-reference:story-jobs","kind":"heading","title":"Story Jobs","url":"https://docs.sleeperhit.studio/api-reference#story-jobs","markdownUrl":"https://docs.sleeperhit.studio/api-reference.md","summary":"Endpoint reference for the Story API.","content":"Story Jobs","tags":["api","reference"],"sourcePath":"docs/agents/api-reference.md"},{"id":"heading:api-reference:post-story-jobs","kind":"heading","title":"POST /story-jobs","url":"https://docs.sleeperhit.studio/api-reference#post-story-jobs","markdownUrl":"https://docs.sleeperhit.studio/api-reference.md","summary":"Endpoint reference for the Story API.","content":"POST /story-jobs","tags":["api","reference"],"sourcePath":"docs/agents/api-reference.md"},{"id":"heading:api-reference:get-story-jobs","kind":"heading","title":"GET /story-jobs","url":"https://docs.sleeperhit.studio/api-reference#get-story-jobs","markdownUrl":"https://docs.sleeperhit.studio/api-reference.md","summary":"Endpoint reference for the Story API.","content":"GET /story-jobs","tags":["api","reference"],"sourcePath":"docs/agents/api-reference.md"},{"id":"heading:api-reference:get-story-jobs-jobid","kind":"heading","title":"GET /story-jobs/{jobId}","url":"https://docs.sleeperhit.studio/api-reference#get-story-jobs-jobid","markdownUrl":"https://docs.sleeperhit.studio/api-reference.md","summary":"Endpoint reference for the Story API.","content":"GET /story-jobs/{jobId}","tags":["api","reference"],"sourcePath":"docs/agents/api-reference.md"},{"id":"heading:api-reference:post-story-jobs-jobid-cancel","kind":"heading","title":"POST /story-jobs/{jobId}/cancel","url":"https://docs.sleeperhit.studio/api-reference#post-story-jobs-jobid-cancel","markdownUrl":"https://docs.sleeperhit.studio/api-reference.md","summary":"Endpoint reference for the Story API.","content":"POST /story-jobs/{jobId}/cancel","tags":["api","reference"],"sourcePath":"docs/agents/api-reference.md"},{"id":"heading:api-reference:get-story-jobs-jobid-artifacts","kind":"heading","title":"GET /story-jobs/{jobId}/artifacts","url":"https://docs.sleeperhit.studio/api-reference#get-story-jobs-jobid-artifacts","markdownUrl":"https://docs.sleeperhit.studio/api-reference.md","summary":"Endpoint reference for the Story API.","content":"GET /story-jobs/{jobId}/artifacts","tags":["api","reference"],"sourcePath":"docs/agents/api-reference.md"},{"id":"heading:api-reference:artifacts","kind":"heading","title":"Artifacts","url":"https://docs.sleeperhit.studio/api-reference#artifacts","markdownUrl":"https://docs.sleeperhit.studio/api-reference.md","summary":"Endpoint reference for the Story API.","content":"Artifacts","tags":["api","reference"],"sourcePath":"docs/agents/api-reference.md"},{"id":"heading:api-reference:get-artifacts-artifactid","kind":"heading","title":"GET /artifacts/{artifactId}","url":"https://docs.sleeperhit.studio/api-reference#get-artifacts-artifactid","markdownUrl":"https://docs.sleeperhit.studio/api-reference.md","summary":"Endpoint reference for the Story API.","content":"GET /artifacts/{artifactId}","tags":["api","reference"],"sourcePath":"docs/agents/api-reference.md"},{"id":"heading:api-reference:post-artifacts-artifactid-render-video","kind":"heading","title":"POST /artifacts/{artifactId}/render-video","url":"https://docs.sleeperhit.studio/api-reference#post-artifacts-artifactid-render-video","markdownUrl":"https://docs.sleeperhit.studio/api-reference.md","summary":"Endpoint reference for the Story API.","content":"POST /artifacts/{artifactId}/render-video","tags":["api","reference"],"sourcePath":"docs/agents/api-reference.md"},{"id":"heading:api-reference:post-artifacts-artifactid-refine","kind":"heading","title":"POST /artifacts/{artifactId}/refine","url":"https://docs.sleeperhit.studio/api-reference#post-artifacts-artifactid-refine","markdownUrl":"https://docs.sleeperhit.studio/api-reference.md","summary":"Endpoint reference for the Story API.","content":"POST /artifacts/{artifactId}/refine","tags":["api","reference"],"sourcePath":"docs/agents/api-reference.md"},{"id":"heading:api-reference:post-artifacts-artifactid-finalize","kind":"heading","title":"POST /artifacts/{artifactId}/finalize","url":"https://docs.sleeperhit.studio/api-reference#post-artifacts-artifactid-finalize","markdownUrl":"https://docs.sleeperhit.studio/api-reference.md","summary":"Endpoint reference for the Story API.","content":"POST /artifacts/{artifactId}/finalize","tags":["api","reference"],"sourcePath":"docs/agents/api-reference.md"},{"id":"heading:api-reference:post-artifacts-artifactid-voice","kind":"heading","title":"POST /artifacts/{artifactId}/voice","url":"https://docs.sleeperhit.studio/api-reference#post-artifacts-artifactid-voice","markdownUrl":"https://docs.sleeperhit.studio/api-reference.md","summary":"Endpoint reference for the Story API.","content":"POST /artifacts/{artifactId}/voice","tags":["api","reference"],"sourcePath":"docs/agents/api-reference.md"},{"id":"heading:api-reference:post-artifacts-artifactid-coverage","kind":"heading","title":"POST /artifacts/{artifactId}/coverage","url":"https://docs.sleeperhit.studio/api-reference#post-artifacts-artifactid-coverage","markdownUrl":"https://docs.sleeperhit.studio/api-reference.md","summary":"Endpoint reference for the Story API.","content":"POST /artifacts/{artifactId}/coverage","tags":["api","reference"],"sourcePath":"docs/agents/api-reference.md"},{"id":"heading:api-reference:get-artifacts-artifactid-coverage","kind":"heading","title":"GET /artifacts/{artifactId}/coverage","url":"https://docs.sleeperhit.studio/api-reference#get-artifacts-artifactid-coverage","markdownUrl":"https://docs.sleeperhit.studio/api-reference.md","summary":"Endpoint reference for the Story API.","content":"GET /artifacts/{artifactId}/coverage","tags":["api","reference"],"sourcePath":"docs/agents/api-reference.md"},{"id":"heading:api-reference:post-artifacts-artifactid-music","kind":"heading","title":"POST /artifacts/{artifactId}/music","url":"https://docs.sleeperhit.studio/api-reference#post-artifacts-artifactid-music","markdownUrl":"https://docs.sleeperhit.studio/api-reference.md","summary":"Endpoint reference for the Story API.","content":"POST /artifacts/{artifactId}/music","tags":["api","reference"],"sourcePath":"docs/agents/api-reference.md"},{"id":"heading:api-reference:get-artifacts-artifactid-music","kind":"heading","title":"GET /artifacts/{artifactId}/music","url":"https://docs.sleeperhit.studio/api-reference#get-artifacts-artifactid-music","markdownUrl":"https://docs.sleeperhit.studio/api-reference.md","summary":"Endpoint reference for the Story API.","content":"GET /artifacts/{artifactId}/music","tags":["api","reference"],"sourcePath":"docs/agents/api-reference.md"},{"id":"heading:api-reference:post-artifacts-artifactid-sfx","kind":"heading","title":"POST /artifacts/{artifactId}/sfx","url":"https://docs.sleeperhit.studio/api-reference#post-artifacts-artifactid-sfx","markdownUrl":"https://docs.sleeperhit.studio/api-reference.md","summary":"Endpoint reference for the Story API.","content":"POST /artifacts/{artifactId}/sfx","tags":["api","reference"],"sourcePath":"docs/agents/api-reference.md"},{"id":"heading:api-reference:get-artifacts-artifactid-sfx","kind":"heading","title":"GET /artifacts/{artifactId}/sfx","url":"https://docs.sleeperhit.studio/api-reference#get-artifacts-artifactid-sfx","markdownUrl":"https://docs.sleeperhit.studio/api-reference.md","summary":"Endpoint reference for the Story API.","content":"GET /artifacts/{artifactId}/sfx","tags":["api","reference"],"sourcePath":"docs/agents/api-reference.md"},{"id":"heading:api-reference:error-codes","kind":"heading","title":"Error codes","url":"https://docs.sleeperhit.studio/api-reference#error-codes","markdownUrl":"https://docs.sleeperhit.studio/api-reference.md","summary":"Endpoint reference for the Story API.","content":"Error codes","tags":["api","reference"],"sourcePath":"docs/agents/api-reference.md"},{"id":"heading:api-reference:error-envelope","kind":"heading","title":"Error envelope","url":"https://docs.sleeperhit.studio/api-reference#error-envelope","markdownUrl":"https://docs.sleeperhit.studio/api-reference.md","summary":"Endpoint reference for the Story API.","content":"Error envelope","tags":["api","reference"],"sourcePath":"docs/agents/api-reference.md"},{"id":"heading:api-reference:response-headers","kind":"heading","title":"Response headers","url":"https://docs.sleeperhit.studio/api-reference#response-headers","markdownUrl":"https://docs.sleeperhit.studio/api-reference.md","summary":"Endpoint reference for the Story API.","content":"Response headers","tags":["api","reference"],"sourcePath":"docs/agents/api-reference.md"},{"id":"heading:api-reference:idempotency","kind":"heading","title":"Idempotency","url":"https://docs.sleeperhit.studio/api-reference#idempotency","markdownUrl":"https://docs.sleeperhit.studio/api-reference.md","summary":"Endpoint reference for the Story API.","content":"Idempotency","tags":["api","reference"],"sourcePath":"docs/agents/api-reference.md"},{"id":"heading:api-reference:rate-limits","kind":"heading","title":"Rate limits","url":"https://docs.sleeperhit.studio/api-reference#rate-limits","markdownUrl":"https://docs.sleeperhit.studio/api-reference.md","summary":"Endpoint reference for the Story API.","content":"Rate limits","tags":["api","reference"],"sourcePath":"docs/agents/api-reference.md"},{"id":"heading:api-reference:pagination","kind":"heading","title":"Pagination","url":"https://docs.sleeperhit.studio/api-reference#pagination","markdownUrl":"https://docs.sleeperhit.studio/api-reference.md","summary":"Endpoint reference for the Story API.","content":"Pagination","tags":["api","reference"],"sourcePath":"docs/agents/api-reference.md"},{"id":"heading:recipes:recipe-1-turn-an-rss-feed-item-into-a-podcast-table-read","kind":"heading","title":"Recipe 1: Turn an RSS feed item into a podcast table read","url":"https://docs.sleeperhit.studio/recipes#recipe-1-turn-an-rss-feed-item-into-a-podcast-table-read","markdownUrl":"https://docs.sleeperhit.studio/recipes.md","summary":"Task-oriented integration recipes for agents and developers.","content":"Recipe 1: Turn an RSS feed item into a podcast table read","tags":["recipes","api","cli","mcp"],"sourcePath":"docs/agents/recipes.md"},{"id":"heading:recipes:steps","kind":"heading","title":"Steps","url":"https://docs.sleeperhit.studio/recipes#steps","markdownUrl":"https://docs.sleeperhit.studio/recipes.md","summary":"Task-oriented integration recipes for agents and developers.","content":"Steps","tags":["recipes","api","cli","mcp"],"sourcePath":"docs/agents/recipes.md"},{"id":"heading:recipes:code","kind":"heading","title":"Code","url":"https://docs.sleeperhit.studio/recipes#code","markdownUrl":"https://docs.sleeperhit.studio/recipes.md","summary":"Task-oriented integration recipes for agents and developers.","content":"Code","tags":["recipes","api","cli","mcp"],"sourcePath":"docs/agents/recipes.md"},{"id":"heading:recipes:recipe-2-ingest-a-pdf-research-report-and-produce-a-documentary-table-read","kind":"heading","title":"Recipe 2: Ingest a PDF research report and produce a documentary table read","url":"https://docs.sleeperhit.studio/recipes#recipe-2-ingest-a-pdf-research-report-and-produce-a-documentary-table-read","markdownUrl":"https://docs.sleeperhit.studio/recipes.md","summary":"Task-oriented integration recipes for agents and developers.","content":"Recipe 2: Ingest a PDF research report and produce a documentary table read","tags":["recipes","api","cli","mcp"],"sourcePath":"docs/agents/recipes.md"},{"id":"heading:recipes:notes","kind":"heading","title":"Notes","url":"https://docs.sleeperhit.studio/recipes#notes","markdownUrl":"https://docs.sleeperhit.studio/recipes.md","summary":"Task-oriented integration recipes for agents and developers.","content":"Notes","tags":["recipes","api","cli","mcp"],"sourcePath":"docs/agents/recipes.md"},{"id":"heading:recipes:recipe-3-refine-the-tone-or-recast-a-host-then-finalize-an-mp3-for-download","kind":"heading","title":"Recipe 3: Refine the tone or recast a host, then finalize an MP3 for download","url":"https://docs.sleeperhit.studio/recipes#recipe-3-refine-the-tone-or-recast-a-host-then-finalize-an-mp3-for-download","markdownUrl":"https://docs.sleeperhit.studio/recipes.md","summary":"Task-oriented integration recipes for agents and developers.","content":"Recipe 3: Refine the tone or recast a host, then finalize an MP3 for download","tags":["recipes","api","cli","mcp"],"sourcePath":"docs/agents/recipes.md"},{"id":"heading:recipes:steps-2","kind":"heading","title":"Steps","url":"https://docs.sleeperhit.studio/recipes#steps-2","markdownUrl":"https://docs.sleeperhit.studio/recipes.md","summary":"Task-oriented integration recipes for agents and developers.","content":"Steps","tags":["recipes","api","cli","mcp"],"sourcePath":"docs/agents/recipes.md"},{"id":"heading:recipes:recipe-4-embed-the-fullscreen-theater-in-your-own-page","kind":"heading","title":"Recipe 4: Embed the fullscreen theater in your own page","url":"https://docs.sleeperhit.studio/recipes#recipe-4-embed-the-fullscreen-theater-in-your-own-page","markdownUrl":"https://docs.sleeperhit.studio/recipes.md","summary":"Task-oriented integration recipes for agents and developers.","content":"Recipe 4: Embed the fullscreen theater in your own page","tags":["recipes","api","cli","mcp"],"sourcePath":"docs/agents/recipes.md"},{"id":"heading:recipes:html-embed","kind":"heading","title":"HTML embed","url":"https://docs.sleeperhit.studio/recipes#html-embed","markdownUrl":"https://docs.sleeperhit.studio/recipes.md","summary":"Task-oriented integration recipes for agents and developers.","content":"HTML embed","tags":["recipes","api","cli","mcp"],"sourcePath":"docs/agents/recipes.md"},{"id":"heading:recipes:dynamic-embed-react-js","kind":"heading","title":"Dynamic embed (React/JS)","url":"https://docs.sleeperhit.studio/recipes#dynamic-embed-react-js","markdownUrl":"https://docs.sleeperhit.studio/recipes.md","summary":"Task-oriented integration recipes for agents and developers.","content":"Dynamic embed (React/JS)","tags":["recipes","api","cli","mcp"],"sourcePath":"docs/agents/recipes.md"},{"id":"heading:recipes:recipe-5-trigger-and-poll-the-mp4-render","kind":"heading","title":"Recipe 5: Trigger and poll the MP4 render","url":"https://docs.sleeperhit.studio/recipes#recipe-5-trigger-and-poll-the-mp4-render","markdownUrl":"https://docs.sleeperhit.studio/recipes.md","summary":"Task-oriented integration recipes for agents and developers.","content":"Recipe 5: Trigger and poll the MP4 render","tags":["recipes","api","cli","mcp"],"sourcePath":"docs/agents/recipes.md"},{"id":"heading:recipes:steps-3","kind":"heading","title":"Steps","url":"https://docs.sleeperhit.studio/recipes#steps-3","markdownUrl":"https://docs.sleeperhit.studio/recipes.md","summary":"Task-oriented integration recipes for agents and developers.","content":"Steps","tags":["recipes","api","cli","mcp"],"sourcePath":"docs/agents/recipes.md"},{"id":"heading:recipes:recipe-6-add-adaptive-music-and-timed-sfx-to-a-live-read","kind":"heading","title":"Recipe 6: Add adaptive music and timed SFX to a live read","url":"https://docs.sleeperhit.studio/recipes#recipe-6-add-adaptive-music-and-timed-sfx-to-a-live-read","markdownUrl":"https://docs.sleeperhit.studio/recipes.md","summary":"Task-oriented integration recipes for agents and developers.","content":"Recipe 6: Add adaptive music and timed SFX to a live read","tags":["recipes","api","cli","mcp"],"sourcePath":"docs/agents/recipes.md"},{"id":"heading:recipes:steps-4","kind":"heading","title":"Steps","url":"https://docs.sleeperhit.studio/recipes#steps-4","markdownUrl":"https://docs.sleeperhit.studio/recipes.md","summary":"Task-oriented integration recipes for agents and developers.","content":"Steps","tags":["recipes","api","cli","mcp"],"sourcePath":"docs/agents/recipes.md"},{"id":"heading:recipes:recipe-7-attach-multiple-source-types-to-a-single-project","kind":"heading","title":"Recipe 7: Attach multiple source types to a single project","url":"https://docs.sleeperhit.studio/recipes#recipe-7-attach-multiple-source-types-to-a-single-project","markdownUrl":"https://docs.sleeperhit.studio/recipes.md","summary":"Task-oriented integration recipes for agents and developers.","content":"Recipe 7: Attach multiple source types to a single project","tags":["recipes","api","cli","mcp"],"sourcePath":"docs/agents/recipes.md"},{"id":"heading:recipes:recipe-8-handle-credit-shortfalls-gracefully","kind":"heading","title":"Recipe 8: Handle credit shortfalls gracefully","url":"https://docs.sleeperhit.studio/recipes#recipe-8-handle-credit-shortfalls-gracefully","markdownUrl":"https://docs.sleeperhit.studio/recipes.md","summary":"Task-oriented integration recipes for agents and developers.","content":"Recipe 8: Handle credit shortfalls gracefully","tags":["recipes","api","cli","mcp"],"sourcePath":"docs/agents/recipes.md"},{"id":"heading:recipes:recipe-9-add-the-story-api-to-your-own-agent-workflow","kind":"heading","title":"Recipe 9: Add the Story API to your own agent workflow","url":"https://docs.sleeperhit.studio/recipes#recipe-9-add-the-story-api-to-your-own-agent-workflow","markdownUrl":"https://docs.sleeperhit.studio/recipes.md","summary":"Task-oriented integration recipes for agents and developers.","content":"Recipe 9: Add the Story API to your own agent workflow","tags":["recipes","api","cli","mcp"],"sourcePath":"docs/agents/recipes.md"},{"id":"heading:recipes:tool-definition-claude-tool-use-style","kind":"heading","title":"Tool definition (Claude tool-use style)","url":"https://docs.sleeperhit.studio/recipes#tool-definition-claude-tool-use-style","markdownUrl":"https://docs.sleeperhit.studio/recipes.md","summary":"Task-oriented integration recipes for agents and developers.","content":"Tool definition (Claude tool-use style)","tags":["recipes","api","cli","mcp"],"sourcePath":"docs/agents/recipes.md"},{"id":"heading:recipes:tool-execution-handlers","kind":"heading","title":"Tool execution handlers","url":"https://docs.sleeperhit.studio/recipes#tool-execution-handlers","markdownUrl":"https://docs.sleeperhit.studio/recipes.md","summary":"Task-oriented integration recipes for agents and developers.","content":"Tool execution handlers","tags":["recipes","api","cli","mcp"],"sourcePath":"docs/agents/recipes.md"},{"id":"heading:recipes:recipe-10-error-recovery-and-retry","kind":"heading","title":"Recipe 10: Error recovery and retry","url":"https://docs.sleeperhit.studio/recipes#recipe-10-error-recovery-and-retry","markdownUrl":"https://docs.sleeperhit.studio/recipes.md","summary":"Task-oriented integration recipes for agents and developers.","content":"Recipe 10: Error recovery and retry","tags":["recipes","api","cli","mcp"],"sourcePath":"docs/agents/recipes.md"},{"id":"heading:recipes:recipe-11-drive-the-live-audio-performance-from-your-own-ui","kind":"heading","title":"Recipe 11: Drive the live audio performance from your own UI","url":"https://docs.sleeperhit.studio/recipes#recipe-11-drive-the-live-audio-performance-from-your-own-ui","markdownUrl":"https://docs.sleeperhit.studio/recipes.md","summary":"Task-oriented integration recipes for agents and developers.","content":"Recipe 11: Drive the live audio performance from your own UI","tags":["recipes","api","cli","mcp"],"sourcePath":"docs/agents/recipes.md"},{"id":"heading:cli:requirements","kind":"heading","title":"Requirements","url":"https://docs.sleeperhit.studio/cli#requirements","markdownUrl":"https://docs.sleeperhit.studio/cli.md","summary":"Install, configure, and automate Sleeper Hit Studio from a terminal.","content":"Requirements","tags":["cli","automation"],"sourcePath":"packages/cli/README.md"},{"id":"heading:cli:install","kind":"heading","title":"Install","url":"https://docs.sleeperhit.studio/cli#install","markdownUrl":"https://docs.sleeperhit.studio/cli.md","summary":"Install, configure, and automate Sleeper Hit Studio from a terminal.","content":"Install","tags":["cli","automation"],"sourcePath":"packages/cli/README.md"},{"id":"heading:cli:global-link-run-sleeperhit-anywhere","kind":"heading","title":"Global link (run sleeperhit anywhere)","url":"https://docs.sleeperhit.studio/cli#global-link-run-sleeperhit-anywhere","markdownUrl":"https://docs.sleeperhit.studio/cli.md","summary":"Install, configure, and automate Sleeper Hit Studio from a terminal.","content":"Global link (run sleeperhit anywhere)","tags":["cli","automation"],"sourcePath":"packages/cli/README.md"},{"id":"heading:cli:run-without-building-dev","kind":"heading","title":"Run without building (dev)","url":"https://docs.sleeperhit.studio/cli#run-without-building-dev","markdownUrl":"https://docs.sleeperhit.studio/cli.md","summary":"Install, configure, and automate Sleeper Hit Studio from a terminal.","content":"Run without building (dev)","tags":["cli","automation"],"sourcePath":"packages/cli/README.md"},{"id":"heading:cli:configuration","kind":"heading","title":"Configuration","url":"https://docs.sleeperhit.studio/cli#configuration","markdownUrl":"https://docs.sleeperhit.studio/cli.md","summary":"Install, configure, and automate Sleeper Hit Studio from a terminal.","content":"Configuration","tags":["cli","automation"],"sourcePath":"packages/cli/README.md"},{"id":"heading:cli:commands","kind":"heading","title":"Commands","url":"https://docs.sleeperhit.studio/cli#commands","markdownUrl":"https://docs.sleeperhit.studio/cli.md","summary":"Install, configure, and automate Sleeper Hit Studio from a terminal.","content":"Commands","tags":["cli","automation"],"sourcePath":"packages/cli/README.md"},{"id":"heading:cli:planned-forward-compatible-commands","kind":"heading","title":"Planned (forward-compatible) commands","url":"https://docs.sleeperhit.studio/cli#planned-forward-compatible-commands","markdownUrl":"https://docs.sleeperhit.studio/cli.md","summary":"Install, configure, and automate Sleeper Hit Studio from a terminal.","content":"Planned (forward-compatible) commands","tags":["cli","automation"],"sourcePath":"packages/cli/README.md"},{"id":"heading:cli:end-to-end-example","kind":"heading","title":"End-to-end example","url":"https://docs.sleeperhit.studio/cli#end-to-end-example","markdownUrl":"https://docs.sleeperhit.studio/cli.md","summary":"Install, configure, and automate Sleeper Hit Studio from a terminal.","content":"End-to-end example","tags":["cli","automation"],"sourcePath":"packages/cli/README.md"},{"id":"heading:cli:use-it-in-your-own-agent-workflow","kind":"heading","title":"Use it in your own agent workflow","url":"https://docs.sleeperhit.studio/cli#use-it-in-your-own-agent-workflow","markdownUrl":"https://docs.sleeperhit.studio/cli.md","summary":"Install, configure, and automate Sleeper Hit Studio from a terminal.","content":"Use it in your own agent workflow","tags":["cli","automation"],"sourcePath":"packages/cli/README.md"},{"id":"heading:cli:see-also","kind":"heading","title":"See also","url":"https://docs.sleeperhit.studio/cli#see-also","markdownUrl":"https://docs.sleeperhit.studio/cli.md","summary":"Install, configure, and automate Sleeper Hit Studio from a terminal.","content":"See also","tags":["cli","automation"],"sourcePath":"packages/cli/README.md"},{"id":"heading:mcp:what-an-agent-can-do-with-this","kind":"heading","title":"What an agent can do with this","url":"https://docs.sleeperhit.studio/mcp#what-an-agent-can-do-with-this","markdownUrl":"https://docs.sleeperhit.studio/mcp.md","summary":"Connect the Sleeper Hit MCP server to agent clients.","content":"What an agent can do with this","tags":["mcp","agents"],"sourcePath":"packages/mcp-server/README.md"},{"id":"heading:mcp:tool-catalog","kind":"heading","title":"Tool catalog","url":"https://docs.sleeperhit.studio/mcp#tool-catalog","markdownUrl":"https://docs.sleeperhit.studio/mcp.md","summary":"Connect the Sleeper Hit MCP server to agent clients.","content":"Tool catalog","tags":["mcp","agents"],"sourcePath":"packages/mcp-server/README.md"},{"id":"heading:mcp:install-build","kind":"heading","title":"Install & build","url":"https://docs.sleeperhit.studio/mcp#install-build","markdownUrl":"https://docs.sleeperhit.studio/mcp.md","summary":"Connect the Sleeper Hit MCP server to agent clients.","content":"Install & build","tags":["mcp","agents"],"sourcePath":"packages/mcp-server/README.md"},{"id":"heading:mcp:environment-variables","kind":"heading","title":"Environment variables","url":"https://docs.sleeperhit.studio/mcp#environment-variables","markdownUrl":"https://docs.sleeperhit.studio/mcp.md","summary":"Connect the Sleeper Hit MCP server to agent clients.","content":"Environment variables","tags":["mcp","agents"],"sourcePath":"packages/mcp-server/README.md"},{"id":"heading:mcp:mcp-client-config","kind":"heading","title":"MCP client config","url":"https://docs.sleeperhit.studio/mcp#mcp-client-config","markdownUrl":"https://docs.sleeperhit.studio/mcp.md","summary":"Connect the Sleeper Hit MCP server to agent clients.","content":"MCP client config","tags":["mcp","agents"],"sourcePath":"packages/mcp-server/README.md"},{"id":"heading:mcp:claude-desktop-claude-code","kind":"heading","title":"Claude Desktop / Claude Code","url":"https://docs.sleeperhit.studio/mcp#claude-desktop-claude-code","markdownUrl":"https://docs.sleeperhit.studio/mcp.md","summary":"Connect the Sleeper Hit MCP server to agent clients.","content":"Claude Desktop / Claude Code","tags":["mcp","agents"],"sourcePath":"packages/mcp-server/README.md"},{"id":"heading:mcp:notes","kind":"heading","title":"Notes","url":"https://docs.sleeperhit.studio/mcp#notes","markdownUrl":"https://docs.sleeperhit.studio/mcp.md","summary":"Connect the Sleeper Hit MCP server to agent clients.","content":"Notes","tags":["mcp","agents"],"sourcePath":"packages/mcp-server/README.md"},{"id":"heading:openapi:machine-readable-versions","kind":"heading","title":"Machine-readable versions","url":"https://docs.sleeperhit.studio/openapi#machine-readable-versions","markdownUrl":"https://docs.sleeperhit.studio/openapi.md","summary":"Unified operation map across API, CLI, and MCP.","content":"Machine-readable versions","tags":["openapi","api","cli","mcp"],"sourcePath":"packages/web/src/lib/api-v1/surface-registry.ts"},{"id":"heading:distribution:first-party-surfaces-shipped-by-this-docs-site","kind":"heading","title":"First-party surfaces shipped by this docs site","url":"https://docs.sleeperhit.studio/distribution#first-party-surfaces-shipped-by-this-docs-site","markdownUrl":"https://docs.sleeperhit.studio/distribution.md","summary":"First-party and external surfaces for AI/search/MCP/npm discoverability.","content":"First-party surfaces shipped by this docs site","tags":["distribution","ai-discovery"],"sourcePath":"docs/goals/api-cli-mcp-self-hosted-docs-site.md"},{"id":"heading:distribution:external-publishing-actions","kind":"heading","title":"External publishing actions","url":"https://docs.sleeperhit.studio/distribution#external-publishing-actions","markdownUrl":"https://docs.sleeperhit.studio/distribution.md","summary":"First-party and external surfaces for AI/search/MCP/npm discoverability.","content":"External publishing actions","tags":["distribution","ai-discovery"],"sourcePath":"docs/goals/api-cli-mcp-self-hosted-docs-site.md"},{"id":"heading:distribution:canonical-citation-targets","kind":"heading","title":"Canonical citation targets","url":"https://docs.sleeperhit.studio/distribution#canonical-citation-targets","markdownUrl":"https://docs.sleeperhit.studio/distribution.md","summary":"First-party and external surfaces for AI/search/MCP/npm discoverability.","content":"Canonical citation targets","tags":["distribution","ai-discovery"],"sourcePath":"docs/goals/api-cli-mcp-self-hosted-docs-site.md"},{"id":"operation:capabilities","kind":"operation","title":"Discover live capabilities","url":"https://docs.sleeperhit.studio/api-reference","summary":"Read the feature manifest before integrating a flow.","content":"Read the feature manifest before integrating a flow. GET /api/v1/capabilities getCapabilities sleeperhit capabilities sleeperhit://capabilities","tags":["discovery"],"sourcePath":"packages/web/src/lib/api-v1/surface-registry.ts"},{"id":"operation:agent-guidance","kind":"operation","title":"Read agent guidance","url":"https://docs.sleeperhit.studio/api-reference","summary":"Read the backend-managed workflow guidance for Story API, CLI, and MCP agents.","content":"Read the backend-managed workflow guidance for Story API, CLI, and MCP agents. GET /api/v1/agent-guidance getAgentGuidance sleeperhit guidance get_agent_guidance","tags":["discovery"],"sourcePath":"packages/web/src/lib/api-v1/surface-registry.ts"},{"id":"operation:credits.read","kind":"operation","title":"Read Studio Credit balance","url":"https://docs.sleeperhit.studio/api-reference","summary":"Read available credits before starting generation work.","content":"Read available credits before starting generation work. GET /api/v1/credits getCredits sleeperhit credits get_credits","tags":["credits"],"sourcePath":"packages/web/src/lib/api-v1/surface-registry.ts"},{"id":"operation:projects.create","kind":"operation","title":"Create a story project","url":"https://docs.sleeperhit.studio/quickstart","summary":"Create a workspace that groups sources, plans, jobs, and artifacts.","content":"Create a workspace that groups sources, plans, jobs, and artifacts. POST /api/v1/story-projects createStoryProject sleeperhit projects create --name <name> create_project","tags":["projects"],"sourcePath":"packages/web/src/lib/api-v1/surface-registry.ts"},{"id":"operation:projects.list","kind":"operation","title":"List story projects","url":"https://docs.sleeperhit.studio/api-reference","summary":"Cursor-paginated project list.","content":"Cursor-paginated project list. GET /api/v1/story-projects listStoryProjects sleeperhit projects list list_projects","tags":["projects"],"sourcePath":"packages/web/src/lib/api-v1/surface-registry.ts"},{"id":"operation:projects.get","kind":"operation","title":"Read a story project","url":"https://docs.sleeperhit.studio/api-reference","summary":"Fetch one project by id.","content":"Fetch one project by id. GET /api/v1/story-projects/{projectId} getStoryProject sleeperhit projects get <projectId> get_project","tags":["projects"],"sourcePath":"packages/web/src/lib/api-v1/surface-registry.ts"},{"id":"operation:projects.update","kind":"operation","title":"Update a story project","url":"https://docs.sleeperhit.studio/api-reference","summary":"Rename a project or patch its description, metadata, or archived state from the API, CLI, or MCP.","content":"Rename a project or patch its description, metadata, or archived state from the API, CLI, or MCP. PATCH /api/v1/story-projects/{projectId} updateStoryProject sleeperhit projects update <projectId> [--name <text>] [--description <text>] [--metadata <json>] [--archived true|false] update_project","tags":["projects"],"sourcePath":"packages/web/src/lib/api-v1/surface-registry.ts"},{"id":"operation:projects.delete","kind":"operation","title":"Archive a story project","url":"https://docs.sleeperhit.studio/api-reference","summary":"Soft-delete a project from the API.","content":"Soft-delete a project from the API. DELETE /api/v1/story-projects/{projectId} deleteStoryProject","tags":["projects"],"sourcePath":"packages/web/src/lib/api-v1/surface-registry.ts"},{"id":"operation:projects.series-bible.get","kind":"operation","title":"Read a project Series Bible","url":"https://docs.sleeperhit.studio/api-reference","summary":"Fetch the durable project-level canon and continuity document.","content":"Fetch the durable project-level canon and continuity document. GET /api/v1/story-projects/{projectId}/series-bible getProjectSeriesBible sleeperhit bible get <projectId> get_series_bible","tags":["projects","documents"],"sourcePath":"packages/web/src/lib/api-v1/surface-registry.ts"},{"id":"operation:projects.series-bible.save","kind":"operation","title":"Save a project Series Bible","url":"https://docs.sleeperhit.studio/api-reference","summary":"Persist project canon, episode map, characters, and style/audio direction.","content":"Persist project canon, episode map, characters, and style/audio direction. PATCH /api/v1/story-projects/{projectId}/series-bible saveProjectSeriesBible sleeperhit bible save <projectId> --json <object> save_series_bible","tags":["projects","documents"],"sourcePath":"packages/web/src/lib/api-v1/surface-registry.ts"},{"id":"operation:projects.series-bible.generate","kind":"operation","title":"Generate a project Series Bible","url":"https://docs.sleeperhit.studio/api-reference","summary":"Use the backend sidecar to synthesize or refresh project-level canon from project context.","content":"Use the backend sidecar to synthesize or refresh project-level canon from project context. POST /api/v1/story-projects/{projectId}/series-bible generateProjectSeriesBible sleeperhit bible generate <projectId> generate_series_bible","tags":["projects","documents"],"sourcePath":"packages/web/src/lib/api-v1/surface-registry.ts"},{"id":"operation:sources.create","kind":"operation","title":"Attach a source","url":"https://docs.sleeperhit.studio/quickstart","summary":"Attach text, markdown, URL, or PDF source material to a project.","content":"Attach text, markdown, URL, or PDF source material to a project. POST /api/v1/story-projects/{projectId}/sources createStorySource sleeperhit sources add <projectId> --type text|markdown|url|pdf add_source","tags":["sources"],"sourcePath":"packages/web/src/lib/api-v1/surface-registry.ts"},{"id":"operation:sources.list","kind":"operation","title":"List sources","url":"https://docs.sleeperhit.studio/api-reference","summary":"List sources attached to a project.","content":"List sources attached to a project. GET /api/v1/story-projects/{projectId}/sources listStorySources sleeperhit sources list <projectId> list_sources","tags":["sources"],"sourcePath":"packages/web/src/lib/api-v1/surface-registry.ts"},{"id":"operation:sources.get","kind":"operation","title":"Read a source","url":"https://docs.sleeperhit.studio/api-reference","summary":"Poll one source until extraction and digest states are terminal.","content":"Poll one source until extraction and digest states are terminal. GET /api/v1/story-projects/{projectId}/sources/{sourceId} getStorySource sleeperhit sources get <projectId> <sourceId> get_source","tags":["sources"],"sourcePath":"packages/web/src/lib/api-v1/surface-registry.ts"},{"id":"operation:sources.delete","kind":"operation","title":"Delete a source","url":"https://docs.sleeperhit.studio/api-reference","summary":"Soft-delete one source and clear extracted preview data.","content":"Soft-delete one source and clear extracted preview data. DELETE /api/v1/story-projects/{projectId}/sources/{sourceId} deleteStorySource","tags":["sources"],"sourcePath":"packages/web/src/lib/api-v1/surface-registry.ts"},{"id":"operation:plans.create","kind":"operation","title":"Generate a StoryPlan","url":"https://docs.sleeperhit.studio/quickstart","summary":"Generate the source-grounded plan that drives artifact jobs.","content":"Generate the source-grounded plan that drives artifact jobs. POST /api/v1/story-projects/{projectId}/story-plans createStoryPlan sleeperhit plans create <projectId> --target ... --artifact ... create_plan","tags":["plans"],"sourcePath":"packages/web/src/lib/api-v1/surface-registry.ts"},{"id":"operation:plans.list","kind":"operation","title":"List StoryPlans","url":"https://docs.sleeperhit.studio/api-reference","summary":"List generated plans for a project.","content":"List generated plans for a project. GET /api/v1/story-projects/{projectId}/story-plans listStoryPlans sleeperhit plans list <projectId> list_plans","tags":["plans"],"sourcePath":"packages/web/src/lib/api-v1/surface-registry.ts"},{"id":"operation:plans.get","kind":"operation","title":"Read a StoryPlan","url":"https://docs.sleeperhit.studio/api-reference","summary":"Poll a StoryPlan until it is ready, approved, rejected, or failed.","content":"Poll a StoryPlan until it is ready, approved, rejected, or failed. GET /api/v1/story-plans/{planId} getStoryPlan sleeperhit plans get <planId> get_plan","tags":["plans"],"sourcePath":"packages/web/src/lib/api-v1/surface-registry.ts"},{"id":"operation:plans.approve","kind":"operation","title":"Approve a StoryPlan","url":"https://docs.sleeperhit.studio/api-reference","summary":"Move a plan out of the human approval hold.","content":"Move a plan out of the human approval hold. POST /api/v1/story-plans/{planId}/approve approveStoryPlan sleeperhit plans approve <planId> approve_plan","tags":["plans"],"sourcePath":"packages/web/src/lib/api-v1/surface-registry.ts"},{"id":"operation:plans.reject","kind":"operation","title":"Reject a StoryPlan","url":"https://docs.sleeperhit.studio/api-reference","summary":"Reject a plan with an optional reason.","content":"Reject a plan with an optional reason. POST /api/v1/story-plans/{planId}/reject rejectStoryPlan sleeperhit plans reject <planId> reject_plan","tags":["plans"],"sourcePath":"packages/web/src/lib/api-v1/surface-registry.ts"},{"id":"operation:jobs.create","kind":"operation","title":"Create a story job","url":"https://docs.sleeperhit.studio/quickstart","summary":"Reserve credits and enqueue artifact generation for an approved plan.","content":"Reserve credits and enqueue artifact generation for an approved plan. POST /api/v1/story-jobs createStoryJob sleeperhit jobs create <planId> create_job","tags":["jobs"],"sourcePath":"packages/web/src/lib/api-v1/surface-registry.ts"},{"id":"operation:jobs.list","kind":"operation","title":"List story jobs","url":"https://docs.sleeperhit.studio/api-reference","summary":"List queued and completed jobs.","content":"List queued and completed jobs. GET /api/v1/story-jobs listStoryJobs sleeperhit jobs list list_jobs","tags":["jobs"],"sourcePath":"packages/web/src/lib/api-v1/surface-registry.ts"},{"id":"operation:jobs.get","kind":"operation","title":"Read a story job","url":"https://docs.sleeperhit.studio/quickstart","summary":"Poll job status and artifact readiness.","content":"Poll job status and artifact readiness. GET /api/v1/story-jobs/{jobId} getStoryJob sleeperhit jobs get <jobId> get_job","tags":["jobs"],"sourcePath":"packages/web/src/lib/api-v1/surface-registry.ts"},{"id":"operation:jobs.cancel","kind":"operation","title":"Cancel a story job","url":"https://docs.sleeperhit.studio/api-reference","summary":"Cancel a non-terminal job and release unsettled credits.","content":"Cancel a non-terminal job and release unsettled credits. POST /api/v1/story-jobs/{jobId}/cancel cancelStoryJob sleeperhit jobs cancel <jobId> cancel_job","tags":["jobs"],"sourcePath":"packages/web/src/lib/api-v1/surface-registry.ts"},{"id":"operation:artifacts.list","kind":"operation","title":"List job artifacts","url":"https://docs.sleeperhit.studio/api-reference","summary":"List artifacts produced by a job.","content":"List artifacts produced by a job. GET /api/v1/story-jobs/{jobId}/artifacts listStoryJobArtifacts sleeperhit jobs artifacts <jobId> list_artifacts","tags":["artifacts"],"sourcePath":"packages/web/src/lib/api-v1/surface-registry.ts"},{"id":"operation:artifacts.get","kind":"operation","title":"Read an artifact","url":"https://docs.sleeperhit.studio/api-reference","summary":"Read a generated artifact, manifest URLs, and revision state.","content":"Read a generated artifact, manifest URLs, and revision state. GET /api/v1/artifacts/{artifactId} getStoryArtifact sleeperhit artifacts get <artifactId> get_artifact","tags":["artifacts"],"sourcePath":"packages/web/src/lib/api-v1/surface-registry.ts"},{"id":"operation:artifacts.renderVideo","kind":"operation","title":"Render a table-read video","url":"https://docs.sleeperhit.studio/api-reference","summary":"Queue the opt-in MP4 render for a ready table-read artifact.","content":"Queue the opt-in MP4 render for a ready table-read artifact. POST /api/v1/artifacts/{artifactId}/render-video renderArtifactVideo sleeperhit artifacts render-video <artifactId> render_artifact_video","tags":["artifacts","video"],"sourcePath":"packages/web/src/lib/api-v1/surface-registry.ts"},{"id":"operation:artifacts.refine","kind":"operation","title":"Refine a table read","url":"https://docs.sleeperhit.studio/api-reference","summary":"Revise a table read in place while keeping the artifact id and share URLs stable.","content":"Revise a table read in place while keeping the artifact id and share URLs stable. POST /api/v1/artifacts/{artifactId}/refine refineArtifact sleeperhit refine <artifactId> <instruction...> refine_artifact","tags":["artifacts","table_read"],"sourcePath":"packages/web/src/lib/api-v1/surface-registry.ts"},{"id":"operation:artifacts.finalize","kind":"operation","title":"Finalize a durable MP3 or MP4","url":"https://docs.sleeperhit.studio/api-reference","summary":"Render a durable audio or video file for a table-read artifact.","content":"Render a durable audio or video file for a table-read artifact. POST /api/v1/artifacts/{artifactId}/finalize finalizeArtifact sleeperhit finalize <artifactId> --mode audio|video finalize_artifact","tags":["artifacts","table_read"],"sourcePath":"packages/web/src/lib/api-v1/surface-registry.ts"},{"id":"operation:artifacts.cast","kind":"operation","title":"Read a table-read cast","url":"https://docs.sleeperhit.studio/api-reference","summary":"Read voice assignments from the artifact manifest.","content":"Read voice assignments from the artifact manifest. GET /api/v1/artifacts/{artifactId} getStoryArtifact sleeperhit cast <artifactId> get_cast","tags":["artifacts","voice"],"sourcePath":"packages/web/src/lib/api-v1/surface-registry.ts"},{"id":"operation:artifacts.script.get","kind":"operation","title":"Read table-read script content","url":"https://docs.sleeperhit.studio/api-reference","summary":"Read the backing script entries for a table-read artifact.","content":"Read the backing script entries for a table-read artifact. GET /api/v1/artifacts/{artifactId}/script getArtifactScript sleeperhit script get <artifactId> get_table_read_script","tags":["artifacts","table_read","script"],"sourcePath":"packages/web/src/lib/api-v1/surface-registry.ts"},{"id":"operation:artifacts.script.page","kind":"operation","title":"Read script content by page","url":"https://docs.sleeperhit.studio/api-reference","summary":"Read actual script entries on one rendered page.","content":"Read actual script entries on one rendered page. GET /api/v1/artifacts/{artifactId}/script getArtifactScript sleeperhit script page <artifactId> <page> get_script_page","tags":["artifacts","table_read","script"],"sourcePath":"packages/web/src/lib/api-v1/surface-registry.ts"},{"id":"operation:artifacts.script.scene","kind":"operation","title":"Read script content by scene","url":"https://docs.sleeperhit.studio/api-reference","summary":"Read actual script entries in one scene window.","content":"Read actual script entries in one scene window. GET /api/v1/artifacts/{artifactId}/script getArtifactScript sleeperhit script scene <artifactId> <sceneIndex> get_script_scene","tags":["artifacts","table_read","script"],"sourcePath":"packages/web/src/lib/api-v1/surface-registry.ts"},{"id":"operation:artifacts.script.character","kind":"operation","title":"Read character lines","url":"https://docs.sleeperhit.studio/api-reference","summary":"Read actual dialogue entries for one character.","content":"Read actual dialogue entries for one character. GET /api/v1/artifacts/{artifactId}/script getArtifactScript sleeperhit script character <artifactId> <character...> get_character_lines","tags":["artifacts","table_read","script"],"sourcePath":"packages/web/src/lib/api-v1/surface-registry.ts"},{"id":"operation:artifacts.recastVoice","kind":"operation","title":"Recast a character voice","url":"https://docs.sleeperhit.studio/api-reference","summary":"Reassign one character voice on a table read without changing share URLs.","content":"Reassign one character voice on a table read without changing share URLs. POST /api/v1/artifacts/{artifactId}/voice recastArtifactVoice sleeperhit voice set <artifactId> --character <c> --voice-id <id> --voice-name <name> recast_voice","tags":["artifacts","voice"],"sourcePath":"packages/web/src/lib/api-v1/surface-registry.ts"},{"id":"operation:artifacts.recastAvatar","kind":"operation","title":"Regenerate a character avatar","url":"https://docs.sleeperhit.studio/api-reference","summary":"Re-render one character avatar portrait on a table read in place (async, queue-backed) without changing share URLs.","content":"Re-render one character avatar portrait on a table read in place (async, queue-backed) without changing share URLs. POST /api/v1/artifacts/{artifactId}/avatar recastArtifactAvatar sleeperhit avatar set <artifactId> --character <c> [--refine <text>] [--style <style>] recast_avatar","tags":["artifacts","cast","avatar"],"sourcePath":"packages/web/src/lib/api-v1/surface-registry.ts"},{"id":"operation:artifacts.updateCast","kind":"operation","title":"Update the cast (voices + avatars)","url":"https://docs.sleeperhit.studio/api-reference","summary":"Batch-reassign voices and/or queue per-character avatar renders (with an optional cast-wide restyle) on a table read in place.","content":"Batch-reassign voices and/or queue per-character avatar renders (with an optional cast-wide restyle) on a table read in place. POST /api/v1/artifacts/{artifactId}/cast updateArtifactCast sleeperhit cast update <artifactId> --json '<entries-or-{entries,avatarStyle}>'  (cast-wide restyle: sleeperhit cast restyle <artifactId> --style <s>) update_cast","tags":["artifacts","cast","voice","avatar"],"sourcePath":"packages/web/src/lib/api-v1/surface-registry.ts"},{"id":"operation:artifacts.getCast","kind":"operation","title":"Read the enriched cast","url":"https://docs.sleeperhit.studio/api-reference","summary":"Read each character voice merged with its avatar (url, style, render status) for a table read; poll after avatar renders.","content":"Read each character voice merged with its avatar (url, style, render status) for a table read; poll after avatar renders. GET /api/v1/artifacts/{artifactId}/cast getArtifactCast sleeperhit cast <artifactId> get_cast","tags":["artifacts","cast","voice","avatar"],"sourcePath":"packages/web/src/lib/api-v1/surface-registry.ts"},{"id":"operation:artifacts.coverage.generate","kind":"operation","title":"Generate script coverage","url":"https://docs.sleeperhit.studio/api-reference","summary":"Generate async professional coverage for the screenplay backing a table read.","content":"Generate async professional coverage for the screenplay backing a table read. POST /api/v1/artifacts/{artifactId}/coverage generateArtifactCoverage sleeperhit coverage generate <artifactId> generate_coverage","tags":["artifacts","coverage"],"sourcePath":"packages/web/src/lib/api-v1/surface-registry.ts"},{"id":"operation:artifacts.coverage.get","kind":"operation","title":"Read script coverage","url":"https://docs.sleeperhit.studio/api-reference","summary":"Poll or read the latest coverage report for a table-read artifact.","content":"Poll or read the latest coverage report for a table-read artifact. GET /api/v1/artifacts/{artifactId}/coverage getArtifactCoverage sleeperhit coverage get <artifactId> get_coverage","tags":["artifacts","coverage"],"sourcePath":"packages/web/src/lib/api-v1/surface-registry.ts"},{"id":"operation:artifacts.music.generate","kind":"operation","title":"Generate adaptive music","url":"https://docs.sleeperhit.studio/api-reference","summary":"Generate or regenerate per-scene music for a table-read artifact.","content":"Generate or regenerate per-scene music for a table-read artifact. POST /api/v1/artifacts/{artifactId}/music generateArtifactMusic sleeperhit music generate <artifactId> generate_music","tags":["artifacts","music"],"sourcePath":"packages/web/src/lib/api-v1/surface-registry.ts"},{"id":"operation:artifacts.music.update","kind":"operation","title":"Update scene music","url":"https://docs.sleeperhit.studio/api-reference","summary":"Tune or mute one scene music direction for a table-read artifact.","content":"Tune or mute one scene music direction for a table-read artifact. POST /api/v1/artifacts/{artifactId}/music generateArtifactMusic sleeperhit music update <artifactId> --scene <n> update_music","tags":["artifacts","music"],"sourcePath":"packages/web/src/lib/api-v1/surface-registry.ts"},{"id":"operation:artifacts.music.get","kind":"operation","title":"Read adaptive music status","url":"https://docs.sleeperhit.studio/api-reference","summary":"Poll adaptive music readiness for a table-read artifact.","content":"Poll adaptive music readiness for a table-read artifact. GET /api/v1/artifacts/{artifactId}/music getArtifactMusic sleeperhit music get <artifactId> get_music","tags":["artifacts","music"],"sourcePath":"packages/web/src/lib/api-v1/surface-registry.ts"},{"id":"operation:artifacts.voiceModification","kind":"operation","title":"Modify voices over a range","url":"https://docs.sleeperhit.studio/api-reference","summary":"Apply a voice effect (autotune) to a contiguous range of dialogue entries on a table-read artifact.","content":"Apply a voice effect (autotune) to a contiguous range of dialogue entries on a table-read artifact. POST /api/v1/artifacts/{artifactId}/voice-modification modifyArtifactVoice sleeperhit modify-voice <artifactId> --start <n> --end <n> modify_voice","tags":["artifacts","voice"],"sourcePath":"packages/web/src/lib/api-v1/surface-registry.ts"},{"id":"operation:artifacts.sfx.manage","kind":"operation","title":"Manage sound effects","url":"https://docs.sleeperhit.studio/api-reference","summary":"Add or remove timed SFX cues for a table-read artifact.","content":"Add or remove timed SFX cues for a table-read artifact. POST /api/v1/artifacts/{artifactId}/sfx manageArtifactSfx sleeperhit sfx add|remove <artifactId> add_sfx","tags":["artifacts","sfx"],"sourcePath":"packages/web/src/lib/api-v1/surface-registry.ts"},{"id":"operation:artifacts.sfx.list","kind":"operation","title":"List sound effects","url":"https://docs.sleeperhit.studio/api-reference","summary":"List timed SFX cues for a table-read artifact.","content":"List timed SFX cues for a table-read artifact. GET /api/v1/artifacts/{artifactId}/sfx listArtifactSfx sleeperhit sfx list <artifactId> list_sfx","tags":["artifacts","sfx"],"sourcePath":"packages/web/src/lib/api-v1/surface-registry.ts"}]}