[{"data":1,"prerenderedAt":110},["ShallowReactive",2],{"docs:rendered-article:\u002Fdocs\u002Fpublic\u002Fguides\u002Fmigrating-v1-to-v2":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":103,"lastUpdated":13,"endpointId":13,"requiredFlag":13,"relatedArticlePaths":104,"badge":13},"\u002Fdocs\u002Fguides\u002Fmigrating-v1-to-v2",[6,7],"guides","migrating-v1-to-v2","Migrating from V1 to V2","Complete guide to migrate your integration from the legacy V1 API to the modern V2 API.","Guides",50,"updated",null,"\n## Introduction\n\nThe V2 API is the recommended version for all new integrations. It offers a cleaner architecture, standardized responses, contextual pricing, and better monitoring capabilities.\n\n**The V1 API remains fully available**; there is no deprecation date. You can migrate at your own pace, endpoint by endpoint. Both versions coexist and share your workspace credits.\n\n### Why migrate?\n\n- **Standard authentication**\n  Bearer token header instead of query parameter\n- **Structured responses**\n  consistent `data` \u002F `error` \u002F `metadata` \u002F `quotas` envelope\n- **Contextual pricing**\n  pay less for cached results and stale data\n- **Free Check endpoints**\n  verify data freshness before spending credits\n- **GDPR\u002FCCPA compliance**\n  automatic blocklist enforcement with clear `451` status codes\n- **Per-key rate limits**\n  finer control over API key usage alongside workspace limits\n- **Webhook simplification**\n  workspace-level URL or per-request override, no dedicated alert endpoints\n\n## Migration checklist\n\nHere's everything you need to do. Each step links to the detailed section below.\n\n1. [Generate a V2 API key](#authentication) (`rc_` prefix) from the dashboard\n2. [Switch to Bearer header authentication](#authentication). `Authorization: Bearer rc_...`\n3. [Update endpoint URLs](#endpoint-mapping). See the mapping tables\n4. [Convert GET to POST with JSON body](#request-format-changes) where applicable\n5. [Update response parsing](#response-format). Access data via `response.data` instead of root-level fields\n6. [Update error handling](#error-handling). Use `error.code` and `error.message` instead of `title` and `msg`\n7. [Update quota tracking](#rate-limiting). Use the new `quotas.workspace` and `quotas.key` structure\n8. [Configure a webhook URL](#webhooks) at workspace level if using async endpoints\n9. Test your new key with `GET \u002Fv2\u002Fusage` (free) to validate connectivity\n10. Migrate endpoint by endpoint. Both versions coexist, so you can move gradually\n\n> [!TIP]\n> Start by migrating your most-used endpoint first. Once you are comfortable with the V2 response format, the remaining endpoints follow the same pattern.\n\n## Authentication\n\n### V1: Query parameter\n\nV1 authenticates via a query parameter using keys with the `sk_` prefix:\n\n::: code-group [V1 Authentication]\n```bash [Bash]\ncurl \"https:\u002F\u002Fapi.reversecontact.com\u002Fv1\u002Fenrichment\u002Fprofile?apikey=sk_your_api_key&linkedin_url=https:\u002F\u002Fsocial.com\u002Fin\u002Fexample\"\n```\n:::\n\n### V2: Bearer header (mandatory)\n\nV2 uses the standard `Authorization` header with keys using the `rc_` prefix:\n\n::: code-group [V2 Authentication]\n```bash [Bash]\ncurl -X POST https:\u002F\u002Fapi.reversecontact.com\u002Fv2\u002Ffetch\u002Fpersons \\\n  -H \"Authorization: Bearer rc_your_api_key\" \\\n  -H \"Content-Type: application\u002Fjson\" \\\n  -d '{\"url\": \"https:\u002F\u002Fsocial.com\u002Fin\u002Fexample\"}'\n```\n:::\n\n> [!TIP]\n> Generate a V2 API key (`rc_` prefix) from the [API Keys](\u002Fapi-keys) page in your dashboard. Your existing `sk_` keys continue to work with V1 endpoints.\n\n## Response format\n\n### V1 response\n\nV1 mixes data fields at the root level alongside quota information:\n\n::: code-group [V1 Response]\n```json [JSON]\n{\n  \"success\": true,\n  \"credits_consumed\": 2,\n  \"credits_left\": 5479,\n  \"rate_limit_left\": 997,\n  \"daily_rate_limit_left\": 997,\n  \"minute_rate_limit_left\": 48,\n  \"next_minute_rate_limit_reset\": \"2025-01-15T09:31:00.000Z\",\n  \"quotas\": {\n    \"credits\": { \"total\": 10000, \"used\": 4521, \"left\": 5479 },\n    \"daily_rate_limit\": { \"limit\": 1000, \"used\": 3, \"left\": 997, \"next_reset\": \"...\" },\n    \"minute_rate_limit\": { \"limit\": 50, \"used\": 2, \"left\": 48, \"next_reset\": \"...\" }\n  },\n  \"metadata\": {\n    \"source\": \"cache\",\n    \"request_id\": \"a1b2c3d4-...\",\n    \"executionTimeMs\": 1234\n  },\n  \"person\": {\n    \"firstName\": \"Jane\",\n    \"lastName\": \"Doe\"\n  }\n}\n```\n:::\n\n### V2 response\n\nV2 uses a standardized envelope with clear separation between data, errors, metadata, and quotas:\n\n::: code-group [V2 Response]\n```json [JSON]\n{\n  \"success\": true,\n  \"data\": {\n    \"firstName\": \"Jane\",\n    \"lastName\": \"Doe\"\n  },\n  \"error\": null,\n  \"metadata\": {\n    \"requestId\": \"a1b2c3d4-e5f6-4890-abcd-ef1234567890\",\n    \"executionTimeMs\": 1234\n  },\n  \"quotas\": {\n    \"creditsConsumed\": 2,\n    \"workspace\": {\n      \"id\": \"ws_...\",\n      \"credits\": { \"total\": 10000, \"used\": 4521, \"left\": 5479 },\n      \"minuteRateLimit\": { \"limit\": 50, \"used\": 2, \"left\": 48, \"nextReset\": \"...\" },\n      \"dailyLimit\": null,\n      \"hasUnlimitedCredits\": false,\n      \"allowDailyOvercost\": false\n    },\n    \"key\": {\n      \"id\": \"key_...\",\n      \"dailyLimit\": null,\n      \"minuteRateLimit\": { \"limit\": 50, \"used\": 2, \"left\": 48, \"nextReset\": null }\n    }\n  }\n}\n```\n:::\n\n### Key differences\n\n| Aspect | V1 | V2 |\n| ------ | -- | -- |\n| Data location | Root level (e.g. `response.person`) | Inside `response.data` |\n| Request ID | `metadata.request_id` (snake_case) | `metadata.requestId` (camelCase) |\n| Data source | `metadata.source` (`\"cache\"` or `\"fresh\"`) | Not in body (available in logs) |\n| Quota fields | Flat fields at root + nested `quotas` | Structured `quotas.workspace` + `quotas.key` |\n| Rate limits | Workspace-level only | Workspace + per-key limits |\n\n> [!TIP]\n> When migrating your response parser, the main change is accessing `response.data` instead of the root-level data field (e.g. `response.person`, `response.company`).\n\n## Error handling\n\n### V1 error format\n\n::: code-group [404 Not Found]\n```json [JSON]\n{\n  \"success\": false,\n  \"title\": \"Not Found\",\n  \"msg\": \"No data found\"\n}\n```\n:::\n\n### V2 error format\n\n::: code-group [404 Not Found]\n```json [JSON]\n{\n  \"success\": false,\n  \"data\": null,\n  \"error\": {\n    \"code\": \"REQUEST_ERROR\",\n    \"message\": \"Profile not found\"\n  },\n  \"metadata\": {\n    \"requestId\": \"a1b2c3d4-e5f6-4890-abcd-ef1234567890\",\n    \"executionTimeMs\": 234\n  }\n}\n```\n:::\n\n### V2 error codes\n\n| Status | Description |\n| ------ | ----------- |\n| `400` | Invalid JSON body or endpoint-specific validation |\n| `401` | Missing or invalid API key |\n| `402` | Insufficient credits |\n| `403` | API key lacks required permission, or endpoint requires a paid plan |\n| `404` | No result found for your query |\n| `422` | Schema or validation error (e.g. malformed input, disposable email, missing webhook URL) |\n| `429` | Rate limit exceeded. Wait and retry after `nextReset` |\n| `451` | Data Subject Blocked. Profile removed per GDPR\u002FCCPA request |\n| `503` | Temporary service issue. Retry with backoff |\n| `504` | The lookup timed out. Retry with backoff |\n\nFor the full error reference, see [Error handling & retries](\u002Fdocs\u002Fguides\u002Ferrors-retries).\n\n## Endpoint mapping\n\nMost V1 endpoints have a V2 equivalent. V2 standardizes all endpoints to **POST with JSON body** and **Bearer header authentication**.\n\n### Person endpoints\n\n| V1 | V2 | Delivery |\n| -- | -- | :------: |\n| `GET \u002Fv1\u002Fenrichment\u002Fprofile` | `POST \u002Fv2\u002Ffetch\u002Fpersons` | Sync |\n| | `POST \u002Fv2\u002Ffetch\u002Fpersons\u002Flive` | Async |\n| `GET \u002Fv1\u002Fenrichment` | `POST \u002Fv2\u002Fenrich\u002Fpersons` | Sync |\n| `POST \u002Fv1\u002Fenrichment\u002Fmatch` | `POST \u002Fv2\u002Fenrich\u002Fpersons` | Sync |\n| `POST \u002Fv1\u002Fenrichment\u002Fpersons\u002Fsearch` | `POST \u002Fv2\u002Fsearch\u002Fpersons` | Sync |\n\n### Company endpoints\n\n| V1 | V2 | Delivery |\n| -- | -- | :------: |\n| `GET \u002Fv1\u002Fenrichment\u002Fcompany` | `POST \u002Fv2\u002Ffetch\u002Fcompanies` | Sync |\n| | `POST \u002Fv2\u002Ffetch\u002Fcompanies\u002Flive` | Async |\n| `GET \u002Fv1\u002Fenrichment\u002Fcompany\u002Fdomain` | `POST \u002Fv2\u002Fenrich\u002Fcompanies` | Sync |\n| `POST \u002Fv1\u002Fenrichment\u002Fcompanies\u002Fsearch` | `POST \u002Fv2\u002Fsearch\u002Fcompanies` | Sync |\n\n### Email & contact endpoints\n\n| V1 | V2 | Delivery |\n| -- | -- | :------: |\n| `GET \u002Fv1\u002Fenrichment\u002Fresolve\u002Femail` | `POST \u002Fv2\u002Fenrich\u002Fpersons` | Sync |\n| `POST \u002Fv1\u002Fenrichment\u002Fprofile-from-email` | `POST \u002Fv2\u002Fenrich\u002Fpersons` | Sync |\n\n### Job endpoints\n\n| V1 | V2 | Delivery |\n| -- | -- | :------: |\n| `GET \u002Fv1\u002Fenrichment\u002Fjobs\u002F*` | _Not ported_ |  |\n\n### Utility endpoints\n\n| V1 | V2 | Delivery |\n| -- | -- | :------: |\n| `GET \u002Fv1\u002Fworkspaces\u002Fquotas` | `GET \u002Fv2\u002Fusage` | Sync |\n| `GET \u002Fv1\u002Flogs\u002Frequests` | Via [Dashboard](\u002Flogs) |  |\n| `GET \u002Fv1\u002Flogs\u002Freports`, `POST \u002Fv1\u002Flogs\u002Freport` | Via [Dashboard](\u002Flogs) |  |\n\n## Request format changes\n\nHere are two common examples. All other endpoints follow the same pattern; see the full [Endpoint mapping](#endpoint-mapping) above.\n\n### Fetch a person profile (live)\n\n**Before (V1):**\n\n::: code-group [V1]\n```bash [Bash]\ncurl \"https:\u002F\u002Fapi.reversecontact.com\u002Fv1\u002Fenrichment\u002Fprofile?apikey=sk_your_key&linkedin_url=https:\u002F\u002Fsocial.com\u002Fin\u002Fjanedoe\"\n```\n:::\n\n**After (V2):**\n\n::: code-group [V2]\n```bash [Bash]\n# webhookUrl is optional if a default is configured in Settings > Webhooks\ncurl -X POST https:\u002F\u002Fapi.reversecontact.com\u002Fv2\u002Ffetch\u002Fpersons\u002Flive \\\n  -H \"Authorization: Bearer rc_your_key\" \\\n  -H \"Content-Type: application\u002Fjson\" \\\n  -d '{\"url\": \"https:\u002F\u002Fsocial.com\u002Fin\u002Fjanedoe\"}'\n```\n:::\n\n\n## Credits & pricing\n\nV2 introduces contextual pricing: the credit cost depends on whether data comes from a live scrape or cache, and whether a result was found or not.\n\n**For the full credit breakdown per endpoint, see [Rate limits & credits](\u002Fdocs\u002Fguides\u002Frate-limits-credits).**\n\n### What's new in V2\n\n- **Check endpoints**\n  [free endpoints](\u002Fdocs\u002Fendpoints\u002Fcheck-person) to verify data existence and freshness before spending credits.\n- **Company Search**\n  new [company search](\u002Fdocs\u002Fendpoints\u002Fsearch-companies) endpoint (1 credit).\n- **GDPR\u002FCCPA blocklist**\n  automatic enforcement with `451` status code.\n- **Disposable email detection**\n  `422` error when a disposable email domain is used.\n\n## Rate limiting\n\nBoth V1 and V2 enforce minute-level and daily rate limits at the workspace level.\n\n### What changes in V2\n\n- **Per-key limits**\n  V2 adds rate limits scoped to individual API keys. See [API key management](\u002Fdocs\u002Fguides\u002Fapi-key-management#3-set-rate-limits-optional).\n- **Structured quota response**\n  rate limit status is available in every response under `quotas.workspace.minuteRateLimit` and `quotas.key.minuteRateLimit`.\n- **`nextReset` field**\n  tells you exactly when the current minute window resets (ISO 8601 timestamp).\n\nFor the full details, see [Rate limits & credits](\u002Fdocs\u002Fguides\u002Frate-limits-credits).\n\n## Async results\n\nV2 delivers async results in two ways: pull on demand via [polling](\u002Fdocs\u002Fguides\u002Fpolling) (recommended, no public endpoint required), or push to a webhook URL configured in **[Settings > Webhooks](\u002Fsettings\u002Fwebhooks)** or per-request via `webhookUrl`.\n\nSee the [Polling guide](\u002Fdocs\u002Fguides\u002Fpolling) for the recommended path with side-by-side comparison, or [Webhooks](\u002Fdocs\u002Fguides\u002Fwebhooks) for push delivery setup.\n","\u003Ch2 id=\"introduction\">Introduction\u003C\u002Fh2>\n\u003Cp>The V2 API is the recommended version for all new integrations. It offers a cleaner architecture, standardized responses, contextual pricing, and better monitoring capabilities.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>The V1 API remains fully available\u003C\u002Fstrong>; there is no deprecation date. You can migrate at your own pace, endpoint by endpoint. Both versions coexist and share your workspace credits.\u003C\u002Fp>\n\u003Ch3 id=\"why-migrate\">Why migrate?\u003C\u002Fh3>\n\u003Cul>\n\u003Cli>\u003Cstrong>Standard authentication\u003C\u002Fstrong>\nBearer token header instead of query parameter\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Structured responses\u003C\u002Fstrong>\nconsistent \u003Ccode>data\u003C\u002Fcode> \u002F \u003Ccode>error\u003C\u002Fcode> \u002F \u003Ccode>metadata\u003C\u002Fcode> \u002F \u003Ccode>quotas\u003C\u002Fcode> envelope\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Contextual pricing\u003C\u002Fstrong>\npay less for cached results and stale data\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Free Check endpoints\u003C\u002Fstrong>\nverify data freshness before spending credits\u003C\u002Fli>\n\u003Cli>\u003Cstrong>GDPR\u002FCCPA compliance\u003C\u002Fstrong>\nautomatic blocklist enforcement with clear \u003Ccode>451\u003C\u002Fcode> status codes\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Per-key rate limits\u003C\u002Fstrong>\nfiner control over API key usage alongside workspace limits\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Webhook simplification\u003C\u002Fstrong>\nworkspace-level URL or per-request override, no dedicated alert endpoints\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch2 id=\"migration-checklist\">Migration checklist\u003C\u002Fh2>\n\u003Cp>Here’s everything you need to do. Each step links to the detailed section below.\u003C\u002Fp>\n\u003Col>\n\u003Cli>\u003Ca href=\"#authentication\">Generate a V2 API key\u003C\u002Fa> (\u003Ccode>rc_\u003C\u002Fcode> prefix) from the dashboard\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"#authentication\">Switch to Bearer header authentication\u003C\u002Fa>. \u003Ccode>Authorization: Bearer rc_...\u003C\u002Fcode>\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"#endpoint-mapping\">Update endpoint URLs\u003C\u002Fa>. See the mapping tables\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"#request-format-changes\">Convert GET to POST with JSON body\u003C\u002Fa> where applicable\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"#response-format\">Update response parsing\u003C\u002Fa>. Access data via \u003Ccode>response.data\u003C\u002Fcode> instead of root-level fields\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"#error-handling\">Update error handling\u003C\u002Fa>. Use \u003Ccode>error.code\u003C\u002Fcode> and \u003Ccode>error.message\u003C\u002Fcode> instead of \u003Ccode>title\u003C\u002Fcode> and \u003Ccode>msg\u003C\u002Fcode>\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"#rate-limiting\">Update quota tracking\u003C\u002Fa>. Use the new \u003Ccode>quotas.workspace\u003C\u002Fcode> and \u003Ccode>quotas.key\u003C\u002Fcode> structure\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"#webhooks\">Configure a webhook URL\u003C\u002Fa> at workspace level if using async endpoints\u003C\u002Fli>\n\u003Cli>Test your new key with \u003Ccode>GET \u002Fv2\u002Fusage\u003C\u002Fcode> (free) to validate connectivity\u003C\u002Fli>\n\u003Cli>Migrate endpoint by endpoint. Both versions coexist, so you can move gradually\u003C\u002Fli>\n\u003C\u002Fol>\n\u003Cdiv class=\"markdown-alert markdown-alert-tip\">\u003Cp class=\"markdown-alert-title\">\u003Csvg class=\"octicon octicon-light-bulb mr-2\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\">\u003Cpath d=\"M8 1.5c-2.363 0-4 1.69-4 3.75 0 .984.424 1.625.984 2.304l.214.253c.223.264.47.556.673.848.284.411.537.896.621 1.49a.75.75 0 0 1-1.484.211c-.04-.282-.163-.547-.37-.847a8.456 8.456 0 0 0-.542-.68c-.084-.1-.173-.205-.268-.32C3.201 7.75 2.5 6.766 2.5 5.25 2.5 2.31 4.863 0 8 0s5.5 2.31 5.5 5.25c0 1.516-.701 2.5-1.328 3.259-.095.115-.184.22-.268.319-.207.245-.383.453-.541.681-.208.3-.33.565-.37.847a.751.751 0 0 1-1.485-.212c.084-.593.337-1.078.621-1.489.203-.292.45-.584.673-.848.075-.088.147-.173.213-.253.561-.679.985-1.32.985-2.304 0-2.06-1.637-3.75-4-3.75ZM5.75 12h4.5a.75.75 0 0 1 0 1.5h-4.5a.75.75 0 0 1 0-1.5ZM6 15.25a.75.75 0 0 1 .75-.75h2.5a.75.75 0 0 1 0 1.5h-2.5a.75.75 0 0 1-.75-.75Z\">\u003C\u002Fpath>\u003C\u002Fsvg>Tip\u003C\u002Fp>\u003Cp>Start by migrating your most-used endpoint first. Once you are comfortable with the V2 response format, the remaining endpoints follow the same pattern.\u003C\u002Fp>\n\u003C\u002Fdiv>\n\u003Ch2 id=\"authentication\">Authentication\u003C\u002Fh2>\n\u003Ch3 id=\"v1-query-parameter\">V1: Query parameter\u003C\u002Fh3>\n\u003Cp>V1 authenticates via a query parameter using keys with the \u003Ccode>sk_\u003C\u002Fcode> prefix:\u003C\u002Fp>\n\u003Cdiv class=\"docs-code-group\">\u003Cdiv class=\"docs-code-group-header\">\u003Cspan class=\"docs-code-group-title\" data-static-title>V1 Authentication\u003C\u002Fspan>\u003Cdiv class=\"docs-code-group-actions\">\u003Cspan class=\"docs-code-group-lang\">Bash\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=\"bash\">\u003Ccode class=\"language-bash\">\u003Cspan class=\"line\">\u003Cspan style=\"--shiki-light:#6F42C1;--shiki-dark:#B392F0\">curl\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#032F62;--shiki-dark:#9ECBFF\"> \"https:\u002F\u002Fapi.reversecontact.com\u002Fv1\u002Fenrichment\u002Fprofile?apikey=sk_your_api_key&#x26;linkedin_url=https:\u002F\u002Fsocial.com\u002Fin\u002Fexample\"\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fcode>\u003C\u002Fpre>\n\u003C\u002Fdiv>\u003C\u002Fdiv>\n\u003Ch3 id=\"v2-bearer-header-mandatory\">V2: Bearer header (mandatory)\u003C\u002Fh3>\n\u003Cp>V2 uses the standard \u003Ccode>Authorization\u003C\u002Fcode> header with keys using the \u003Ccode>rc_\u003C\u002Fcode> prefix:\u003C\u002Fp>\n\u003Cdiv class=\"docs-code-group\">\u003Cdiv class=\"docs-code-group-header\">\u003Cspan class=\"docs-code-group-title\" data-static-title>V2 Authentication\u003C\u002Fspan>\u003Cdiv class=\"docs-code-group-actions\">\u003Cspan class=\"docs-code-group-lang\">Bash\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=\"bash\">\u003Ccode class=\"language-bash\">\u003Cspan class=\"line\">\u003Cspan style=\"--shiki-light:#6F42C1;--shiki-dark:#B392F0\">curl\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#005CC5;--shiki-dark:#79B8FF\"> -X\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#032F62;--shiki-dark:#9ECBFF\"> POST\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#032F62;--shiki-dark:#9ECBFF\"> https:\u002F\u002Fapi.reversecontact.com\u002Fv2\u002Ffetch\u002Fpersons\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#005CC5;--shiki-dark:#79B8FF\"> \\\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"--shiki-light:#005CC5;--shiki-dark:#79B8FF\">  -H\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#032F62;--shiki-dark:#9ECBFF\"> \"Authorization: Bearer rc_your_api_key\"\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#005CC5;--shiki-dark:#79B8FF\"> \\\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"--shiki-light:#005CC5;--shiki-dark:#79B8FF\">  -H\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#032F62;--shiki-dark:#9ECBFF\"> \"Content-Type: application\u002Fjson\"\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#005CC5;--shiki-dark:#79B8FF\"> \\\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"--shiki-light:#005CC5;--shiki-dark:#79B8FF\">  -d\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#032F62;--shiki-dark:#9ECBFF\"> '{\"url\": \"https:\u002F\u002Fsocial.com\u002Fin\u002Fexample\"}'\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fcode>\u003C\u002Fpre>\n\u003C\u002Fdiv>\u003C\u002Fdiv>\n\u003Cdiv class=\"markdown-alert markdown-alert-tip\">\u003Cp class=\"markdown-alert-title\">\u003Csvg class=\"octicon octicon-light-bulb mr-2\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\">\u003Cpath d=\"M8 1.5c-2.363 0-4 1.69-4 3.75 0 .984.424 1.625.984 2.304l.214.253c.223.264.47.556.673.848.284.411.537.896.621 1.49a.75.75 0 0 1-1.484.211c-.04-.282-.163-.547-.37-.847a8.456 8.456 0 0 0-.542-.68c-.084-.1-.173-.205-.268-.32C3.201 7.75 2.5 6.766 2.5 5.25 2.5 2.31 4.863 0 8 0s5.5 2.31 5.5 5.25c0 1.516-.701 2.5-1.328 3.259-.095.115-.184.22-.268.319-.207.245-.383.453-.541.681-.208.3-.33.565-.37.847a.751.751 0 0 1-1.485-.212c.084-.593.337-1.078.621-1.489.203-.292.45-.584.673-.848.075-.088.147-.173.213-.253.561-.679.985-1.32.985-2.304 0-2.06-1.637-3.75-4-3.75ZM5.75 12h4.5a.75.75 0 0 1 0 1.5h-4.5a.75.75 0 0 1 0-1.5ZM6 15.25a.75.75 0 0 1 .75-.75h2.5a.75.75 0 0 1 0 1.5h-2.5a.75.75 0 0 1-.75-.75Z\">\u003C\u002Fpath>\u003C\u002Fsvg>Tip\u003C\u002Fp>\u003Cp>Generate a V2 API key (\u003Ccode>rc_\u003C\u002Fcode> prefix) from the \u003Ca href=\"\u002Fapi-keys\" target=\"_blank\" rel=\"noopener\">API Keys\u003C\u002Fa> page in your dashboard. Your existing \u003Ccode>sk_\u003C\u002Fcode> keys continue to work with V1 endpoints.\u003C\u002Fp>\n\u003C\u002Fdiv>\n\u003Ch2 id=\"response-format\">Response format\u003C\u002Fh2>\n\u003Ch3 id=\"v1-response\">V1 response\u003C\u002Fh3>\n\u003Cp>V1 mixes data fields at the root level alongside quota information:\u003C\u002Fp>\n\u003Cdiv class=\"docs-code-group\">\u003Cdiv class=\"docs-code-group-header\">\u003Cspan class=\"docs-code-group-title\" data-static-title>V1 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\">true\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\">  \"credits_consumed\"\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#24292E;--shiki-dark:#E1E4E8\">: \u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#005CC5;--shiki-dark:#79B8FF\">2\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\">  \"credits_left\"\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#24292E;--shiki-dark:#E1E4E8\">: \u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#005CC5;--shiki-dark:#79B8FF\">5479\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\">  \"rate_limit_left\"\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#24292E;--shiki-dark:#E1E4E8\">: \u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#005CC5;--shiki-dark:#79B8FF\">997\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\">  \"daily_rate_limit_left\"\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#24292E;--shiki-dark:#E1E4E8\">: \u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#005CC5;--shiki-dark:#79B8FF\">997\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\">  \"minute_rate_limit_left\"\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#24292E;--shiki-dark:#E1E4E8\">: \u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#005CC5;--shiki-dark:#79B8FF\">48\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\">  \"next_minute_rate_limit_reset\"\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#24292E;--shiki-dark:#E1E4E8\">: \u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#032F62;--shiki-dark:#9ECBFF\">\"2025-01-15T09:31:00.000Z\"\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\">  \"quotas\"\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\">    \"credits\"\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#24292E;--shiki-dark:#E1E4E8\">: { \u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#005CC5;--shiki-dark:#79B8FF\">\"total\"\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#24292E;--shiki-dark:#E1E4E8\">: \u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#005CC5;--shiki-dark:#79B8FF\">10000\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#24292E;--shiki-dark:#E1E4E8\">, \u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#005CC5;--shiki-dark:#79B8FF\">\"used\"\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#24292E;--shiki-dark:#E1E4E8\">: \u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#005CC5;--shiki-dark:#79B8FF\">4521\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#24292E;--shiki-dark:#E1E4E8\">, \u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#005CC5;--shiki-dark:#79B8FF\">\"left\"\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#24292E;--shiki-dark:#E1E4E8\">: \u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#005CC5;--shiki-dark:#79B8FF\">5479\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\">    \"daily_rate_limit\"\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#24292E;--shiki-dark:#E1E4E8\">: { \u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#005CC5;--shiki-dark:#79B8FF\">\"limit\"\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:#24292E;--shiki-dark:#E1E4E8\">, \u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#005CC5;--shiki-dark:#79B8FF\">\"used\"\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#24292E;--shiki-dark:#E1E4E8\">: \u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#005CC5;--shiki-dark:#79B8FF\">3\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#24292E;--shiki-dark:#E1E4E8\">, \u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#005CC5;--shiki-dark:#79B8FF\">\"left\"\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#24292E;--shiki-dark:#E1E4E8\">: \u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#005CC5;--shiki-dark:#79B8FF\">997\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#24292E;--shiki-dark:#E1E4E8\">, \u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#005CC5;--shiki-dark:#79B8FF\">\"next_reset\"\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#24292E;--shiki-dark:#E1E4E8\">: \u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#032F62;--shiki-dark:#9ECBFF\">\"...\"\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\">    \"minute_rate_limit\"\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#24292E;--shiki-dark:#E1E4E8\">: { \u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#005CC5;--shiki-dark:#79B8FF\">\"limit\"\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#24292E;--shiki-dark:#E1E4E8\">: \u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#005CC5;--shiki-dark:#79B8FF\">50\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#24292E;--shiki-dark:#E1E4E8\">, \u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#005CC5;--shiki-dark:#79B8FF\">\"used\"\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#24292E;--shiki-dark:#E1E4E8\">: \u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#005CC5;--shiki-dark:#79B8FF\">2\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#24292E;--shiki-dark:#E1E4E8\">, \u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#005CC5;--shiki-dark:#79B8FF\">\"left\"\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#24292E;--shiki-dark:#E1E4E8\">: \u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#005CC5;--shiki-dark:#79B8FF\">48\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#24292E;--shiki-dark:#E1E4E8\">, \u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#005CC5;--shiki-dark:#79B8FF\">\"next_reset\"\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#24292E;--shiki-dark:#E1E4E8\">: \u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#032F62;--shiki-dark:#9ECBFF\">\"...\"\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\">  },\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\">    \"source\"\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#24292E;--shiki-dark:#E1E4E8\">: \u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#032F62;--shiki-dark:#9ECBFF\">\"cache\"\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\">    \"request_id\"\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#24292E;--shiki-dark:#E1E4E8\">: \u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#032F62;--shiki-dark:#9ECBFF\">\"a1b2c3d4-...\"\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\">1234\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\">  \"person\"\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\">    \"firstName\"\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#24292E;--shiki-dark:#E1E4E8\">: \u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#032F62;--shiki-dark:#9ECBFF\">\"Jane\"\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\">    \"lastName\"\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#24292E;--shiki-dark:#E1E4E8\">: \u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#032F62;--shiki-dark:#9ECBFF\">\"Doe\"\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\u003Ch3 id=\"v2-response\">V2 response\u003C\u002Fh3>\n\u003Cp>V2 uses a standardized envelope with clear separation between data, errors, metadata, and quotas:\u003C\u002Fp>\n\u003Cdiv class=\"docs-code-group\">\u003Cdiv class=\"docs-code-group-header\">\u003Cspan class=\"docs-code-group-title\" data-static-title>V2 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\">true\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>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"--shiki-light:#005CC5;--shiki-dark:#79B8FF\">    \"firstName\"\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#24292E;--shiki-dark:#E1E4E8\">: \u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#032F62;--shiki-dark:#9ECBFF\">\"Jane\"\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\">    \"lastName\"\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#24292E;--shiki-dark:#E1E4E8\">: \u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#032F62;--shiki-dark:#9ECBFF\">\"Doe\"\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\">  \"error\"\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\">  \"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\">\"a1b2c3d4-e5f6-4890-abcd-ef1234567890\"\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\">1234\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\">  \"quotas\"\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\">    \"creditsConsumed\"\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#24292E;--shiki-dark:#E1E4E8\">: \u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#005CC5;--shiki-dark:#79B8FF\">2\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\">    \"workspace\"\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\">      \"id\"\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#24292E;--shiki-dark:#E1E4E8\">: \u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#032F62;--shiki-dark:#9ECBFF\">\"ws_...\"\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\">      \"credits\"\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#24292E;--shiki-dark:#E1E4E8\">: { \u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#005CC5;--shiki-dark:#79B8FF\">\"total\"\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#24292E;--shiki-dark:#E1E4E8\">: \u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#005CC5;--shiki-dark:#79B8FF\">10000\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#24292E;--shiki-dark:#E1E4E8\">, \u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#005CC5;--shiki-dark:#79B8FF\">\"used\"\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#24292E;--shiki-dark:#E1E4E8\">: \u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#005CC5;--shiki-dark:#79B8FF\">4521\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#24292E;--shiki-dark:#E1E4E8\">, \u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#005CC5;--shiki-dark:#79B8FF\">\"left\"\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#24292E;--shiki-dark:#E1E4E8\">: \u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#005CC5;--shiki-dark:#79B8FF\">5479\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\">      \"minuteRateLimit\"\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#24292E;--shiki-dark:#E1E4E8\">: { \u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#005CC5;--shiki-dark:#79B8FF\">\"limit\"\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#24292E;--shiki-dark:#E1E4E8\">: \u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#005CC5;--shiki-dark:#79B8FF\">50\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#24292E;--shiki-dark:#E1E4E8\">, \u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#005CC5;--shiki-dark:#79B8FF\">\"used\"\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#24292E;--shiki-dark:#E1E4E8\">: \u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#005CC5;--shiki-dark:#79B8FF\">2\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#24292E;--shiki-dark:#E1E4E8\">, \u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#005CC5;--shiki-dark:#79B8FF\">\"left\"\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#24292E;--shiki-dark:#E1E4E8\">: \u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#005CC5;--shiki-dark:#79B8FF\">48\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#24292E;--shiki-dark:#E1E4E8\">, \u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#005CC5;--shiki-dark:#79B8FF\">\"nextReset\"\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#24292E;--shiki-dark:#E1E4E8\">: \u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#032F62;--shiki-dark:#9ECBFF\">\"...\"\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\">      \"dailyLimit\"\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\">      \"hasUnlimitedCredits\"\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\">      \"allowDailyOvercost\"\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#24292E;--shiki-dark:#E1E4E8\">: \u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#005CC5;--shiki-dark:#79B8FF\">false\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\">    \"key\"\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\">      \"id\"\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#24292E;--shiki-dark:#E1E4E8\">: \u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#032F62;--shiki-dark:#9ECBFF\">\"key_...\"\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\">      \"dailyLimit\"\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\">      \"minuteRateLimit\"\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#24292E;--shiki-dark:#E1E4E8\">: { \u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#005CC5;--shiki-dark:#79B8FF\">\"limit\"\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#24292E;--shiki-dark:#E1E4E8\">: \u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#005CC5;--shiki-dark:#79B8FF\">50\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#24292E;--shiki-dark:#E1E4E8\">, \u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#005CC5;--shiki-dark:#79B8FF\">\"used\"\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#24292E;--shiki-dark:#E1E4E8\">: \u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#005CC5;--shiki-dark:#79B8FF\">2\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#24292E;--shiki-dark:#E1E4E8\">, \u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#005CC5;--shiki-dark:#79B8FF\">\"left\"\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#24292E;--shiki-dark:#E1E4E8\">: \u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#005CC5;--shiki-dark:#79B8FF\">48\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#24292E;--shiki-dark:#E1E4E8\">, \u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#005CC5;--shiki-dark:#79B8FF\">\"nextReset\"\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:#24292E;--shiki-dark:#E1E4E8\">    }\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\u003Ch3 id=\"key-differences\">Key differences\u003C\u002Fh3>\n\u003Ctable>\n\u003Cthead>\n\u003Ctr>\n\u003Cth>Aspect\u003C\u002Fth>\n\u003Cth>V1\u003C\u002Fth>\n\u003Cth>V2\u003C\u002Fth>\n\u003C\u002Ftr>\n\u003C\u002Fthead>\n\u003Ctbody>\n\u003Ctr>\n\u003Ctd>Data location\u003C\u002Ftd>\n\u003Ctd>Root level (e.g. \u003Ccode>response.person\u003C\u002Fcode>)\u003C\u002Ftd>\n\u003Ctd>Inside \u003Ccode>response.data\u003C\u002Fcode>\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>Request ID\u003C\u002Ftd>\n\u003Ctd>\u003Ccode>metadata.request_id\u003C\u002Fcode> (snake_case)\u003C\u002Ftd>\n\u003Ctd>\u003Ccode>metadata.requestId\u003C\u002Fcode> (camelCase)\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>Data source\u003C\u002Ftd>\n\u003Ctd>\u003Ccode>metadata.source\u003C\u002Fcode> (\u003Ccode>&quot;cache&quot;\u003C\u002Fcode> or \u003Ccode>&quot;fresh&quot;\u003C\u002Fcode>)\u003C\u002Ftd>\n\u003Ctd>Not in body (available in logs)\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>Quota fields\u003C\u002Ftd>\n\u003Ctd>Flat fields at root + nested \u003Ccode>quotas\u003C\u002Fcode>\u003C\u002Ftd>\n\u003Ctd>Structured \u003Ccode>quotas.workspace\u003C\u002Fcode> + \u003Ccode>quotas.key\u003C\u002Fcode>\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>Rate limits\u003C\u002Ftd>\n\u003Ctd>Workspace-level only\u003C\u002Ftd>\n\u003Ctd>Workspace + per-key limits\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003C\u002Ftbody>\n\u003C\u002Ftable>\n\u003Cdiv class=\"markdown-alert markdown-alert-tip\">\u003Cp class=\"markdown-alert-title\">\u003Csvg class=\"octicon octicon-light-bulb mr-2\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\">\u003Cpath d=\"M8 1.5c-2.363 0-4 1.69-4 3.75 0 .984.424 1.625.984 2.304l.214.253c.223.264.47.556.673.848.284.411.537.896.621 1.49a.75.75 0 0 1-1.484.211c-.04-.282-.163-.547-.37-.847a8.456 8.456 0 0 0-.542-.68c-.084-.1-.173-.205-.268-.32C3.201 7.75 2.5 6.766 2.5 5.25 2.5 2.31 4.863 0 8 0s5.5 2.31 5.5 5.25c0 1.516-.701 2.5-1.328 3.259-.095.115-.184.22-.268.319-.207.245-.383.453-.541.681-.208.3-.33.565-.37.847a.751.751 0 0 1-1.485-.212c.084-.593.337-1.078.621-1.489.203-.292.45-.584.673-.848.075-.088.147-.173.213-.253.561-.679.985-1.32.985-2.304 0-2.06-1.637-3.75-4-3.75ZM5.75 12h4.5a.75.75 0 0 1 0 1.5h-4.5a.75.75 0 0 1 0-1.5ZM6 15.25a.75.75 0 0 1 .75-.75h2.5a.75.75 0 0 1 0 1.5h-2.5a.75.75 0 0 1-.75-.75Z\">\u003C\u002Fpath>\u003C\u002Fsvg>Tip\u003C\u002Fp>\u003Cp>When migrating your response parser, the main change is accessing \u003Ccode>response.data\u003C\u002Fcode> instead of the root-level data field (e.g. \u003Ccode>response.person\u003C\u002Fcode>, \u003Ccode>response.company\u003C\u002Fcode>).\u003C\u002Fp>\n\u003C\u002Fdiv>\n\u003Ch2 id=\"error-handling\">Error handling\u003C\u002Fh2>\n\u003Ch3 id=\"v1-error-format\">V1 error format\u003C\u002Fh3>\n\u003Cdiv class=\"docs-code-group\">\u003Cdiv class=\"docs-code-group-header\">\u003Cspan class=\"docs-code-group-title\" data-static-title>404 Not Found\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\">  \"title\"\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#24292E;--shiki-dark:#E1E4E8\">: \u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#032F62;--shiki-dark:#9ECBFF\">\"Not Found\"\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\">  \"msg\"\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#24292E;--shiki-dark:#E1E4E8\">: \u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#032F62;--shiki-dark:#9ECBFF\">\"No data found\"\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\u003Ch3 id=\"v2-error-format\">V2 error format\u003C\u002Fh3>\n\u003Cdiv class=\"docs-code-group\">\u003Cdiv class=\"docs-code-group-header\">\u003Cspan class=\"docs-code-group-title\" data-static-title>404 Not Found\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\">\"REQUEST_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\">    \"message\"\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#24292E;--shiki-dark:#E1E4E8\">: \u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#032F62;--shiki-dark:#9ECBFF\">\"Profile not found\"\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\">\"a1b2c3d4-e5f6-4890-abcd-ef1234567890\"\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\">234\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\u003Ch3 id=\"v2-error-codes\">V2 error codes\u003C\u002Fh3>\n\u003Ctable>\n\u003Cthead>\n\u003Ctr>\n\u003Cth>Status\u003C\u002Fth>\n\u003Cth>Description\u003C\u002Fth>\n\u003C\u002Ftr>\n\u003C\u002Fthead>\n\u003Ctbody>\n\u003Ctr>\n\u003Ctd>\u003Ccode>400\u003C\u002Fcode>\u003C\u002Ftd>\n\u003Ctd>Invalid JSON body or endpoint-specific validation\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>\u003Ccode>401\u003C\u002Fcode>\u003C\u002Ftd>\n\u003Ctd>Missing or invalid API key\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>\u003Ccode>402\u003C\u002Fcode>\u003C\u002Ftd>\n\u003Ctd>Insufficient credits\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>\u003Ccode>403\u003C\u002Fcode>\u003C\u002Ftd>\n\u003Ctd>API key lacks required permission, or endpoint requires a paid plan\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>\u003Ccode>404\u003C\u002Fcode>\u003C\u002Ftd>\n\u003Ctd>No result found for your query\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>\u003Ccode>422\u003C\u002Fcode>\u003C\u002Ftd>\n\u003Ctd>Schema or validation error (e.g. malformed input, disposable email, missing webhook URL)\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>\u003Ccode>429\u003C\u002Fcode>\u003C\u002Ftd>\n\u003Ctd>Rate limit exceeded. Wait and retry after \u003Ccode>nextReset\u003C\u002Fcode>\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>\u003Ccode>451\u003C\u002Fcode>\u003C\u002Ftd>\n\u003Ctd>Data Subject Blocked. Profile removed per GDPR\u002FCCPA request\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>\u003Ccode>503\u003C\u002Fcode>\u003C\u002Ftd>\n\u003Ctd>Temporary service issue. Retry with backoff\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>\u003Ccode>504\u003C\u002Fcode>\u003C\u002Ftd>\n\u003Ctd>The lookup timed out. Retry with backoff\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003C\u002Ftbody>\n\u003C\u002Ftable>\n\u003Cp>For the full error reference, see \u003Ca href=\"\u002Fdocs\u002Fguides\u002Ferrors-retries\">Error handling &amp; retries\u003C\u002Fa>.\u003C\u002Fp>\n\u003Ch2 id=\"endpoint-mapping\">Endpoint mapping\u003C\u002Fh2>\n\u003Cp>Most V1 endpoints have a V2 equivalent. V2 standardizes all endpoints to \u003Cstrong>POST with JSON body\u003C\u002Fstrong> and \u003Cstrong>Bearer header authentication\u003C\u002Fstrong>.\u003C\u002Fp>\n\u003Ch3 id=\"person-endpoints\">Person endpoints\u003C\u002Fh3>\n\u003Ctable>\n\u003Cthead>\n\u003Ctr>\n\u003Cth>V1\u003C\u002Fth>\n\u003Cth>V2\u003C\u002Fth>\n\u003Cth style=\"text-align:center\">Delivery\u003C\u002Fth>\n\u003C\u002Ftr>\n\u003C\u002Fthead>\n\u003Ctbody>\n\u003Ctr>\n\u003Ctd>\u003Ccode>GET \u002Fv1\u002Fenrichment\u002Fprofile\u003C\u002Fcode>\u003C\u002Ftd>\n\u003Ctd>\u003Ccode>POST \u002Fv2\u002Ffetch\u002Fpersons\u003C\u002Fcode>\u003C\u002Ftd>\n\u003Ctd style=\"text-align:center\">Sync\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>\u003C\u002Ftd>\n\u003Ctd>\u003Ccode>POST \u002Fv2\u002Ffetch\u002Fpersons\u002Flive\u003C\u002Fcode>\u003C\u002Ftd>\n\u003Ctd style=\"text-align:center\">Async\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>\u003Ccode>GET \u002Fv1\u002Fenrichment\u003C\u002Fcode>\u003C\u002Ftd>\n\u003Ctd>\u003Ccode>POST \u002Fv2\u002Fenrich\u002Fpersons\u003C\u002Fcode>\u003C\u002Ftd>\n\u003Ctd style=\"text-align:center\">Sync\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>\u003Ccode>POST \u002Fv1\u002Fenrichment\u002Fmatch\u003C\u002Fcode>\u003C\u002Ftd>\n\u003Ctd>\u003Ccode>POST \u002Fv2\u002Fenrich\u002Fpersons\u003C\u002Fcode>\u003C\u002Ftd>\n\u003Ctd style=\"text-align:center\">Sync\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>\u003Ccode>POST \u002Fv1\u002Fenrichment\u002Fpersons\u002Fsearch\u003C\u002Fcode>\u003C\u002Ftd>\n\u003Ctd>\u003Ccode>POST \u002Fv2\u002Fsearch\u002Fpersons\u003C\u002Fcode>\u003C\u002Ftd>\n\u003Ctd style=\"text-align:center\">Sync\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003C\u002Ftbody>\n\u003C\u002Ftable>\n\u003Ch3 id=\"company-endpoints\">Company endpoints\u003C\u002Fh3>\n\u003Ctable>\n\u003Cthead>\n\u003Ctr>\n\u003Cth>V1\u003C\u002Fth>\n\u003Cth>V2\u003C\u002Fth>\n\u003Cth style=\"text-align:center\">Delivery\u003C\u002Fth>\n\u003C\u002Ftr>\n\u003C\u002Fthead>\n\u003Ctbody>\n\u003Ctr>\n\u003Ctd>\u003Ccode>GET \u002Fv1\u002Fenrichment\u002Fcompany\u003C\u002Fcode>\u003C\u002Ftd>\n\u003Ctd>\u003Ccode>POST \u002Fv2\u002Ffetch\u002Fcompanies\u003C\u002Fcode>\u003C\u002Ftd>\n\u003Ctd style=\"text-align:center\">Sync\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>\u003C\u002Ftd>\n\u003Ctd>\u003Ccode>POST \u002Fv2\u002Ffetch\u002Fcompanies\u002Flive\u003C\u002Fcode>\u003C\u002Ftd>\n\u003Ctd style=\"text-align:center\">Async\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>\u003Ccode>GET \u002Fv1\u002Fenrichment\u002Fcompany\u002Fdomain\u003C\u002Fcode>\u003C\u002Ftd>\n\u003Ctd>\u003Ccode>POST \u002Fv2\u002Fenrich\u002Fcompanies\u003C\u002Fcode>\u003C\u002Ftd>\n\u003Ctd style=\"text-align:center\">Sync\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>\u003Ccode>POST \u002Fv1\u002Fenrichment\u002Fcompanies\u002Fsearch\u003C\u002Fcode>\u003C\u002Ftd>\n\u003Ctd>\u003Ccode>POST \u002Fv2\u002Fsearch\u002Fcompanies\u003C\u002Fcode>\u003C\u002Ftd>\n\u003Ctd style=\"text-align:center\">Sync\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003C\u002Ftbody>\n\u003C\u002Ftable>\n\u003Ch3 id=\"email-contact-endpoints\">Email &amp; contact endpoints\u003C\u002Fh3>\n\u003Ctable>\n\u003Cthead>\n\u003Ctr>\n\u003Cth>V1\u003C\u002Fth>\n\u003Cth>V2\u003C\u002Fth>\n\u003Cth style=\"text-align:center\">Delivery\u003C\u002Fth>\n\u003C\u002Ftr>\n\u003C\u002Fthead>\n\u003Ctbody>\n\u003Ctr>\n\u003Ctd>\u003Ccode>GET \u002Fv1\u002Fenrichment\u002Fresolve\u002Femail\u003C\u002Fcode>\u003C\u002Ftd>\n\u003Ctd>\u003Ccode>POST \u002Fv2\u002Fenrich\u002Fpersons\u003C\u002Fcode>\u003C\u002Ftd>\n\u003Ctd style=\"text-align:center\">Sync\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>\u003Ccode>POST \u002Fv1\u002Fenrichment\u002Fprofile-from-email\u003C\u002Fcode>\u003C\u002Ftd>\n\u003Ctd>\u003Ccode>POST \u002Fv2\u002Fenrich\u002Fpersons\u003C\u002Fcode>\u003C\u002Ftd>\n\u003Ctd style=\"text-align:center\">Sync\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003C\u002Ftbody>\n\u003C\u002Ftable>\n\u003Ch3 id=\"job-endpoints\">Job endpoints\u003C\u002Fh3>\n\u003Ctable>\n\u003Cthead>\n\u003Ctr>\n\u003Cth>V1\u003C\u002Fth>\n\u003Cth>V2\u003C\u002Fth>\n\u003Cth style=\"text-align:center\">Delivery\u003C\u002Fth>\n\u003C\u002Ftr>\n\u003C\u002Fthead>\n\u003Ctbody>\n\u003Ctr>\n\u003Ctd>\u003Ccode>GET \u002Fv1\u002Fenrichment\u002Fjobs\u002F*\u003C\u002Fcode>\u003C\u002Ftd>\n\u003Ctd>\u003Cem>Not ported\u003C\u002Fem>\u003C\u002Ftd>\n\u003Ctd style=\"text-align:center\">\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003C\u002Ftbody>\n\u003C\u002Ftable>\n\u003Ch3 id=\"utility-endpoints\">Utility endpoints\u003C\u002Fh3>\n\u003Ctable>\n\u003Cthead>\n\u003Ctr>\n\u003Cth>V1\u003C\u002Fth>\n\u003Cth>V2\u003C\u002Fth>\n\u003Cth style=\"text-align:center\">Delivery\u003C\u002Fth>\n\u003C\u002Ftr>\n\u003C\u002Fthead>\n\u003Ctbody>\n\u003Ctr>\n\u003Ctd>\u003Ccode>GET \u002Fv1\u002Fworkspaces\u002Fquotas\u003C\u002Fcode>\u003C\u002Ftd>\n\u003Ctd>\u003Ccode>GET \u002Fv2\u002Fusage\u003C\u002Fcode>\u003C\u002Ftd>\n\u003Ctd style=\"text-align:center\">Sync\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>\u003Ccode>GET \u002Fv1\u002Flogs\u002Frequests\u003C\u002Fcode>\u003C\u002Ftd>\n\u003Ctd>Via \u003Ca href=\"\u002Flogs\" target=\"_blank\" rel=\"noopener\">Dashboard\u003C\u002Fa>\u003C\u002Ftd>\n\u003Ctd style=\"text-align:center\">\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>\u003Ccode>GET \u002Fv1\u002Flogs\u002Freports\u003C\u002Fcode>, \u003Ccode>POST \u002Fv1\u002Flogs\u002Freport\u003C\u002Fcode>\u003C\u002Ftd>\n\u003Ctd>Via \u003Ca href=\"\u002Flogs\" target=\"_blank\" rel=\"noopener\">Dashboard\u003C\u002Fa>\u003C\u002Ftd>\n\u003Ctd style=\"text-align:center\">\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003C\u002Ftbody>\n\u003C\u002Ftable>\n\u003Ch2 id=\"request-format-changes\">Request format changes\u003C\u002Fh2>\n\u003Cp>Here are two common examples. All other endpoints follow the same pattern; see the full \u003Ca href=\"#endpoint-mapping\">Endpoint mapping\u003C\u002Fa> above.\u003C\u002Fp>\n\u003Ch3 id=\"fetch-a-person-profile-live\">Fetch a person profile (live)\u003C\u002Fh3>\n\u003Cp>\u003Cstrong>Before (V1):\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cdiv class=\"docs-code-group\">\u003Cdiv class=\"docs-code-group-header\">\u003Cspan class=\"docs-code-group-title\" data-static-title>V1\u003C\u002Fspan>\u003Cdiv class=\"docs-code-group-actions\">\u003Cspan class=\"docs-code-group-lang\">Bash\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=\"bash\">\u003Ccode class=\"language-bash\">\u003Cspan class=\"line\">\u003Cspan style=\"--shiki-light:#6F42C1;--shiki-dark:#B392F0\">curl\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#032F62;--shiki-dark:#9ECBFF\"> \"https:\u002F\u002Fapi.reversecontact.com\u002Fv1\u002Fenrichment\u002Fprofile?apikey=sk_your_key&#x26;linkedin_url=https:\u002F\u002Fsocial.com\u002Fin\u002Fjanedoe\"\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fcode>\u003C\u002Fpre>\n\u003C\u002Fdiv>\u003C\u002Fdiv>\n\u003Cp>\u003Cstrong>After (V2):\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cdiv class=\"docs-code-group\">\u003Cdiv class=\"docs-code-group-header\">\u003Cspan class=\"docs-code-group-title\" data-static-title>V2\u003C\u002Fspan>\u003Cdiv class=\"docs-code-group-actions\">\u003Cspan class=\"docs-code-group-lang\">Bash\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=\"bash\">\u003Ccode class=\"language-bash\">\u003Cspan class=\"line\">\u003Cspan style=\"--shiki-light:#6A737D;--shiki-dark:#6A737D\"># webhookUrl is optional if a default is configured in Settings > Webhooks\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"--shiki-light:#6F42C1;--shiki-dark:#B392F0\">curl\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#005CC5;--shiki-dark:#79B8FF\"> -X\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#032F62;--shiki-dark:#9ECBFF\"> POST\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#032F62;--shiki-dark:#9ECBFF\"> https:\u002F\u002Fapi.reversecontact.com\u002Fv2\u002Ffetch\u002Fpersons\u002Flive\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#005CC5;--shiki-dark:#79B8FF\"> \\\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"--shiki-light:#005CC5;--shiki-dark:#79B8FF\">  -H\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#032F62;--shiki-dark:#9ECBFF\"> \"Authorization: Bearer rc_your_key\"\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#005CC5;--shiki-dark:#79B8FF\"> \\\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"--shiki-light:#005CC5;--shiki-dark:#79B8FF\">  -H\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#032F62;--shiki-dark:#9ECBFF\"> \"Content-Type: application\u002Fjson\"\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#005CC5;--shiki-dark:#79B8FF\"> \\\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"--shiki-light:#005CC5;--shiki-dark:#79B8FF\">  -d\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#032F62;--shiki-dark:#9ECBFF\"> '{\"url\": \"https:\u002F\u002Fsocial.com\u002Fin\u002Fjanedoe\"}'\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fcode>\u003C\u002Fpre>\n\u003C\u002Fdiv>\u003C\u002Fdiv>\n\u003Ch2 id=\"credits-pricing\">Credits &amp; pricing\u003C\u002Fh2>\n\u003Cp>V2 introduces contextual pricing: the credit cost depends on whether data comes from a live scrape or cache, and whether a result was found or not.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>For the full credit breakdown per endpoint, see \u003Ca href=\"\u002Fdocs\u002Fguides\u002Frate-limits-credits\">Rate limits &amp; credits\u003C\u002Fa>.\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Ch3 id=\"whats-new-in-v2\">What’s new in V2\u003C\u002Fh3>\n\u003Cul>\n\u003Cli>\u003Cstrong>Check endpoints\u003C\u002Fstrong>\n\u003Ca href=\"\u002Fdocs\u002Fendpoints\u002Fcheck-person\">free endpoints\u003C\u002Fa> to verify data existence and freshness before spending credits.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Company Search\u003C\u002Fstrong>\nnew \u003Ca href=\"\u002Fdocs\u002Fendpoints\u002Fsearch-companies\">company search\u003C\u002Fa> endpoint (1 credit).\u003C\u002Fli>\n\u003Cli>\u003Cstrong>GDPR\u002FCCPA blocklist\u003C\u002Fstrong>\nautomatic enforcement with \u003Ccode>451\u003C\u002Fcode> status code.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Disposable email detection\u003C\u002Fstrong>\n\u003Ccode>422\u003C\u002Fcode> error when a disposable email domain is used.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch2 id=\"rate-limiting\">Rate limiting\u003C\u002Fh2>\n\u003Cp>Both V1 and V2 enforce minute-level and daily rate limits at the workspace level.\u003C\u002Fp>\n\u003Ch3 id=\"what-changes-in-v2\">What changes in V2\u003C\u002Fh3>\n\u003Cul>\n\u003Cli>\u003Cstrong>Per-key limits\u003C\u002Fstrong>\nV2 adds rate limits scoped to individual API keys. See \u003Ca href=\"\u002Fdocs\u002Fguides\u002Fapi-key-management#3-set-rate-limits-optional\" target=\"_blank\" rel=\"noopener\">API key management\u003C\u002Fa>.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Structured quota response\u003C\u002Fstrong>\nrate limit status is available in every response under \u003Ccode>quotas.workspace.minuteRateLimit\u003C\u002Fcode> and \u003Ccode>quotas.key.minuteRateLimit\u003C\u002Fcode>.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>\u003Ccode>nextReset\u003C\u002Fcode> field\u003C\u002Fstrong>\ntells you exactly when the current minute window resets (ISO 8601 timestamp).\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>For the full details, see \u003Ca href=\"\u002Fdocs\u002Fguides\u002Frate-limits-credits\">Rate limits &amp; credits\u003C\u002Fa>.\u003C\u002Fp>\n\u003Ch2 id=\"async-results\">Async results\u003C\u002Fh2>\n\u003Cp>V2 delivers async results in two ways: pull on demand via \u003Ca href=\"\u002Fdocs\u002Fguides\u002Fpolling\">polling\u003C\u002Fa> (recommended, no public endpoint required), or push to a webhook URL configured in \u003Cstrong>\u003Ca href=\"\u002Fsettings\u002Fwebhooks\" target=\"_blank\" rel=\"noopener\">Settings &gt; Webhooks\u003C\u002Fa>\u003C\u002Fstrong> or per-request via \u003Ccode>webhookUrl\u003C\u002Fcode>.\u003C\u002Fp>\n\u003Cp>See the \u003Ca href=\"\u002Fdocs\u002Fguides\u002Fpolling\">Polling guide\u003C\u002Fa> for the recommended path with side-by-side comparison, or \u003Ca href=\"\u002Fdocs\u002Fguides\u002Fwebhooks\">Webhooks\u003C\u002Fa> for push delivery setup.\u003C\u002Fp>\n","","Introduction The V2 API is the recommended version for all new integrations. It offers a cleaner architecture, standardized responses, contextual pricing, and better monitoring...",6,[20,24,28,31,34,37,40,43,46,49,52,55,58,61,64,67,70,73,76,79,82,85,88,91,94,97,100],{"id":21,"title":22,"level":23},"introduction","Introduction",2,{"id":25,"title":26,"level":27},"why-migrate","Why migrate?",3,{"id":29,"title":30,"level":23},"migration-checklist","Migration checklist",{"id":32,"title":33,"level":23},"authentication","Authentication",{"id":35,"title":36,"level":27},"v1-query-parameter","V1: Query parameter",{"id":38,"title":39,"level":27},"v2-bearer-header-mandatory","V2: Bearer header (mandatory)",{"id":41,"title":42,"level":23},"response-format","Response format",{"id":44,"title":45,"level":27},"v1-response","V1 response",{"id":47,"title":48,"level":27},"v2-response","V2 response",{"id":50,"title":51,"level":27},"key-differences","Key differences",{"id":53,"title":54,"level":23},"error-handling","Error handling",{"id":56,"title":57,"level":27},"v1-error-format","V1 error format",{"id":59,"title":60,"level":27},"v2-error-format","V2 error format",{"id":62,"title":63,"level":27},"v2-error-codes","V2 error codes",{"id":65,"title":66,"level":23},"endpoint-mapping","Endpoint mapping",{"id":68,"title":69,"level":27},"person-endpoints","Person endpoints",{"id":71,"title":72,"level":27},"company-endpoints","Company endpoints",{"id":74,"title":75,"level":27},"email-contact-endpoints","Email & contact endpoints",{"id":77,"title":78,"level":27},"job-endpoints","Job endpoints",{"id":80,"title":81,"level":27},"utility-endpoints","Utility endpoints",{"id":83,"title":84,"level":23},"request-format-changes","Request format changes",{"id":86,"title":87,"level":27},"fetch-a-person-profile-live","Fetch a person profile (live)",{"id":89,"title":90,"level":23},"credits-pricing","Credits & pricing",{"id":92,"title":93,"level":27},"whats-new-in-v2","What's new in V2",{"id":95,"title":96,"level":23},"rate-limiting","Rate limiting",{"id":98,"title":99,"level":27},"what-changes-in-v2","What changes in V2",{"id":101,"title":102,"level":23},"async-results","Async results",[],[105,106,107,108,109],"\u002Fdocs\u002Fguides\u002Fproduction-checklist","\u002Fdocs\u002Fauthentication","\u002Fdocs\u002Fguides\u002Fwhich-endpoint-should-i-use","\u002Fdocs\u002Fguides\u002Fdata-freshness","\u002Fdocs\u002Fguides\u002Ferrors-retries",1785860237008]