Skip to main content

Search FoundrList

Search launches, makers and skills, or jump to a page

Reference

Errors and rate limits

Error codes returned by every endpoint, what causes them, and the request limits that apply.

Error format

Errors use the standard OAuth shape: a machine-readable error code and a human-readable error_description. Branch on error; the description can change. Authentication failures also set a WWW-Authenticate header.

Example
HTTP/1.1 400 Bad RequestContent-Type: application/jsonCache-Control: no-store​{  "error": "invalid_grant",  "error_description": "The authorization code is invalid or expired."}

Error codes

API error codes
StatuserrorWhat happened
400invalid_requestA required parameter is missing, repeated, or the body can't be parsed. Or you sent two client authentication methods.
401invalid_clientUnknown or disabled client, wrong secret, or a secret is required for this token.
400invalid_grantThe code or refresh token is invalid, expired, already used, issued to another app, or the founder disconnected. Also a redirect_uri or PKCE mismatch.
400unsupported_grant_typegrant_type isn't authorization_code or refresh_token.
401invalid_tokenThe access token is missing, malformed, expired or revoked. Refresh it, or sign the founder in again.
403insufficient_scopeThe token wasn't granted the scope this endpoint needs.
429rate_limitedToo many requests. Wait until the reset time and retry.
500server_errorSomething went wrong on our side. Retry with backoff.

Sign-in errors

Problems with the authorization request come back to your callback URL as ?error=…&error_description=…&state=….

Authorization errors
errorWhat happened
access_deniedThe founder chose not to allow your app.
invalid_scopeThe request asked for a scope that doesn't exist.
invalid_requestA PKCE parameter is malformed, or code_challenge_method isn't S256.
unsupported_response_typeresponse_type isn't code.
login_requiredprompt=none, and the founder isn't signed in to FoundrList.
consent_requiredprompt=none, and the founder hasn't approved these scopes yet.

Bad client or callback URL? No redirect.

If the client ID is unknown or the redirect_uri isn't registered, FoundrList shows an error page instead of redirecting, so your app can never be used to bounce founders to another site.

Rate limits

Rate limits
EndpointsLimit
Token and revoke60 requests a minute per client and IP address
User info and spend300 requests a minute per client, and 600 per IP address
Spend by email300 requests a minute per client and IP address
Public product API400 requests a minute per IP address

Responses include X-RateLimit-Limit, X-RateLimit-Remaining and X-RateLimit-Reset (Unix time in milliseconds). Over the limit you get 429.

429 Too Many Requests
HTTP/1.1 429 Too Many RequestsX-RateLimit-Limit: 300X-RateLimit-Remaining: 0X-RateLimit-Reset: 1791273600000​{ "error": "rate_limited", "error_description": "Too many requests. Slow down." }