Errors

Every Soldgraph API error code, what it means, which ones to retry, and how a failed search job differs from an HTTP error.

Every error has the same JSON body:

Error
{ "error": { "code": "invalid_api_key" } }

Check error.code. Every response also has an X-Request-Id header. Include it when you contact support. Errors are never charged.

#Error codes

StatusCodeWhat it meansRetry-After
401invalid_api_keyThe API key is missing, malformed or revoked.
403account_suspendedThe account is suspended, so none of its keys work. Email support to restore it.
403origin_not_allowedA browser sent the request from a site that isn't allowed. Call the API from your server.
404not_foundNo such path.
404request_not_foundThe job ID is malformed, unknown, or belongs to another account.
405method_not_allowedOnly GET is supported.
409idempotency_conflictThis Idempotency-Key was already used with different search parameters.
414uri_too_longThe query string is longer than 2,048 characters.
422unsupported_or_invalid_queryAn unknown parameter, or a value outside the documented range.
422duplicate_parameterA parameter was sent more than once.
422sort_not_implementedsort=best_deal is not available.
422invalid_idempotency_keyIdempotency-Key must be 1–128 printable ASCII characters, with no spaces.
422invalid_waitwait must be a whole number from 0 to 20.
429rate_limitedMore than 60 API calls this minute for your account.60
429quota_exceededYour plan's allowance for the rolling 30 days is used up, and you have no extra requests left.3600
429too_many_pendingYour account has too many searches still pending. Wait for results before sending more.5
503upstream_daily_limitThe marketplace's daily limit was reached, so new searches are paused. Cached results still work.86400
503queue_fullThe collection queue is full.30
503collection_unavailableWe can't collect from this marketplace right now.30
503storage_unavailableOur database is briefly unavailable.5
503origin_unavailableThe edge couldn't reach our API server.5
503service_unconfiguredThe API is misconfigured on our side. Contact support.

#What to do

  • 429: wait Retry-After seconds. For too_many_pending, poll your pending searches with ?wait=20 until they finish, then send more.
  • Other 4xx errors: fix the key or the request. Sending the same call again won't help.
  • 503: retry with backoff and the same Idempotency-Key. upstream_daily_limit can last a day, so don't keep a request waiting on it. If the 503 body has status: "failed", it's a failed job, not an error. See below.

If you keep getting 503s, check the status page.

#Failed job codes

A job can fail after we accept it. A job poll still returns HTTP 200, with status: "failed" and one of these codes in error.code. Failed jobs cost nothing.

CodeWhat it means
schemaThe marketplace page changed shape. We fail the job rather than return data we can't trust.
networkWe couldn't reach the marketplace, or it timed out.
upstreamThe marketplace returned a server error.
throttledThe marketplace rate-limited us.
blockedThe marketplace blocked the request.
rejectedThe marketplace rejected the search, for example a source-rejected cursor on Poshmark or Depop.
authThe marketplace didn't accept our session.
daily_limitThe marketplace's daily limit was reached.
deadline_exceededThe job didn't finish in time.
credential_storageAn internal error on our side.

Retrying a failed search with the same Idempotency-Key returns the failed job again, with HTTP 503. To try again, send it with a new key.