[{"data":1,"prerenderedAt":781},["ShallowReactive",2],{"docs-navigation":3,"docs-\u002Fguides\u002Ferrors-retries":186},[4,10,15,23,28,35,41,47,52,57,62,66,70,77,83,90,95,100,105,110,115,119,124,128,132,136,141,144,147,151,155,159,163,167,170,174,178,182],{"path":5,"title":6,"category":7,"order":8,"family":9,"subfamily":9,"status":9,"endpointId":9},"\u002Fapi-reference","API reference","introduction",30,null,{"path":11,"title":12,"category":7,"order":13,"family":9,"subfamily":9,"status":14,"endpointId":9},"\u002Fauthentication","Authentication",20,"updated",{"path":16,"title":17,"category":18,"order":19,"family":20,"subfamily":21,"status":14,"endpointId":22},"\u002Fendpoints\u002Fcheck-company","Profile status","endpoints",220,"Fetch","Company","check-company",{"path":24,"title":17,"category":18,"order":25,"family":20,"subfamily":26,"status":14,"endpointId":27},"\u002Fendpoints\u002Fcheck-person",120,"Person","check-person",{"path":29,"title":30,"category":18,"order":31,"family":32,"subfamily":33,"status":9,"endpointId":34},"\u002Fendpoints\u002Fcontact-email","Find Email",600,"Contact","Email","contact-email",{"path":36,"title":37,"category":18,"order":38,"family":32,"subfamily":39,"status":9,"endpointId":40},"\u002Fendpoints\u002Fcontact-phone","Find Phone",610,"Phone","contact-phone",{"path":42,"title":43,"category":18,"order":44,"family":45,"subfamily":21,"status":14,"endpointId":46},"\u002Fendpoints\u002Fenrich-company","Enrich company",90,"Enrichment","enrich-company",{"path":48,"title":49,"category":18,"order":50,"family":45,"subfamily":26,"status":14,"endpointId":51},"\u002Fendpoints\u002Fenrich-person","Enrich profile",80,"enrich-person",{"path":53,"title":54,"category":18,"order":55,"family":20,"subfamily":21,"status":14,"endpointId":56},"\u002Fendpoints\u002Ffetch-company","Profile",200,"fetch-company",{"path":58,"title":59,"category":18,"order":60,"family":20,"subfamily":21,"status":14,"endpointId":61},"\u002Fendpoints\u002Ffetch-company-live","Profile live",210,"fetch-company-live",{"path":63,"title":54,"category":18,"order":64,"family":20,"subfamily":26,"status":14,"endpointId":65},"\u002Fendpoints\u002Ffetch-profile",100,"fetch-profile",{"path":67,"title":59,"category":18,"order":68,"family":20,"subfamily":26,"status":14,"endpointId":69},"\u002Fendpoints\u002Ffetch-profile-live",110,"fetch-profile-live",{"path":71,"title":72,"category":18,"order":73,"family":74,"subfamily":75,"status":14,"endpointId":76},"\u002Fendpoints\u002Fsearch-companies","Company search",94,"Search","Companies","search-companies",{"path":78,"title":79,"category":18,"order":80,"family":81,"subfamily":9,"status":14,"endpointId":82},"\u002Fendpoints\u002Fsearch-companies-available-fields","Company search available fields",720,"Utility","search-companies-available-fields",{"path":84,"title":85,"category":18,"order":86,"family":74,"subfamily":87,"status":88,"endpointId":89},"\u002Fendpoints\u002Fsearch-people","People search",92,"People","new","search-people",{"path":91,"title":92,"category":18,"order":93,"family":81,"subfamily":9,"status":88,"endpointId":94},"\u002Fendpoints\u002Fsearch-people-available-fields","People search available fields",710,"search-people-available-fields",{"path":96,"title":97,"category":18,"order":98,"family":74,"subfamily":87,"status":88,"endpointId":99},"\u002Fendpoints\u002Fsearch-people-count","People search count",93,"search-people-count",{"path":101,"title":102,"category":18,"order":103,"family":74,"subfamily":87,"status":88,"endpointId":104},"\u002Fendpoints\u002Fsearch-people-lookalike","People lookalike",95,"search-people-lookalike",{"path":106,"title":107,"category":18,"order":108,"family":74,"subfamily":87,"status":88,"endpointId":109},"\u002Fendpoints\u002Fsearch-people-prompt","Agentic Search",96,"search-people-prompt",{"path":111,"title":112,"category":18,"order":113,"family":81,"subfamily":9,"status":14,"endpointId":114},"\u002Fendpoints\u002Fusage","Usage",700,"usage",{"path":116,"title":117,"category":7,"order":118,"family":9,"subfamily":9,"status":9,"endpointId":9},"\u002Fgetting-started","Getting started",10,{"path":120,"title":121,"category":122,"order":123,"family":9,"subfamily":9,"status":14,"endpointId":9},"\u002Fguides\u002Fapi-key-management","API key management","guides",12,{"path":125,"title":126,"category":122,"order":127,"family":9,"subfamily":9,"status":88,"endpointId":9},"\u002Fguides\u002Fcurrent-position-resolution","Current position and work history ordering",35,{"path":129,"title":130,"category":122,"order":131,"family":9,"subfamily":9,"status":14,"endpointId":9},"\u002Fguides\u002Fdata-freshness","Data freshness",40,{"path":133,"title":134,"category":122,"order":135,"family":9,"subfamily":9,"status":88,"endpointId":9},"\u002Fguides\u002Fdata-quality","Data quality",18,{"path":137,"title":138,"category":139,"order":140,"family":9,"subfamily":9,"status":88,"endpointId":9},"\u002Fguides\u002Fendpoint-transition-october-2026","Endpoint transition on October 13, 2026","migrations",1,{"path":142,"title":143,"category":122,"order":13,"family":9,"subfamily":9,"status":14,"endpointId":9},"\u002Fguides\u002Ferrors-retries","Error handling & retries",{"path":145,"title":146,"category":122,"order":118,"family":9,"subfamily":9,"status":88,"endpointId":9},"\u002Fguides\u002Ffirst-api-call","Your first API call",{"path":148,"title":149,"category":122,"order":150,"family":9,"subfamily":9,"status":88,"endpointId":9},"\u002Fguides\u002Findustries","Industry values",50,{"path":152,"title":153,"category":154,"order":150,"family":9,"subfamily":9,"status":14,"endpointId":9},"\u002Fguides\u002Fmcp","Connect AI agents (MCP)","mcp",{"path":156,"title":157,"category":139,"order":158,"family":9,"subfamily":9,"status":88,"endpointId":9},"\u002Fguides\u002Fmigrating-resolve-to-enrich","Migrating from Resolve to Enrich",52,{"path":160,"title":161,"category":139,"order":162,"family":9,"subfamily":9,"status":88,"endpointId":9},"\u002Fguides\u002Fmigrating-search-persons-to-people","Migrating people search from persons to people",51,{"path":164,"title":165,"category":122,"order":166,"family":9,"subfamily":9,"status":88,"endpointId":9},"\u002Fguides\u002Fmissing-and-empty-fields","Missing and empty profile fields",42,{"path":168,"title":169,"category":122,"order":8,"family":9,"subfamily":9,"status":14,"endpointId":9},"\u002Fguides\u002Fpolling","Polling, zero setup",{"path":171,"title":172,"category":122,"order":173,"family":9,"subfamily":9,"status":14,"endpointId":9},"\u002Fguides\u002Fproduction-checklist","Production checklist",45,{"path":175,"title":176,"category":122,"order":177,"family":9,"subfamily":9,"status":14,"endpointId":9},"\u002Fguides\u002Frate-limits-credits","Rate limits & credits",25,{"path":179,"title":180,"category":122,"order":181,"family":9,"subfamily":9,"status":14,"endpointId":9},"\u002Fguides\u002Fwebhooks","Webhooks",31,{"path":183,"title":184,"category":122,"order":185,"family":9,"subfamily":9,"status":14,"endpointId":9},"\u002Fguides\u002Fwhich-endpoint-should-i-use","Which endpoint should I use?",15,{"id":187,"title":143,"audience":9,"badgeColor":9,"badgeLabel":9,"body":188,"category":122,"description":773,"endpointId":9,"extension":774,"family":9,"links":9,"meta":775,"navigation":776,"order":13,"path":142,"relatedArticles":777,"requiresFlag":9,"seo":778,"status":14,"stem":779,"subfamily":9,"__hash__":780},"docs\u002Fguides\u002Ferrors-retries.md",{"type":189,"value":190,"toc":764},"minimark",[191,195,200,207,222,233,237,392,395,406,412,652,661,672,676,679,704,707,710,731,735,755],[192,193,194],"p",{},"Every error response follows the same structure and includes a clear error code you can match on programmatically.",[196,197,199],"h2",{"id":198},"response-format","Response format",[192,201,202,203,206],{},"Every error follows the same JSON structure. Match on the ",[204,205,204],"code",{}," field to handle specific cases in your code:",[208,209,211],"code-group",{"title":210},"Error Response",[212,213,220],"pre",{"className":214,"code":216,"filename":217,"language":218,"meta":219},[215],"language-json","{\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","JSON","json","",[204,221,216],{"__ignoreMap":219},[223,224,226],"docs-alert",{"type":225},"note",[192,227,228,229,232],{},"Always include ",[204,230,231],{},"metadata.requestId"," when contacting support. It lets us trace your request instantly.",[196,234,236],{"id":235},"error-reference","Error reference",[238,239,240,253],"table",{},[241,242,243],"thead",{},[244,245,246,250],"tr",{},[247,248,249],"th",{},"Status",[247,251,252],{},"What to do",[254,255,256,277,290,318,338,352,362,372,382],"tbody",{},[244,257,258,264],{},[259,260,261],"td",{},[204,262,263],{},"422",[259,265,266,267,270,271,276],{},"Check your request body: a required field is missing or malformed (",[204,268,269],{},"INVALID_LINKEDIN_URL"," is also returned for an invalid URL). For async endpoints, make sure a webhook URL is configured. On the search endpoints, see ",[272,273,275],"a",{"href":274},"#search-filter-validation","Search filter validation"," for the exact reason.",[244,278,279,284],{},[259,280,281],{},[204,282,283],{},"401",[259,285,286,287,289],{},"Check your API key: it may be missing, malformed, invalid, or expired. See ",[272,288,12],{"href":11},".",[244,291,292,297],{},[259,293,294],{},[204,295,296],{},"402",[259,298,299,300,303,304,307,308,311,312,289],{},"No credits left. Paid lookups (",[204,301,302],{},"INSUFFICIENT_CREDITS",") and the free ",[204,305,306],{},"\u002Fcheck"," endpoints (",[204,309,310],{},"NO_CREDITS",") are both blocked until you top up. Purchase more or ",[272,313,317],{"href":314,"rel":315},"https:\u002F\u002Fapp.reversecontact.com\u002Fsettings\u002Fbilling",[316],"nofollow","upgrade your plan",[244,319,320,325],{},[259,321,322],{},[204,323,324],{},"403",[259,326,327,328,331,332,337],{},"Your workspace may be disabled (",[204,329,330],{},"WORKSPACE_DISABLED","), your key may lack a required permission, or the endpoint may require a paid plan. ",[272,333,336],{"href":334,"rel":335},"https:\u002F\u002Fapp.reversecontact.com\u002Fsettings\u002Fbilling?tab=credits",[316],"Upgrade"," to unlock live enrichment, email discovery, and more.",[244,339,340,345],{},[259,341,342],{},[204,343,344],{},"404",[259,346,347,348,289],{},"No result found for your query. Some endpoints still charge credits; see ",[272,349,351],{"href":350},"\u002Fguides\u002Frate-limits-credits#note","Not found pricing",[244,353,354,359],{},[259,355,356],{},[204,357,358],{},"429",[259,360,361],{},"Rate limit reached. Wait and retry with backoff (see below).",[244,363,364,369],{},[259,365,366],{},[204,367,368],{},"451",[259,370,371],{},"This person has been removed per GDPR\u002FCCPA. Enrichment is permanently blocked.",[244,373,374,379],{},[259,375,376],{},[204,377,378],{},"503",[259,380,381],{},"Our service is temporarily unavailable. Retry with backoff (see below).",[244,383,384,389],{},[259,385,386],{},[204,387,388],{},"504",[259,390,391],{},"The lookup took too long and timed out. Retry with backoff (see below).",[196,393,275],{"id":394},"search-filter-validation",[192,396,397,398,400,401,405],{},"The search endpoints validate every filter before running the query. A rejected request returns ",[204,399,263],{},", ",[402,403,404],"strong",{},"costs 0 credits",", and never reaches the database. This is deliberate: a filter we cannot honour would otherwise return an empty page that looks like a legitimate \"no results\", and bill you for it.",[192,407,408,411],{},[204,409,410],{},"error.details.errors"," always lists every problem found, so one round trip is enough to fix a whole payload.",[238,413,414,426],{},[241,415,416],{},[244,417,418,423],{},[247,419,420],{},[204,421,422],{},"error.code",[247,424,425],{},"Meaning",[254,427,428,446,479,489,499,523,536,553,577,594,607,617,639],{},[244,429,430,435],{},[259,431,432],{},[204,433,434],{},"UNKNOWN_FIELD",[259,436,437,438,441,442,445],{},"The field does not exist. Unknown fields are rejected rather than ignored, because an ignored filter returns unfiltered results. ",[204,439,440],{},"details.suggestion"," gives the closest accepted field, ",[204,443,444],{},"details.acceptedFields"," lists them all.",[244,447,448,453],{},[259,449,450],{},[204,451,452],{},"INVALID_FILTER_VALUE",[259,454,455,456,400,459,462,463,466,467,470,471,474,475,478],{},"The value is outside a closed list. This covers industry and country values plus the People Search ",[204,457,458],{},"currentFunction",[204,460,461],{},"currentSubFunction"," and ",[204,464,465],{},"currentSeniority"," taxonomies and the ",[204,468,469],{},"changedJobsWithinDays"," windows, as well as ",[204,472,473],{},"keywords"," without a single word. ",[204,476,477],{},"details.suggestions"," proposes up to three valid values.",[244,480,481,486],{},[259,482,483],{},[204,484,485],{},"EMPTY_FILTER_VALUE",[259,487,488],{},"A blank string, empty array or empty object was sent. Remove the field instead.",[244,490,491,496],{},[259,492,493],{},[204,494,495],{},"FILTER_VALUES_LIMIT_EXCEEDED",[259,497,498],{},"A filter carries more than 20 values. Split it into searches of at most 20 values and merge the results.",[244,500,501,506],{},[259,502,503],{},[204,504,505],{},"INVALID_RANGE",[259,507,508,509,512,513,516,517,519,520,522],{},"A ",[204,510,511],{},"min","\u002F",[204,514,515],{},"max"," pair is negative, fractional, or inverted (",[204,518,511],{}," greater than ",[204,521,515],{},").",[244,524,525,530],{},[259,526,527],{},[204,528,529],{},"INCOMPLETE_RANGE_FILTER",[259,531,532,535],{},[204,533,534],{},"followersCount"," used as the only filter requires both bounds.",[244,537,538,543],{},[259,539,540],{},[204,541,542],{},"INVALID_PAGINATION",[259,544,545,548,549,552],{},[204,546,547],{},"perPage",", or ",[204,550,551],{},"page"," on Company Search, is not a whole number.",[244,554,555,560],{},[259,556,557],{},[204,558,559],{},"PAGINATION_LIMIT_EXCEEDED",[259,561,562,564,565,567,568,571,572,462,575,289],{},[204,563,547],{}," is above 100, or ",[204,566,551],{}," is above 50 on Company Search. ",[204,569,570],{},"details"," carries ",[204,573,574],{},"field",[204,576,515],{},[244,578,579,584],{},[259,580,581],{},[204,582,583],{},"INVALID_ID_FORMAT",[259,585,586,589,590,593],{},[204,587,588],{},"currentCompanyId"," is not a ",[204,591,592],{},"com_"," identifier returned by our API.",[244,595,596,601],{},[259,597,598],{},[204,599,600],{},"INVALID_DATE_FORMAT",[259,602,603,606],{},[204,604,605],{},"maxDataAgeDate"," is not an ISO 8601 date-time.",[244,608,609,614],{},[259,610,611],{},[204,612,613],{},"CONTRADICTORY_FILTERS",[259,615,616],{},"The same value appears in an included and excluded filter, which can never match.",[244,618,619,624],{},[259,620,621],{},[204,622,623],{},"NO_FILTER_PROVIDED",[259,625,626,627,630,631,633,634,630,636,638],{},"The body carries pagination only: ",[204,628,629],{},"cursor"," \u002F ",[204,632,547],{}," for People Search or ",[204,635,551],{},[204,637,547],{}," for Company Search.",[244,640,641,646],{},[259,642,643],{},[204,644,645],{},"INVALID_SEARCH_FILTERS",[259,647,648,649,289],{},"Several of the above at once. Read ",[204,650,651],{},"details.errors",[208,653,654],{},[212,655,659],{"className":656,"code":657,"filename":658,"language":218,"meta":219},[215],"{\n  \"success\": false,\n  \"data\": null,\n  \"error\": {\n    \"code\": \"INVALID_FILTER_VALUE\",\n    \"message\": \"\\\"Technology\\\" is not an accepted value for \\\"industry\\\". Did you mean \\\"Technology, Information and Internet\\\", \\\"Technology, Information and Media\\\"? This filter is matched exactly, so an unlisted value can never return a result.\",\n    \"details\": {\n      \"field\": \"industry\",\n      \"value\": \"Technology\",\n      \"reason\": \"not_in_accepted_values\",\n      \"suggestions\": [\"Technology, Information and Internet\", \"Technology, Information and Media\"],\n      \"documentation\": \"https:\u002F\u002Fdocs.reversecontact.com\u002Fguides\u002Findustries\"\n    }\n  }\n}\n","Response",[204,660,657],{"__ignoreMap":219},[192,662,663,664,667,668,671],{},"Values are compared tolerantly before being rejected: case, surrounding spaces, accents and ",[204,665,666],{},"&"," versus ",[204,669,670],{},"and"," are normalised for you. Only a genuinely unknown value is refused.",[196,673,675],{"id":674},"when-to-retry","When to retry",[192,677,678],{},"These statuses are safe to retry with exponential backoff:",[680,681,682,690,697],"ul",{},[683,684,685,689],"li",{},[402,686,687],{},[204,688,358],{},"\nyou've hit a rate limit. Wait for the reset window and retry.",[683,691,692,696],{},[402,693,694],{},[204,695,378],{},"\ntemporary service issue. Retry after a short delay.",[683,698,699,703],{},[402,700,701],{},[204,702,388],{},"\nthe lookup timed out before completing. Retry after a short delay.",[192,705,706],{},"All other errors require a change to your request or configuration before retrying.",[192,708,709],{},"Wait a little longer between each retry to give the server time to recover:",[208,711,713,722],{"title":712},"Retry delay",[212,714,720],{"className":715,"code":717,"filename":718,"language":719,"meta":219},[716],"language-javascript","const delay = Math.min(1000 * 2 ** attempt, 15000)\nconst jitter = Math.floor(Math.random() * 250)\nawait new Promise((r) => setTimeout(r, delay + jitter))\n","JavaScript","javascript",[204,721,717],{"__ignoreMap":219},[212,723,729],{"className":724,"code":726,"filename":727,"language":728,"meta":219},[725],"language-python","delay = min(1 * 2 ** attempt, 15)\njitter = random.uniform(0, 0.25)\ntime.sleep(delay + jitter)\n","Python","python",[204,730,726],{"__ignoreMap":219},[196,732,734],{"id":733},"credits-and-errors","Credits and errors",[192,736,737,738,400,740,400,742,400,744,400,746,400,748,400,750,400,752,754],{},"All error responses (",[204,739,283],{},[204,741,296],{},[204,743,324],{},[204,745,263],{},[204,747,358],{},[204,749,368],{},[204,751,378],{},[204,753,388],{},") cost 0 credits.",[192,756,757,758,760,761,763],{},"The ",[204,759,344],{}," status is the only exception: some endpoints charge credits when the lookup was performed but no result was found. See ",[272,762,351],{"href":350}," for the full breakdown.",{"title":219,"searchDepth":765,"depth":765,"links":766},3,[767,769,770,771,772],{"id":198,"depth":768,"text":199},2,{"id":235,"depth":768,"text":236},{"id":394,"depth":768,"text":275},{"id":674,"depth":768,"text":675},{"id":733,"depth":768,"text":734},"Handle API errors predictably with safe retry strategies.","md",{},true,"\u002Fdocs\u002Fguides\u002Fproduction-checklist,\u002Fdocs\u002Fauthentication,\u002Fdocs\u002Fguides\u002Frate-limits-credits,\u002Fdocs\u002Fguides\u002Fwebhooks",{"title":143,"description":773},"guides\u002Ferrors-retries","rlrXudlrcIiZK2LLzUCxBzddYEf1A1p9KWpAOBBXKVo",1791900211540]