Errors & limits
Status codes
| Code | Meaning | What to do |
|---|---|---|
400 | The link is not for this platform, or the format value is not one we accept | Check the input; retrying will not change it |
401 | Key missing, unknown or revoked | See authentication |
404 | Deleted, private, or nothing at that link | Do not retry |
410 | A download link served from our own domain has expired | Ask for the media again and use the new link straight away |
429 | Token balance exhausted, or too many requests per second | Wait for the reset, or move up a plan |
502 | The platform could not be reached | Retry once after a second or two |
Retrying
Only 502 is worth retrying automatically. Everything else is a statement about the link or the account, and a retry spends another token to be told the same thing.
res = call_api(url)
if res.status_code == 502: # transient — one retry clears most of them
time.sleep(1.5)
res = call_api(url)
if res.status_code == 404: # the post is gone; retrying only burns quota
skip(url)Error format
{ "detail": "Media not found or unable to download" }Monthly tokens
| Plan | Tokens / month |
|---|---|
| Free | 200 |
| Mini | 5,000 |
| Starter | 10,000 |
| Plus | 15,000 |
| Pro | 20,000 |
| Business | 35,000 |
| Scale | 50,000 |
| Max | 100,000 |
| Max 200 | 200,000 |
Counters reset on the 1st. One call is one charge whatever comes back: six renditions of the same VK video, or ten files in a carousel, cost exactly what a single file costs.
Prices, and what each platform costs per call, are on the pricing page.
Rate limits
| Plan | Per second | Per hour |
|---|---|---|
| Free | 1 | 500 |
| Mini | 2 | 1,500 |
| Starter | 3 | 2,500 |
| Plus | 4 | 3,500 |
| Pro | 5 | 4,500 |
| Business | 8 | 7,000 |
| Scale | 10 | 9,000 |
| Max | 15 | 15,000 |
| Max 200 | 25 | 30,000 |
Bursts are counted per key, not per account, so two integrations cannot throttle each other. Over the ceiling you get 429 with a Retry-After header.
A call refused by the rate limiter costs no tokens.
Your balance and what has been spent this month are in the dashboard.