[{"data":1,"prerenderedAt":851},["ShallowReactive",2],{"docs-navigation":3,"docs-\u002Fsdk\u002Fpython\u002Flists-and-bulk":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":376,"audience":10,"badgeColor":10,"badgeLabel":10,"body":461,"category":333,"description":842,"endpointId":10,"extension":843,"family":337,"lastVerified":844,"links":10,"meta":845,"navigation":846,"order":20,"path":424,"relatedArticles":847,"requiresFlag":10,"seo":848,"status":10,"stem":849,"subfamily":10,"__hash__":850},"docs\u002Fsdk\u002Fpython\u002Flists-and-bulk.md",{"type":462,"value":463,"toc":832},"minimark",[464,482,511,518,531,579,589,614,632,640,655,660,682,705,726,740,756,762,766,771,783,787,799,803,815,819],[465,466,467,468,471,472,475,476,478,479,481],"p",{},"From version 0.2.0, ",[469,470,373],"code",{}," manages your ",[473,474,125],"a",{"href":290}," and ",[469,477,340],{}," runs ",[473,480,29],{"href":28}," jobs.",[465,483,484,487,488,491,492,495,496,495,499,502,503,506,507,510],{},[469,485,486],{},"bulk.enrich_persons"," starts a job of up to 25,000 people. Use ",[469,489,490],{},"bulk.wait"," to wait until the job is ",[469,493,494],{},"completed",", ",[469,497,498],{},"cancelled",[469,500,501],{},"failed"," or ",[469,504,505],{},"paused",". Once the job is completed or cancelled, ",[469,508,509],{},"bulk.results"," returns the results CSV as text.",[465,512,513,514,517],{},"The SDK sends an ",[469,515,516],{},"Idempotency-Key"," with each new job, generating one if you omit the key. The SDK reuses the key on its own retries, so a retried request never creates a second job. Items keep the API's camelCase field names.",[519,520,521],"code-group",{"title":29},[522,523,529],"pre",{"className":524,"code":526,"filename":395,"language":527,"meta":528},[525],"language-python","import os\n\nfrom reversecontact import ReverseContact\n\nwith ReverseContact(api_key=os.environ[\"RC_API_KEY\"]) as client:\n    created = client.bulk.enrich_persons(\n        name=\"CRM export, November\",\n        items=[\n            {\"linkedinUrl\": \"https:\u002F\u002Fsocial.com\u002Fin\u002Fjanedoe\", \"externalId\": \"crm-001\"},\n            {\"firstName\": \"John\", \"lastName\": \"Smith\", \"companyDomain\": \"acme.com\", \"externalId\": \"crm-002\"},\n        ],\n        families=[\"profile\", \"contact_email\"],\n    )\n    if created.data is None or created.data.job is None or created.data.job.id is None:\n        raise RuntimeError(\"The response is missing the bulk job id\")\n    job_id = created.data.job.id\n\n    job = client.bulk.wait(job_id)\n    if job.data and job.data.links and job.data.links.results:\n        with open(\"results.csv\", \"w\", encoding=\"utf-8\") as file:\n            file.write(client.bulk.results(job_id))\n    if job.data:\n        print(job.data.status, \"credits:\", job.data.credits.used if job.data.credits else None)\n","python","",[469,530,526],{"__ignoreMap":528},[465,532,533,534,537,538,541,542,545,546,548,549,495,552,555,556,559,560,563,564,567,568,571,572,574,575,578],{},"From version 0.3.0, you can use the results before the job settles. ",[469,535,536],{},"bulk.iter_rows"," yields them one at a time, in the order sent, as soon as each one is ready. While the next item runs, it waits out the ",[469,539,540],{},"Retry-After"," of the API. It ends with the job, or when the job is paused: read on later with ",[469,543,544],{},"bulk.rows"," and the last cursor. A cancelled job first finishes the items it had started, within the hour. ",[469,547,544],{}," reads one page (",[469,550,551],{},"cursor",[469,553,554],{},"limit"," up to 100), with the job status in ",[469,557,558],{},"extras[\"status\"]",". Each item is a ",[469,561,562],{},"JobResultLine",", exported by ",[469,565,566],{},"reversecontact.types",". ",[469,569,570],{},"bulk.results(job_id, format=\"ndjson\")"," returns the results file as NDJSON, one ",[469,573,562],{}," per line. The ",[473,576,577],{"href":402},"client.bulk reference"," documents each method.",[519,580,582],{"title":581},"Results as they come",[522,583,587],{"className":584,"code":585,"filename":586,"language":527,"meta":528},[525],"import json\n\nfor item in client.bulk.iter_rows(job_id):\n    print(item.row, item.input.get(\"externalId\"), item.status, item.credits_consumed)\n\n# Or the whole file once the job settles, one JSON object per line:\nndjson = client.bulk.results(job_id, format=\"ndjson\")\nitems = [json.loads(line) for line in ndjson.splitlines() if line]\n","Python",[469,588,585],{"__ignoreMap":528},[465,590,591,592,595,596,599,600,603,604,495,607,502,610,613],{},"A List keeps its members. Start an import with ",[469,593,594],{},"lists.import_signals",", then call ",[469,597,598],{},"lists.operations.wait",". The helper returns when the operation's ",[469,601,602],{},"client_action"," is ",[469,605,606],{},"done",[469,608,609],{},"resume",[469,611,612],{},"reconcile",", so your code can decide what comes next.",[465,615,616,617,620,621,475,623,620,625,628,629,631],{},"If you omit the identifiers, ",[469,618,619],{},"lists.create"," sends an ",[469,622,516],{},[469,624,594],{},[469,626,627],{},"operation_id",". To resume a paused import after a restart, pass your own ",[469,630,627],{},".",[519,633,634],{"title":125},[522,635,638],{"className":636,"code":637,"filename":395,"language":527,"meta":528},[525],"import os\n\nfrom reversecontact import ReverseContact\n\nwith ReverseContact(api_key=os.environ[\"RC_API_KEY\"]) as client:\n    created = client.lists.create(name=\"Prospects\", entity=\"persons\")\n    if created.data is None or created.data.id is None:\n        raise RuntimeError(\"The response is missing the List id\")\n    list_id = created.data.id\n\n    imported = client.lists.import_signals(\n        list_id,\n        signals=[{\"email\": \"jane@acme.com\", \"externalId\": \"crm-001\"}],\n        families=[\"contact_email\"],\n        max_credits=100,\n    )\n    if imported.data is None or imported.data.operation_id is None:\n        raise RuntimeError(\"The response is missing the operation id\")\n    operation = client.lists.operations.wait(list_id, imported.data.operation_id)\n    if operation.data:\n        print(operation.data.client_action, operation.data.next_step)\n\n    for member in client.lists.members.list_all(list_id):\n        print(member)\n    csv_text = client.lists.export(list_id)\n",[469,639,637],{"__ignoreMap":528},[465,641,642,495,645,475,648,651,652,631],{},[469,643,644],{},"lists.list_all",[469,646,647],{},"lists.members.list_all",[469,649,650],{},"bulk.list_all"," read every page for you. They are free, so they need no ",[469,653,654],{},"max_results",[656,657,659],"h2",{"id":658},"choose-the-right-wait-method","Choose the right wait method",[465,661,662,665,666,502,669,672,673,502,675,677,678,681],{},[469,663,664],{},"client.bulk.wait(job_id)"," returns when the job leaves ",[469,667,668],{},"queued",[469,670,671],{},"running",", including when the job is ",[469,674,501],{},[469,676,505],{},". Inspect ",[469,679,680],{},"data.status"," to decide what to do next.",[465,683,684,687,688,691,692,677,695,475,697,700,701,704],{},[469,685,686],{},"client.lists.operations.wait(list_id, operation_id)"," returns when ",[469,689,690],{},"data.client_action"," is no longer ",[469,693,694],{},"poll",[469,696,602],{},[469,698,699],{},"next_step",". Neither helper raises ",[469,702,703],{},"JobFailedError"," for those returned states.",[465,706,707,708,711,712,715,716,719,720,723,724,631],{},"Both helpers accept ",[469,709,710],{},"timeout"," (1800 seconds by default), ",[469,713,714],{},"poll_wait"," (20 by default) and ",[469,717,718],{},"on_poll",". If the deadline expires, the helper raises ",[469,721,722],{},"JobTimeoutError"," with the job or operation id. For a List operation, resume with ",[469,725,686],{},[465,727,728,729,732,733,736,737,739],{},"For ",[469,730,731],{},"bulk.list_all()",", pass ",[469,734,735],{},"per_page=100"," explicitly. SDK 0.3.0 otherwise starts from 200 items per page before applying ",[469,738,654],{},", but the API accepts at most 100.",[465,741,742,743,746,747,749,750,475,753,755],{},"The free ",[469,744,745],{},"list_all()"," iterators accept an optional ",[469,748,654],{}," if you want to stop early. Without a cap, the iterators read all pages. The ",[473,751,752],{"href":422},"client.lists reference",[473,754,577],{"href":402}," describe each method, cost and return type.",[465,757,758,759,631],{},"Return to the ",[473,760,761],{"href":394},"Python SDK overview",[656,763,765],{"id":764},"faq","FAQ",[767,768,770],"h3",{"id":769},"how-many-people-can-i-send-to-python-bulk-enrichment","How many people can I send to Python Bulk enrichment?",[465,772,773,776,777,475,780,631],{},[469,774,775],{},"client.bulk.enrich_persons()"," accepts up to 25,000 people per job. Each item retains the API camelCase field names, such as ",[469,778,779],{},"linkedinUrl",[469,781,782],{},"externalId",[767,784,786],{"id":785},"does-bulkwait-raise-jobfailederror-for-a-failed-job","Does bulk.wait raise JobFailedError for a failed job?",[465,788,789,792,793,795,796,798],{},[469,790,791],{},"client.bulk.wait()"," returns failed and paused jobs so your code can inspect ",[469,794,680],{},". The helper raises ",[469,797,722],{}," if the waiting deadline expires.",[767,800,802],{"id":801},"how-do-i-resume-a-paused-list-import-in-python","How do I resume a paused List import in Python?",[465,804,805,806,808,809,812,813,631],{},"Pass your stored ",[469,807,627],{}," to ",[469,810,811],{},"client.lists.import_signals()",", then follow progress with ",[469,814,686],{},[767,816,818],{"id":817},"do-list-and-bulk-iterators-need-max_results","Do List and Bulk iterators need max_results?",[465,820,742,821,495,824,475,827,746,829,831],{},[469,822,823],{},"lists.list_all()",[469,825,826],{},"lists.members.list_all()",[469,828,731],{},[469,830,654],{},", with no cap by default.",{"title":528,"searchDepth":833,"depth":833,"links":834},3,[835,836],{"id":658,"depth":298,"text":659},{"id":764,"depth":298,"text":765,"children":837},[838,839,840,841],{"id":769,"depth":833,"text":770},{"id":785,"depth":833,"text":786},{"id":801,"depth":833,"text":802},{"id":817,"depth":833,"text":818},"Manage persistent Lists and run Bulk enrichment in Python, follow operation progress, export CSV results, and reuse identifiers after a restart.","md","2026-11-04",{},true,"\u002Fdocs\u002Fsdk\u002Fpython,\u002Fdocs\u002Fsdk\u002Fpython\u002Flists,\u002Fdocs\u002Fsdk\u002Fpython\u002Fbulk,\u002Fdocs\u002Fsdk\u002Fpython\u002Ferrors-and-retries",{"title":376,"description":842},"sdk\u002Fpython\u002Flists-and-bulk","Tdo4NZugwCu39Ru5TX0R885M1N0HPq9TyGnlx29q0VI",1793830205576]