Rage TG Downloader API
Save Telegram posts, albums and stories from your own application. The API uses the same engine and the same permissions as the bot, billed to your separate API-plan credits.
Getting access
- Open the Telegram bot and send /start.
- Redeem an API license key:
/redeem YOUR-KEY. It activates API Access and adds exactly 150 API-plan credits. - Send
/api newto create an API key. The key is shown once — store it safely.
Authentication
Every request needs your API key in the Authorization header. Requests without a valid, active key are refused with 401.
Authorization: Bearer rage_sk_xxxxxxxxxxxxxxxxxxxxxxxxCredits and quota
- There are two pools: bot-only credits (from 100 Credits licenses) and API-plan credits (150 per API Access license).
- API requests spend API-plan credits only. They never touch bot-only credits, and Lifetime access does not apply to the API.
- The Telegram bot may also spend API-plan credits once its own pool runs out.
- 1 credit per delivered media file. Nothing else is charged.
- “API quota used” is a cumulative statistic of credits spent through the API — it is not a balance.
- When API-plan credits run out the request returns 402; the API key and API Access stay active, so redeeming another API license resumes service immediately.
Delivery modes
The API works for websites, mobile apps, servers and Telegram bots. Choose per request with the delivery field:
"files"(default) — the media is returned as expiring signed download URLs. Display or download them straight from your website or app; no Telegram bot needed."telegram"— the media is delivered into your own Telegram chat with the bot. Requires you to have opened the bot with/startonce.
File URLs stay valid for 24 hours and are unlisted — fetch or re-host them within that window if you need them longer.
GET /api/public/v1/me
Your plan, both credit pools, cumulative API quota used and the delivery modes this key can use. credits mirrors api_credits — the pool the API spends.
curl https://downloaderr.lovable.app/api/public/v1/me \
-H "Authorization: Bearer YOUR_API_KEY"
{
"plan": "PREMIUM",
"api_access": true,
"api_credits": 148,
"bot_credits": 100,
"credits": 148,
"unlimited": false,
"api_quota_used": 2,
"delivery_modes": ["files", "telegram"],
"default_delivery": "files"
}POST /api/public/v1/download
Saves one Telegram link. Supported links are public posts (https://t.me/channel/123), private posts (https://t.me/c/1234567890/123) and stories (https://t.me/channel/s/5). Private posts require your own Telegram account to be connected with /login — Telegram permissions are never bypassed. Telegram delivery always goes to your own chat; the API cannot send content to anyone else.
# Website / app: get download URLs back
curl -X POST https://downloaderr.lovable.app/api/public/v1/download \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"url":"https://t.me/durov/123","delivery":"files"}'
{
"job_id": "6f1c…",
"content_type": "album",
"media_count": 3,
"partial": false,
"truncated": false,
"credits_charged": 3,
"delivered_to": "files",
"files": [
{
"kind": "photo",
"filename": "telegram-123.jpg",
"size": 184320,
"mime": "image/jpeg",
"url": "https://…/api-media/…?token=…",
"expires_in": 86400
}
]
}
# Telegram bot integration: delivered to your own chat
curl -X POST https://downloaderr.lovable.app/api/public/v1/download \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"url":"https://t.me/durov/123","delivery":"telegram"}'In a website you can render files[].url directly in an img /video tag, or link to it as a download.
GET /api/public/v1/jobs
Your most recent jobs. Optional ?limit= between 1 and 50 (default 20).
curl "https://downloaderr.lovable.app/api/public/v1/jobs?limit=5" \
-H "Authorization: Bearer YOUR_API_KEY"
{
"jobs": [
{
"id": "6f1c…",
"status": "COMPLETED",
"content_type": "photo",
"media_count": 1,
"error_code": null,
"created_at": "2026-01-01T10:00:00.000Z",
"completed_at": "2026-01-01T10:00:04.000Z"
}
]
}Errors
| HTTP | code | Meaning |
|---|---|---|
| 400 | INVALID_BODY / UNSUPPORTED_LINK | Bad JSON body, or the link is not a supported Telegram link. |
| 401 | MISSING_TOKEN / INVALID_KEY / KEY_REVOKED | No key, unknown key, or the key was revoked. |
| 402 | QUOTA_EXCEEDED | Not enough API-plan credits for this request. |
| 403 | API_ACCESS_INACTIVE / ACCESS_DENIED / BANNED | API access is off, Telegram refused access, or the account is suspended. |
| 404 | CONTENT_UNAVAILABLE | The post or story no longer exists. |
| 409 | NO_TELEGRAM_CHAT / DUPLICATE | "telegram" delivery requested but the bot chat was never started (use "files"), or the same link is already in flight. |
| 429 | RATE_LIMITED | Per-minute request limit reached. |
| 502 | TEMPORARY_TELEGRAM_ERROR | Telegram was temporarily unavailable — retry later. |
| 503 | API_DISABLED | The API is temporarily disabled. |
{ "error": { "code": "QUOTA_EXCEEDED", "message": "…" } }Limits
- Requests per minute per API key are set by the administrator (30 by default).
- One save request per account runs at a time.
- Keys can be revoked at any time with
/api revoke KEY_ID.