Shorty API
Shorty API — REST for summaries, transcription & subtitles
The Shorty developer API turns YouTube videos, web pages, and media into summaries, transcriptions, and subtitles over a versioned REST surface — the same engine behind the Shorty app, with API keys, idempotency, rate limits, webhooks, and a TypeScript SDK.
What it does
Shorty summarizes YouTube videos, web pages, and pasted text; transcribes audio and video; and generates subtitles. The API exposes those capabilities as async jobs you start with one call and poll (or receive a webhook) when they finish. Every resource is scoped to the authenticated account.
Base URL
All endpoints live under one versioned base. Paths in this documentation are relative to it:
https://aishorty.com/v1Authentication
Send a shk_live_ API key (create one in Settings → API keys) or an OAuth 2.1 access token as a Bearer token on every request. Keys are shown once at creation — store them server-side; never ship a key to a browser.
Authorization: Bearer shk_live_your_keyQuickstart
Reach your first 200 in under five minutes:
- Create an API key in Settings → API keys and copy it (shown once).
- Confirm the key works by reading your usage.
- Start a summary job — it returns
202with ajob_id. - Poll the job until it finishes (or subscribe to a webhook).
curl https://aishorty.com/v1/usage \
-H "Authorization: Bearer shk_live_your_key"curl -X POST https://aishorty.com/v1/summaries \
-H "Authorization: Bearer shk_live_your_key" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: $(uuidgen)" \
-d '{
"source": "youtube",
"url": "https://www.youtube.com/watch?v=dQw4w9WgXcQ"
}'curl https://aishorty.com/v1/jobs/JOB_ID \
-H "Authorization: Bearer shk_live_your_key"Conventions
- Async jobs. Write endpoints return
202 Acceptedwith ajob_idand atracking_url; pollGET /v1/jobs/{id}or receive a webhook. - Idempotency. Send an
Idempotency-Keyheader on POSTs; a retry with the same key and body replays the original response for 24 hours. - Rate limits. 60 requests/minute on the free tier, 300/minute on paid. The bucket is per API key when you authenticate with a
shk_live_key, and per user when you call as an OAuth/MCP client. Responses carry IETFRateLimitheaders. - Pagination. List endpoints return
{ data, has_more, next_cursor }; passnext_cursorback as?cursor=. - Errors. Every error is an RFC 9457
application/problem+jsonbody with a stablecodeyou can switch on.
Explore
- API reference
Interactive reference for every endpoint (Scalar).
- Operations
One page per endpoint, with examples.
- OpenAPI spec
The machine-readable OpenAPI 3.1 document.
- TypeScript SDK
@aishorty/sdk — the official Node client.
- Webhooks
Receive events instead of polling.
- Errors
Every error code and how to fix it.
- Changelog
Dated API changes and additions.
- For AI agents
MCP, llms.txt, and Markdown twins for agents.
- Developers overview
The platform at a glance — REST, SDK, and MCP.