ScrapeField

Error codes

Every code the API can return, when it happens and what to do about it. Branch on the code — it is stable. The message is written for a human and may change.

Codes marked refunded cost nothing: the credits are returned automatically and the reversal appears in your usage ledger.

CodeWhenWhat to do
key_in_url
invalid_request
The key was sent as `?api_key=` in the URL.Send it in the `Authorization: Bearer …` header. A key that has been in URLs may be in someone's logs: consider revoking it.
missing_api_key
authentication_error
No Authorization header was sent.Send `Authorization: Bearer sf_live_…`. Create a key in the dashboard.
invalid_api_key
authentication_error
The key is unknown or was revoked.Check the key, or create a new one. Revoked keys never come back.
insufficient_credits
permission_error
The account is out of credits.Buy a pack on the dashboard’s billing page; calls work again at once. Nothing was charged for this call.
scope_not_allowed
permission_error
The key is scoped to some surfaces and this is not one of them.Use a key with the surface in its scopes, or widen the key.
fresh_not_available
permission_error
`fresh=true` on an account that has never bought credits.Trial credits are cache-first. Buy any amount of credits to bypass the cache.
disposable_email
invalid_request
Signup with a throwaway mailbox provider.Use an address you will still have next month. We send one verification email and then only write when something breaks.
signup_rate_limit
permission_error
Too many signups from one address in an hour.Email us if you genuinely need several keys — we will just make them.
A sign-in or confirmation link that is not ours.Check you copied the whole link — mail apps sometimes break long links across lines — or ask for a new one from the sign-in page.
A sign-in or confirmation link opened a second time.Links work once. Ask for a new one from the sign-in page.
A sign-in link older than fifteen minutes, or a confirmation link older than a day.Ask for a new one from the sign-in page; it goes to the same address.
email_rate_limit
permission_error
Five emails to one inbox in an hour, however many callers asked for them.Check that inbox and its spam folder for the ones already sent, or try again in an hour.
sign_in_rate_limit
permission_error
Ten sign-in emails from one address in an hour.Check your inbox and spam folder for the ones already sent — each works for fifteen minutes.
account_closed
permission_error
Signing in to, or signing up with, an account that has been closed.Email us if you want it back. A closed account is not reopened by signing up again.
unverified_account
permission_error
Calling the API before confirming your email address.Open the link we emailed. Confirming the address adds the trial credits and signs you in.
unknown_endpoint
not_found
The path is not one of the documented endpoints.See the endpoint list at /docs. Paths are `/v1/{surface}/{resource}`.
missing_parameter
invalid_request
A required parameter was not given.The message names it. Every parameter is documented on the endpoint page.
missing_one_of
invalid_request
An endpoint that accepts either of two identifiers got neither.Give exactly one of the parameters the message names.
invalid_parameter
invalid_request
A parameter was the wrong type or out of range.The message says what was expected and what arrived.
invalid_cursor
invalid_request
The cursor was not one we issued.Pass `meta.next_cursor` from the previous page verbatim, or omit it.
profile_not_found
not_found
No account exists for that username or URL.Check the username. Usernames are case-insensitive and exclude the leading @.
place_not_found
not_found
No place exists for that id or URL.Place ids come from a search. A place that has closed permanently may stop resolving.
subject_suppressed
not_found
The account or place asked us not to serve it, and we do not.Nothing to fix on your side, and nothing was charged. In a list, rows about them are left out.
results_expired
not_found
A batch job finished more than seven days ago, and its results were deleted, as the privacy notice says.Run the job again. Download results within seven days of a job finishing.
post_not_found
not_found
No post or video exists at that URL or id.The post may have been deleted or made private.
concurrency_limit
rate_limit
More requests are in flight than the account allows.Retry after the seconds in `Retry-After`. Concurrency is what we limit, not requests per second, and it rises with credits purchased.
upstream_unavailable
upstream_errorrefunded
We could not complete the fetch in time.Retry. This call was not charged, and the refund is already in your usage ledger.
internal_error
internal_errorrefunded
Something broke on our side.This call was not charged. If it repeats, send us the request_id.