[{"data":1,"prerenderedAt":862},["ShallowReactive",2],{"docs-navigation":3,"docs-\u002Fsdk\u002Fpython\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":853,"endpointId":10,"extension":854,"family":337,"lastVerified":855,"links":10,"meta":856,"navigation":857,"order":24,"path":400,"relatedArticles":858,"requiresFlag":10,"seo":859,"status":10,"stem":860,"subfamily":10,"__hash__":861},"docs\u002Fsdk\u002Fpython\u002Fasync-jobs.md",{"type":462,"value":463,"toc":842},"minimark",[464,494,519,533,540,634,645,650,660,688,697,709,714,735,743,759,768,774,778,782,793,797,817,821,828,832],[465,466,467,471,472,471,475,471,478,481,482,485,486,489,490,493],"p",{},[468,469,470],"code",{},"fetch.person_live",", ",[468,473,474],{},"fetch.company_live",[468,476,477],{},"contact.find_email",[468,479,480],{},"contact.verify_email"," and ",[468,483,484],{},"contact.find_phone"," start a job and return a job handle right away. ",[468,487,488],{},"job.id"," is the job's ",[468,491,492],{},"webhookId",".",[465,495,496,497,500,501,504,505,471,508,471,511,514,515,518],{},"Call ",[468,498,499],{},"job.wait()"," to poll the job until it ends. When the job succeeds, the method returns its final state in ",[468,502,503],{},"data"," (",[468,506,507],{},"status",[468,509,510],{},"result",[468,512,513],{},"credits_consumed","). When the job fails, the method raises ",[468,516,517],{},"JobFailedError",". Polling is free and does not count toward your rate limit.",[520,521,523],"code-group",{"title":522},"Live fetch",[524,525,531],"pre",{"className":526,"code":528,"filename":395,"language":529,"meta":530},[527],"language-python","import os\n\nfrom reversecontact import JobFailedError, JobTimeoutError, ReverseContact\n\nwith ReverseContact(api_key=os.environ[\"RC_API_KEY\"]) as client:\n    job = client.fetch.person_live(url=\"https:\u002F\u002Fsocial.com\u002Fin\u002Fjanedoe\")\n    # Save the id first: after a restart, client.jobs.wait(id) resumes without paying for a new job.\n    print(\"Job id:\", job.id)\n\n    try:\n        done = job.wait(timeout=1800)\n        if done.data is not None and done.data.result is not None:\n            print(done.data.result.first_name, \"credits:\", done.data.credits_consumed)\n    except JobFailedError as error:\n        print(\"Job failed:\", error.error_code, \"credits:\", error.credits_consumed)\n    except JobTimeoutError as error:\n        print(\"Still running, resume later with client.jobs.wait:\", error.job_id)\n","python","",[468,532,528],{"__ignoreMap":530},[465,534,535,536,539],{},"How ",[468,537,538],{},"wait()"," behaves:",[541,542,543,555,579,624,631],"ul",{},[544,545,546,547,550,551,554],"li",{},"Each poll asks the API to hold the answer for up to 20 seconds (",[468,548,549],{},"poll_wait",", 0 to 20), so the result arrives as soon as the job ends. Two polls start at least ",[468,552,553],{},"Retry-After"," seconds apart, 2 seconds when the header is missing.",[544,556,557,560,561,563,564,567,568,481,571,574,575,578],{},[468,558,559],{},"timeout"," is the overall deadline in seconds, 1800 (30 minutes) by default. When the deadline passes, ",[468,562,538],{}," raises ",[468,565,566],{},"JobTimeoutError"," with ",[468,569,570],{},"job_id",[468,572,573],{},"last_status",". The job may still finish. Resume polling with ",[468,576,577],{},"client.jobs.wait(job_id)",". The synchronous client can exceed the deadline by the length of the poll in progress.",[544,580,581,582,584,585,563,588,590,591,471,594,471,596,481,598,601,602,604,605,608,609,471,612,471,615,471,618,481,621,493],{},"A job that ends with ",[468,583,507],{}," ",[468,586,587],{},"errored",[468,589,517],{},", with ",[468,592,593],{},"error_code",[468,595,513],{},[468,597,510],{},[468,599,600],{},"not_found",". The ",[468,603,600],{}," field is ",[468,606,607],{},"True"," for ",[468,610,611],{},"data-not-found",[468,613,614],{},"person-not-found",[468,616,617],{},"company-not-found",[468,619,620],{},"email-not-found",[468,622,623],{},"phone-not-found",[544,625,626,627,630],{},"The SDK calls ",[468,628,629],{},"on_poll"," with each state it reads.",[544,632,633],{},"The SDK never starts a new job after a failure. Your code decides whether to start another job, since the new job can be billed again.",[465,635,636,639,640,644],{},[468,637,638],{},"client.jobs.retrieve(job_id, wait=20)"," reads one state of a job without waiting for the end. ",[641,642,643],"a",{"href":307},"Polling"," describes the job lifecycle and how long a result stays available.",[646,647,649],"h3",{"id":648},"webhook-delivery-instead-of-polling","Webhook delivery instead of polling",[465,651,652,653,656,657,493],{},"Pass ",[468,654,655],{},"webhook_url"," when you create the job. The API sends the result to that HTTPS URL as ",[468,658,659],{},"{webhookId, data}",[465,661,662,663,666,667,471,670,481,672,601,675,604,677,679,680,683,684,687],{},"Use ",[468,664,665],{},"parse_webhook_delivery"," to parse the decoded body, a JSON string or bytes. The helper checks the delivery's shape and returns ",[468,668,669],{},"webhook_id",[468,671,503],{},[468,673,674],{},"is_error",[468,676,674],{},[468,678,607],{}," when ",[468,681,682],{},"data.errorCode"," is a non-empty string. A malformed delivery raises ",[468,685,686],{},"ReverseContactError",". The helper does not validate the profile itself.",[520,689,691],{"title":690},"Webhook delivery",[524,692,695],{"className":693,"code":694,"filename":395,"language":529,"meta":530},[527],"import os\n\nfrom reversecontact import ReverseContact, parse_webhook_delivery\n\nwith ReverseContact(api_key=os.environ[\"RC_API_KEY\"]) as client:\n    job = client.fetch.person_live(\n        url=\"https:\u002F\u002Fsocial.com\u002Fin\u002Fjanedoe\",\n        webhook_url=\"https:\u002F\u002Fyour-app.com\u002Fwebhooks\u002Freversecontact\",\n    )\n    print(\"Store this id to match the delivery:\", job.id)\n\n\n# Call this from the route behind webhook_url with the raw request body.\ndef handle_webhook(body: bytes) -> None:\n    delivery = parse_webhook_delivery(body)\n    if delivery.is_error:\n        print(delivery.webhook_id, \"failed:\", delivery.data)\n    else:\n        print(delivery.webhook_id, \"result:\", delivery.data)\n    # Answer within 10 seconds, then process the data: deduplicate on webhook_id.\n",[468,696,694],{"__ignoreMap":530},[465,698,699,700,702,703,705,706,708],{},"You can still poll a job created with ",[468,701,655],{}," by calling ",[468,704,499],{},". See ",[641,707,318],{"href":317}," for delivery failures and retries.",[710,711,713],"h2",{"id":712},"read-one-state-from-a-job-handle","Read one state from a job handle",[465,715,716,719,720,723,724,471,726,729,730,732,733,493],{},[468,717,718],{},"job.retrieve(wait=20)"," returns one typed ",[468,721,722],{},"Result[JobSnapshot[T]]",". The profile or contact result keeps the type of the method that created the job. Unlike ",[468,725,538],{},[468,727,728],{},"retrieve()"," returns an ",[468,731,587],{}," state without raising ",[468,734,517],{},[520,736,737],{"title":395},[524,738,741],{"className":739,"code":740,"filename":395,"language":529,"meta":530},[527],"from reversecontact import ReverseContact\n\nwith ReverseContact() as client:\n    job = client.contact.find_phone(url=\"https:\u002F\u002Fsocial.com\u002Fin\u002Fjanedoe\")\n    state = job.retrieve(wait=20)\n    if state.data:\n        print(state.data.status, state.data.result)\n",[468,742,740],{"__ignoreMap":530},[465,744,745,746,748,749,751,752,754,755,758],{},"After a restart, use ",[641,747,370],{"href":420}," to retrieve a job or wait for the result by id. ",[468,750,577],{}," returns the endpoint-specific ",[468,753,510],{}," as decoded JSON. The original ",[468,756,757],{},"Job"," handle parses that result into its typed model.",[465,760,761,481,763,765,766,493],{},[641,762,358],{"href":412},[641,764,349],{"href":406}," list the job-creating methods. Bulk jobs and List operations use their own helpers, described in ",[641,767,376],{"href":424},[465,769,770,771,493],{},"Return to the ",[641,772,773],{"href":394},"Python SDK overview",[710,775,777],{"id":776},"faq","FAQ",[646,779,781],{"id":780},"how-do-i-wait-for-a-live-fetch-or-find-email-result-in-python","How do I wait for a live fetch or Find Email result in Python?",[465,783,784,785,787,788,790,791,493],{},"Save ",[468,786,488],{}," and call ",[468,789,499],{},". Polling is free and waits up to 1800 seconds by default. Resume after a restart with ",[468,792,577],{},[646,794,796],{"id":795},"what-happens-when-a-python-sdk-job-fails","What happens when a Python SDK job fails?",[465,798,799,563,801,803,804,806,807,471,809,471,811,471,813,481,815,493],{},[468,800,499],{},[468,802,517],{}," for an ",[468,805,587],{}," job. The exception includes ",[468,808,570],{},[468,810,593],{},[468,812,513],{},[468,814,510],{},[468,816,600],{},[646,818,820],{"id":819},"does-jobtimeouterror-cancel-the-enrichment-job","Does JobTimeoutError cancel the enrichment job?",[465,822,823,825,826,493],{},[468,824,566],{}," ends local waiting, without cancelling the remote job. Resume polling with the exception's ",[468,827,570],{},[646,829,831],{"id":830},"can-i-use-webhooks-and-polling-together-in-python","Can I use webhooks and polling together in Python?",[465,833,652,834,836,837,839,840,493],{},[468,835,655],{}," to a live fetch or contact method and parse deliveries with ",[468,838,665],{},". The same job remains available through ",[468,841,499],{},{"title":530,"searchDepth":843,"depth":843,"links":844},3,[845,846,847],{"id":648,"depth":843,"text":649},{"id":712,"depth":298,"text":713},{"id":776,"depth":298,"text":777,"children":848},[849,850,851,852],{"id":780,"depth":843,"text":781},{"id":795,"depth":843,"text":796},{"id":819,"depth":843,"text":820},{"id":830,"depth":843,"text":831},"Wait for live profiles, Find Email, Verify Email and Find Phone jobs in Python, resume polling by id, or parse webhook deliveries from the API.","md","2026-11-04",{},true,"\u002Fdocs\u002Fsdk\u002Fpython,\u002Fdocs\u002Fsdk\u002Fpython\u002Ffetch,\u002Fdocs\u002Fsdk\u002Fpython\u002Fcontact,\u002Fdocs\u002Fsdk\u002Fpython\u002Fjobs,\u002Fdocs\u002Fsdk\u002Fpython\u002Flists-and-bulk",{"title":336,"description":853},"sdk\u002Fpython\u002Fasync-jobs","wbZb_YKQ3d3erdty9r_MGmnR6nJA4M9vTtooo8gRLU0",1793830205559]