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/torrentsBase URL & conventions
- Base URL:
https://api.prod.gettorrent.cloud - JSON bodies,
snake_casefields, ISO-8601 timestamps in UTC. - Errors are RFC 9457
application/problem+jsonwithtype,title,status,detail; plan limits addcode=plan_limit_exceeded,limit_kind,limit,used. - Lists are cursor-paginated: follow
next_cursoruntil it isnull.
Endpoints
| GET | /api/v1/accounts/me | Who am I (email, locale, roles). |
| GET | /api/v1/torrents?cursor=&limit=&tag= | List torrents, newest first, cursor-paginated. |
| POST | /api/v1/torrents | Add 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}/files | File list with download URLs. |
| POST | /api/v1/torrents/{id}/download-zip | Build a ZIP of selected files (ticket; poll status_url). |
| POST | /api/v1/torrents/{id}/pause | /resume | Pause / resume. |
| PUT | /api/v1/torrents/{id}/tags | Replace tags: {"tags":["Movies"]} |
| DELETE | /api/v1/torrents/{id} | Remove a torrent. |
| GET | /api/v1/torrents/usage | Storage and slots used against your plan. |
| GET | /api/v1/plans | Public plan list. |
| GET | /api/v1/billing/subscription | Your 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.