Skip to main content
RovexaLaunch lab · first looks home

Errors and limits

Error format

Every error is JSON with the same shape. MCP tools return the same object with isError: true.

{"error": {"code": "invalid_request", "message": "per_page: 1000 is greater than the maximum of 100",
           "status": 400, "request_id": "8f3a1c2d9e4b7a60", "details": {"field": "per_page"}}}
CodeHTTPMeaning
invalid_request400The input failed validation; `details` says which field and why
unauthorized401Sign-in needed: send an OAuth access token or API key (see WWW-Authenticate)
invalid_token401The token or key is expired, revoked, unknown or for another site
insufficient_scope403Your token is valid but lacks the scope this call needs
forbidden403You may not do this to that item (for example, it is not your listing)
not_found404No such item on this site
conflict409The request conflicts with the item's current state
idempotency_mismatch422This Idempotency-Key was used with a different request body
rate_limited429Too many requests; wait Retry-After seconds
quota_exceeded429Daily quota used up; resets at 00:00 UTC
api_disabled503The API is switched off for maintenance; try again later
server_error500Something failed on our side; it has been reported

Rate limits and quotas

Free for everyone within these limits. Responses carry RateLimit-Limit, RateLimit-Remaining and RateLimit-Reset; a 429 carries Retry-After (seconds).

LimitAllowance
Anonymous requests per IP60 per minute
Requests per API key or connected app120 per minute
Requests per API key or connected app20000 per day (UTC)
Changes (writes) per account60 per hour
New listing drafts per account20 per 24 hours
All requests from one IP300 per minute

Pagination

List operations take page (from 1) and per_page (up to 100) and return items, total, has_more and next_page.

Safe retries

Send an Idempotency-Key header (any unique string) with a change. Repeating the request with the same key within 24 hours returns the first result (header Idempotency-Replayed: true) instead of doing the work twice. The same key with a different body is refused with idempotency_mismatch.

Money

Amounts are whole US dollar cents (an integer: divide by 100 for dollars). Prices exclude VAT; quote_order previews VAT for a billing country.

Help