Error reference

Every error response includes a machine-readable error string, a request_id for support correlation, and an X-Request-Id response header. Failed requests are never billed.

Response format

{
  "error": "over_quota",
  "request_id": "550e8400-e29b-41d4-a716-446655440000",
  "message": "Out of credits. Upgrade your plan or wait for the monthly reset.",
  "upgrade_url": "https://knowfirm.com/pricing"
}

Error codes

400invalid_request

Malformed request body, missing required fields, or invalid parameter values.

Check the request against the OpenAPI spec. Ensure JSON is valid and required fields are present.

401invalid_or_missing_api_key

No API key provided, or the key does not match any active key.

Pass a valid key via the X-API-Key header or Authorization: Bearer header. Create one in the dashboard.

402over_quota

Monthly credit allowance exhausted for your plan.

Wait for the next calendar month reset, or upgrade your plan at /pricing.

402payment_past_due

Stripe subscription is past due after retry schedule.

Update your payment method in the billing portal at /dashboard/billing.

402usage_ceiling

Hard monthly usage ceiling reached (enterprise/metered plans).

Contact support to raise the ceiling for your account.

403ip_not_allowed

Request IP is outside the CIDR allowlist configured on the API key.

Update the key's IP allowlist in /dashboard or remove the restriction.

403scope_denied

The API key is scoped to specific operations and this one is not included.

Edit the key's scopes in /dashboard to include the needed operation, or use a key with broader scopes.

403plan_not_entitled

Your plan does not include this operation (e.g. batch enrich requires Starter or above).

Upgrade to a plan that includes the operation at /pricing.

403account_suspended

Account has been suspended.

Contact support for details.

404not_found

No matching entity found for the given identifiers.

Verify the identifier (EIN, name, CIK, LEI) is correct. Try alternative identifiers or a broader search.

429rate_limited

More than 120 requests per minute from this API key.

Back off and retry after the Retry-After header value. Use the X-RateLimit-Remaining header to self-throttle.

429daily_limit

Rolling 24-hour request cap reached for this key.

Wait for the window to roll over, or contact support to raise the cap.

500internal_error

Unexpected server error.

Retry the request. If it persists, contact support with the X-Request-Id value.

500capability_failed

The data capability failed after input validation.

Retry the request. If it persists, contact support with the X-Request-Id value.

503upstream_timeoutretryable

Warehouse query exceeded the timeout (cold read or high load).

Retry after the Retry-After header (typically 2s). The response includes retryable: true.

503upstream_unavailableretryable

Data warehouse is temporarily unreachable (connection pool restart, DNS).

Retry after the Retry-After header (typically 10s). The response includes retryable: true.

Standard headers

All errors include request_id in the body and X-Request-Id in the headers. Include these when contacting support.