---
title: "Read one story film."
method: GET
path: "/story-projects/{projectId}/story-films/{storyId}"
tags: ["Story Films"]
---

# Read one story film.

`GET /story-projects/{projectId}/story-films/{storyId}`

## Request

- Base URL: `https://docs.sleeperhit.studio/api/v1`
- URL: `https://docs.sleeperhit.studio/api/v1/story-projects/{projectId}/story-films/{storyId}`
- Auth: HTTP bearer

One story film with its rank and the judge's reason for that place: the concept and register it is told as, the intent it is gated by (its product turn and the human act the feeling rides on), the stake outside the product, the cast, the beat sheet and the capture requests every product frame plays. A story film of another project or account is 404 — never anything about one the caller does not own. Reads only. Scope: `story:read`.

## Response `200`

The story film with its rank and reason.

- ProductStoryFilm: One rank of the three: where the judge placed the pitch, its own reason for that place, and the pitch itself.
  - `rank` integer, required: Place in the ranked three.
  - `reason` string, required: The judge's sentence for this place — what caught it there.
  - `story` object, required: The story film as stored: its id, projectId, status (`pitched` → `scripted`), concept and register, the intent it is gated by (its product turn, its logline and the human act the feeling rides on), the stake outside the product, the product fictionalization, cast, seed, the beat sheet and the capture requests. A story film pitch is three short films about people, built from the project's feature map: each one names who is in it, what is at stake outside the product, and the one real recorded moment of the product the story turns on, the three come ranked with the reason for each, and any idea that was impossible for this product is said plainly, with why.

## Other responses

- `400`: Request payload failed validation. The error message names the offending field.
- `401`: Missing, malformed, revoked, or expired API key.
- `403`: API key is valid but lacks the scope, is blocked by IP allowlist, or the account is disabled.
- `404`: The named project or source does not exist or is owned by another account.
- `429`: Rate limit for this API key + IP + route family was exceeded.
- `500`: The API failed unexpectedly. Safe to retry with the same Idempotency-Key.

---

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