Build with the Shorty API

Turn YouTube videos, web pages, and media files into AI summaries, transcriptions, and subtitles — the same engine behind the Shorty app, over a versioned REST API.

  • REST API + SDKOne call starts a job; poll it or await the SDK's jobs.waitFor.
  • Signed webhooksSkip polling — get a Standard Webhooks-signed event when a job finishes.
  • Works with AI agentsA remote MCP server behind OAuth 2.1 consent, for Claude and any MCP client.
Summarize a YouTube video
curl -X POST https://aishorty.com/v1/summaries \
  -H "Authorization: Bearer shk_live_your_key" \
  -H "Content-Type: application/json" \
  -d '{
    "source": "youtube",
    "url": "https://www.youtube.com/watch?v=dQw4w9WgXcQ",
    "language": "en"
  }'

One platform, three surfaces

REST API

A versioned /v1 surface with RFC 9457 problem+json errors, cursor pagination, idempotency keys on writes, and IETF rate-limit headers.

Browse every endpoint

TypeScript SDK

@aishorty/sdk — open source (MIT), zero runtime dependencies, typed errors, automatic retries, pagination, jobs.waitFor, and webhook verification. npm release coming soon — install from the GitHub repo today.

View on GitHub

MCP server

12 scoped tools behind OAuth 2.1 consent, for Claude Code and any MCP client:

claude mcp add --transport http shorty https://aishorty.com/api/mcp

MCP server · For AI agents

Built for AI agents

The platform is designed so an autonomous agent can use it safely without guessing:

  • MCP tools are gated by OAuth consent and scope-filtered per token — a tool whose scope your grant lacks is absent from tools/list, not merely rejected.
  • Every endpoint and tool validates input with zod schemas: malformed input is refused with a machine-readable error instead of being guessed at.
  • Quotas enforce identically on every surface — app, REST, SDK, and MCP draw from the same per-account allowance, so there is no side door.
  • Writes accept an Idempotency-Key, so a retried request never creates a duplicate job.
  • Every error is an RFC 9457 problem+json body with a stable code to switch on — no parsing of human message text.

Paste this into your AI agent to point it at Shorty:

Shorty has a developer API for AI summaries, transcription, and subtitles.
Docs: https://aishorty.com/docs/api — every docs page also serves a Markdown twin at
the same URL with a .md suffix (e.g. https://aishorty.com/docs/api.md), and the full
documentation is in one file at https://aishorty.com/llms-full.txt.
REST base: https://aishorty.com/v1, authenticated with "Authorization: Bearer shk_live_..."
(keys are created at https://aishorty.com/settings). Writes are async: expect 202 with a
job_id, then poll GET /v1/jobs/{id}. Errors are RFC 9457 problem+json with a
stable "code" field to switch on. For user-delegated access, connect over MCP
(OAuth 2.1): https://aishorty.com/api/mcp.

What are the rate limits?

PlanBurst limit
Free60 requests/minute
Shorty Premium300 requests/minute
Shorty Pro300 requests/minute

API calls consume the same per-account plan quotas as the Shorty app — there is no separate API metering. Read your live limits and usage any time via GET /v1/usage, and compare plans on the pricing page.

Webhooks and error handling

Skip polling: register an HTTPS endpoint and Shorty POSTs a Standard Webhooks-signed event when a job finishes — see the webhooks guide for signature verification, retries, and secret rotation. When something fails, the error reference documents every code the API can return and how to fix it.

Live service status and incident history: status.aishorty.com.