Canonical API → upstream debrid endpoints
This page lists each Relaygate canonical operation, the Edge route used by addon backends, and how it maps to upstream HTTP APIs for each provider adapter that implements real forwarding today.
Scope
- SmokeDebrid (
smokedebrid) is a test double and is omitted here; it mirrors TorBox-shaped responses locally.
- Real-Debrid, AllDebrid, Premiumize, and other catalog entries without a registered adapter in Core will return
rg.provider_adapter_missing until an adapter ships. Planned upstream surfaces are noted in the repository file docs/provider-capability-matrix.md.
Auth: every canonical call uses the standard headers from Relaygate Canonical API; upstream calls use the vault-resolved or direct Bearer token unless noted.
account.session
| |
|---|
| Edge | GET /api/v0.6-beta/canonical/account |
| TorBox | GET /v1/api/user/me |
hoster.links.unlock
| |
|---|
| Edge | POST /api/v0.6-beta/canonical/hoster/links/unlock |
| TorBox | Not supported — Relaygate returns 501 / rg.feature_unsupported. Use POST .../canonical/jobs with kind: web_fetch or the raw proxy. |
| Planned (examples) | Real-Debrid POST /unrestrict/link; AllDebrid link unlock family; Premiumize link / transfer resolve. |
jobs.list
| |
|---|
| Edge | GET /api/v0.6-beta/canonical/jobs?kind=torrent|usenet|web_fetch&... |
| TorBox | kind=torrent → GET /v1/api/torrents/mylist
kind=usenet → GET /v1/api/usenet/mylist
kind=web_fetch → GET /v1/api/webdl/mylist |
jobs.create
| |
|---|
| Edge | POST /api/v0.6-beta/canonical/jobs |
| TorBox | kind=torrent → POST /v1/api/torrents/createtorrent (JSON body; often magnet)
kind=usenet → POST /v1/api/usenet/createusenetdownload
kind=web_fetch → POST /v1/api/webdl/createwebdownload |
jobs.get
| |
|---|
| Edge | GET /api/v0.6-beta/canonical/jobs/{jobId}?kind=... |
| TorBox | Same mylist endpoints as jobs.list, then the adapter selects the row matching jobId. |
jobs.cancel
| |
|---|
| Edge | POST /api/v0.6-beta/canonical/jobs/{jobId}/cancel?kind=... |
| TorBox | kind=torrent → POST /v1/api/torrents/controltorrent
kind=usenet → POST /v1/api/usenet/controlusenetdownload
kind=web_fetch → POST /v1/api/webdl/controlwebdownload |
jobs.files.list
| |
|---|
| Edge | GET /api/v0.6-beta/canonical/jobs/{jobId}/files?kind=... |
| TorBox | Same mylist GET as jobs.get; files come from the matching list item. |
jobs.files.playback
| |
|---|
| Edge | POST /api/v0.6-beta/canonical/jobs/{jobId}/files/{fileId}/playback?kind=... |
| TorBox | kind=torrent → GET /v1/api/torrents/requestdl (torrent_id, file_id, redirect=false, token query param as required)
kind=usenet → GET /v1/api/usenet/requestdl
kind=web_fetch → GET /v1/api/webdl/requestdl |
torrents.cache_check
| |
|---|
| Edge | POST /api/v0.6-beta/canonical/torrents/cache-check |
| Body | JSON: { "hashes": ["<40-hex>", ...], "list_files"?: boolean } (max 100 hashes; include_files is an alias for list_files) |
| TorBox | GET /v1/api/torrents/checkcached with one hash query param whose value is comma-separated info-hashes (URL-encoded, e.g. %2C between hashes), plus format=list and list_files=true|false (matches TorBox/Postman). Response data may be a list of rows (each with a hash field) or a map keyed by hash; Relaygate normalizes to data.<provider>.data.items[]. |
| Planned (examples) | Real-Debrid instant-availability endpoints; AllDebrid / Premiumize cache checks per provider docs. |
- Relaygate Canonical API — headers, envelopes, errors.
- OpenAPI bundle — machine-readable paths.
- Repository
docs/debrid-provider-capability-api-map.md — capability-oriented view across many providers.