[{"data":1,"prerenderedAt":38},["ShallowReactive",2],{"docs:rendered-article:\u002Fdocs\u002Fpublic\u002Fguides\u002Ferrors-retries":3},{"path":4,"slug":5,"title":8,"description":9,"category":6,"categoryLabel":10,"order":11,"status":12,"family":13,"subfamily":13,"content":14,"html":15,"examplesHtml":16,"excerpt":17,"readTimeMinutes":18,"headings":19,"examplesHeadings":32,"lastUpdated":13,"endpointId":13,"requiredFlag":13,"relatedArticlePaths":33,"badge":13},"\u002Fdocs\u002Fguides\u002Ferrors-retries",[6,7],"guides","errors-retries","Error handling & retries","Handle API errors predictably with safe retry strategies.","Guides",20,"updated",null,"\nEvery error response follows the same structure and includes a clear error code you can match on programmatically.\n\n## Response format\n\nEvery error follows the same JSON structure. Match on the `code` field to handle specific cases in your code:\n\n::: code-group [Error Response]\n```json [JSON]\n{\n  \"success\": false,\n  \"data\": null,\n  \"error\": {\n    \"code\": \"INSUFFICIENT_CREDITS\",\n    \"message\": \"Insufficient credits: 0 available, 1 required\"\n  },\n  \"metadata\": {\n    \"requestId\": \"00bc3fa0-348f-4955-a1c1-3c7c91234568\",\n    \"executionTimeMs\": 3\n  }\n}\n```\n:::\n\n> [!NOTE]\n> Always include `metadata.requestId` when contacting support. It lets us trace your request instantly.\n\n## Error reference\n\n| Status | What to do |\n| ------ | ---------- |\n| `422` | Check your request body: a required field is missing or malformed. For async endpoints, make sure a webhook URL is configured. |\n| `401` | Check your API key: it may be missing, invalid, or expired. See [Authentication](\u002Fdocs\u002Fauthentication). |\n| `402` | No credits left. Paid lookups (`INSUFFICIENT_CREDITS`) and the free `\u002Fcheck` endpoints (`NO_CREDITS`) are both blocked until you top up. Purchase more or [upgrade your plan](\u002Fsettings\u002Fbilling). |\n| `403` | Your key lacks a required permission, or the endpoint requires a paid plan. [Upgrade](\u002Fsettings\u002Fbilling?tab=credits) to unlock live enrichment, email discovery, and more. |\n| `404` | No result found for your query. Some endpoints still charge credits; see [Not found pricing](\u002Fdocs\u002Fguides\u002Frate-limits-credits#note). |\n| `429` | Rate limit reached. Wait and retry with backoff (see below). |\n| `451` | This person has been removed per GDPR\u002FCCPA. Enrichment is permanently blocked. |\n| `503` | Our service is temporarily unavailable. Retry with backoff (see below). |\n| `504` | The lookup took too long and timed out. Retry with backoff (see below). |\n\n## When to retry\n\nThese statuses are safe to retry with exponential backoff:\n\n- **`429`**\n  you've hit a rate limit. Wait for the reset window and retry.\n- **`503`**\n  temporary service issue. Retry after a short delay.\n- **`504`**\n  the lookup timed out before completing. Retry after a short delay.\n\nAll other errors require a change to your request or configuration before retrying.\n\nWait a little longer between each retry to give the server time to recover:\n\n::: code-group [Retry delay]\n```javascript [JavaScript]\nconst delay = Math.min(1000 * 2 ** attempt, 15000)\nconst jitter = Math.floor(Math.random() * 250)\nawait new Promise((r) => setTimeout(r, delay + jitter))\n```\n```python [Python]\ndelay = min(1 * 2 ** attempt, 15)\njitter = random.uniform(0, 0.25)\ntime.sleep(delay + jitter)\n```\n:::\n\n## Credits and errors\n\nAll error responses (`401`, `402`, `403`, `422`, `429`, `451`, `503`, `504`) cost 0 credits.\n\nThe `404` status is the only exception: some endpoints charge credits when the lookup was performed but no result was found. See [Not found pricing](\u002Fdocs\u002Fguides\u002Frate-limits-credits#note) for the full breakdown.\n","\u003Cp>Every error response follows the same structure and includes a clear error code you can match on programmatically.\u003C\u002Fp>\n\u003Ch2 id=\"response-format\">Response format\u003C\u002Fh2>\n\u003Cp>Every error follows the same JSON structure. Match on the \u003Ccode>code\u003C\u002Fcode> field to handle specific cases in your code:\u003C\u002Fp>\n\u003Cdiv class=\"docs-code-group\">\u003Cdiv class=\"docs-code-group-header\">\u003Cspan class=\"docs-code-group-title\" data-static-title>Error Response\u003C\u002Fspan>\u003Cdiv class=\"docs-code-group-actions\">\u003Cspan class=\"docs-code-group-lang\">JSON\u003C\u002Fspan>\u003Cbutton type=\"button\" class=\"docs-code-group-copy\" data-copy-code=\"true\">\u003Csvg width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\">\u003Crect width=\"14\" height=\"14\" x=\"8\" y=\"8\" rx=\"2\" ry=\"2\"\u002F>\u003Cpath d=\"M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2\"\u002F>\u003C\u002Fsvg>\u003C\u002Fbutton>\u003C\u002Fdiv>\u003C\u002Fdiv>\u003Cdiv class=\"docs-code-group-panel active\" data-tab=\"0\" role=\"tabpanel\">\u003Cpre class=\"shiki shiki-themes github-light github-dark\" style=\"--shiki-light:#24292e;--shiki-dark:#e1e4e8;--shiki-light-bg:#fff;--shiki-dark-bg:#24292e\" tabindex=\"0\" data-language=\"json\">\u003Ccode class=\"language-json\">\u003Cspan class=\"line\">\u003Cspan style=\"--shiki-light:#24292E;--shiki-dark:#E1E4E8\">{\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"--shiki-light:#005CC5;--shiki-dark:#79B8FF\">  \"success\"\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#24292E;--shiki-dark:#E1E4E8\">: \u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#005CC5;--shiki-dark:#79B8FF\">false\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#24292E;--shiki-dark:#E1E4E8\">,\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"--shiki-light:#005CC5;--shiki-dark:#79B8FF\">  \"data\"\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#24292E;--shiki-dark:#E1E4E8\">: \u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#005CC5;--shiki-dark:#79B8FF\">null\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#24292E;--shiki-dark:#E1E4E8\">,\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"--shiki-light:#005CC5;--shiki-dark:#79B8FF\">  \"error\"\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#24292E;--shiki-dark:#E1E4E8\">: {\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"--shiki-light:#005CC5;--shiki-dark:#79B8FF\">    \"code\"\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#24292E;--shiki-dark:#E1E4E8\">: \u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#032F62;--shiki-dark:#9ECBFF\">\"INSUFFICIENT_CREDITS\"\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#24292E;--shiki-dark:#E1E4E8\">,\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"--shiki-light:#005CC5;--shiki-dark:#79B8FF\">    \"message\"\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#24292E;--shiki-dark:#E1E4E8\">: \u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#032F62;--shiki-dark:#9ECBFF\">\"Insufficient credits: 0 available, 1 required\"\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"--shiki-light:#24292E;--shiki-dark:#E1E4E8\">  },\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"--shiki-light:#005CC5;--shiki-dark:#79B8FF\">  \"metadata\"\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#24292E;--shiki-dark:#E1E4E8\">: {\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"--shiki-light:#005CC5;--shiki-dark:#79B8FF\">    \"requestId\"\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#24292E;--shiki-dark:#E1E4E8\">: \u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#032F62;--shiki-dark:#9ECBFF\">\"00bc3fa0-348f-4955-a1c1-3c7c91234568\"\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#24292E;--shiki-dark:#E1E4E8\">,\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"--shiki-light:#005CC5;--shiki-dark:#79B8FF\">    \"executionTimeMs\"\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#24292E;--shiki-dark:#E1E4E8\">: \u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#005CC5;--shiki-dark:#79B8FF\">3\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"--shiki-light:#24292E;--shiki-dark:#E1E4E8\">  }\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"--shiki-light:#24292E;--shiki-dark:#E1E4E8\">}\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fcode>\u003C\u002Fpre>\n\u003C\u002Fdiv>\u003C\u002Fdiv>\n\u003Cdiv class=\"markdown-alert markdown-alert-note\">\u003Cp class=\"markdown-alert-title\">\u003Csvg class=\"octicon octicon-info mr-2\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\">\u003Cpath d=\"M0 8a8 8 0 1 1 16 0A8 8 0 0 1 0 8Zm8-6.5a6.5 6.5 0 1 0 0 13 6.5 6.5 0 0 0 0-13ZM6.5 7.75A.75.75 0 0 1 7.25 7h1a.75.75 0 0 1 .75.75v2.75h.25a.75.75 0 0 1 0 1.5h-2a.75.75 0 0 1 0-1.5h.25v-2h-.25a.75.75 0 0 1-.75-.75ZM8 6a1 1 0 1 1 0-2 1 1 0 0 1 0 2Z\">\u003C\u002Fpath>\u003C\u002Fsvg>Note\u003C\u002Fp>\u003Cp>Always include \u003Ccode>metadata.requestId\u003C\u002Fcode> when contacting support. It lets us trace your request instantly.\u003C\u002Fp>\n\u003C\u002Fdiv>\n\u003Ch2 id=\"error-reference\">Error reference\u003C\u002Fh2>\n\u003Ctable>\n\u003Cthead>\n\u003Ctr>\n\u003Cth>Status\u003C\u002Fth>\n\u003Cth>What to do\u003C\u002Fth>\n\u003C\u002Ftr>\n\u003C\u002Fthead>\n\u003Ctbody>\n\u003Ctr>\n\u003Ctd>\u003Ccode>422\u003C\u002Fcode>\u003C\u002Ftd>\n\u003Ctd>Check your request body: a required field is missing or malformed. For async endpoints, make sure a webhook URL is configured.\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>\u003Ccode>401\u003C\u002Fcode>\u003C\u002Ftd>\n\u003Ctd>Check your API key: it may be missing, invalid, or expired. See \u003Ca href=\"\u002Fdocs\u002Fauthentication\">Authentication\u003C\u002Fa>.\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>\u003Ccode>402\u003C\u002Fcode>\u003C\u002Ftd>\n\u003Ctd>No credits left. Paid lookups (\u003Ccode>INSUFFICIENT_CREDITS\u003C\u002Fcode>) and the free \u003Ccode>\u002Fcheck\u003C\u002Fcode> endpoints (\u003Ccode>NO_CREDITS\u003C\u002Fcode>) are both blocked until you top up. Purchase more or \u003Ca href=\"\u002Fsettings\u002Fbilling\" target=\"_blank\" rel=\"noopener\">upgrade your plan\u003C\u002Fa>.\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>\u003Ccode>403\u003C\u002Fcode>\u003C\u002Ftd>\n\u003Ctd>Your key lacks a required permission, or the endpoint requires a paid plan. \u003Ca href=\"\u002Fsettings\u002Fbilling?tab=credits\" target=\"_blank\" rel=\"noopener\">Upgrade\u003C\u002Fa> to unlock live enrichment, email discovery, and more.\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>\u003Ccode>404\u003C\u002Fcode>\u003C\u002Ftd>\n\u003Ctd>No result found for your query. Some endpoints still charge credits; see \u003Ca href=\"\u002Fdocs\u002Fguides\u002Frate-limits-credits#note\" target=\"_blank\" rel=\"noopener\">Not found pricing\u003C\u002Fa>.\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>\u003Ccode>429\u003C\u002Fcode>\u003C\u002Ftd>\n\u003Ctd>Rate limit reached. Wait and retry with backoff (see below).\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>\u003Ccode>451\u003C\u002Fcode>\u003C\u002Ftd>\n\u003Ctd>This person has been removed per GDPR\u002FCCPA. Enrichment is permanently blocked.\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>\u003Ccode>503\u003C\u002Fcode>\u003C\u002Ftd>\n\u003Ctd>Our service is temporarily unavailable. Retry with backoff (see below).\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>\u003Ccode>504\u003C\u002Fcode>\u003C\u002Ftd>\n\u003Ctd>The lookup took too long and timed out. Retry with backoff (see below).\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003C\u002Ftbody>\n\u003C\u002Ftable>\n\u003Ch2 id=\"when-to-retry\">When to retry\u003C\u002Fh2>\n\u003Cp>These statuses are safe to retry with exponential backoff:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Cstrong>\u003Ccode>429\u003C\u002Fcode>\u003C\u002Fstrong>\nyou’ve hit a rate limit. Wait for the reset window and retry.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>\u003Ccode>503\u003C\u002Fcode>\u003C\u002Fstrong>\ntemporary service issue. Retry after a short delay.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>\u003Ccode>504\u003C\u002Fcode>\u003C\u002Fstrong>\nthe lookup timed out before completing. Retry after a short delay.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>All other errors require a change to your request or configuration before retrying.\u003C\u002Fp>\n\u003Cp>Wait a little longer between each retry to give the server time to recover:\u003C\u002Fp>\n\u003Cdiv class=\"docs-code-group\">\u003Cdiv class=\"docs-code-group-header\">\u003Cspan class=\"docs-code-group-title\" data-static-title>Retry delay\u003C\u002Fspan>\u003Cdiv class=\"docs-code-group-actions\">\u003Cdiv class=\"docs-code-group-selector\">\u003Cbutton type=\"button\" class=\"docs-code-group-trigger\">\u003Cspan class=\"docs-code-group-lang\">JavaScript\u003C\u002Fspan>\u003Csvg width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\">\u003Cpath d=\"m7 15 5 5 5-5\"\u002F>\u003Cpath d=\"m7 9 5-5 5 5\"\u002F>\u003C\u002Fsvg>\u003C\u002Fbutton>\u003Cdiv class=\"docs-code-group-menu\">\u003Cbutton type=\"button\" class=\"docs-code-group-option active\" data-tab=\"0\">JavaScript\u003C\u002Fbutton>\u003Cbutton type=\"button\" class=\"docs-code-group-option\" data-tab=\"1\">Python\u003C\u002Fbutton>\u003C\u002Fdiv>\u003C\u002Fdiv>\u003Cbutton type=\"button\" class=\"docs-code-group-copy\" data-copy-code=\"true\">\u003Csvg width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\">\u003Crect width=\"14\" height=\"14\" x=\"8\" y=\"8\" rx=\"2\" ry=\"2\"\u002F>\u003Cpath d=\"M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2\"\u002F>\u003C\u002Fsvg>\u003C\u002Fbutton>\u003C\u002Fdiv>\u003C\u002Fdiv>\u003Cdiv class=\"docs-code-group-panel active\" data-tab=\"0\" role=\"tabpanel\">\u003Cpre class=\"shiki shiki-themes github-light github-dark\" style=\"--shiki-light:#24292e;--shiki-dark:#e1e4e8;--shiki-light-bg:#fff;--shiki-dark-bg:#24292e\" tabindex=\"0\" data-language=\"javascript\">\u003Ccode class=\"language-javascript\">\u003Cspan class=\"line\">\u003Cspan style=\"--shiki-light:#D73A49;--shiki-dark:#F97583\">const\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#005CC5;--shiki-dark:#79B8FF\"> delay\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#D73A49;--shiki-dark:#F97583\"> =\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#24292E;--shiki-dark:#E1E4E8\"> Math.\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#6F42C1;--shiki-dark:#B392F0\">min\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#24292E;--shiki-dark:#E1E4E8\">(\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#005CC5;--shiki-dark:#79B8FF\">1000\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#D73A49;--shiki-dark:#F97583\"> *\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#005CC5;--shiki-dark:#79B8FF\"> 2\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#D73A49;--shiki-dark:#F97583\"> **\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#24292E;--shiki-dark:#E1E4E8\"> attempt, \u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#005CC5;--shiki-dark:#79B8FF\">15000\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#24292E;--shiki-dark:#E1E4E8\">)\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"--shiki-light:#D73A49;--shiki-dark:#F97583\">const\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#005CC5;--shiki-dark:#79B8FF\"> jitter\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#D73A49;--shiki-dark:#F97583\"> =\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#24292E;--shiki-dark:#E1E4E8\"> Math.\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#6F42C1;--shiki-dark:#B392F0\">floor\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#24292E;--shiki-dark:#E1E4E8\">(Math.\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#6F42C1;--shiki-dark:#B392F0\">random\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#24292E;--shiki-dark:#E1E4E8\">() \u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#D73A49;--shiki-dark:#F97583\">*\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#005CC5;--shiki-dark:#79B8FF\"> 250\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#24292E;--shiki-dark:#E1E4E8\">)\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"--shiki-light:#D73A49;--shiki-dark:#F97583\">await\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#D73A49;--shiki-dark:#F97583\"> new\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#005CC5;--shiki-dark:#79B8FF\"> Promise\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#24292E;--shiki-dark:#E1E4E8\">((\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#E36209;--shiki-dark:#FFAB70\">r\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#24292E;--shiki-dark:#E1E4E8\">) \u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#D73A49;--shiki-dark:#F97583\">=>\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#6F42C1;--shiki-dark:#B392F0\"> setTimeout\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#24292E;--shiki-dark:#E1E4E8\">(r, delay \u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#D73A49;--shiki-dark:#F97583\">+\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#24292E;--shiki-dark:#E1E4E8\"> jitter))\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fcode>\u003C\u002Fpre>\n\u003C\u002Fdiv>\u003Cdiv class=\"docs-code-group-panel\" data-tab=\"1\" role=\"tabpanel\">\u003Cpre class=\"shiki shiki-themes github-light github-dark\" style=\"--shiki-light:#24292e;--shiki-dark:#e1e4e8;--shiki-light-bg:#fff;--shiki-dark-bg:#24292e\" tabindex=\"0\" data-language=\"python\">\u003Ccode class=\"language-python\">\u003Cspan class=\"line\">\u003Cspan style=\"--shiki-light:#24292E;--shiki-dark:#E1E4E8\">delay \u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#D73A49;--shiki-dark:#F97583\">=\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#005CC5;--shiki-dark:#79B8FF\"> min\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#24292E;--shiki-dark:#E1E4E8\">(\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#005CC5;--shiki-dark:#79B8FF\">1\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#D73A49;--shiki-dark:#F97583\"> *\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#005CC5;--shiki-dark:#79B8FF\"> 2\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#D73A49;--shiki-dark:#F97583\"> **\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#24292E;--shiki-dark:#E1E4E8\"> attempt, \u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#005CC5;--shiki-dark:#79B8FF\">15\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#24292E;--shiki-dark:#E1E4E8\">)\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"--shiki-light:#24292E;--shiki-dark:#E1E4E8\">jitter \u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#D73A49;--shiki-dark:#F97583\">=\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#24292E;--shiki-dark:#E1E4E8\"> random.uniform(\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#005CC5;--shiki-dark:#79B8FF\">0\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#24292E;--shiki-dark:#E1E4E8\">, \u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#005CC5;--shiki-dark:#79B8FF\">0.25\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#24292E;--shiki-dark:#E1E4E8\">)\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"--shiki-light:#24292E;--shiki-dark:#E1E4E8\">time.sleep(delay \u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#D73A49;--shiki-dark:#F97583\">+\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#24292E;--shiki-dark:#E1E4E8\"> jitter)\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fcode>\u003C\u002Fpre>\n\u003C\u002Fdiv>\u003C\u002Fdiv>\n\u003Ch2 id=\"credits-and-errors\">Credits and errors\u003C\u002Fh2>\n\u003Cp>All error responses (\u003Ccode>401\u003C\u002Fcode>, \u003Ccode>402\u003C\u002Fcode>, \u003Ccode>403\u003C\u002Fcode>, \u003Ccode>422\u003C\u002Fcode>, \u003Ccode>429\u003C\u002Fcode>, \u003Ccode>451\u003C\u002Fcode>, \u003Ccode>503\u003C\u002Fcode>, \u003Ccode>504\u003C\u002Fcode>) cost 0 credits.\u003C\u002Fp>\n\u003Cp>The \u003Ccode>404\u003C\u002Fcode> status is the only exception: some endpoints charge credits when the lookup was performed but no result was found. See \u003Ca href=\"\u002Fdocs\u002Fguides\u002Frate-limits-credits#note\" target=\"_blank\" rel=\"noopener\">Not found pricing\u003C\u002Fa> for the full breakdown.\u003C\u002Fp>\n","","Every error response follows the same structure and includes a clear error code you can match on programmatically. Response format Every error follows the same JSON structure. M...",2,[20,23,26,29],{"id":21,"title":22,"level":18},"response-format","Response format",{"id":24,"title":25,"level":18},"error-reference","Error reference",{"id":27,"title":28,"level":18},"when-to-retry","When to retry",{"id":30,"title":31,"level":18},"credits-and-errors","Credits and errors",[],[34,35,36,37],"\u002Fdocs\u002Fguides\u002Fproduction-checklist","\u002Fdocs\u002Fauthentication","\u002Fdocs\u002Fguides\u002Frate-limits-credits","\u002Fdocs\u002Fguides\u002Fwebhooks",1785860236739]