[{"data":1,"prerenderedAt":1707},["ShallowReactive",2],{"docs-navigation":3,"docs-\u002Fendpoints\u002Fbulk-enrich-persons":459},[4,12,16,21,27,34,41,47,54,59,65,71,76,81,86,91,96,101,106,111,116,121,127,132,137,142,148,154,159,164,169,174,179,186,192,197,202,208,213,218,223,227,232,237,240,244,249,253,256,260,263,267,270,273,279,282,286,289,292,295,299,303,306,310,313,316,319,322,326,330,334,338,343,347,350,353,356,359,362,365,368,371,374,377,380,383,386,389,393,396,399,401,403,405,407,409,411,413,415,417,419,421,423,425,427,429,431,433,435,440,443,447,450,453,456],{"path":5,"title":6,"category":7,"order":8,"family":9,"subfamily":10,"status":11,"endpointId":10,"badgeLabel":10},"\u002Fagents","Agent brief","mcp",40,"AI agents",null,"new",{"path":13,"title":14,"category":7,"order":15,"family":9,"subfamily":10,"status":11,"endpointId":10,"badgeLabel":10},"\u002Fai-agents","Use Reverse Contact from an AI agent",10,{"path":17,"title":18,"category":19,"order":20,"family":10,"subfamily":10,"status":10,"endpointId":10,"badgeLabel":10},"\u002Fapi-reference","API reference","introduction",30,{"path":22,"title":23,"category":19,"order":24,"family":25,"subfamily":10,"status":26,"endpointId":10,"badgeLabel":10},"\u002Fauthentication","Authentication",20,"Get started","updated",{"path":28,"title":29,"category":30,"order":31,"family":32,"subfamily":10,"status":11,"endpointId":33,"badgeLabel":10},"\u002Fendpoints\u002Fbulk-enrich-persons","Bulk enrichment","endpoints",660,"Bulk","bulk-enrich-persons",{"path":35,"title":36,"category":30,"order":37,"family":38,"subfamily":39,"status":26,"endpointId":40,"badgeLabel":10},"\u002Fendpoints\u002Fcheck-company","Company profile status",220,"Fetch","Company","check-company",{"path":42,"title":43,"category":30,"order":44,"family":38,"subfamily":45,"status":26,"endpointId":46,"badgeLabel":10},"\u002Fendpoints\u002Fcheck-person","Person profile status",120,"Person","check-person",{"path":48,"title":49,"category":30,"order":50,"family":51,"subfamily":52,"status":10,"endpointId":53,"badgeLabel":10},"\u002Fendpoints\u002Fcontact-email","Find Email",600,"Contact","Email","contact-email",{"path":55,"title":56,"category":30,"order":57,"family":51,"subfamily":52,"status":10,"endpointId":58,"badgeLabel":10},"\u002Fendpoints\u002Fcontact-email-verify","Verify Email",605,"contact-email-verify",{"path":60,"title":61,"category":30,"order":62,"family":51,"subfamily":63,"status":10,"endpointId":64,"badgeLabel":10},"\u002Fendpoints\u002Fcontact-phone","Find Phone",610,"Phone","contact-phone",{"path":66,"title":67,"category":30,"order":68,"family":69,"subfamily":39,"status":26,"endpointId":70,"badgeLabel":10},"\u002Fendpoints\u002Fenrich-company","Enrich company",90,"Enrichment","enrich-company",{"path":72,"title":73,"category":30,"order":74,"family":69,"subfamily":45,"status":26,"endpointId":75,"badgeLabel":10},"\u002Fendpoints\u002Fenrich-person","Enrich profile",80,"enrich-person",{"path":77,"title":78,"category":30,"order":79,"family":38,"subfamily":39,"status":26,"endpointId":80,"badgeLabel":10},"\u002Fendpoints\u002Ffetch-company","Company profile",200,"fetch-company",{"path":82,"title":83,"category":30,"order":84,"family":38,"subfamily":39,"status":26,"endpointId":85,"badgeLabel":10},"\u002Fendpoints\u002Ffetch-company-live","Company profile live",210,"fetch-company-live",{"path":87,"title":88,"category":30,"order":89,"family":38,"subfamily":45,"status":26,"endpointId":90,"badgeLabel":10},"\u002Fendpoints\u002Ffetch-profile","Person profile",100,"fetch-profile",{"path":92,"title":93,"category":30,"order":94,"family":38,"subfamily":45,"status":26,"endpointId":95,"badgeLabel":10},"\u002Fendpoints\u002Ffetch-profile-live","Person profile live",110,"fetch-profile-live",{"path":97,"title":98,"category":30,"order":99,"family":32,"subfamily":10,"status":11,"endpointId":100,"badgeLabel":10},"\u002Fendpoints\u002Fjob","Get a job",662,"job",{"path":102,"title":103,"category":30,"order":104,"family":32,"subfamily":10,"status":11,"endpointId":105,"badgeLabel":10},"\u002Fendpoints\u002Fjob-cancel","Cancel a job",664,"job-cancel",{"path":107,"title":108,"category":30,"order":109,"family":32,"subfamily":10,"status":11,"endpointId":110,"badgeLabel":10},"\u002Fendpoints\u002Fjob-results","Download job results",663,"job-results",{"path":112,"title":113,"category":30,"order":114,"family":32,"subfamily":10,"status":11,"endpointId":115,"badgeLabel":10},"\u002Fendpoints\u002Fjob-rows","Read job results by page",663.5,"job-rows",{"path":117,"title":118,"category":30,"order":119,"family":32,"subfamily":10,"status":11,"endpointId":120,"badgeLabel":10},"\u002Fendpoints\u002Fjobs","Job history",661,"jobs",{"path":122,"title":123,"category":30,"order":124,"family":125,"subfamily":125,"status":11,"endpointId":126,"badgeLabel":10},"\u002Fendpoints\u002Flist","Get a List",642,"Lists","list",{"path":128,"title":129,"category":30,"order":130,"family":125,"subfamily":125,"status":11,"endpointId":131,"badgeLabel":10},"\u002Fendpoints\u002Flist-create","Create a List",641,"list-create",{"path":133,"title":134,"category":30,"order":135,"family":125,"subfamily":125,"status":11,"endpointId":136,"badgeLabel":10},"\u002Fendpoints\u002Flist-delete","Delete a List",643,"list-delete",{"path":138,"title":139,"category":30,"order":140,"family":125,"subfamily":125,"status":11,"endpointId":141,"badgeLabel":10},"\u002Fendpoints\u002Flist-export","Export a List",644,"list-export",{"path":143,"title":144,"category":30,"order":145,"family":125,"subfamily":146,"status":11,"endpointId":147,"badgeLabel":10},"\u002Fendpoints\u002Flist-intake-signals","Import members and data",648,"Imports","list-intake-signals",{"path":149,"title":150,"category":30,"order":151,"family":125,"subfamily":152,"status":11,"endpointId":153,"badgeLabel":10},"\u002Fendpoints\u002Flist-members","List members",645,"Members","list-members",{"path":155,"title":156,"category":30,"order":157,"family":125,"subfamily":152,"status":11,"endpointId":158,"badgeLabel":10},"\u002Fendpoints\u002Flist-members-add","Add members",646,"list-members-add",{"path":160,"title":161,"category":30,"order":162,"family":125,"subfamily":152,"status":11,"endpointId":163,"badgeLabel":10},"\u002Fendpoints\u002Flist-members-remove","Remove members",647,"list-members-remove",{"path":165,"title":166,"category":30,"order":167,"family":125,"subfamily":146,"status":11,"endpointId":168,"badgeLabel":10},"\u002Fendpoints\u002Flist-operation","Read a List operation",649,"list-operation",{"path":170,"title":171,"category":30,"order":172,"family":125,"subfamily":146,"status":11,"endpointId":173,"badgeLabel":10},"\u002Fendpoints\u002Flist-operation-cancel","Cancel a List operation",650,"list-operation-cancel",{"path":175,"title":176,"category":30,"order":177,"family":125,"subfamily":125,"status":11,"endpointId":178,"badgeLabel":10},"\u002Fendpoints\u002Flists","All Lists",640,"lists",{"path":180,"title":181,"category":30,"order":182,"family":183,"subfamily":184,"status":11,"endpointId":185,"badgeLabel":10},"\u002Fendpoints\u002Fsearch-companies","Company search",94,"Search","Companies","search-organizations",{"path":187,"title":188,"category":30,"order":189,"family":190,"subfamily":10,"status":11,"endpointId":191,"badgeLabel":10},"\u002Fendpoints\u002Fsearch-companies-available-fields","Company search available fields",720,"Utility","search-organizations-available-fields",{"path":193,"title":194,"category":30,"order":195,"family":183,"subfamily":184,"status":11,"endpointId":196,"badgeLabel":10},"\u002Fendpoints\u002Fsearch-companies-count","Company search count",95,"search-organizations-count",{"path":198,"title":199,"category":30,"order":200,"family":183,"subfamily":184,"status":11,"endpointId":201,"badgeLabel":10},"\u002Fendpoints\u002Fsearch-companies-prompt","Agentic Company Search",97,"search-organizations-prompt",{"path":203,"title":204,"category":30,"order":205,"family":183,"subfamily":206,"status":11,"endpointId":207,"badgeLabel":10},"\u002Fendpoints\u002Fsearch-people","People search",92,"People","search-people",{"path":209,"title":210,"category":30,"order":211,"family":190,"subfamily":10,"status":11,"endpointId":212,"badgeLabel":10},"\u002Fendpoints\u002Fsearch-people-auto-suggestion","People auto-suggestion",730,"search-people-auto-suggestion",{"path":214,"title":215,"category":30,"order":216,"family":190,"subfamily":10,"status":11,"endpointId":217,"badgeLabel":10},"\u002Fendpoints\u002Fsearch-people-available-fields","People search available fields",710,"search-people-available-fields",{"path":219,"title":220,"category":30,"order":221,"family":183,"subfamily":206,"status":11,"endpointId":222,"badgeLabel":10},"\u002Fendpoints\u002Fsearch-people-count","People search count",93,"search-people-count",{"path":224,"title":225,"category":30,"order":195,"family":183,"subfamily":206,"status":11,"endpointId":226,"badgeLabel":10},"\u002Fendpoints\u002Fsearch-people-lookalike","People lookalike","search-people-lookalike",{"path":228,"title":229,"category":30,"order":230,"family":183,"subfamily":206,"status":11,"endpointId":231,"badgeLabel":10},"\u002Fendpoints\u002Fsearch-people-prompt","Agentic Search",96,"search-people-prompt",{"path":233,"title":234,"category":30,"order":235,"family":190,"subfamily":10,"status":26,"endpointId":236,"badgeLabel":10},"\u002Fendpoints\u002Fusage","Usage",700,"usage",{"path":238,"title":239,"category":19,"order":15,"family":25,"subfamily":10,"status":10,"endpointId":10,"badgeLabel":10},"\u002Fgetting-started","Getting started",{"path":241,"title":242,"category":243,"order":20,"family":9,"subfamily":10,"status":11,"endpointId":10,"badgeLabel":10},"\u002Fguides\u002Fagent-skills","Agent skills","cli",{"path":245,"title":246,"category":247,"order":20,"family":248,"subfamily":10,"status":26,"endpointId":10,"badgeLabel":10},"\u002Fguides\u002Fapi-key-management","API key management","guides","Credits & limits",{"path":250,"title":251,"category":247,"order":24,"family":252,"subfamily":10,"status":11,"endpointId":10,"badgeLabel":10},"\u002Fguides\u002Fbuild-a-list","Build your first List","Work in bulk",{"path":254,"title":255,"category":247,"order":20,"family":252,"subfamily":10,"status":11,"endpointId":10,"badgeLabel":10},"\u002Fguides\u002Fbulk-enrichment","Enrich people in bulk",{"path":257,"title":258,"category":243,"order":15,"family":259,"subfamily":10,"status":11,"endpointId":10,"badgeLabel":10},"\u002Fguides\u002Fcli","Command line interface (CLI)","CLI",{"path":261,"title":262,"category":247,"order":15,"family":248,"subfamily":10,"status":26,"endpointId":10,"badgeLabel":10},"\u002Fguides\u002Fcredits","Credits",{"path":264,"title":265,"category":247,"order":8,"family":266,"subfamily":10,"status":11,"endpointId":10,"badgeLabel":10},"\u002Fguides\u002Fcurrent-position-resolution","Current position and work history ordering","Understand the data",{"path":268,"title":269,"category":247,"order":24,"family":266,"subfamily":10,"status":26,"endpointId":10,"badgeLabel":10},"\u002Fguides\u002Fdata-freshness","Data freshness",{"path":271,"title":272,"category":247,"order":15,"family":266,"subfamily":10,"status":11,"endpointId":10,"badgeLabel":10},"\u002Fguides\u002Fdata-quality","Data quality",{"path":274,"title":275,"category":276,"order":277,"family":10,"subfamily":10,"status":11,"endpointId":10,"badgeLabel":278},"\u002Fguides\u002Fendpoint-transition-october-2026","Endpoint transition on October 13, 2026","migrations",1,"Important",{"path":280,"title":281,"category":247,"order":8,"family":252,"subfamily":10,"status":11,"endpointId":10,"badgeLabel":10},"\u002Fguides\u002Fenrich-a-csv-file","Enrich a CSV file",{"path":283,"title":284,"category":247,"order":15,"family":285,"subfamily":10,"status":26,"endpointId":10,"badgeLabel":10},"\u002Fguides\u002Ferrors-retries","Error handling & retries","Go to production",{"path":287,"title":288,"category":247,"order":20,"family":25,"subfamily":10,"status":11,"endpointId":10,"badgeLabel":10},"\u002Fguides\u002Ffirst-api-call","Your first API call",{"path":290,"title":291,"category":247,"order":15,"family":252,"subfamily":10,"status":11,"endpointId":10,"badgeLabel":10},"\u002Fguides\u002Flists","Lists: orchestrate enrichment",{"path":293,"title":294,"category":7,"order":24,"family":9,"subfamily":10,"status":26,"endpointId":10,"badgeLabel":10},"\u002Fguides\u002Fmcp","Connect AI agents (MCP)",{"path":296,"title":297,"category":276,"order":298,"family":10,"subfamily":10,"status":11,"endpointId":10,"badgeLabel":10},"\u002Fguides\u002Fmigrating-search-companies-to-organizations","Migrating company search to the new endpoint",2,{"path":300,"title":301,"category":276,"order":302,"family":10,"subfamily":10,"status":11,"endpointId":10,"badgeLabel":10},"\u002Fguides\u002Fmigrating-search-persons-to-people","Migrating people search from persons to people",51,{"path":304,"title":305,"category":247,"order":20,"family":266,"subfamily":10,"status":11,"endpointId":10,"badgeLabel":10},"\u002Fguides\u002Fmissing-and-empty-fields","Missing and empty profile fields",{"path":307,"title":308,"category":247,"order":15,"family":309,"subfamily":10,"status":26,"endpointId":10,"badgeLabel":10},"\u002Fguides\u002Fpolling","Polling for async results","Async results",{"path":311,"title":312,"category":247,"order":24,"family":285,"subfamily":10,"status":26,"endpointId":10,"badgeLabel":10},"\u002Fguides\u002Fproduction-checklist","Production checklist",{"path":314,"title":315,"category":247,"order":24,"family":248,"subfamily":10,"status":11,"endpointId":10,"badgeLabel":10},"\u002Fguides\u002Frate-limits","Rate limits",{"path":317,"title":318,"category":247,"order":24,"family":309,"subfamily":10,"status":26,"endpointId":10,"badgeLabel":10},"\u002Fguides\u002Fwebhooks","Webhooks",{"path":320,"title":321,"category":247,"order":8,"family":25,"subfamily":10,"status":26,"endpointId":10,"badgeLabel":10},"\u002Fguides\u002Fwhich-endpoint-should-i-use","Which endpoint should I use?",{"path":323,"title":324,"category":325,"order":302,"family":10,"subfamily":10,"status":11,"endpointId":10,"badgeLabel":10},"\u002Freference\u002Fareas","Area values","reference",{"path":327,"title":328,"category":325,"order":329,"family":10,"subfamily":10,"status":11,"endpointId":10,"badgeLabel":10},"\u002Freference\u002Findustries","Industry values",50,{"path":331,"title":332,"category":333,"order":15,"family":25,"subfamily":10,"status":11,"endpointId":10,"badgeLabel":10},"\u002Fsdk\u002Fjavascript","TypeScript and JavaScript SDK","sdk",{"path":335,"title":336,"category":333,"order":15,"family":337,"subfamily":10,"status":10,"endpointId":10,"badgeLabel":10},"\u002Fsdk\u002Fjavascript\u002Fasync-jobs","Async jobs","Guides",{"path":339,"title":340,"category":333,"order":341,"family":342,"subfamily":10,"status":10,"endpointId":10,"badgeLabel":10},"\u002Fsdk\u002Fjavascript\u002Fbulk","client.bulk",60,"Resources",{"path":344,"title":345,"category":333,"order":346,"family":337,"subfamily":10,"status":10,"endpointId":10,"badgeLabel":10},"\u002Fsdk\u002Fjavascript\u002Fclient-options","Client options",70,{"path":348,"title":349,"category":333,"order":8,"family":342,"subfamily":10,"status":10,"endpointId":10,"badgeLabel":10},"\u002Fsdk\u002Fjavascript\u002Fcontact","client.contact",{"path":351,"title":352,"category":333,"order":15,"family":342,"subfamily":10,"status":10,"endpointId":10,"badgeLabel":10},"\u002Fsdk\u002Fjavascript\u002Fenrich","client.enrich",{"path":354,"title":355,"category":333,"order":329,"family":337,"subfamily":10,"status":10,"endpointId":10,"badgeLabel":10},"\u002Fsdk\u002Fjavascript\u002Ferrors-and-retries","Errors and retries",{"path":357,"title":358,"category":333,"order":24,"family":342,"subfamily":10,"status":10,"endpointId":10,"badgeLabel":10},"\u002Fsdk\u002Fjavascript\u002Ffetch","client.fetch",{"path":360,"title":361,"category":333,"order":8,"family":337,"subfamily":10,"status":10,"endpointId":10,"badgeLabel":10},"\u002Fsdk\u002Fjavascript\u002Ffilter-constants","Filter values as constants",{"path":363,"title":364,"category":333,"order":20,"family":25,"subfamily":10,"status":10,"endpointId":10,"badgeLabel":10},"\u002Fsdk\u002Fjavascript\u002Ffirst-call","First call",{"path":366,"title":367,"category":333,"order":24,"family":25,"subfamily":10,"status":10,"endpointId":10,"badgeLabel":10},"\u002Fsdk\u002Fjavascript\u002Finstall","Install and configure",{"path":369,"title":370,"category":333,"order":346,"family":342,"subfamily":10,"status":10,"endpointId":10,"badgeLabel":10},"\u002Fsdk\u002Fjavascript\u002Fjobs","client.jobs",{"path":372,"title":373,"category":333,"order":329,"family":342,"subfamily":10,"status":10,"endpointId":10,"badgeLabel":10},"\u002Fsdk\u002Fjavascript\u002Flists","client.lists",{"path":375,"title":376,"category":333,"order":24,"family":337,"subfamily":10,"status":10,"endpointId":10,"badgeLabel":10},"\u002Fsdk\u002Fjavascript\u002Flists-and-bulk","Lists and Bulk enrichment",{"path":378,"title":379,"category":333,"order":20,"family":342,"subfamily":10,"status":10,"endpointId":10,"badgeLabel":10},"\u002Fsdk\u002Fjavascript\u002Fsearch","client.search",{"path":381,"title":382,"category":333,"order":20,"family":337,"subfamily":10,"status":10,"endpointId":10,"badgeLabel":10},"\u002Fsdk\u002Fjavascript\u002Fsearch-budget","Search within a budget",{"path":384,"title":385,"category":333,"order":341,"family":337,"subfamily":10,"status":10,"endpointId":10,"badgeLabel":10},"\u002Fsdk\u002Fjavascript\u002Ftimeouts","Timeouts and cancellation",{"path":387,"title":388,"category":333,"order":74,"family":342,"subfamily":10,"status":10,"endpointId":10,"badgeLabel":10},"\u002Fsdk\u002Fjavascript\u002Fusage","client.usage",{"path":390,"title":391,"category":333,"order":15,"family":392,"subfamily":10,"status":10,"endpointId":10,"badgeLabel":10},"\u002Fsdk\u002Fjavascript\u002Fwithout-the-sdk","Without the SDK","More",{"path":394,"title":395,"category":333,"order":15,"family":25,"subfamily":10,"status":10,"endpointId":10,"badgeLabel":10},"\u002Fsdk\u002Fpython","Python SDK",{"path":397,"title":398,"category":333,"order":15,"family":337,"subfamily":10,"status":10,"endpointId":10,"badgeLabel":10},"\u002Fsdk\u002Fpython\u002Fasync-client","Async client",{"path":400,"title":336,"category":333,"order":24,"family":337,"subfamily":10,"status":10,"endpointId":10,"badgeLabel":10},"\u002Fsdk\u002Fpython\u002Fasync-jobs",{"path":402,"title":340,"category":333,"order":341,"family":342,"subfamily":10,"status":10,"endpointId":10,"badgeLabel":10},"\u002Fsdk\u002Fpython\u002Fbulk",{"path":404,"title":345,"category":333,"order":74,"family":337,"subfamily":10,"status":10,"endpointId":10,"badgeLabel":10},"\u002Fsdk\u002Fpython\u002Fclient-options",{"path":406,"title":349,"category":333,"order":8,"family":342,"subfamily":10,"status":10,"endpointId":10,"badgeLabel":10},"\u002Fsdk\u002Fpython\u002Fcontact",{"path":408,"title":352,"category":333,"order":15,"family":342,"subfamily":10,"status":10,"endpointId":10,"badgeLabel":10},"\u002Fsdk\u002Fpython\u002Fenrich",{"path":410,"title":355,"category":333,"order":341,"family":337,"subfamily":10,"status":10,"endpointId":10,"badgeLabel":10},"\u002Fsdk\u002Fpython\u002Ferrors-and-retries",{"path":412,"title":358,"category":333,"order":24,"family":342,"subfamily":10,"status":10,"endpointId":10,"badgeLabel":10},"\u002Fsdk\u002Fpython\u002Ffetch",{"path":414,"title":361,"category":333,"order":329,"family":337,"subfamily":10,"status":10,"endpointId":10,"badgeLabel":10},"\u002Fsdk\u002Fpython\u002Ffilter-constants",{"path":416,"title":364,"category":333,"order":20,"family":25,"subfamily":10,"status":10,"endpointId":10,"badgeLabel":10},"\u002Fsdk\u002Fpython\u002Ffirst-call",{"path":418,"title":367,"category":333,"order":24,"family":25,"subfamily":10,"status":10,"endpointId":10,"badgeLabel":10},"\u002Fsdk\u002Fpython\u002Finstall",{"path":420,"title":370,"category":333,"order":346,"family":342,"subfamily":10,"status":10,"endpointId":10,"badgeLabel":10},"\u002Fsdk\u002Fpython\u002Fjobs",{"path":422,"title":373,"category":333,"order":329,"family":342,"subfamily":10,"status":10,"endpointId":10,"badgeLabel":10},"\u002Fsdk\u002Fpython\u002Flists",{"path":424,"title":376,"category":333,"order":20,"family":337,"subfamily":10,"status":10,"endpointId":10,"badgeLabel":10},"\u002Fsdk\u002Fpython\u002Flists-and-bulk",{"path":426,"title":379,"category":333,"order":20,"family":342,"subfamily":10,"status":10,"endpointId":10,"badgeLabel":10},"\u002Fsdk\u002Fpython\u002Fsearch",{"path":428,"title":382,"category":333,"order":8,"family":337,"subfamily":10,"status":10,"endpointId":10,"badgeLabel":10},"\u002Fsdk\u002Fpython\u002Fsearch-budget",{"path":430,"title":385,"category":333,"order":346,"family":337,"subfamily":10,"status":10,"endpointId":10,"badgeLabel":10},"\u002Fsdk\u002Fpython\u002Ftimeouts",{"path":432,"title":388,"category":333,"order":74,"family":342,"subfamily":10,"status":10,"endpointId":10,"badgeLabel":10},"\u002Fsdk\u002Fpython\u002Fusage",{"path":434,"title":391,"category":333,"order":15,"family":392,"subfamily":10,"status":10,"endpointId":10,"badgeLabel":10},"\u002Fsdk\u002Fpython\u002Fwithout-the-sdk",{"path":436,"title":437,"category":438,"order":341,"family":439,"subfamily":10,"status":11,"endpointId":10,"badgeLabel":10},"\u002Fuse-cases\u002Fbuild-a-list-of-companies","Build a list of companies","use-cases","Build lists",{"path":441,"title":442,"category":438,"order":329,"family":439,"subfamily":10,"status":11,"endpointId":10,"badgeLabel":10},"\u002Fuse-cases\u002Fbuild-a-list-of-people","Build a list of people",{"path":444,"title":445,"category":438,"order":24,"family":446,"subfamily":10,"status":11,"endpointId":10,"badgeLabel":10},"\u002Fuse-cases\u002Ffind-a-company","Find a company from a domain or a page URL","Find & enrich",{"path":448,"title":449,"category":438,"order":15,"family":446,"subfamily":10,"status":11,"endpointId":10,"badgeLabel":10},"\u002Fuse-cases\u002Ffind-a-person","Find a person from an email, a name or a profile URL",{"path":451,"title":452,"category":438,"order":8,"family":51,"subfamily":10,"status":11,"endpointId":10,"badgeLabel":10},"\u002Fuse-cases\u002Fget-a-work-email-or-phone","Get a work email or a phone number",{"path":454,"title":455,"category":438,"order":277,"family":10,"subfamily":10,"status":11,"endpointId":10,"badgeLabel":10},"\u002Fuse-cases","Reverse Contact API use cases",{"path":457,"title":458,"category":438,"order":20,"family":446,"subfamily":10,"status":11,"endpointId":10,"badgeLabel":10},"\u002Fuse-cases\u002Fkeep-profiles-fresh","Keep profiles fresh",{"id":460,"title":29,"audience":10,"badgeColor":10,"badgeLabel":10,"body":461,"category":30,"description":1698,"endpointId":33,"extension":1699,"family":32,"lastVerified":1700,"links":10,"meta":1701,"navigation":1702,"order":31,"path":28,"relatedArticles":1703,"requiresFlag":10,"seo":1704,"status":11,"stem":1705,"subfamily":10,"__hash__":1706},"docs\u002Fendpoints\u002Fbulk-enrich-persons.md",{"type":462,"value":463,"toc":1682},"minimark",[464,468,487,499,502,510,580,596,599,610,636,643,647,687,691,697,847,850,968,994,998,1016,1020,1027,1049,1053,1063,1110,1195,1225,1244,1247,1259,1272,1384,1421,1428,1432,1613,1622,1626,1659,1663],[465,466,467],"h2",{"id":19},"Introduction",[469,470,471,472,475,476,480,481,483,484,486],"p",{},"The Bulk enrichment endpoint enriches up to 25,000 people in one request. Send them as JSON items (a Social profile URL, an email, or a name with its company), choose what to look up for each one (the profile, an email, a phone number), and it runs in the background as a job. It answers at once with the job: follow it with ",[473,474,98],"a",{"href":97},", or be told on your ",[477,478,479],"code",{},"webhookUrl"," when it settles. Read its results a page at a time while it runs with ",[473,482,113],{"href":112},", or download one row per item, as CSV or NDJSON, with ",[473,485,108],{"href":107},".",[469,488,489,490,493,494,496,497,486],{},"Bulk enrichment fits a one-off need, such as a CRM export or a file of leads to complete: you get a file back and nothing is kept. To keep people over time, add data to them later and never pay twice for the same person, use a ",[473,491,492],{"href":290},"List"," instead. To look up one person while a user waits, call ",[473,495,73],{"href":72}," or ",[473,498,49],{"href":48},[465,500,262],{"id":501},"credits",[469,503,504,505,509],{},"Sending the request is ",[506,507,508],"strong",{},"free",". Each item costs what its unit call costs, and only for what is found:",[511,512,513,525],"table",{},[514,515,516],"thead",{},[517,518,519,523],"tr",{},[520,521,522],"th",{},"What the item looks up",[520,524,262],{},[526,527,528,543,553,568],"tbody",{},[517,529,530,534],{},[531,532,533],"td",{},"Profile, from a Social profile URL",[531,535,536,537,540,541],{},"1, or 2 with ",[477,538,539],{},"live: true",", as ",[473,542,88],{"href":87},[517,544,545,548],{},[531,546,547],{},"Profile, from an email or a name",[531,549,550,551],{},"2, as ",[473,552,73],{"href":72},[517,554,555,560],{},[531,556,557],{},[477,558,559],{},"contact_email",[531,561,562,563,540,566],{},"3 for a professional email, 5 for a personal one, 8 for both with ",[477,564,565],{},"emailType: \"any\"",[473,567,49],{"href":48},[517,569,570,575],{},[531,571,572],{},[477,573,574],{},"contact_phone",[531,576,577,578],{},"20 per phone number found, as ",[473,579,61],{"href":60},[469,581,582,583,586,587,590,591,595],{},"When the job is created, it reserves the most each item can cost, in the order you sent them, as long as your balance covers it. An item the balance no longer covers is not run: it reads ",[477,584,585],{},"insufficient_credits"," in the results, costs nothing, and ",[477,588,589],{},"notRunForCredits"," counts it, while a later item that costs less can still run. When the job settles, what an item did not find is given back: you pay only for what was found. On a Go, Plus or Max plan, a profile your plan covers costs no credit in a job, as it does in its unit call, and once the workspace has delivered its ",[473,592,594],{"href":593},"\u002Fguides\u002Frate-limits#daily-profile-cap-of-the-go-plus-and-max-plans","daily profile cap",", the items of the job wait until 00:00 UTC instead of being refused.",[469,597,598],{},"The email and phone finders start from a Social profile URL, or from a first name, a last name and a company domain. For any other item, the job first matches the person's profile, charged like a profile lookup when it is found: an item with only an email, sent for a phone number, costs 2 credits for its profile, plus 20 if a number is found. An item with only an email is never sent to the email finder, since it already holds one.",[469,600,601,602,605,606,609],{},"An item that names the same person as an earlier item of the job is looked up once: its row reads ",[477,603,604],{},"duplicate",", costs nothing, and ",[477,607,608],{},"duplicateCount"," counts it.",[469,611,612,613,616,617,620,621,623,624,626,627,631,632,635],{},"The API key needs the permission of what the job asks for: Person Enrichment when ",[477,614,615],{},"families"," includes ",[477,618,619],{},"profile"," (the default), Contact for ",[477,622,559],{}," and ",[477,625,574],{},". A key with ",[473,628,630],{"href":629},"\u002Fguides\u002Fapi-key-management#_4-set-credit-limits-optional","credit limits"," must hold the whole reservation: a job that would take it over its daily, monthly or total limit is refused with ",[477,633,634],{},"KEY_CREDIT_LIMIT_REACHED"," before anything is reserved. Once the job settles, the key counts only what it spent.",[469,637,638,639,642],{},"Creating a job counts as one request on your rate limits, whatever its number of items. Its items then take their share of your per-minute limit as they run, at most 80% of it, and wait when that share is taken: see ",[473,640,315],{"href":641},"\u002Fguides\u002Frate-limits#how-requests-are-counted",". Reading the job is never counted. Following it, downloading its results and cancelling it still work at a zero balance.",[465,644,646],{"id":645},"authorization","Authorization",[511,648,649,665],{},[514,650,651],{},[517,652,653,656,659,662],{},[520,654,655],{},"Name",[520,657,658],{},"Type",[520,660,661],{},"Required",[520,663,664],{},"Description",[526,666,667],{},[517,668,669,674,677,680],{},[531,670,671],{},[477,672,673],{},"apikey",[531,675,676],{},"string",[531,678,679],{},"Yes",[531,681,682,683,686],{},"Your API key from the developer dashboard. Pass it via ",[477,684,685],{},"Authorization: Bearer YOUR_API_KEY"," header.",[465,688,690],{"id":689},"request-body","Request body",[469,692,693,694,486],{},"The route is ",[477,695,696],{},"POST \u002Fv2\u002Fenrich\u002Fpersons\u002Fbulk",[511,698,699,711],{},[514,700,701],{},[517,702,703,705,707,709],{},[520,704,655],{},[520,706,658],{},[520,708,661],{},[520,710,664],{},[526,712,713,732,760,787,809,826],{},[517,714,715,720,723,725],{},[531,716,717],{},[477,718,719],{},"items",[531,721,722],{},"array",[531,724,679],{},[531,726,727,728],{},"1 to 25,000 people, see ",[473,729,731],{"href":730},"#items","Items",[517,733,734,738,743,746],{},[531,735,736],{},[477,737,615],{},[531,739,676,740],{},[741,742],"span",{},[531,744,745],{},"No",[531,747,748,749,751,752,751,754,756,757,486],{},"What to look up for each item: ",[477,750,619],{},", ",[477,753,559],{},[477,755,574],{},". Defaults to ",[477,758,759],{},"[\"profile\"]",[517,761,762,767,769,771],{},[531,763,764],{},[477,765,766],{},"emailType",[531,768,676],{},[531,770,745],{},[531,772,773,774,776,777,780,781,496,784],{},"With ",[477,775,559],{},", the kind of email to find: ",[477,778,779],{},"professional"," (default), ",[477,782,783],{},"personal",[477,785,786],{},"any",[517,788,789,794,797,799],{},[531,790,791],{},[477,792,793],{},"live",[531,795,796],{},"boolean",[531,798,745],{},[531,800,801,804,805,808],{},[477,802,803],{},"true"," fetches the profile of a Social profile URL item live. Omitted or ",[477,806,807],{},"false",", saved data is used.",[517,810,811,816,818,820],{},[531,812,813],{},[477,814,815],{},"name",[531,817,676],{},[531,819,745],{},[531,821,822,823,486],{},"A name for the job, up to 255 characters, shown in the job history and in the app. Defaults to ",[477,824,825],{},"Sent via API",[517,827,828,832,834,836],{},[531,829,830],{},[477,831,479],{},[531,833,676],{},[531,835,745],{},[531,837,838,839,842,843],{},"Public HTTPS URL that receives one ",[477,840,841],{},"POST"," when the job settles, see ",[473,844,846],{"href":845},"#webhook-callback","Webhook callback",[848,849,731],"h3",{"id":719},[511,851,852,864],{},[514,853,854],{},[517,855,856,858,860,862],{},[520,857,655],{},[520,859,658],{},[520,861,661],{},[520,863,664],{},[526,865,866,881,895,909,923,940,954],{},[517,867,868,873,875,878],{},[531,869,870],{},[477,871,872],{},"linkedinUrl",[531,874,676],{},[531,876,877],{},"Conditional",[531,879,880],{},"Social profile URL of the person",[517,882,883,888,890,892],{},[531,884,885],{},[477,886,887],{},"email",[531,889,676],{},[531,891,877],{},[531,893,894],{},"Email address of the person",[517,896,897,902,904,906],{},[531,898,899],{},[477,900,901],{},"firstName",[531,903,676],{},[531,905,877],{},[531,907,908],{},"First name",[517,910,911,916,918,920],{},[531,912,913],{},[477,914,915],{},"lastName",[531,917,676],{},[531,919,877],{},[531,921,922],{},"Last name",[517,924,925,930,932,934],{},[531,926,927],{},[477,928,929],{},"companyDomain",[531,931,676],{},[531,933,745],{},[531,935,936,937],{},"Domain of the person's company, such as ",[477,938,939],{},"acme.com",[517,941,942,947,949,951],{},[531,943,944],{},[477,945,946],{},"companyName",[531,948,676],{},[531,950,745],{},[531,952,953],{},"Name of the person's company, when you have no domain",[517,955,956,961,963,965],{},[531,957,958],{},[477,959,960],{},"externalId",[531,962,676],{},[531,964,745],{},[531,966,967],{},"Your own id for the item, up to 255 characters, given back in its row of the results",[469,969,970,971,974,975,978,979,496,981,983,984,986,987,989,990,993],{},"Give each item a Social profile URL, an email, or a first and last name with its company: these find the right person. An item that holds only a company is still looked up, rarely matches anyone, and costs nothing when no profile is found. An item with no field at all reads ",[477,972,973],{},"skipped"," in the results, and an item whose only field is an invalid profile URL reads ",[477,976,977],{},"invalid_input",": neither costs anything. With only ",[477,980,559],{},[477,982,574],{},", an item the finders cannot reach, such as an email alone for ",[477,985,559],{},", reads ",[477,988,973],{}," too. A request in which no item can be looked up returns ",[477,991,992],{},"422 BULK_JOB_CSV_PARSE_ERROR"," and nothing is created.",[848,995,997],{"id":996},"unknown-fields","Unknown fields",[469,999,1000,1001,1004,1005,1007,1008,1011,1012,1015],{},"A field that the body or an item does not define is refused with ",[477,1002,1003],{},"422 UNKNOWN_FIELD",", never ignored: the job would otherwise run without it, for example a profile-only job for a misspelled ",[477,1006,615],{},". ",[477,1009,1010],{},"error.details"," names the field, such as ",[477,1013,1014],{},"items[3].linkedin_url",", the field it most likely stands for, and the accepted fields. Nothing is created and nothing is charged.",[848,1017,1019],{"id":1018},"idempotency-key-header","Idempotency-Key header",[469,1021,1022,1023,1026],{},"Creating a job reserves its credits. If the response gets lost (a timeout, a dropped connection), sending the request again would create and charge a second job. To retry safely, send an ",[477,1024,1025],{},"Idempotency-Key"," header with a key you choose for this job, such as a UUID, and send the same key when you retry.",[469,1028,1029,1030,1033,1034,1037,1038,1041,1042,1045,1046,486],{},"For 24 hours, the same key with the same body returns the first response with the header ",[477,1031,1032],{},"Idempotent-Replayed: true",", without creating another job or charging anything. The same key with another body returns ",[477,1035,1036],{},"422 IDEMPOTENCY_KEY_REUSED",", and a key whose first request is still being processed returns ",[477,1039,1040],{},"409 IDEMPOTENCY_KEY_IN_USE",": retry after the ",[477,1043,1044],{},"Retry-After"," seconds. A key that is empty, longer than 255 characters, or holds a space or a non-ASCII character returns ",[477,1047,1048],{},"400 INVALID_IDEMPOTENCY_KEY",[465,1050,1052],{"id":1051},"response-structure","Response structure",[469,1054,1055,1056,1059,1060,686],{},"The request answers ",[477,1057,1058],{},"202"," at once, with a ",[477,1061,1062],{},"Retry-After: 2",[511,1064,1065,1076],{},[514,1066,1067],{},[517,1068,1069,1072,1074],{},[520,1070,1071],{},"Field",[520,1073,658],{},[520,1075,664],{},[526,1077,1078,1092],{},[517,1079,1080,1085,1087],{},[531,1081,1082],{},[477,1083,1084],{},"success",[531,1086,796],{},[531,1088,1089,1091],{},[477,1090,803],{}," if the job was created",[517,1093,1094,1099,1104],{},[531,1095,1096],{},[477,1097,1098],{},"error",[531,1100,1101],{},[477,1102,1103],{},"null",[531,1105,1106,1107,1109],{},"Always ",[477,1108,1103],{}," on success",[1111,1112,1115,1121],"docs-object",{"field":1113,"type":1114},"data","BulkEnrichAck",[1116,1117,1118],"docs-object-description",{},[469,1119,1120],{},"The job created",[1122,1123,1124],"docs-object-children",{},[511,1125,1126,1136],{},[514,1127,1128],{},[517,1129,1130,1132,1134],{},[520,1131,1071],{},[520,1133,658],{},[520,1135,664],{},[526,1137,1138,1160,1172,1184],{},[517,1139,1140,1144,1147],{},[531,1141,1142],{},[477,1143,100],{},[531,1145,1146],{},"object",[531,1148,1149,1150,1007,1153,1159],{},"The job, with the fields of ",[473,1151,98],{"href":1152},"\u002Fendpoints\u002Fjob#response-structure",[506,1154,1155,1156],{},"Save its ",[477,1157,1158],{},"id",": it reads, downloads and cancels the job.",[517,1161,1162,1166,1169],{},[531,1163,1164],{},[477,1165,608],{},[531,1167,1168],{},"number",[531,1170,1171],{},"Items that name the same person as an earlier item: looked up once, free",[517,1173,1174,1179,1181],{},[531,1175,1176],{},[477,1177,1178],{},"creditsEstimated",[531,1180,1168],{},[531,1182,1183],{},"Credits reserved for the job: the most its items can cost",[517,1185,1186,1190,1192],{},[531,1187,1188],{},[477,1189,589],{},[531,1191,1168],{},[531,1193,1194],{},"Items not run because your balance did not cover them",[469,1196,1197,623,1200,1203,1204,1007,1207,1210,1211,1214,1215,1218,1219,1221,1222,1224],{},[477,1198,1199],{},"quotas",[477,1201,1202],{},"metadata"," are the blocks of every V2 response: see ",[473,1205,234],{"href":1206},"\u002Fendpoints\u002Fusage#response-structure",[477,1208,1209],{},"quotas.creditsConsumed"," is ",[477,1212,1213],{},"0",", and ",[477,1216,1217],{},"quotas.workspace.credits"," is read before the job reserves its credits: ",[477,1220,1178],{}," is what the job took, and ",[473,1223,234],{"href":233}," gives the balance after it.",[469,1226,1227,1228,1231,1232,1210,1235,496,1238,1241,1242,486],{},"Then read the job at ",[477,1229,1230],{},"job.links.self"," while its ",[477,1233,1234],{},"status",[477,1236,1237],{},"queued",[477,1239,1240],{},"running",": see ",[473,1243,98],{"href":97},[465,1245,846],{"id":1246},"webhook-callback",[469,1248,773,1249,1251,1252,1254,1255,1258],{},[477,1250,479],{},", that URL receives one ",[477,1253,841],{}," when the job settles: it completed, was cancelled, or failed. It receives nothing while the job runs. The event says which job settled and carries no results: download them at ",[477,1256,1257],{},"resultsUrl"," with your API key.",[469,1260,1261,1262,1265,1266,1268,1269,486],{},"This event is not the lookup callback of the ",[473,1263,1264],{"href":317},"Webhooks guide",": it has its own payload, below, and is sent to ",[477,1267,479],{}," only, never to the workspace webhook URL of ",[506,1270,1271],{},"Settings > Webhooks",[511,1273,1274,1284],{},[514,1275,1276],{},[517,1277,1278,1280,1282],{},[520,1279,1071],{},[520,1281,658],{},[520,1283,664],{},[526,1285,1286,1300,1312,1326,1345,1357,1372],{},[517,1287,1288,1293,1295],{},[531,1289,1290],{},[477,1291,1292],{},"event",[531,1294,676],{},[531,1296,1106,1297],{},[477,1298,1299],{},"job.updated",[517,1301,1302,1307,1309],{},[531,1303,1304],{},[477,1305,1306],{},"jobId",[531,1308,676],{},[531,1310,1311],{},"The job that settled",[517,1313,1314,1319,1321],{},[531,1315,1316],{},[477,1317,1318],{},"type",[531,1320,676],{},[531,1322,1106,1323],{},[477,1324,1325],{},"enrich_persons",[517,1327,1328,1332,1334],{},[531,1329,1330],{},[477,1331,1234],{},[531,1333,676],{},[531,1335,1336,751,1339,496,1342],{},[477,1337,1338],{},"completed",[477,1340,1341],{},"cancelled",[477,1343,1344],{},"failed",[517,1346,1347,1352,1354],{},[531,1348,1349],{},[477,1350,1351],{},"pollUrl",[531,1353,676],{},[531,1355,1356],{},"Path that reads the job",[517,1358,1359,1363,1366],{},[531,1360,1361],{},[477,1362,1257],{},[531,1364,1365],{},"string | null",[531,1367,1368,1369,1371],{},"Path of the results file, ",[477,1370,1103],{}," for a failed job",[517,1373,1374,1379,1381],{},[531,1375,1376],{},[477,1377,1378],{},"occurredAt",[531,1380,676],{},[531,1382,1383],{},"When the event was sent (ISO 8601)",[469,1385,1386,1387,1390,1391,1393,1394,1397,1398,1401,1402,1405,1406,1409,1410,1413,1414,623,1416,1418,1419,486],{},"The request is JSON and its ",[477,1388,1389],{},"x-reversecontact-event"," header names the event, ",[477,1392,1299],{},". Answer with a ",[477,1395,1396],{},"2xx"," within 10 seconds. A timeout, a network error, a ",[477,1399,1400],{},"408",", a ",[477,1403,1404],{},"429"," or a ",[477,1407,1408],{},"5xx"," is tried again after 2 then 5 seconds. If these three tries fail, the delivery is tried again 1, 2, 4, 8, 16 and 32 minutes later, then twice an hour apart: about 3 hours in all. A redirect is never followed, and a redirect or another ",[477,1411,1412],{},"4xx"," is not tried again. A retried delivery can reach you after your endpoint already handled it, so the same event can arrive twice: key it on ",[477,1415,1306],{},[477,1417,1234],{},". If the event has not arrived, read the job at ",[477,1420,1351],{},[469,1422,1423,1424,1427],{},"The URL must be public HTTPS: a private, local or unresolvable host returns ",[477,1425,1426],{},"400 WEBHOOK_URL_UNREACHABLE"," and nothing is created. It is checked again before each delivery.",[465,1429,1431],{"id":1430},"errors","Errors",[511,1433,1434,1447],{},[514,1435,1436],{},[517,1437,1438,1441,1444],{},[520,1439,1440],{},"Status",[520,1442,1443],{},"Code",[520,1445,1446],{},"Meaning",[526,1448,1449,1466,1481,1496,1512,1525,1540,1555,1569,1583,1596],{},[517,1450,1451,1456,1461],{},[531,1452,1453],{},[477,1454,1455],{},"400",[531,1457,1458],{},[477,1459,1460],{},"WEBHOOK_URL_UNREACHABLE",[531,1462,1463,1465],{},[477,1464,479],{}," is not a public HTTPS URL",[517,1467,1468,1473,1478],{},[531,1469,1470],{},[477,1471,1472],{},"402",[531,1474,1475],{},[477,1476,1477],{},"BULK_JOB_INSUFFICIENT_CREDITS",[531,1479,1480],{},"Your balance does not cover a single item",[517,1482,1483,1488,1493],{},[531,1484,1485],{},[477,1486,1487],{},"403",[531,1489,1490],{},[477,1491,1492],{},"INSUFFICIENT_PERMISSIONS",[531,1494,1495],{},"The key lacks the permission of a lookup the job runs",[517,1497,1498,1502,1507],{},[531,1499,1500],{},[477,1501,1487],{},[531,1503,1504],{},[477,1505,1506],{},"BULK_JOB_PHONE_FINDER_DISABLED",[531,1508,1509,1511],{},[477,1510,574],{}," is asked on a workspace where phone finding is not enabled",[517,1513,1514,1518,1522],{},[531,1515,1516],{},[477,1517,1487],{},[531,1519,1520],{},[477,1521,634],{},[531,1523,1524],{},"The job would take the key over its total credit limit",[517,1526,1527,1532,1537],{},[531,1528,1529],{},[477,1530,1531],{},"413",[531,1533,1534],{},[477,1535,1536],{},"REQUEST_BODY_TOO_LARGE",[531,1538,1539],{},"The JSON body is over 25 MB",[517,1541,1542,1547,1552],{},[531,1543,1544],{},[477,1545,1546],{},"422",[531,1548,1549],{},[477,1550,1551],{},"UNKNOWN_FIELD",[531,1553,1554],{},"The body or an item holds a field the job does not define",[517,1556,1557,1561,1566],{},[531,1558,1559],{},[477,1560,1546],{},[531,1562,1563],{},[477,1564,1565],{},"VALIDATION_ERROR",[531,1567,1568],{},"A required field is missing, a value is not accepted, or more than 25,000 items",[517,1570,1571,1575,1580],{},[531,1572,1573],{},[477,1574,1546],{},[531,1576,1577],{},[477,1578,1579],{},"BULK_JOB_CSV_PARSE_ERROR",[531,1581,1582],{},"No item has a Social profile URL, an email or a name the selected families can look up",[517,1584,1585,1589,1593],{},[531,1586,1587],{},[477,1588,1404],{},[531,1590,1591],{},[477,1592,634],{},[531,1594,1595],{},"The job would take the key over its daily or monthly credit limit",[517,1597,1598,1603,1608],{},[531,1599,1600],{},[477,1601,1602],{},"503",[531,1604,1605],{},[477,1606,1607],{},"BULK_QUEUE_UNAVAILABLE",[531,1609,1610,1611],{},"The job queue is busy: retry shortly, with the same ",[477,1612,1025],{},[469,1614,1615,1616,1618,1619,486],{},"The ",[477,1617,1025],{}," errors are listed in ",[473,1620,1019],{"href":1621},"#idempotency-key-header",[465,1623,1625],{"id":1624},"code-examples","Code examples",[1627,1628,1630,1641,1650],"code-group",{"title":1629},"Code Examples",[1631,1632,1639],"pre",{"className":1633,"code":1635,"filename":1636,"language":1637,"meta":1638},[1634],"language-bash","curl -X POST https:\u002F\u002Fapi.reversecontact.com\u002Fv2\u002Fenrich\u002Fpersons\u002Fbulk \\\n  -H \"Authorization: Bearer YOUR_API_KEY\" \\\n  -H \"Content-Type: application\u002Fjson\" \\\n  -H \"Idempotency-Key: 9e2f4a1c-6b3d-4e7f-8a5c-2d1b0e9f8a7c\" \\\n  -d '{\n    \"name\": \"CRM export, November\",\n    \"items\": [\n      { \"linkedinUrl\": \"https:\u002F\u002Fwww.social.com\u002Fin\u002Fjanedoe\", \"externalId\": \"crm-001\" },\n      { \"firstName\": \"John\", \"lastName\": \"Smith\", \"companyDomain\": \"acme.com\", \"externalId\": \"crm-002\" }\n    ],\n    \"families\": [\"profile\", \"contact_email\"],\n    \"webhookUrl\": \"https:\u002F\u002Fexample.com\u002Fhooks\u002Freversecontact\"\n  }'\n","cURL","bash","",[477,1640,1635],{"__ignoreMap":1638},[1631,1642,1648],{"className":1643,"code":1645,"filename":1646,"language":1647,"meta":1638},[1644],"language-javascript","const KEY = \"YOUR_API_KEY\";\nconst BASE = \"https:\u002F\u002Fapi.reversecontact.com\";\nconst headers = { \"Authorization\": `Bearer ${KEY}` };\n\n\u002F\u002F Start the job, then follow it until it settles.\nconst created = await fetch(`${BASE}\u002Fv2\u002Fenrich\u002Fpersons\u002Fbulk`, {\n  method: \"POST\",\n  headers: { ...headers, \"Content-Type\": \"application\u002Fjson\", \"Idempotency-Key\": crypto.randomUUID() },\n  body: JSON.stringify({\n    name: \"CRM export, November\",\n    items: [\n      { linkedinUrl: \"https:\u002F\u002Fwww.social.com\u002Fin\u002Fjanedoe\", externalId: \"crm-001\" },\n      { firstName: \"John\", lastName: \"Smith\", companyDomain: \"acme.com\", externalId: \"crm-002\" }\n    ],\n    families: [\"profile\", \"contact_email\"]\n  })\n});\nlet { data: { job } } = await created.json();\n\nwhile (job.status === \"queued\" || job.status === \"running\") {\n  const response = await fetch(`${BASE}${job.links.self}?wait=20`, { headers });\n  job = (await response.json()).data;\n}\n\nif (job.links.results) {\n  const csv = await (await fetch(`${BASE}${job.links.results}`, { headers })).text();\n  console.log(job.status, `${job.credits.used} credits`, csv.split(\"\\n\").length - 1, \"lines\");\n}\n","JavaScript","javascript",[477,1649,1645],{"__ignoreMap":1638},[1631,1651,1657],{"className":1652,"code":1654,"filename":1655,"language":1656,"meta":1638},[1653],"language-python","import uuid\nimport requests\n\nKEY = \"YOUR_API_KEY\"\nBASE = \"https:\u002F\u002Fapi.reversecontact.com\"\nheaders = {\"Authorization\": f\"Bearer {KEY}\"}\n\njob = requests.post(\n    f\"{BASE}\u002Fv2\u002Fenrich\u002Fpersons\u002Fbulk\",\n    headers={**headers, \"Idempotency-Key\": str(uuid.uuid4())},\n    json={\n        \"name\": \"CRM export, November\",\n        \"items\": [\n            {\"linkedinUrl\": \"https:\u002F\u002Fwww.social.com\u002Fin\u002Fjanedoe\", \"externalId\": \"crm-001\"},\n            {\"firstName\": \"John\", \"lastName\": \"Smith\", \"companyDomain\": \"acme.com\", \"externalId\": \"crm-002\"}\n        ],\n        \"families\": [\"profile\", \"contact_email\"]\n    }\n).json()[\"data\"][\"job\"]\n\nwhile job[\"status\"] in (\"queued\", \"running\"):\n    job = requests.get(f\"{BASE}{job['links']['self']}\", headers=headers, params={\"wait\": 20}, timeout=30).json()[\"data\"]\n\nif job[\"links\"][\"results\"]:\n    with open(\"results.csv\", \"wb\") as file:\n        file.write(requests.get(f\"{BASE}{job['links']['results']}\", headers=headers).content)\nprint(job[\"status\"], job[\"credits\"][\"used\"], \"credits\")\n","Python","python",[477,1658,1654],{"__ignoreMap":1638},[465,1660,1662],{"id":1661},"example-response","Example response",[1627,1664,1666,1675],{"title":1665},"Example Response",[1631,1667,1673],{"className":1668,"code":1670,"filename":1671,"language":1672,"meta":1638},[1669],"language-json","{\n  \"success\": true,\n  \"data\": {\n    \"job\": {\n      \"id\": \"7b1e4c2a-5d3f-4e8b-9a6c-1f2d3e4b5a60\",\n      \"type\": \"enrich_persons\",\n      \"entity\": \"persons\",\n      \"status\": \"queued\",\n      \"source\": \"api\",\n      \"name\": \"CRM export, November\",\n      \"listId\": null,\n      \"progress\": {\n        \"total\": 2,\n        \"processed\": 0,\n        \"succeeded\": 0,\n        \"failed\": 0,\n        \"skipped\": 0,\n        \"remaining\": 2\n      },\n      \"credits\": { \"estimated\": 9, \"used\": null },\n      \"estimatedSecondsRemaining\": null,\n      \"error\": null,\n      \"createdAt\": \"2026-11-04T09:30:00.000Z\",\n      \"startedAt\": null,\n      \"completedAt\": null,\n      \"links\": {\n        \"self\": \"\u002Fv2\u002Fjobs\u002F7b1e4c2a-5d3f-4e8b-9a6c-1f2d3e4b5a60\",\n        \"results\": null,\n        \"operation\": null\n      }\n    },\n    \"duplicateCount\": 0,\n    \"creditsEstimated\": 9,\n    \"notRunForCredits\": 0\n  },\n  \"error\": null,\n  \"quotas\": {\n    \"creditsConsumed\": 0,\n    \"workspace\": {\n      \"id\": \"ws_abc123\",\n      \"credits\": { \"total\": 10000, \"used\": 4522, \"left\": 5478 }\n    }\n  },\n  \"metadata\": {\n    \"requestId\": \"91f305d7-392b-4af2-9663-b5dd6e943ab8\",\n    \"executionTimeMs\": 120\n  }\n}\n","202 - Created","json",[477,1674,1670],{"__ignoreMap":1638},[1631,1676,1680],{"className":1677,"code":1678,"filename":1679,"language":1672,"meta":1638},[1669],"{\n  \"event\": \"job.updated\",\n  \"jobId\": \"7b1e4c2a-5d3f-4e8b-9a6c-1f2d3e4b5a60\",\n  \"type\": \"enrich_persons\",\n  \"status\": \"completed\",\n  \"pollUrl\": \"\u002Fv2\u002Fjobs\u002F7b1e4c2a-5d3f-4e8b-9a6c-1f2d3e4b5a60\",\n  \"resultsUrl\": \"\u002Fv2\u002Fjobs\u002F7b1e4c2a-5d3f-4e8b-9a6c-1f2d3e4b5a60\u002Fresults\",\n  \"occurredAt\": \"2026-11-04T09:31:12.000Z\"\n}\n","Webhook event",[477,1681,1678],{"__ignoreMap":1638},{"title":1638,"searchDepth":1683,"depth":1683,"links":1684},3,[1685,1686,1687,1688,1693,1694,1695,1696,1697],{"id":19,"depth":298,"text":467},{"id":501,"depth":298,"text":262},{"id":645,"depth":298,"text":646},{"id":689,"depth":298,"text":690,"children":1689},[1690,1691,1692],{"id":719,"depth":1683,"text":731},{"id":996,"depth":1683,"text":997},{"id":1018,"depth":1683,"text":1019},{"id":1051,"depth":298,"text":1052},{"id":1246,"depth":298,"text":846},{"id":1430,"depth":298,"text":1431},{"id":1624,"depth":298,"text":1625},{"id":1661,"depth":298,"text":1662},"Enrich up to 25,000 people in one request, priced like the unit calls and refunded for what is not found. Read results as they come, or as CSV or NDJSON.","md","2026-11-04",{},true,"\u002Fdocs\u002Fguides\u002Fbulk-enrichment,\u002Fdocs\u002Fendpoints\u002Fjob,\u002Fdocs\u002Fendpoints\u002Fjob-results,\u002Fdocs\u002Fendpoints\u002Fjob-rows,\u002Fdocs\u002Fguides\u002Fenrich-a-csv-file",{"title":29,"description":1698},"endpoints\u002Fbulk-enrich-persons","43T77VA5c3Hf4pGCoQieiM2kmVCIk5fQBqbLqp1MTgs",1793830202255]