Errors & rate limits

Error format

{"error": "<code>", "message": "Human readable text."}
  • 422 validation_failed adds "fields": {"field": ["message", ...]}.
  • Errors from POST /proxies/{id}/rotate and rotation links also carry "ok": false.
  • Branch on error (stable), not on message (may change).

Error codes

StatuserrorWhen
401unauthenticatedno token, wrong token, revoked or expired token
403insufficient_abilitythe token's level is too low for this endpoint
403forbiddenyour login may not do this (team viewer, or a sub-user on an owner-only action)
403account_suspendedthe login or its account is suspended
403dongle_disabledrotating a disabled proxy (see disabled_reason on the proxy)
404not_foundunknown id, or a proxy/node your login cannot see
405method_not_allowedwrong HTTP method for this path
409rotation_in_progressanother rotation of the same proxy is running
409dongle_busysending an SMS while the dongle is busy (rotation or another SMS)
409unsupportedthe device cannot do this (e.g. a plain network interface cannot rotate); capability names what is missing — see device capabilities
422validation_failedbad input; see fields
429rate_limitedover the rate limit; wait Retry-After seconds
429sms_limit_reachedthe proxy's SMS limit is used up; also limit, max, used, resets_at
501not_implementedthis dongle model cannot rotate this way
502rotation_failedthe dongle did not get a new IP (the answer includes old_ip)
502sms_failedthe dongle refused the SMS or could not be reached

Rate limits

WhatLimit
REST API120 requests / minute per login (all its tokens together)
Rotation link /r/{token}6 / minute per link, 30 / minute per client IP

Over the limit: 429 with a Retry-After header. Back off and retry after that many seconds.

Retrying

  • GET requests are safe to retry.
  • POST /proxies/{id}/rotate on 409: wait a few seconds and retry; on 502: the dongle could not get a new address — retry once after ~30 s, then check the proxy in the panel.
  • POST /proxies/{id}/password is not idempotent — every call creates a new password.