GetStow API

Everything the web app does is available over a JSON REST API. Automate adding torrents, poll progress, fetch download links and build your own tools.

Authentication

Generate a personal key in Account → API key and send it as the X-API-Key header. The key has the same rights as your own session (never admin) and is limited to 120 requests per minute; above that the API answers 429 with a Retry-After header.

curl -H "X-API-Key: $GT_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"source":"magnet","value":"magnet:?xt=urn:btih:..."}' \
  https://api.prod.gettorrent.cloud/api/v1/torrents

Base URL & conventions

  • Base URL: https://api.prod.gettorrent.cloud
  • JSON bodies, snake_case fields, ISO-8601 timestamps in UTC.
  • Errors are RFC 9457 application/problem+json with type, title, status, detail; plan limits add code=plan_limit_exceeded, limit_kind, limit, used.
  • Lists are cursor-paginated: follow next_cursor until it is null.

Endpoints

GET/api/v1/accounts/meWho am I (email, locale, roles).
GET/api/v1/torrents?cursor=&limit=&tag=List torrents, newest first, cursor-paginated.
POST/api/v1/torrentsAdd a magnet or direct URL: {"source":"magnet","value":"magnet:?xt=..."}
POST/api/v1/torrents (multipart file=)Upload a .torrent file.
GET/api/v1/torrents/{id}One torrent with live progress and catalogue metadata.
GET/api/v1/torrents/{id}/filesFile list with download URLs.
POST/api/v1/torrents/{id}/download-zipBuild a ZIP of selected files (ticket; poll status_url).
POST/api/v1/torrents/{id}/pause | /resumePause / resume.
PUT/api/v1/torrents/{id}/tagsReplace tags: {"tags":["Movies"]}
DELETE/api/v1/torrents/{id}Remove a torrent.
GET/api/v1/torrents/usageStorage and slots used against your plan.
GET/api/v1/plansPublic plan list.
GET/api/v1/billing/subscriptionYour current plan and renewal date.

Full machine-readable contract: OpenAPI JSON · interactive Swagger UI.

Fair use

Your plan limits (storage, concurrent downloads) apply to API calls exactly as in the web app. Keys can be rotated or revoked at any time from your account page; a revoked key stops working immediately.