Skip to main content
Two different things bound your usage: credits (what a call costs — see Credits) and the limits on this page (how often you may call, and how many Watches you may run). Your plan sets both.

Plan entitlements

Credit packs top up your balance but never change the limits above — those move only with the plan.

Request quota

/v1/* is limited per Account (not per API key) in a rolling 60-second window, at the requests-per-minute figure for your plan. Exceeding it returns 429 with code: "TOO_MANY_REQUESTS"; see Errors — Rate limits for the envelope and the RateLimit-* / Retry-After headers. Because the quota is per Account, extra API keys do not buy extra throughput.

Watch entitlements

Watch limits are enforced at two levels, and the stricter one wins.

Minimum interval

Source minimums are 15s for Vinted and 60s for X, Reddit, and Youtube (Watches). Because the plan floor is never below 30s, Vinted’s 15s Source floor is not reachable on any current plan — the fastest Vinted watch is 30s, on Pro. On Free the effective minimum is 3600s, so refresh_interval_seconds: 15 is rejected with 400 VALIDATION even though the Source itself allows it. The maximum is always 3600s, on every plan and Source.

Active Watch cap

Creating a Watch checks the plan cap account-wide across all Sources first, then the per-Source cap (Vinted 50, X/Reddit/Youtube 20). On Free the account-wide cap of 1 is what you hit — the per-Source numbers only become reachable on Pro. Both rejections are 400 VALIDATION.

Downgrades pause what no longer fits

Moving to a lower plan does not delete Watches. Any Watch that now breaks the new entitlements — polling faster than the new minimum, or beyond the new cap — is paused with pausedReason: plan_entitlement. Oldest Watches are kept first; the newest ones are paused. Nothing resumes automatically. After upgrading again, call POST /v1/{source}/watches/{id}/resume per Watch. Resume re-checks the cap and interval, so it fails while the Watch still exceeds them.
A Watch paused by support (pausedReason: admin_paused) cannot be resumed with the API — it returns 409 CONFLICT.

Next steps

  • Credits — what each call costs
  • Watches — lifecycle and per-Source behaviour
  • Errors — status codes and the error envelope