Connect agents and apps

One command wires Fastdown into Codex, Claude Code or Cursor. The same key lets your backend call the REST API for parse results, quota and media URLs.

  • MCP · stdio + HTTP
  • CLI · macOS / Linux / Windows
  • REST · /api/v1
API key

Sign in to create an API key and see the ones you already have.

Sign in
Step 01

Paste one command

Installs the CLI, stores your key and writes MCP config for every agent app it finds.

Step 02

Restart the agent

Codex, Claude Code, Cursor and the rest only read MCP config when they launch.

Step 03

Ask for a link

“Download this TikTok link into ./downloads” — the agent calls the tool and the file lands locally.

mcp connect
$curl -fsSL "https://fastdown.pro/mcp?key=$FASTDOWN_KEY" | sh

Set FASTDOWN_KEY from the card above. The script installs the CLI, runs fast-download setup agent --auto and stores the key with auth login --key.

Works with

CodexClaude CodeCursorVS CodeOpenCodeGemini CLIWindsurf

Three MCP tools

parse_video

Normalized media[] JSON. No bytes leave the upstream CDN, so it is cheap and fast.

url · prefer.watermark

download_video

Parses and saves the best playable file into ./downloads, then prints the path.

url · output

quota

Remaining, limit and reset time for today, so the agent can stop before it burns the day.

no arguments
Wire it by hand instead
{
  "mcpServers": {
    "fastdown": {
      "command": "fast-download",
      "args": ["mcp", "--stdio"]
    }
  }
}

Or script it with the CLI

Terminalno MCP required
fast-download auth login
fast-download parse "<share url>" --json
fast-download download "<share url>" --output ./downloads
fast-download quota --json
AUTH

One bearer key

Every call sends the key from the card above as Authorization: Bearer. Keys belong to the account, so quota and billing follow the owner.

QUOTA

Charged only on success

50, 1,000 or 3,000 parses a day by plan, reset at 00:00 UTC. A failed parse never consumes one; a 429 means the day is done.

RequestPOST /api/v1/parse
curl -X POST https://fastdown.pro/api/v1/parse \
  -H "authorization: Bearer $FASTDOWN_KEY" \
  -H "content-type: application/json" \
  -d '{"url":"https://www.tiktok.com/@aespa_official/video/7614804615174917396"}'
Response 200application/json
{
  "ok": true,
  "request_id": "req_8f2c41",
  "data": {
    "platform": "tiktok",
    "media": [{
      "type": "video",
      "url": "https://cdn.example/video.mp4",
      "watermark": false,
      "quality": "hd"
    }],
    "quota": { "used": 12, "limit": 1000 }
  }
}

Endpoints

MethodPathWhat it does
POST/api/v1/parseShare URL in, media[] out. The one that matters.
GET/api/v1/quotaToday's counter, the same numbers the agent sees.
GET/api/v1/meUser, plan and subscription status.
GET/api/v1/healthLiveness probe. No auth, safe for uptime checks.
POST/api/v1/billing/checkoutReturns a Stripe Checkout URL for Pro or Max.

Errors worth handling

400 INVALID_URL401 UNAUTHORIZED422 NO_MEDIA429 RATE_LIMITED503 UPSTREAM_ERROR

Need every flag and error code? The docs carry the long version, including exit codes and the OpenAPI file.