Every limit is per account (or per key, or per connected app, where it says so), and every daily limit starts again at 00:00 UTC. GET /api/v1/limits/me (below) shows where you stand.
The daily chapter allowance#
1,500 different chapters a day per account, one allowance drawn from everywhere:
- reading chapters on the website,
- offline downloads in the app,
- EPUB exports, from the site, the connector or the API,
- RandomTranslator's own apps.
A chapter you already read, downloaded or exported today is free: opening it again, or exporting a range that holds it, does not count again. When the allowance is used up, the site, the app and exports say so and say when it resets (00:00 UTC). Chapters you already took today can still be opened and exported.
The API and the connector never hand out chapter text, so ordinary API calls never touch this allowance; only EPUB exports do.
Other daily limits#
| Limit | Per day | Notes |
|---|---|---|
| EPUB exports | 10 per account | Up to 150 chapters per export for now (longer ranges come back as parts); each download link lasts 24 hours; downloading today's export again is free |
| Read aloud with cloud voices | 1,200,000 characters per account | 800,000 in a membership's first week |
| Original (Chinese) text views | 1,500 chapters per account | The same in a membership's first week |
| Google Translate queue, for free readers | 1,500 chapters per account | Chapters past 50 that a free reader opens in Google Translate |
| Offline downloads | Paced at 60 batches of 25 chapters every 10 minutes | Every chapter also counts in the daily chapter allowance |
API keys#
| Limit | Default | When you pass it |
|---|---|---|
| Units a minute, per key | 120 | 429 rate_limited; Retry-After is the seconds to wait |
| Units a UTC day, per key | 10,000 | 429 daily_limit; resets_at is the next 00:00 UTC |
A single record costs 1 unit (a novel, your place in a novel, a recap, your limits). A page of a list costs 5 units (a search, Popular, a chapter list page, a glossary page, your library, your notifications). Each route's cost is in the API reference.
- A request refused by the limits, by a bad key or by a lapsed membership (401, 403, 429, 503) costs nothing.
- A failure on our side (a
5xx) costs nothing. - An answer such as a 404 for a novel that does not exist still costs its units.
Every charged answer carries three headers, so a tool can pace itself without a failed call:
| Header | Meaning |
|---|---|
X-RateLimit-Limit |
your key's units for a day |
X-RateLimit-Remaining |
units left today, after this request (absent if it cannot be read just then) |
X-RateLimit-Cost |
what this request cost |
For scale: a bot that checks a reader's library and notifications every 15 minutes spends under 1,000 units a day.
The connector#
60 calls a minute and 2,000 calls a day for each connected app, counted per connection, not in a key's units. A call refused for a wrong input, an unknown novel or a fault on our side does not count; one that runs past 10 seconds does, and so does an EPUB export refused because the day's chapters or exports are used up.
The 429 answer#
HTTP/1.1 429 Too Many Requests
Retry-After: 37
X-RateLimit-Limit: 120
X-RateLimit-Remaining: 0
Cache-Control: private, no-store
{"detail": "This key is over its 120 units a minute. Try again in 37 seconds.", "code": "rate_limited",
"scope": "minute", "retry_after_seconds": 37, "resets_at": "2026-11-02T15:31:00Z", "limit": 120, "used": 118}
The day's refusal is the same with "code": "daily_limit", "scope": "day", resets_at at the next 00:00 UTC, and X-RateLimit-Limit the day's units. Wait Retry-After seconds, then go on.
Your limits today#
GET /api/v1/limits/me answers with the signed-in account's limits today. It costs 1 unit with a key, and the connector's my_limits tool shows the same numbers.
curl -H "Authorization: Bearer $RT_KEY" 'https://randomtranslator.com/api/v1/limits/me'
{
"day_resets_at": "2026-11-03T00:00:00Z",
"chapters": {"used": 212, "limit": 1500, "remaining": 1288},
"epub_exports": {"used": 1, "limit": 10, "remaining": 9},
"api_units": {"used_minute": 6, "limit_minute": 120, "used_day": 340, "limit_day": 10000},
"tts_characters": {"used": 48210, "limit": 1200000, "remaining": 1151790},
"original_views": {"used": 0, "limit": 1500, "remaining": 1500}
}
A null limit means that limit is off; a null count means it could not be read just then.
Asking for more#
If something reasonable needs more than 120 units a minute or 10,000 a day, email randomtranslator2@gmail.com with your username, what you are building, and the limits you need. Ask rather than spreading the work over several accounts or keys. The daily chapter allowance is the same for every reader and is not raised for API use.
Limits can tighten to protect the site; this page and the site's changelog say so first.