[{"data":1,"prerenderedAt":1027},["ShallowReactive",2],{"docs-navigation":3,"docs-\u002Fsdk\u002Fpython\u002Ferrors-and-retries":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":355,"audience":10,"badgeColor":10,"badgeLabel":10,"body":461,"category":333,"description":1018,"endpointId":10,"extension":1019,"family":337,"lastVerified":1020,"links":10,"meta":1021,"navigation":1022,"order":341,"path":410,"relatedArticles":1023,"requiresFlag":10,"seo":1024,"status":10,"stem":1025,"subfamily":10,"__hash__":1026},"docs\u002Fsdk\u002Fpython\u002Ferrors-and-retries.md",{"type":462,"value":463,"toc":1007},"minimark",[464,507,682,693,696,751,782,796,802,807,824,839,848,854,874,878,900,909,942,948,952,957,960,964,970,974,983,987],[465,466,467,468,472,473,476,477,480,481,484,485,484,487,484,490,484,493,484,496,484,499,502,503,506],"p",{},"SDK-defined errors inherit from ",[469,470,471],"code",{},"ReverseContactError",". If a response cannot be parsed into the declared model, Pydantic can also raise ",[469,474,475],{},"ValidationError",". Errors returned by the API inherit from ",[469,478,479],{},"APIError",", with ",[469,482,483],{},"status",", ",[469,486,469],{},[469,488,489],{},"message",[469,491,492],{},"details",[469,494,495],{},"request_id",[469,497,498],{},"retry_after",[469,500,501],{},"headers"," and ",[469,504,505],{},"body",".",[508,509,510,523],"table",{},[511,512,513],"thead",{},[514,515,516,520],"tr",{},[517,518,519],"th",{},"HTTP status",[517,521,522],{},"Error class",[524,525,526,539,551,563,575,592,604,616,628,645,657,669],"tbody",{},[514,527,528,534],{},[529,530,531],"td",{},[469,532,533],{},"400",[529,535,536],{},[469,537,538],{},"BadRequestError",[514,540,541,546],{},[529,542,543],{},[469,544,545],{},"401",[529,547,548],{},[469,549,550],{},"AuthenticationError",[514,552,553,558],{},[529,554,555],{},[469,556,557],{},"402",[529,559,560],{},[469,561,562],{},"InsufficientCreditsError",[514,564,565,570],{},[529,566,567],{},[469,568,569],{},"403",[529,571,572],{},[469,573,574],{},"PermissionDeniedError",[514,576,577,582],{},[529,578,579],{},[469,580,581],{},"404",[529,583,584,587,588,591],{},[469,585,586],{},"NotFoundError"," (a lookup with no match returns ",[469,589,590],{},"None"," instead)",[514,593,594,599],{},[529,595,596],{},[469,597,598],{},"409",[529,600,601],{},[469,602,603],{},"ConflictError",[514,605,606,611],{},[529,607,608],{},[469,609,610],{},"410",[529,612,613],{},[469,614,615],{},"GoneError",[514,617,618,623],{},[529,619,620],{},[469,621,622],{},"422",[529,624,625],{},[469,626,627],{},"UnprocessableEntityError",[514,629,630,635],{},[529,631,632],{},[469,633,634],{},"429",[529,636,637,640,641,644],{},[469,638,639],{},"RateLimitError",", or ",[469,642,643],{},"DailyLimitError"," for a daily limit",[514,646,647,652],{},[529,648,649],{},[469,650,651],{},"451",[529,653,654],{},[469,655,656],{},"UnavailableForLegalReasonsError",[514,658,659,664],{},[529,660,661],{},[469,662,663],{},"5xx",[529,665,666],{},[469,667,668],{},"InternalServerError",[514,670,671,677],{},[529,672,673,674],{},"Any status with ",[469,675,676],{},"KEY_CREDIT_LIMIT_REACHED",[529,678,679],{},[469,680,681],{},"KeyCreditLimitError",[465,683,684,685,688,689,692],{},"A network failure raises ",[469,686,687],{},"APIConnectionError",". If an attempt runs out of time, the SDK raises ",[469,690,691],{},"APITimeoutError",", a subclass of that error.",[465,694,695],{},"The SDK retries a request up to 4 times after the first attempt, 5 attempts in total:",[697,698,699,714,733,736],"ul",{},[700,701,702,703,705,706,709,710,713],"li",{},"For a ",[469,704,634],{}," from the per-minute rate limit, the SDK first checks ",[469,707,708],{},"error.details.retryAfter"," for the retry delay, then the ",[469,711,712],{},"Retry-After"," header. If neither supplies a delay, the SDK backs off.",[700,715,702,716,484,719,484,722,725,726,729,730,732],{},[469,717,718],{},"500",[469,720,721],{},"502",[469,723,724],{},"503"," or ",[469,727,728],{},"504",", the SDK backs off exponentially: 2, 4, 8, then 15 seconds, plus up to 250 milliseconds of jitter. If the response sends ",[469,731,712],{},", the SDK uses that delay instead.",[700,734,735],{},"If the requested wait exceeds 60 seconds, the SDK raises the error at once instead of waiting.",[700,737,738,739,742,743,746,747,750],{},"The SDK retries network failures and timed-out attempts on ",[469,740,741],{},"GET"," requests. For a ",[469,744,745],{},"DELETE",", the SDK also retries a transport failure when no HTTP response was received. For a ",[469,748,749],{},"POST",", the SDK retries only when the connection was never established. This prevents sending a request twice when the API may already have billed it. Find Email and Find Phone are exceptions, protected by their idempotency key (see below).",[465,752,753,754,756,757,502,760,763,764,766,767,769,770,773,774,777,778,781],{},"The SDK never retries ",[469,755,643],{}," (the daily limits, ",[469,758,759],{},"DAILY_LIMIT_EXCEEDED",[469,761,762],{},"DAILY_EXTRACTION_LIMIT_EXCEEDED","), ",[469,765,681],{}," (an API key credit limit) or ",[469,768,562],{},". Other ",[469,771,772],{},"4xx"," errors are not retried either, except ",[469,775,776],{},"409 IDEMPOTENCY_KEY_IN_USE"," for Find Email and Find Phone. To resolve these errors, change the request, key or account, or wait until the next day. Set ",[469,779,780],{},"max_retries=0"," to turn retries off.",[783,784,786],"code-group",{"title":785},"Handle errors",[787,788,794],"pre",{"className":789,"code":791,"filename":395,"language":792,"meta":793},[790],"language-python","import os\n\nfrom reversecontact import APIError, DailyLimitError, KeyCreditLimitError, ReverseContact\n\nwith ReverseContact(api_key=os.environ[\"RC_API_KEY\"]) as client:\n    try:\n        client.enrich.company(domain=\"acme.com\")\n    except (DailyLimitError, KeyCreditLimitError) as error:\n        # Not retried: pause the work until the limit resets.\n        print(\"Limit reached:\", error.code, \"retry after\", error.retry_after, \"seconds\")\n    except APIError as error:\n        print(error.status, error.code, error.message, \"request id:\", error.request_id)\n","python","",[469,795,791],{"__ignoreMap":793},[465,797,798,801],{},[799,800,284],"a",{"href":283}," lists every error code of the API.",[803,804,806],"h2",{"id":805},"safe-retries-on-find-email-and-find-phone","Safe retries on Find Email and Find Phone",[465,808,809,810,484,813,502,816,819,820,823],{},"Sending the same Find Email, Verify Email or Find Phone request twice would start two jobs, and both can be billed. ",[469,811,812],{},"contact.find_email",[469,814,815],{},"contact.verify_email",[469,817,818],{},"contact.find_phone"," send an ",[469,821,822],{},"Idempotency-Key"," header with a new UUID on each call. Each automatic retry of that call reuses the key. For 24 hours, the API returns the first response for a repeated key and body, without starting or billing another lookup.",[465,825,826,827,830,831,834,835,838],{},"To retry safely after your process restarts, choose the key yourself, store it with the request, and pass it as ",[469,828,829],{},"idempotency_key",". ",[469,832,833],{},"job.replayed"," is ",[469,836,837],{},"True"," when the API returned the first response again.",[783,840,842],{"title":841},"Idempotency key",[787,843,846],{"className":844,"code":845,"filename":395,"language":792,"meta":793},[790],"import os\n\nfrom reversecontact import ReverseContact\n\nwith ReverseContact(api_key=os.environ[\"RC_API_KEY\"]) as client:\n    job = client.contact.find_email(\n        full_name=\"Jane Doe\",\n        company_domain=\"acme.com\",\n        email_type=\"any\",\n        idempotency_key=\"crm-contact-4821-email\",\n    )\n    print(job.id, \"first response returned again\" if job.replayed else \"new lookup\")\n\n    done = job.wait()\n    emails = done.data.result if done.data and done.data.result else []\n    for email in emails:\n        if email is not None:\n            print(email.value, email.type)\n",[469,847,845],{"__ignoreMap":793},[465,849,850,851,853],{},"Use 1 to 255 printable ASCII characters without spaces, and a new key for each new lookup. A key that is empty, longer than 255 characters, or contains a space or a non-ASCII character raises ",[469,852,471],{}," before any request is sent.",[465,855,856,857,859,860,862,863,866,867,870,871,506],{},"The SDK retries ",[469,858,776],{}," after its ",[469,861,712],{}," delay. The SDK does not retry ",[469,864,865],{},"422 IDEMPOTENCY_KEY_REUSED"," (same key, different body) or ",[469,868,869],{},"400 INVALID_IDEMPOTENCY_KEY",". After 24 hours, the same key can start and bill a new lookup. To read a job you already started, call ",[469,872,873],{},"client.jobs.wait(job_id)",[803,875,877],{"id":876},"list-and-bulk-retry-identifiers","List and Bulk retry identifiers",[465,879,880,502,883,886,887,889,890,893,894,897,898,506],{},[469,881,882],{},"lists.create()",[469,884,885],{},"bulk.enrich_persons()"," generate an ",[469,888,822],{}," when you omit one and reuse that key on automatic retries. ",[469,891,892],{},"lists.import_signals()"," generates an ",[469,895,896],{},"operation_id"," when omitted. Save your own identifiers to continue the same work after a restart. See ",[799,899,376],{"href":424},[465,901,902,903,905,906,908],{},"These methods do not use the contact endpoints' special retry rule for ambiguous POST transport failures or ",[469,904,776],{},". Use ",[799,907,349],{"href":406}," for the three contact methods protected by that rule.",[465,910,911,913,914,484,917,502,920,830,923,925,926,484,929,484,932,502,935,938,939,941],{},[469,912,479],{}," also exposes ",[469,915,916],{},"http_response",[469,918,919],{},"alternative",[469,921,922],{},"reset_at",[469,924,681],{}," adds ",[469,927,928],{},"period",[469,930,931],{},"limit",[469,933,934],{},"used",[469,936,937],{},"required",". See ",[799,940,385],{"href":430}," for HTTP and overall job deadlines.",[465,943,944,945,506],{},"Return to the ",[799,946,947],{"href":394},"Python SDK overview",[803,949,951],{"id":950},"faq","FAQ",[953,954,956],"h3",{"id":955},"does-the-reversecontact-python-sdk-retry-failed-requests","Does the reversecontact Python SDK retry failed requests?",[465,958,959],{},"The SDK retries per-minute rate limits and HTTP 500, 502, 503 and 504 up to four times by default. Daily limits, key credit limits and insufficient credits are not retried.",[953,961,963],{"id":962},"how-do-i-disable-automatic-retries-in-python","How do I disable automatic retries in Python?",[465,965,966,967,969],{},"Pass ",[469,968,780],{}," to the client or an individual API method. That setting disables the request transport's automatic retries.",[953,971,973],{"id":972},"how-do-i-retry-find-email-without-creating-another-job","How do I retry Find Email without creating another job?",[465,975,976,977,979,980,982],{},"Store a request-specific ",[469,978,829],{}," and reuse that key with the same body. Contact endpoints return the first response for 24 hours. Check ",[469,981,833],{}," to identify a replay.",[953,984,986],{"id":985},"which-python-exception-represents-an-invalid-api-key","Which Python exception represents an invalid API key?",[465,988,989,990,992,993,502,995,997,998,484,1000,484,1002,502,1004,1006],{},"An HTTP 401 response raises ",[469,991,550],{},", a subclass of ",[469,994,479],{},[469,996,471],{},". Inspect ",[469,999,495],{},[469,1001,483],{},[469,1003,469],{},[469,1005,489],{}," for diagnostics.",{"title":793,"searchDepth":1008,"depth":1008,"links":1009},3,[1010,1011,1012],{"id":805,"depth":298,"text":806},{"id":876,"depth":298,"text":877},{"id":950,"depth":298,"text":951,"children":1013},[1014,1015,1016,1017],{"id":955,"depth":1008,"text":956},{"id":962,"depth":1008,"text":963},{"id":972,"depth":1008,"text":973},{"id":985,"depth":1008,"text":986},"Handle Python SDK exceptions, understand automatic retries and rate limits, and reuse idempotency keys safely for Find Email and Find Phone.","md","2026-11-04",{},true,"\u002Fdocs\u002Fsdk\u002Fpython,\u002Fdocs\u002Fsdk\u002Fpython\u002Fcontact,\u002Fdocs\u002Fsdk\u002Fpython\u002Ftimeouts,\u002Fdocs\u002Fsdk\u002Fpython\u002Flists-and-bulk",{"title":355,"description":1018},"sdk\u002Fpython\u002Ferrors-and-retries","2n1izMX1UytnZCj6O62s4aKhhCwHC1WYoiFgLNNiG7U",1793830205664]