Skip to main content

1. Get an API key

Go to pullstory.com/dashboard/api-keys and click Create key. Your key starts with ps_live_ and is shown only once — copy it somewhere safe.
export PULLSTORY_API_KEY="ps_live_..."

2. Create a pull story

Point the API at any GitHub PR you have access to.
curl https://pullstory.com/api/v1/stories \
  -H "Authorization: Bearer $PULLSTORY_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "owner": "vercel",
    "repo": "next.js",
    "number": 12345
  }'
You’ll get back a story ID and a generating status:
{
  "id": "story_01hq7...",
  "status": "generating",
  "url": "https://pullstory.com/pr/vercel/next.js/12345",
  "owner": "vercel",
  "repo": "next.js",
  "number": 12345,
  "created_at": "2026-04-20T15:00:00Z"
}

3. Poll until ready

Generation typically takes 60-120 seconds depending on PR size.
curl https://pullstory.com/api/v1/stories/story_01hq7... \
  -H "Authorization: Bearer $PULLSTORY_API_KEY"
Response once complete:
{
  "id": "story_01hq7...",
  "status": "ready",
  "url": "https://pullstory.com/pr/vercel/next.js/12345",
  "duration_seconds": 142,
  "scenes": 8,
  "ready_at": "2026-04-20T15:02:22Z"
}

4. Open the URL

url is the shareable pull story link. Send it to teammates, embed it in a PR comment, or drop it in Slack.
The URL is deterministic — always pullstory.com/pr/{owner}/{repo}/{number} — so you can construct it before generation completes if you want to post the link immediately.

What’s next?

Use with Claude Code

Ask Claude Code to create a PR + pull story in one command.

Auto-generate via GitHub App

Install the GitHub App and every PR auto-generates.

Rate limits

How many requests per minute, how many minutes per month.

Error handling

Error codes, retry strategy, webhooks on failure.