[{"data":1,"prerenderedAt":880},["ShallowReactive",2],{"docs-navigation":3,"docs-\u002Fsdk\u002Fjavascript\u002Fasync-jobs":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":336,"audience":10,"badgeColor":10,"badgeLabel":10,"body":461,"category":333,"description":871,"endpointId":10,"extension":872,"family":337,"lastVerified":873,"links":10,"meta":874,"navigation":875,"order":15,"path":335,"relatedArticles":876,"requiresFlag":10,"seo":877,"status":10,"stem":878,"subfamily":10,"__hash__":879},"docs\u002Fsdk\u002Fjavascript\u002Fasync-jobs.md",{"type":462,"value":463,"toc":858},"minimark",[464,473,478,509,530,545,552,651,661,666,698,707,719,723,746,755,788,798,804,808,812,820,824,833,837,844,848],[465,466,467,468,472],"p",{},"Live fetches and contact lookups return a ",[469,470,471],"code",{},"Job"," before the result is ready.",[474,475,477],"h2",{"id":476},"start-and-wait-for-a-job","Start and wait for a job",[465,479,480,483,484,483,487,483,490,493,494,497,498,500,501,504,505,508],{},[469,481,482],{},"fetch.personLive",", ",[469,485,486],{},"fetch.companyLive",[469,488,489],{},"contact.findEmail",[469,491,492],{},"contact.verifyEmail"," and ",[469,495,496],{},"contact.findPhone"," start a job and return a ",[469,499,471],{}," right away. ",[469,502,503],{},"job.id"," is the job's ",[469,506,507],{},"webhookId",".",[465,510,511,512,515,516,483,519,483,522,525,526,529],{},"Call ",[469,513,514],{},"job.wait()"," to poll until the job ends. When the job succeeds, the method returns its final state (",[469,517,518],{},"data.status",[469,520,521],{},"data.result",[469,523,524],{},"data.creditsConsumed","). When the job fails, the method raises ",[469,527,528],{},"JobFailedError",". Polling is free and does not count toward your rate limit.",[531,532,534],"code-group",{"title":533},"Live fetch",[535,536,543],"pre",{"className":537,"code":539,"filename":540,"language":541,"meta":542},[538],"language-typescript","import ReverseContact, { JobFailedError, JobTimeoutError } from \"@reverse-contact\u002Fsdk\";\n\nconst client = new ReverseContact({ apiKey: process.env.RC_API_KEY });\n\nconst job = await client.fetch.personLive({ url: \"https:\u002F\u002Fsocial.com\u002Fin\u002Fjanedoe\" });\n\u002F\u002F Save the id first: after a restart, client.jobs.wait(id) resumes without paying for a new job.\nconsole.log(\"Job id:\", job.id);\n\ntry {\n  const done = await job.wait({ timeout: 30 * 60 * 1000 });\n  console.log(done.data.result?.firstName, \"credits:\", done.data.creditsConsumed);\n} catch (error) {\n  if (error instanceof JobFailedError) {\n    console.log(\"Job failed:\", error.errorCode, \"credits:\", error.creditsConsumed);\n  } else if (error instanceof JobTimeoutError) {\n    console.log(\"Still running, resume later with client.jobs.wait:\", error.jobId);\n  } else {\n    throw error;\n  }\n}\n","TypeScript SDK","typescript","",[469,544,539],{"__ignoreMap":542},[465,546,547,548,551],{},"How ",[469,549,550],{},"wait()"," behaves:",[553,554,555,567,590,634,648],"ul",{},[556,557,558,559,562,563,566],"li",{},"Each poll asks the API to hold the answer for up to 20 seconds (",[469,560,561],{},"pollWait",", 0 to 20), so the result arrives as soon as the job ends. Two polls start at least ",[469,564,565],{},"Retry-After"," seconds apart, 2 seconds when the header is missing.",[556,568,569,572,573,575,576,579,580,493,583,586,587,508],{},[469,570,571],{},"timeout"," is the overall deadline in milliseconds, 30 minutes by default. When it passes, ",[469,574,550],{}," raises ",[469,577,578],{},"JobTimeoutError"," with ",[469,581,582],{},"jobId",[469,584,585],{},"lastStatus",". The job may still finish: resume it with ",[469,588,589],{},"client.jobs.wait(jobId)",[556,591,592,593,575,596,598,599,483,602,483,605,493,608,611,612,614,615,618,619,483,622,483,625,483,628,493,631,508],{},"A job that ends with ",[469,594,595],{},"status: \"errored\"",[469,597,528],{},", with ",[469,600,601],{},"errorCode",[469,603,604],{},"creditsConsumed",[469,606,607],{},"result",[469,609,610],{},"notFound",". The ",[469,613,610],{}," field is ",[469,616,617],{},"true"," for ",[469,620,621],{},"data-not-found",[469,623,624],{},"person-not-found",[469,626,627],{},"company-not-found",[469,629,630],{},"email-not-found",[469,632,633],{},"phone-not-found",[556,635,636,639,640,643,644,647],{},[469,637,638],{},"onPoll"," is called with each state the SDK reads, and ",[469,641,642],{},"signal"," stops the wait (see ",[645,646,385],"a",{"href":384},").",[556,649,650],{},"The SDK never starts a new job after a failure. Your code decides whether to start another job, which can be billed again.",[465,652,653,656,657,660],{},[469,654,655],{},"client.jobs.retrieve(id, { wait: 20 })"," reads one state of a job without waiting for the end. ",[645,658,659],{"href":307},"Polling"," describes the job lifecycle and how long a result stays available.",[662,663,665],"h3",{"id":664},"webhook-delivery-instead-of-polling","Webhook delivery instead of polling",[465,667,668,669,672,673,676,677,680,681,483,683,493,686,611,689,614,691,693,694,697],{},"Pass ",[469,670,671],{},"webhookUrl"," when you create the job to receive the result at that HTTPS URL as ",[469,674,675],{},"{ webhookId, data }",". Use ",[469,678,679],{},"parseWebhookDelivery"," to check the payload shape and read ",[469,682,507],{},[469,684,685],{},"data",[469,687,688],{},"isError",[469,690,688],{},[469,692,617],{}," when ",[469,695,696],{},"data.errorCode"," is a non-empty string. The helper does not validate the profile itself.",[531,699,701],{"title":700},"Webhook delivery",[535,702,705],{"className":703,"code":704,"filename":540,"language":541,"meta":542},[538],"import ReverseContact, { parseWebhookDelivery } from \"@reverse-contact\u002Fsdk\";\n\nconst client = new ReverseContact({ apiKey: process.env.RC_API_KEY });\n\nconst job = await client.fetch.personLive({\n  url: \"https:\u002F\u002Fsocial.com\u002Fin\u002Fjanedoe\",\n  webhookUrl: \"https:\u002F\u002Fyour-app.com\u002Fwebhooks\u002Freversecontact\"\n});\nconsole.log(\"Store this id to match the delivery:\", job.id);\n\n\u002F\u002F The route behind webhookUrl, as a Fetch API handler (Bun, Deno, edge runtimes).\nasync function handleWebhook(request: Request): Promise\u003CResponse> {\n  const delivery = parseWebhookDelivery(await request.json());\n  if (delivery.isError) console.log(delivery.webhookId, \"failed:\", delivery.data);\n  else console.log(delivery.webhookId, \"result:\", delivery.data);\n  \u002F\u002F Answer within 10 seconds, then process the data: deduplicate on webhookId.\n  return new Response(null, { status: 200 });\n}\n",[469,706,704],{"__ignoreMap":542},[465,708,709,710,712,713,715,716,718],{},"A job created with ",[469,711,671],{}," can still be polled with ",[469,714,514],{},". See ",[645,717,318],{"href":317}," for delivery failures and retries.",[474,720,722],{"id":721},"read-a-job-without-waiting-for-completion","Read a job without waiting for completion",[465,724,725,728,729,732,733,736,737,493,740,742,743,508],{},[469,726,727],{},"job.retrieve({ wait: 20 })"," reads one snapshot of the same job. ",[469,730,731],{},"job.status"," holds the initial acknowledgement status. Read ",[469,734,735],{},"snapshot.data.status"," for the current state. To retrieve or wait for a saved job id, use the ",[469,738,739],{},"retrieve()",[469,741,550],{}," methods in the ",[645,744,745],{"href":369},"client.jobs reference",[531,747,749],{"title":748},"Verify an email",[535,750,753],{"className":751,"code":752,"filename":540,"language":541,"meta":542},[538],"import ReverseContact from \"@reverse-contact\u002Fsdk\";\n\nconst client = new ReverseContact();\nconst job = await client.contact.verifyEmail({ email: \"jane@acme.com\" });\nconst snapshot = await job.retrieve({ wait: 20 });\nconsole.log(snapshot.data.status);\nconst done = await job.wait();\nconsole.log(done.data.result?.status);\n",[469,754,752],{"__ignoreMap":542},[465,756,757,758,761,762,765,766,483,769,483,772,775,776,779,780,715,783,493,785,787],{},"Verify Email returns ",[469,759,760],{},"email"," and a ",[469,763,764],{},"status"," of ",[469,767,768],{},"valid",[469,770,771],{},"risky",[469,773,774],{},"invalid"," or ",[469,777,778],{},"unknown",". Find Email and Find Phone return arrays of ",[469,781,782],{},"{ value, type }",[645,784,349],{"href":348},[645,786,358],{"href":357}," for their parameters.",[465,789,790,575,792,795,796,508],{},[469,791,679],{},[469,793,794],{},"ReverseContactError"," if the delivery envelope is invalid. List operations and Bulk jobs use separate wait methods, described in ",[645,797,376],{"href":375},[465,799,800,801,508],{},"Return to the ",[645,802,803],{"href":331},"TypeScript SDK overview",[474,805,807],{"id":806},"faq","FAQ",[662,809,811],{"id":810},"how-do-i-wait-for-a-live-profile-or-find-email-result","How do I wait for a live profile or Find Email result?",[465,813,511,814,816,817,819],{},[469,815,514],{}," on the ",[469,818,471],{}," returned by a live fetch or contact lookup. The SDK polls for free, for up to 30 minutes by default.",[662,821,823],{"id":822},"how-do-i-resume-waiting-after-my-process-restarts","How do I resume waiting after my process restarts?",[465,825,826,827,829,830,832],{},"Save ",[469,828,503],{}," before waiting, then call ",[469,831,589],{}," after restarting. Resuming a job avoids creating another paid lookup.",[662,834,836],{"id":835},"what-happens-when-an-asynchronous-sdk-job-fails","What happens when an asynchronous SDK job fails?",[465,838,839,575,841,843],{},[469,840,514],{},[469,842,528],{}," with the job error code, credits consumed and any result. The SDK does not start a replacement job.",[662,845,847],{"id":846},"can-i-poll-a-job-that-also-uses-a-webhook","Can I poll a job that also uses a webhook?",[465,849,709,850,712,852,854,855,857],{},[469,851,671],{},[469,853,514],{},". ",[469,856,679],{}," checks the callback envelope and identifies error deliveries.",{"title":542,"searchDepth":859,"depth":859,"links":860},3,[861,864,865],{"id":476,"depth":298,"text":477,"children":862},[863],{"id":664,"depth":859,"text":665},{"id":721,"depth":298,"text":722},{"id":806,"depth":298,"text":807,"children":866},[867,868,869,870],{"id":810,"depth":859,"text":811},{"id":822,"depth":859,"text":823},{"id":835,"depth":859,"text":836},{"id":846,"depth":859,"text":847},"Wait for live profiles, Find Email, Verify Email and Find Phone with the TypeScript SDK, resume saved job ids, and parse webhook deliveries.","md","2026-11-04",{},true,"\u002Fdocs\u002Fsdk\u002Fjavascript,\u002Fdocs\u002Fsdk\u002Fjavascript\u002Fjobs,\u002Fdocs\u002Fsdk\u002Fjavascript\u002Ffetch,\u002Fdocs\u002Fsdk\u002Fjavascript\u002Fcontact,\u002Fdocs\u002Fsdk\u002Fjavascript\u002Ftimeouts",{"title":336,"description":871},"sdk\u002Fjavascript\u002Fasync-jobs","tJM-MjS3J6-ho5OancDWEZKZKiq-jwrsyQFb6LXuLIk",1793830204353]