[{"data":1,"prerenderedAt":817},["ShallowReactive",2],{"docs-navigation":3,"docs-\u002Fguides\u002Fmigrating-resolve-to-enrich":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":157,"audience":9,"badgeColor":9,"badgeLabel":9,"body":188,"category":139,"description":809,"endpointId":9,"extension":810,"family":9,"links":9,"meta":811,"navigation":812,"order":158,"path":156,"relatedArticles":813,"requiresFlag":9,"seo":814,"status":88,"stem":815,"subfamily":9,"__hash__":816},"docs\u002Fguides\u002Fmigrating-resolve-to-enrich.md",{"type":189,"value":190,"toc":796},"minimark",[191,204,228,233,342,345,389,396,400,407,479,501,505,515,518,528,531,537,540,579,583,606,650,670,674,693,696,705,712,715,737,741],[192,193,194,195,199,200,203],"p",{},"Identity resolution has a new home: ",[196,197,198],"code",{},"POST \u002Fv2\u002Fenrich\u002Fpersons"," and ",[196,201,202],{},"POST \u002Fv2\u002Fenrich\u002Fcompanies",". They take the same inputs as Resolve, cost the same, and answer synchronously: the match comes back in the API response, with no job to track and no callback to receive.",[192,205,206,207,210,211,199,214,217,218,222,223,227],{},"The previous endpoints, ",[196,208,209],{},"POST \u002Fv2\u002Fresolve\u002Fpersons\u002Femail",", ",[196,212,213],{},"POST \u002Fv2\u002Fresolve\u002Fpersons\u002Fname",[196,215,216],{},"POST \u002Fv2\u002Fresolve\u002Fcompanies\u002Flive",", remain functional until ",[219,220,221],"strong",{},"October 13, 2026",", when they are retired. See the ",[224,225,226],"a",{"href":137},"endpoint transition overview"," for the full timeline. This guide covers everything that changes when you move to Enrich.",[229,230,232],"h2",{"id":231},"what-changes","What changes",[234,235,236,256],"table",{},[237,238,239],"thead",{},[240,241,242,246,251],"tr",{},[243,244,245],"th",{},"Area",[243,247,248],{},[196,249,250],{},"\u002Fv2\u002Fresolve\u002F...",[243,252,253],{},[196,254,255],{},"\u002Fv2\u002Fenrich\u002F...",[257,258,259,271,286,300,314,331],"tbody",{},[240,260,261,265,268],{},[262,263,264],"td",{},"Paths",[262,266,267],{},"One path per input type for persons, one for companies",[262,269,270],{},"One path for persons, one for companies",[240,272,273,276,283],{},[262,274,275],{},"Delivery",[262,277,278,279,282],{},"Asynchronous: a ",[196,280,281],{},"webhookId",", then polling or a webhook callback",[262,284,285],{},"Synchronous: the match is in the response",[240,287,288,291,294],{},[262,289,290],{},"Person result",[262,292,293],{},"A focused subset of the profile",[262,295,296,297,299],{},"The same fields, plus the full profile of the ",[224,298,54],{"href":63}," endpoint",[240,301,302,305,308],{},[262,303,304],{},"Other candidates",[262,306,307],{},"Not returned",[262,309,310,313],{},[196,311,312],{},"data.alternativePersons",", each one a full profile",[240,315,316,319,325],{},[262,317,318],{},"Not found",[262,320,321,324],{},[196,322,323],{},"data-not-found"," error code in the job result",[262,326,327,330],{},[196,328,329],{},"404"," response",[240,332,333,336,339],{},[262,334,335],{},"Pricing",[262,337,338],{},"2 credits",[262,340,341],{},"2 credits, only when a match is found",[229,343,264],{"id":344},"paths",[234,346,347,357],{},[237,348,349],{},[240,350,351,354],{},[243,352,353],{},"Before",[243,355,356],{},"After",[257,358,359,369,379],{},[240,360,361,365],{},[262,362,363],{},[196,364,209],{},[262,366,367],{},[196,368,198],{},[240,370,371,375],{},[262,372,373],{},[196,374,213],{},[262,376,377],{},[196,378,198],{},[240,380,381,385],{},[262,382,383],{},[196,384,216],{},[262,386,387],{},[196,388,202],{},[192,390,391,392,395],{},"The method and the ",[196,393,394],{},"Authorization: Bearer YOUR_API_KEY"," header stay the same.",[229,397,399],{"id":398},"inputs-stay-the-same","Inputs stay the same",[192,401,402,403,406],{},"Send the fields you already send today. The only field to drop is ",[196,404,405],{},"webhookUrl",".",[234,408,409,417],{},[237,410,411],{},[240,412,413,415],{},[243,414,353],{},[243,416,356],{},[257,418,419,437,462],{},[240,420,421,430],{},[262,422,423,426,427],{},[196,424,425],{},"\u002Fv2\u002Fresolve\u002Fpersons\u002Femail"," with ",[196,428,429],{},"email",[262,431,432,426,435],{},[196,433,434],{},"\u002Fv2\u002Fenrich\u002Fpersons",[196,436,429],{},[240,438,439,457],{},[262,440,441,426,444,210,447,199,450,453,454],{},[196,442,443],{},"\u002Fv2\u002Fresolve\u002Fpersons\u002Fname",[196,445,446],{},"firstName",[196,448,449],{},"lastName",[196,451,452],{},"companyDomain"," or ",[196,455,456],{},"companyName",[262,458,459,461],{},[196,460,434],{}," with the same fields",[240,463,464,472],{},[262,465,466,426,469],{},[196,467,468],{},"\u002Fv2\u002Fresolve\u002Fcompanies\u002Flive",[196,470,471],{},"domain",[262,473,474,426,477],{},[196,475,476],{},"\u002Fv2\u002Fenrich\u002Fcompanies",[196,478,471],{},[192,480,481,482,484,485,210,487,210,489,210,491,453,493,495,496,500],{},"On ",[196,483,434],{},", every field is optional and independent: provide at least one of ",[196,486,429],{},[196,488,446],{},[196,490,449],{},[196,492,452],{},[196,494,456],{},". You can also combine an email with a name and a company in a single request. See ",[224,497,499],{"href":498},"\u002Fendpoints\u002Fenrich-person#best-practices","Best practices"," for the trade-off between match rate and certainty.",[229,502,504],{"id":503},"from-asynchronous-to-synchronous","From asynchronous to synchronous",[192,506,507,508,511,512,514],{},"Resolve replied with a job acknowledgement and delivered the result later, through polling on ",[196,509,510],{},"GET \u002Fv2\u002Fwebhooks\u002F:webhookId"," or a callback to your ",[196,513,405],{},". Enrich returns the match in the response to your request.",[192,516,517],{},"Before:",[519,520,526],"pre",{"className":521,"code":523,"language":524,"meta":525},[522],"language-javascript","const trigger = await fetch(\"https:\u002F\u002Fapi.reversecontact.com\u002Fv2\u002Fresolve\u002Fpersons\u002Femail\", {\n  method: \"POST\",\n  headers: { \"Authorization\": \"Bearer YOUR_API_KEY\", \"Content-Type\": \"application\u002Fjson\" },\n  body: JSON.stringify({ email: \"jane.doe@acme.com\" })\n});\nconst { data: { webhookId } } = await trigger.json();\n\nwhile (true) {\n  const res = await fetch(`https:\u002F\u002Fapi.reversecontact.com\u002Fv2\u002Fwebhooks\u002F${webhookId}`, {\n    headers: { \"Authorization\": \"Bearer YOUR_API_KEY\" }\n  });\n  const { data } = await res.json();\n  if (data.status === \"succeeded\") { console.log(data.result); break; }\n  if (data.status === \"errored\") throw new Error(data.errorCode ?? \"Job failed\");\n  await new Promise(r => setTimeout(r, 2000));\n}\n","javascript","",[196,527,523],{"__ignoreMap":525},[192,529,530],{},"After:",[519,532,535],{"className":533,"code":534,"language":524,"meta":525},[522],"const response = await fetch(\"https:\u002F\u002Fapi.reversecontact.com\u002Fv2\u002Fenrich\u002Fpersons\", {\n  method: \"POST\",\n  headers: { \"Authorization\": \"Bearer YOUR_API_KEY\", \"Content-Type\": \"application\u002Fjson\" },\n  body: JSON.stringify({ email: \"jane.doe@acme.com\" })\n});\n\nif (response.status === 404) {\n  console.log(\"No match\");\n} else {\n  const { data } = await response.json();\n  console.log(data.person.firstName, data.person.currentCompanyName);\n}\n",[196,536,534],{"__ignoreMap":525},[192,538,539],{},"What you can remove from your integration:",[541,542,543,550,555,561],"ul",{},[544,545,546,547,549],"li",{},"The callback endpoint you expose to receive Resolve results, and its ",[196,548,405],{}," in your requests.",[544,551,552,553,406],{},"The polling loop on ",[196,554,510],{},[544,556,557,558,560],{},"The storage you use to correlate a ",[196,559,281],{}," with the original request.",[544,562,563,564,210,566,199,569,572,573,575,576,406],{},"The handling of the ",[196,565,323],{},[196,567,568],{},"fetch-data-error",[196,570,571],{},"result-unavailable"," job error codes. A not-found is now a ",[196,574,329],{}," response, and other failures come back as standard HTTP errors, see ",[224,577,578],{"href":142},"Errors & retries",[229,580,582],{"id":581},"person-results-are-full-profiles","Person results are full profiles",[192,584,585,586,588,589,592,593,210,596,210,599,210,602,605],{},"Resolve delivered a focused subset of the profile, and the documented flow was to chain into the ",[224,587,54],{"href":63}," endpoint for the rest. Enrich returns the full profile in ",[196,590,591],{},"data.person",", with ",[196,594,595],{},"currentPosition",[196,597,598],{},"experience",[196,600,601],{},"education",[196,603,604],{},"skills"," and the other sections documented on the Profile endpoint. If you chained a Profile call after each resolution, drop it.",[192,607,608,609,210,612,210,615,210,618,210,620,210,622,210,625,210,628,210,631,210,634,210,637,199,640,643,644,646,647,649],{},"Every field of the Resolve result keeps its name and its place: ",[196,610,611],{},"id",[196,613,614],{},"publicId",[196,616,617],{},"linkedinUrl",[196,619,446],{},[196,621,449],{},[196,623,624],{},"headline",[196,626,627],{},"currentPositionTitle",[196,629,630],{},"currentCompanyId",[196,632,633],{},"currentCompanyName",[196,635,636],{},"currentCompanyLinkedinId",[196,638,639],{},"updateDate",[196,641,642],{},"location",". Your existing parsing keeps working once you read ",[196,645,591],{}," instead of the job result, and the Profile sections come on top. The complete field reference is on the ",[224,648,54],{"href":63}," endpoint.",[192,651,652,653,656,657,199,660,662,663,665,666,406],{},"In rare cases the full profile cannot be retrieved in time. ",[196,654,655],{},"data.isFullProfile"," is then ",[196,658,659],{},"false",[196,661,591],{}," carries only the Resolve fields listed above, which you can complete with the ",[224,664,54],{"href":63}," endpoint. See ",[224,667,669],{"href":668},"\u002Fendpoints\u002Fenrich-person#light-fallback","Light fallback",[229,671,673],{"id":672},"alternative-candidates","Alternative candidates",[192,675,676,677,679,680,682,683,685,686,689,690,406],{},"When several people match your input, Enrich returns the best match in ",[196,678,591],{}," and the other candidates in ",[196,681,312],{},", ordered best first, up to nine. Each alternative is a full profile too, with ",[196,684,630],{}," always ",[196,687,688],{},"null",". Resolve had no equivalent, so use this array as an ambiguity signal: when it is not empty, route the record to review before writing it. See ",[224,691,134],{"href":692},"\u002Fguides\u002Fdata-quality#use-alternativepersons-as-an-ambiguity-flag",[229,694,335],{"id":695},"pricing",[192,697,698,699,701,702,704],{},"Enrich costs ",[219,700,338],{},", the same price as Resolve, and only when a match is found. A ",[196,703,329],{}," costs 0 credits. The full profile of persons, alternative candidates and companies is included in that price.",[192,706,707,708,711],{},"The ",[196,709,710],{},"fullProfile"," request field is deprecated and ignored on both Enrich endpoints: it is still accepted so existing requests keep working, and you can remove it.",[229,713,75],{"id":714},"companies",[192,716,717,719,720,722,723,725,726,729,730,733,734,736],{},[196,718,202],{}," takes the same ",[196,721,471],{}," as ",[196,724,468],{}," and returns the company in ",[196,727,728],{},"data.company"," as a full profile: the fields of the Resolve result keep their names, and the ",[224,731,732],{"href":53},"Company Profile"," fields come on top. See ",[224,735,43],{"href":42}," for the full reference.",[229,738,740],{"id":739},"migration-checklist","Migration checklist",[742,743,744,758,764,770,776,782,785,791],"ol",{},[544,745,746,747,199,749,426,751,753,754,426,756,406],{},"Replace ",[196,748,425],{},[196,750,443],{},[196,752,198],{},", and ",[196,755,468],{},[196,757,202],{},[544,759,760,761,763],{},"Remove ",[196,762,405],{}," from your requests and read the result from the response.",[544,765,766,767,769],{},"Remove the polling loop, the callback endpoint and the ",[196,768,281],{}," correlation.",[544,771,772,773,775],{},"Treat ",[196,774,329],{}," as a normal no-match outcome.",[544,777,778,779,781],{},"Read the person from ",[196,780,591],{},": the Resolve fields keep their names.",[544,783,784],{},"Drop the Profile calls you used to chain after a resolution.",[544,786,787,788,790],{},"Check ",[196,789,312],{}," before writing a match automatically.",[544,792,760,793,795],{},[196,794,710],{}," from your requests.",{"title":525,"searchDepth":797,"depth":797,"links":798},3,[799,801,802,803,804,805,806,807,808],{"id":231,"depth":800,"text":232},2,{"id":344,"depth":800,"text":264},{"id":398,"depth":800,"text":399},{"id":503,"depth":800,"text":504},{"id":581,"depth":800,"text":582},{"id":672,"depth":800,"text":673},{"id":695,"depth":800,"text":335},{"id":714,"depth":800,"text":75},{"id":739,"depth":800,"text":740},"Move identity resolution calls from the asynchronous \u002Fv2\u002Fresolve endpoints to the synchronous \u002Fv2\u002Fenrich endpoints.","md",{},true,"\u002Fdocs\u002Fguides\u002Fendpoint-transition-october-2026,\u002Fdocs\u002Fendpoints\u002Fenrich-person,\u002Fdocs\u002Fendpoints\u002Fenrich-company,\u002Fdocs\u002Fendpoints\u002Ffetch-profile",{"title":157,"description":809},"guides\u002Fmigrating-resolve-to-enrich","2Z3mpZEHT5k5Yt0CUBaTGufgiS0vjNyePjQrokXcYh4",1791900212378]