[{"data":1,"prerenderedAt":2796},["ShallowReactive",2],{"docs-navigation":3,"docs-\u002Fsdk\u002Fpython\u002Fbulk":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":340,"audience":10,"badgeColor":10,"badgeLabel":10,"body":461,"category":333,"description":2787,"endpointId":10,"extension":2788,"family":342,"lastVerified":2789,"links":10,"meta":2790,"navigation":2791,"order":341,"path":402,"relatedArticles":2792,"requiresFlag":10,"seo":2793,"status":10,"stem":2794,"subfamily":10,"__hash__":2795},"docs\u002Fsdk\u002Fpython\u002Fbulk.md",{"type":462,"value":463,"toc":2767},"minimark",[464,468,649,654,665,703,726,777,780,792,805,810,1049,1054,1078,1083,1103,1108,1116,1118,1127,1135,1139,1307,1311,1333,1337,1349,1353,1361,1364,1381,1389,1393,1563,1567,1579,1583,1601,1605,1613,1616,1623,1631,1635,1734,1738,1760,1764,1780,1784,1792,1795,1806,1814,1818,1921,1925,1932,1936,1959,1963,1971,1974,1992,2000,2004,2115,2119,2139,2143,2170,2174,2182,2185,2202,2210,2214,2310,2314,2321,2325,2330,2334,2342,2345,2352,2360,2364,2446,2450,2464,2468,2480,2484,2492,2494,2501,2509,2513,2609,2613,2641,2645,2666,2670,2678,2682,2693,2697,2702,2717,2721,2732,2736,2751,2755],[465,466,467],"p",{},"Start Bulk enrichment jobs, follow progress, browse job history, read results as they come and download them.",[469,470,471,487],"table",{},[472,473,474],"thead",{},[475,476,477,481,484],"tr",{},[478,479,480],"th",{},"Method",[478,482,483],{},"Endpoint",[478,485,486],{},"Cost",[488,489,490,511,529,545,563,581,599,615,633],"tbody",{},[475,491,492,503,508],{},[493,494,495],"td",{},[496,497,499],"a",{"href":498},"#enrich_persons",[500,501,502],"code",{},"enrich_persons()",[493,504,505],{},[496,506,507],{"href":28},"POST \u002Fv2\u002Fenrich\u002Fpersons\u002Fbulk",[493,509,510],{},"Free to send. Each item costs the same as its individual call. Credits are reserved when the job is created and refunded for what is not found.",[475,512,513,521,526],{},[493,514,515],{},[496,516,518],{"href":517},"#list",[500,519,520],{},"list()",[493,522,523],{},[496,524,525],{"href":117},"GET \u002Fv2\u002Fjobs",[493,527,528],{},"Free.",[475,530,531,539,543],{},[493,532,533],{},[496,534,536],{"href":535},"#list_all",[500,537,538],{},"list_all()",[493,540,541],{},[496,542,525],{"href":117},[493,544,528],{},[475,546,547,555,560],{},[493,548,549],{},[496,550,552],{"href":551},"#retrieve",[500,553,554],{},"retrieve()",[493,556,557],{},[496,558,559],{"href":97},"GET \u002Fv2\u002Fjobs\u002F{jobId}",[493,561,562],{},"Free, even at a zero balance. Never counts toward rate limits.",[475,564,565,573,578],{},[493,566,567],{},[496,568,570],{"href":569},"#results",[500,571,572],{},"results()",[493,574,575],{},[496,576,577],{"href":107},"GET \u002Fv2\u002Fjobs\u002F{jobId}\u002Fresults",[493,579,580],{},"Free, even at a zero balance.",[475,582,583,591,596],{},[493,584,585],{},[496,586,588],{"href":587},"#rows",[500,589,590],{},"rows()",[493,592,593],{},[496,594,595],{"href":112},"GET \u002Fv2\u002Fjobs\u002F{jobId}\u002Frows",[493,597,598],{},"Free, even at a zero balance. Each page counts toward rate limits.",[475,600,601,609,613],{},[493,602,603],{},[496,604,606],{"href":605},"#iter_rows",[500,607,608],{},"iter_rows()",[493,610,611],{},[496,612,595],{"href":112},[493,614,598],{},[475,616,617,625,630],{},[493,618,619],{},[496,620,622],{"href":621},"#cancel",[500,623,624],{},"cancel()",[493,626,627],{},[496,628,629],{"href":102},"POST \u002Fv2\u002Fjobs\u002F{jobId}\u002Fcancel",[493,631,632],{},"Free. Items that had not started are never charged.",[475,634,635,643,647],{},[493,636,637],{},[496,638,640],{"href":639},"#wait",[500,641,642],{},"wait()",[493,644,645],{},[496,646,559],{"href":97},[493,648,562],{},[650,651,653],"h2",{"id":652},"calling-conventions","Calling conventions",[465,655,656,657,660,661,664],{},"Examples assume ",[500,658,659],{},"RC_API_KEY"," is set. Replace example ids with ids returned by your own requests. Signatures show the published 0.3.0 synchronous methods. Use the same arguments with the ",[496,662,663],{"href":397},"Python async client",".",[465,666,667,670,671,674,675,678,679,682,683,686,687,689,690,693,694,697,698,702],{},[500,668,669],{},"models"," refers to ",[500,672,673],{},"reversecontact.types",". ",[500,676,677],{},"NOT_GIVEN"," and ",[500,680,681],{},"NotGiven"," are the SDK's internal markers for omitted arguments. Leave these arguments out of your calls. For API body parameters, passing ",[500,684,685],{},"None"," sends an explicit null. Transport options use ",[500,688,685],{}," to inherit their defaults. ",[500,691,692],{},"Timeout"," means a number of seconds or ",[500,695,696],{},"httpx.Timeout",". Supply parameters marked ",[699,700,701],"strong",{},"Required"," to Python or to the API, even when the generated signature permits omission.",[465,704,705,706,709,710,709,713,678,716,719,720,722,723,725],{},"JSON response objects expose ",[500,707,708],{},"data",", ",[500,711,712],{},"quotas",[500,714,715],{},"metadata",[500,717,718],{},"http_response",". Check optional fields for ",[500,721,685],{},". See ",[496,724,364],{"href":416}," for the response envelope. CSV methods return text and iterators yield items.",[465,727,728,729,732,733,709,736,709,739,709,742,709,745,709,748,709,751,709,754,709,757,709,760,709,763,709,766,769,770,773,774,664],{},"HTTP failures raise an ",[500,730,731],{},"APIError"," subclass based on the response: ",[500,734,735],{},"BadRequestError",[500,737,738],{},"AuthenticationError",[500,740,741],{},"InsufficientCreditsError",[500,743,744],{},"PermissionDeniedError",[500,746,747],{},"NotFoundError",[500,749,750],{},"ConflictError",[500,752,753],{},"GoneError",[500,755,756],{},"UnprocessableEntityError",[500,758,759],{},"RateLimitError",[500,761,762],{},"DailyLimitError",[500,764,765],{},"KeyCreditLimitError",[500,767,768],{},"UnavailableForLegalReasonsError"," or ",[500,771,772],{},"InternalServerError",". See the ",[496,775,776],{"href":410},"error mapping and retry rules",[650,778,779],{"id":779},"enrich_persons",[465,781,782,783,709,786,678,789,664],{},"Send 1 to 25,000 items. Nested item dictionaries use the API names, such as ",[500,784,785],{},"linkedinUrl",[500,787,788],{},"firstName",[500,790,791],{},"externalId",[793,794,795],"code-group",{"title":395},[796,797,803],"pre",{"className":798,"code":800,"filename":395,"language":801,"meta":802},[799],"language-python","def enrich_persons(\n    *,\n    items: list[models.BulkEnrichPersonsParamsItemsItem | dict[str, object]] | NotGiven | None = NOT_GIVEN,\n    families: list[str] | NotGiven | None = NOT_GIVEN,\n    email_type: str | NotGiven | None = NOT_GIVEN,\n    live: bool | NotGiven | None = NOT_GIVEN,\n    name: str | NotGiven | None = NOT_GIVEN,\n    webhook_url: str | NotGiven | None = NOT_GIVEN,\n    timeout: Timeout | None = None,\n    max_retries: int | None = None,\n    headers: Mapping[str, str] | None = None,\n    idempotency_key: str | None = None,\n    **extra: object,\n) -> Result[models.BulkEnrichPersonsData]: ...\n","python","",[500,804,800],{"__ignoreMap":802},[465,806,807],{},[699,808,809],{},"Parameters",[469,811,812,825],{},[472,813,814],{},[475,815,816,819,822],{},[478,817,818],{},"Name",[478,820,821],{},"Type",[478,823,824],{},"Description",[488,826,827,849,877,905,928,945,967,987,1004,1019,1034],{},[475,828,829,834,839],{},[493,830,831],{},[500,832,833],{},"items",[493,835,836],{},[500,837,838],{},"list[models.BulkEnrichPersonsParamsItemsItem | dict[str, object]] | NotGiven | None",[493,840,841,844,845],{},[699,842,843],{},"Required."," 1 to 25,000 people, see ",[496,846,848],{"href":847},"\u002Fendpoints\u002Fbulk-enrich-persons#items","Items",[475,850,851,856,861],{},[493,852,853],{},[500,854,855],{},"families",[493,857,858],{},[500,859,860],{},"list[str] | NotGiven | None",[493,862,863,864,709,867,709,870,873,874,664],{},"Optional. What to look up for each item: ",[500,865,866],{},"profile",[500,868,869],{},"contact_email",[500,871,872],{},"contact_phone",". Defaults to ",[500,875,876],{},"[\"profile\"]",[475,878,879,884,889],{},[493,880,881],{},[500,882,883],{},"email_type",[493,885,886],{},[500,887,888],{},"str | NotGiven | None",[493,890,891,892,894,895,898,899,769,902],{},"Optional. With ",[500,893,869],{},", the kind of email to find: ",[500,896,897],{},"professional"," (default), ",[500,900,901],{},"personal",[500,903,904],{},"any",[475,906,907,912,917],{},[493,908,909],{},[500,910,911],{},"live",[493,913,914],{},[500,915,916],{},"bool | NotGiven | None",[493,918,919,920,923,924,927],{},"Optional. ",[500,921,922],{},"true"," fetches the profile of a Social profile URL item live. Omitted or ",[500,925,926],{},"false",", saved data is used.",[475,929,930,935,939],{},[493,931,932],{},[500,933,934],{},"name",[493,936,937],{},[500,938,888],{},[493,940,941,942,664],{},"Optional. A name for the job, up to 255 characters, shown in the job history and in the app. Defaults to ",[500,943,944],{},"Sent via API",[475,946,947,952,956],{},[493,948,949],{},[500,950,951],{},"webhook_url",[493,953,954],{},[500,955,888],{},[493,957,958,959,962,963],{},"Optional. Public HTTPS URL that receives one ",[500,960,961],{},"POST"," when the job settles. See ",[496,964,966],{"href":965},"\u002Fendpoints\u002Fbulk-enrich-persons#webhook-callback","Webhook callback",[475,968,969,974,979],{},[493,970,971],{},[500,972,973],{},"timeout",[493,975,976],{},[500,977,978],{},"Timeout | None",[493,980,981,982,984,985,664],{},"Optional. Seconds per HTTP attempt, or ",[500,983,696],{},". Uses the client setting when ",[500,986,685],{},[475,988,989,994,999],{},[493,990,991],{},[500,992,993],{},"max_retries",[493,995,996],{},[500,997,998],{},"int | None",[493,1000,1001,1002,664],{},"Optional. Retries after the first HTTP attempt. Uses the client setting when ",[500,1003,685],{},[475,1005,1006,1011,1016],{},[493,1007,1008],{},[500,1009,1010],{},"headers",[493,1012,1013],{},[500,1014,1015],{},"Mapping[str, str] | None",[493,1017,1018],{},"Optional. Additional HTTP headers for this call.",[475,1020,1021,1026,1031],{},[493,1022,1023],{},[500,1024,1025],{},"idempotency_key",[493,1027,1028],{},[500,1029,1030],{},"str | None",[493,1032,1033],{},"Optional. Key for this creation request. The SDK generates a key when omitted and reuses it on automatic retries.",[475,1035,1036,1041,1046],{},[493,1037,1038],{},[500,1039,1040],{},"**extra",[493,1042,1043],{},[500,1044,1045],{},"object",[493,1047,1048],{},"Optional. Additional API keyword arguments, including camelCase aliases, passed through to the API.",[465,1050,1051],{},[699,1052,1053],{},"Returns",[465,1055,1056,674,1059,1062,1063,709,1066,678,1069,1072,1073,722,1076,664],{},[500,1057,1058],{},"Result[models.BulkEnrichPersonsData]",[500,1060,1061],{},"data.job.id"," identifies the Bulk job. The acknowledgement also contains ",[500,1064,1065],{},"duplicate_count",[500,1067,1068],{},"credits_estimated",[500,1070,1071],{},"not_run_for_credits",". Follow the job with ",[500,1074,1075],{},"client.bulk.wait(job_id)",[496,1077,376],{"href":424},[465,1079,1080],{},[699,1081,1082],{},"Errors",[465,1084,1085,1087,1088,1091,1092,1095,1096,1099,1100,664],{},[500,1086,731],{}," subclasses follow the HTTP mapping above. ",[500,1089,1090],{},"APIConnectionError"," reports transport failures. ",[500,1093,1094],{},"APITimeoutError"," reports timed-out attempts. ",[500,1097,1098],{},"ReverseContactError"," covers invalid SDK options. Malformed typed response data can raise Pydantic ",[500,1101,1102],{},"ValidationError",[465,1104,1105],{},[699,1106,1107],{},"Example",[793,1109,1110],{"title":395},[796,1111,1114],{"className":1112,"code":1113,"filename":395,"language":801,"meta":802},[799],"from reversecontact import ReverseContact\n\nwith ReverseContact() as client:\n    result = client.bulk.enrich_persons(\n        items=[{\"linkedinUrl\": \"https:\u002F\u002Fsocial.com\u002Fin\u002Fjanedoe\", \"externalId\": \"crm-001\"}],\n        families=[\"profile\"],\n        name=\"CRM enrichment\",\n    )\n    print(result.data if result is not None else None)\n",[500,1115,1113],{"__ignoreMap":802},[650,1117,126],{"id":126},[465,1119,1120,1121,1123,1124,664],{},"Call ",[496,1122,118],{"href":117}," with ",[500,1125,1126],{},"client.bulk.list()",[793,1128,1129],{"title":395},[796,1130,1133],{"className":1131,"code":1132,"filename":395,"language":801,"meta":802},[799],"def list(\n    *,\n    type: str | NotGiven | None = NOT_GIVEN,\n    status: str | NotGiven | None = NOT_GIVEN,\n    list_id: str | NotGiven | None = NOT_GIVEN,\n    per_page: int | NotGiven | None = NOT_GIVEN,\n    cursor: str | NotGiven | None = NOT_GIVEN,\n    timeout: Timeout | None = None,\n    max_retries: int | None = None,\n    headers: Mapping[str, str] | None = None,\n    **extra: object,\n) -> Page[models.ListJobsItem]: ...\n",[500,1134,1132],{"__ignoreMap":802},[465,1136,1137],{},[699,1138,809],{},[469,1140,1141,1151],{},[472,1142,1143],{},[475,1144,1145,1147,1149],{},[478,1146,818],{},[478,1148,821],{},[478,1150,824],{},[488,1152,1153,1171,1203,1217,1232,1253,1269,1283,1295],{},[475,1154,1155,1160,1164],{},[493,1156,1157],{},[500,1158,1159],{},"type",[493,1161,1162],{},[500,1163,888],{},[493,1165,1166,1167],{},"Optional. Filter by these comma-separated types. See ",[496,1168,1170],{"href":1169},"\u002Fendpoints\u002Fjobs#job-types","Job types",[475,1172,1173,1178,1182],{},[493,1174,1175],{},[500,1176,1177],{},"status",[493,1179,1180],{},[500,1181,888],{},[493,1183,1184,1185,709,1188,709,1191,709,1194,709,1197,709,1200],{},"Optional. Filter by these comma-separated statuses: ",[500,1186,1187],{},"queued",[500,1189,1190],{},"running",[500,1192,1193],{},"paused",[500,1195,1196],{},"completed",[500,1198,1199],{},"cancelled",[500,1201,1202],{},"failed",[475,1204,1205,1210,1214],{},[493,1206,1207],{},[500,1208,1209],{},"list_id",[493,1211,1212],{},[500,1213,888],{},[493,1215,1216],{},"Optional. Return only jobs for this List (UUID)",[475,1218,1219,1224,1229],{},[493,1220,1221],{},[500,1222,1223],{},"per_page",[493,1225,1226],{},[500,1227,1228],{},"int | NotGiven | None",[493,1230,1231],{},"Optional. Jobs per page, from 1 to 100. Defaults to 50.",[475,1233,1234,1239,1243],{},[493,1235,1236],{},[500,1237,1238],{},"cursor",[493,1240,1241],{},[500,1242,888],{},[493,1244,1245,1246,1249,1250,664],{},"Optional. The ",[500,1247,1248],{},"nextCursor"," of the previous page, sent with the same filters. A malformed cursor, or one sent with other filters, returns ",[500,1251,1252],{},"400",[475,1254,1255,1259,1263],{},[493,1256,1257],{},[500,1258,973],{},[493,1260,1261],{},[500,1262,978],{},[493,1264,981,1265,984,1267,664],{},[500,1266,696],{},[500,1268,685],{},[475,1270,1271,1275,1279],{},[493,1272,1273],{},[500,1274,993],{},[493,1276,1277],{},[500,1278,998],{},[493,1280,1001,1281,664],{},[500,1282,685],{},[475,1284,1285,1289,1293],{},[493,1286,1287],{},[500,1288,1010],{},[493,1290,1291],{},[500,1292,1015],{},[493,1294,1018],{},[475,1296,1297,1301,1305],{},[493,1298,1299],{},[500,1300,1040],{},[493,1302,1303],{},[500,1304,1045],{},[493,1306,1048],{},[465,1308,1309],{},[699,1310,1053],{},[465,1312,1313,1316,1317,1319,1320,709,1323,678,1326,1329,1330,1332],{},[500,1314,1315],{},"Page[models.ListJobsItem]",". A page with records in ",[500,1318,708],{},", a ",[500,1321,1322],{},"next_cursor",[500,1324,1325],{},"has_next_page()",[500,1327,1328],{},"get_next_page()",". The next-page method reuses the filters and returns ",[500,1331,685],{}," after the last page.",[465,1334,1335],{},[699,1336,1082],{},[465,1338,1339,1087,1341,1091,1343,1095,1345,1099,1347,664],{},[500,1340,731],{},[500,1342,1090],{},[500,1344,1094],{},[500,1346,1098],{},[500,1348,1102],{},[465,1350,1351],{},[699,1352,1107],{},[793,1354,1355],{"title":395},[796,1356,1359],{"className":1357,"code":1358,"filename":395,"language":801,"meta":802},[799],"from reversecontact import ReverseContact\n\nwith ReverseContact() as client:\n    page = client.bulk.list(per_page=20)\n    for item in page.data:\n        if item is not None:\n            print(item.to_dict())\n",[500,1360,1358],{"__ignoreMap":802},[650,1362,1363],{"id":1363},"list_all",[465,1365,1366,1367,1370,1371,1373,1374,1377,1378,1380],{},"Read every job-history page with ",[500,1368,1369],{},"client.bulk.list_all(per_page=100)",". In SDK 0.3.0, omitting ",[500,1372,1223],{}," starts the iterator at a page size of 200, reduced by any remaining ",[500,1375,1376],{},"max_results"," cap. The API accepts at most 100 per page, so set ",[500,1379,1223],{}," explicitly to a value from 1 to 100.",[793,1382,1383],{"title":395},[796,1384,1387],{"className":1385,"code":1386,"filename":395,"language":801,"meta":802},[799],"def list_all(\n    *,\n    type: str | NotGiven | None = NOT_GIVEN,\n    status: str | NotGiven | None = NOT_GIVEN,\n    list_id: str | NotGiven | None = NOT_GIVEN,\n    per_page: int | NotGiven | None = NOT_GIVEN,\n    cursor: str | NotGiven | None = NOT_GIVEN,\n    timeout: Timeout | None = None,\n    max_retries: int | None = None,\n    headers: Mapping[str, str] | None = None,\n    max_results: int | None = None,\n    **extra: object,\n) -> Iterator[models.ListJobsItem | None]: ...\n",[500,1388,1386],{"__ignoreMap":802},[465,1390,1391],{},[699,1392,809],{},[469,1394,1395,1405],{},[472,1396,1397],{},[475,1398,1399,1401,1403],{},[478,1400,818],{},[478,1402,821],{},[478,1404,824],{},[488,1406,1407,1421,1445,1457,1473,1489,1505,1519,1531,1551],{},[475,1408,1409,1413,1417],{},[493,1410,1411],{},[500,1412,1159],{},[493,1414,1415],{},[500,1416,888],{},[493,1418,1166,1419],{},[496,1420,1170],{"href":1169},[475,1422,1423,1427,1431],{},[493,1424,1425],{},[500,1426,1177],{},[493,1428,1429],{},[500,1430,888],{},[493,1432,1184,1433,709,1435,709,1437,709,1439,709,1441,709,1443],{},[500,1434,1187],{},[500,1436,1190],{},[500,1438,1193],{},[500,1440,1196],{},[500,1442,1199],{},[500,1444,1202],{},[475,1446,1447,1451,1455],{},[493,1448,1449],{},[500,1450,1209],{},[493,1452,1453],{},[500,1454,888],{},[493,1456,1216],{},[475,1458,1459,1463,1467],{},[493,1460,1461],{},[500,1462,1223],{},[493,1464,1465],{},[500,1466,1228],{},[493,1468,1469,1470,1472],{},"Optional in the signature. Set 1 to 100 explicitly: SDK 0.3.0 otherwise starts from 200 before applying ",[500,1471,1376],{},", above the API maximum of 100.",[475,1474,1475,1479,1483],{},[493,1476,1477],{},[500,1478,1238],{},[493,1480,1481],{},[500,1482,888],{},[493,1484,1245,1485,1249,1487,664],{},[500,1486,1248],{},[500,1488,1252],{},[475,1490,1491,1495,1499],{},[493,1492,1493],{},[500,1494,973],{},[493,1496,1497],{},[500,1498,978],{},[493,1500,981,1501,984,1503,664],{},[500,1502,696],{},[500,1504,685],{},[475,1506,1507,1511,1515],{},[493,1508,1509],{},[500,1510,993],{},[493,1512,1513],{},[500,1514,998],{},[493,1516,1001,1517,664],{},[500,1518,685],{},[475,1520,1521,1525,1529],{},[493,1522,1523],{},[500,1524,1010],{},[493,1526,1527],{},[500,1528,1015],{},[493,1530,1018],{},[475,1532,1533,1537,1541],{},[493,1534,1535],{},[500,1536,1376],{},[493,1538,1539],{},[500,1540,998],{},[493,1542,1543,1544,1546,1547,1550],{},"Optional. Maximum items yielded. ",[500,1545,685],{}," reads every page. ",[500,1548,1549],{},"0"," makes no request.",[475,1552,1553,1557,1561],{},[493,1554,1555],{},[500,1556,1040],{},[493,1558,1559],{},[500,1560,1045],{},[493,1562,1048],{},[465,1564,1565],{},[699,1566,1053],{},[465,1568,1569,1572,1573,1575,1576,1578],{},[500,1570,1571],{},"Iterator[models.ListJobsItem | None]",". An iterator of typed records. Entries can be ",[500,1574,685],{},". The iterator fetches pages only as you advance. Pagination is free. Omit ",[500,1577,1376],{}," to read all pages.",[465,1580,1581],{},[699,1582,1082],{},[465,1584,1585,1087,1587,1091,1589,1095,1591,1593,1594,769,1596,1598,1599,664],{},[500,1586,731],{},[500,1588,1090],{},[500,1590,1094],{},[500,1592,1098],{}," covers invalid SDK options, invalid ",[500,1595,1376],{},[500,1597,1223],{},", or a repeated pagination cursor. Malformed typed response data can raise Pydantic ",[500,1600,1102],{},[465,1602,1603],{},[699,1604,1107],{},[793,1606,1607],{"title":395},[796,1608,1611],{"className":1609,"code":1610,"filename":395,"language":801,"meta":802},[799],"from reversecontact import ReverseContact\n\nwith ReverseContact() as client:\n    for item in client.bulk.list_all(per_page=100, max_results=20):\n        if item is not None:\n            print(item.to_dict())\n",[500,1612,1610],{"__ignoreMap":802},[650,1614,1615],{"id":1615},"retrieve",[465,1617,1120,1618,1123,1620,664],{},[496,1619,98],{"href":97},[500,1621,1622],{},"client.bulk.retrieve()",[793,1624,1625],{"title":395},[796,1626,1629],{"className":1627,"code":1628,"filename":395,"language":801,"meta":802},[799],"def retrieve(\n    job_id: str,\n    *,\n    wait: int | NotGiven | None = NOT_GIVEN,\n    timeout: Timeout | None = None,\n    max_retries: int | None = None,\n    headers: Mapping[str, str] | None = None,\n    **extra: object,\n) -> Result[models.GetJobData]: ...\n",[500,1630,1628],{"__ignoreMap":802},[465,1632,1633],{},[699,1634,809],{},[469,1636,1637,1647],{},[472,1638,1639],{},[475,1640,1641,1643,1645],{},[478,1642,818],{},[478,1644,821],{},[478,1646,824],{},[488,1648,1649,1666,1680,1696,1710,1722],{},[475,1650,1651,1656,1661],{},[493,1652,1653],{},[500,1654,1655],{},"job_id",[493,1657,1658],{},[500,1659,1660],{},"str",[493,1662,1663,1665],{},[699,1664,843],{}," Bulk job id (UUID).",[475,1667,1668,1673,1677],{},[493,1669,1670],{},[500,1671,1672],{},"wait",[493,1674,1675],{},[500,1676,1228],{},[493,1678,1679],{},"Optional. Hold the request up to this many seconds, 0 to 20, while the job is queued or running. It answers as soon as the job settles or pauses, or with the job still running when the wait ends. Defaults to 0.",[475,1681,1682,1686,1690],{},[493,1683,1684],{},[500,1685,973],{},[493,1687,1688],{},[500,1689,978],{},[493,1691,981,1692,984,1694,664],{},[500,1693,696],{},[500,1695,685],{},[475,1697,1698,1702,1706],{},[493,1699,1700],{},[500,1701,993],{},[493,1703,1704],{},[500,1705,998],{},[493,1707,1001,1708,664],{},[500,1709,685],{},[475,1711,1712,1716,1720],{},[493,1713,1714],{},[500,1715,1010],{},[493,1717,1718],{},[500,1719,1015],{},[493,1721,1018],{},[475,1723,1724,1728,1732],{},[493,1725,1726],{},[500,1727,1040],{},[493,1729,1730],{},[500,1731,1045],{},[493,1733,1048],{},[465,1735,1736],{},[699,1737,1053],{},[465,1739,1740,674,1743,1745,1746,709,1748,709,1751,709,1754,678,1757,664],{},[500,1741,1742],{},"Result[models.GetJobData]",[500,1744,708],{}," contains one job state, including ",[500,1747,1177],{},[500,1749,1750],{},"progress",[500,1752,1753],{},"credits",[500,1755,1756],{},"error",[500,1758,1759],{},"links",[465,1761,1762],{},[699,1763,1082],{},[465,1765,1766,1087,1768,1091,1770,1095,1772,1774,1775,1777,1778,664],{},[500,1767,731],{},[500,1769,1090],{},[500,1771,1094],{},[500,1773,1098],{}," covers invalid SDK options or a ",[500,1776,1672],{}," outside the integer range 0 to 20. Malformed typed response data can raise Pydantic ",[500,1779,1102],{},[465,1781,1782],{},[699,1783,1107],{},[793,1785,1786],{"title":395},[796,1787,1790],{"className":1788,"code":1789,"filename":395,"language":801,"meta":802},[799],"from reversecontact import ReverseContact\n\nwith ReverseContact() as client:\n    result = client.bulk.retrieve(\"00000000-0000-4000-8000-000000000001\", wait=20)\n    print(result.data if result is not None else None)\n",[500,1791,1789],{"__ignoreMap":802},[650,1793,1794],{"id":1794},"results",[465,1796,1797,1798,1801,1802,1805],{},"Results are available once the job is completed or cancelled, as CSV (the default) or with ",[500,1799,1800],{},"format=\"ndjson\""," as one ",[500,1803,1804],{},"JobResultLine"," JSON object per line.",[793,1807,1808],{"title":395},[796,1809,1812],{"className":1810,"code":1811,"filename":395,"language":801,"meta":802},[799],"def results(\n    job_id: str,\n    *,\n    format: str | NotGiven | None = NOT_GIVEN,\n    timeout: Timeout | None = None,\n    max_retries: int | None = None,\n    headers: Mapping[str, str] | None = None,\n    **extra: object,\n) -> str: ...\n",[500,1813,1811],{"__ignoreMap":802},[465,1815,1816],{},[699,1817,809],{},[469,1819,1820,1830],{},[472,1821,1822],{},[475,1823,1824,1826,1828],{},[478,1825,818],{},[478,1827,821],{},[478,1829,824],{},[488,1831,1832,1846,1867,1883,1897,1909],{},[475,1833,1834,1838,1842],{},[493,1835,1836],{},[500,1837,1655],{},[493,1839,1840],{},[500,1841,1660],{},[493,1843,1844,1665],{},[699,1845,843],{},[475,1847,1848,1853,1857],{},[493,1849,1850],{},[500,1851,1852],{},"format",[493,1854,1855],{},[500,1856,888],{},[493,1858,919,1859,769,1862,873,1865,664],{},[500,1860,1861],{},"csv",[500,1863,1864],{},"ndjson",[500,1866,1861],{},[475,1868,1869,1873,1877],{},[493,1870,1871],{},[500,1872,973],{},[493,1874,1875],{},[500,1876,978],{},[493,1878,981,1879,984,1881,664],{},[500,1880,696],{},[500,1882,685],{},[475,1884,1885,1889,1893],{},[493,1886,1887],{},[500,1888,993],{},[493,1890,1891],{},[500,1892,998],{},[493,1894,1001,1895,664],{},[500,1896,685],{},[475,1898,1899,1903,1907],{},[493,1900,1901],{},[500,1902,1010],{},[493,1904,1905],{},[500,1906,1015],{},[493,1908,1018],{},[475,1910,1911,1915,1919],{},[493,1912,1913],{},[500,1914,1040],{},[493,1916,1917],{},[500,1918,1045],{},[493,1920,1048],{},[465,1922,1923],{},[699,1924,1053],{},[465,1926,1927,1929,1930,664],{},[500,1928,1660],{},". The completed or cancelled job's results as text, one row per item in input order: the CSV, or NDJSON with ",[500,1931,1800],{},[465,1933,1934],{},[699,1935,1082],{},[465,1937,1938,1087,1940,1091,1942,1095,1944,1946,1947,1123,1949,1952,1953,1123,1955,1958],{},[500,1939,731],{},[500,1941,1090],{},[500,1943,1094],{},[500,1945,1098],{}," covers invalid SDK options. ",[500,1948,750],{},[500,1950,1951],{},"JOB_RESULTS_NOT_READY"," means the file is not ready. ",[500,1954,750],{},[500,1956,1957],{},"JOB_RESULTS_FORMAT_UNAVAILABLE"," means the job was stored before NDJSON existed: download its CSV.",[465,1960,1961],{},[699,1962,1107],{},[793,1964,1965],{"title":395},[796,1966,1969],{"className":1967,"code":1968,"filename":395,"language":801,"meta":802},[799],"import json\n\nfrom reversecontact import ReverseContact\n\nwith ReverseContact() as client:\n    job_id = \"00000000-0000-4000-8000-000000000001\"\n    csv_text = client.bulk.results(job_id)\n    ndjson = client.bulk.results(job_id, format=\"ndjson\")\n    items = [json.loads(line) for line in ndjson.splitlines() if line]\n    print(len(csv_text), len(items))\n",[500,1970,1968],{"__ignoreMap":802},[650,1972,1973],{"id":1973},"rows",[465,1975,1976,1977,1979,1980,1982,1983,674,1986,1988,1989,1991],{},"Read one page of results, in the order sent, from the start of the run. While the job runs, a page stops at the first item not finished: ",[500,1978,708],{}," is empty and ",[500,1981,1322],{}," is set while the next item runs, so read it again after ",[500,1984,1985],{},"Retry-After",[500,1987,1322],{}," is ",[500,1990,685],{}," once nothing more will come. Available from SDK 0.3.0.",[793,1993,1994],{"title":395},[796,1995,1998],{"className":1996,"code":1997,"filename":395,"language":801,"meta":802},[799],"def rows(\n    job_id: str,\n    *,\n    cursor: str | NotGiven | None = NOT_GIVEN,\n    limit: int | NotGiven | None = NOT_GIVEN,\n    timeout: Timeout | None = None,\n    max_retries: int | None = None,\n    headers: Mapping[str, str] | None = None,\n    **extra: object,\n) -> Page[models.JobResultLine]: ...\n",[500,1999,1997],{"__ignoreMap":802},[465,2001,2002],{},[699,2003,809],{},[469,2005,2006,2016],{},[472,2007,2008],{},[475,2009,2010,2012,2014],{},[478,2011,818],{},[478,2013,821],{},[478,2015,824],{},[488,2017,2018,2032,2047,2061,2077,2091,2103],{},[475,2019,2020,2024,2028],{},[493,2021,2022],{},[500,2023,1655],{},[493,2025,2026],{},[500,2027,1660],{},[493,2029,2030,1665],{},[699,2031,843],{},[475,2033,2034,2038,2042],{},[493,2035,2036],{},[500,2037,1238],{},[493,2039,2040],{},[500,2041,888],{},[493,2043,919,2044,2046],{},[500,2045,1322],{}," of the previous page, up to 512 characters. Without it, the page starts at the first item.",[475,2048,2049,2054,2058],{},[493,2050,2051],{},[500,2052,2053],{},"limit",[493,2055,2056],{},[500,2057,1228],{},[493,2059,2060],{},"Optional. Items per page, 1 to 100. Defaults to 100.",[475,2062,2063,2067,2071],{},[493,2064,2065],{},[500,2066,973],{},[493,2068,2069],{},[500,2070,978],{},[493,2072,981,2073,984,2075,664],{},[500,2074,696],{},[500,2076,685],{},[475,2078,2079,2083,2087],{},[493,2080,2081],{},[500,2082,993],{},[493,2084,2085],{},[500,2086,998],{},[493,2088,1001,2089,664],{},[500,2090,685],{},[475,2092,2093,2097,2101],{},[493,2094,2095],{},[500,2096,1010],{},[493,2098,2099],{},[500,2100,1015],{},[493,2102,1018],{},[475,2104,2105,2109,2113],{},[493,2106,2107],{},[500,2108,1040],{},[493,2110,2111],{},[500,2112,1045],{},[493,2114,1048],{},[465,2116,2117],{},[699,2118,1053],{},[465,2120,2121,2124,2125,709,2127,709,2129,678,2131,674,2133,2136,2137,664],{},[500,2122,2123],{},"Page[models.JobResultLine]",", with the items in ",[500,2126,708],{},[500,2128,1322],{},[500,2130,1325],{},[500,2132,1328],{},[500,2134,2135],{},"extras[\"status\"]"," is the job status when the page was read. A page can hold fewer items than ",[500,2138,2053],{},[465,2140,2141],{},[699,2142,1082],{},[465,2144,2145,1087,2147,1091,2149,1095,2151,1946,2153,1123,2155,2157,2158,674,2160,1123,2162,2165,2166,2169],{},[500,2146,731],{},[500,2148,1090],{},[500,2150,1094],{},[500,2152,1098],{},[500,2154,750],{},[500,2156,1957],{}," means the job was stored before reading by page existed: download its CSV with ",[500,2159,572],{},[500,2161,759],{},[500,2163,2164],{},"JOB_ROWS_BUSY"," means too many pages are being read at once: the SDK retries it as the ",[496,2167,2168],{"href":410},"retry rules"," describe.",[465,2171,2172],{},[699,2173,1107],{},[793,2175,2176],{"title":395},[796,2177,2180],{"className":2178,"code":2179,"filename":395,"language":801,"meta":802},[799],"from reversecontact import ReverseContact\n\nwith ReverseContact() as client:\n    page = client.bulk.rows(\"00000000-0000-4000-8000-000000000001\", limit=100)\n    for item in page.data:\n        print(item.row, item.status)\n    print(page.extras[\"status\"], page.next_cursor)\n",[500,2181,2179],{"__ignoreMap":802},[650,2183,2184],{"id":2184},"iter_rows",[465,2186,2187,2188,2190,2191,1988,2193,2195,2196,2198,2199,664],{},"Read the results one item at a time, in the order sent, as they become ready, whatever the job is doing. While the next item runs, the iterator waits ",[500,2189,1985],{}," (2 seconds by default) and reads the same cursor again. It ends when ",[500,2192,1322],{},[500,2194,685],{},", or when the job is paused, since nothing moves until someone resumes it: read on later with ",[500,2197,590],{}," and the last cursor. A cancelled job still finishes the items it had started, within the hour, and the iterator waits for them too. Available from SDK 0.3.0. The async client has the same method, used with ",[500,2200,2201],{},"async for",[793,2203,2204],{"title":395},[796,2205,2208],{"className":2206,"code":2207,"filename":395,"language":801,"meta":802},[799],"def iter_rows(\n    job_id: str,\n    *,\n    cursor: str | None = None,\n    limit: int | None = None,\n    timeout: Timeout | None = None,\n    max_retries: int | None = None,\n    headers: Mapping[str, str] | None = None,\n) -> Iterator[models.JobResultLine | None]: ...\n",[500,2209,2207],{"__ignoreMap":802},[465,2211,2212],{},[699,2213,809],{},[469,2215,2216,2226],{},[472,2217,2218],{},[475,2219,2220,2222,2224],{},[478,2221,818],{},[478,2223,821],{},[478,2225,824],{},[488,2227,2228,2242,2255,2268,2284,2298],{},[475,2229,2230,2234,2238],{},[493,2231,2232],{},[500,2233,1655],{},[493,2235,2236],{},[500,2237,1660],{},[493,2239,2240,1665],{},[699,2241,843],{},[475,2243,2244,2248,2252],{},[493,2245,2246],{},[500,2247,1238],{},[493,2249,2250],{},[500,2251,1030],{},[493,2253,2254],{},"Optional. Start after a page you already read.",[475,2256,2257,2261,2265],{},[493,2258,2259],{},[500,2260,2053],{},[493,2262,2263],{},[500,2264,998],{},[493,2266,2267],{},"Optional. Items per page, 1 to 100.",[475,2269,2270,2274,2278],{},[493,2271,2272],{},[500,2273,973],{},[493,2275,2276],{},[500,2277,978],{},[493,2279,981,2280,984,2282,664],{},[500,2281,696],{},[500,2283,685],{},[475,2285,2286,2290,2294],{},[493,2287,2288],{},[500,2289,993],{},[493,2291,2292],{},[500,2293,998],{},[493,2295,1001,2296,664],{},[500,2297,685],{},[475,2299,2300,2304,2308],{},[493,2301,2302],{},[500,2303,1010],{},[493,2305,2306],{},[500,2307,1015],{},[493,2309,1018],{},[465,2311,2312],{},[699,2313,1053],{},[465,2315,2316,2317,2320],{},"An iterator of ",[500,2318,2319],{},"models.JobResultLine"," items, in the order sent.",[465,2322,2323],{},[699,2324,1082],{},[465,2326,2327,2328,664],{},"The errors of ",[500,2329,590],{},[465,2331,2332],{},[699,2333,1107],{},[793,2335,2336],{"title":395},[796,2337,2340],{"className":2338,"code":2339,"filename":395,"language":801,"meta":802},[799],"from reversecontact import ReverseContact\n\nwith ReverseContact() as client:\n    for item in client.bulk.iter_rows(\"00000000-0000-4000-8000-000000000001\"):\n        print(item.row, item.input.get(\"externalId\"), item.status, item.credits_consumed)\n",[500,2341,2339],{"__ignoreMap":802},[650,2343,2344],{"id":2344},"cancel",[465,2346,1120,2347,1123,2349,664],{},[496,2348,103],{"href":102},[500,2350,2351],{},"client.bulk.cancel()",[793,2353,2354],{"title":395},[796,2355,2358],{"className":2356,"code":2357,"filename":395,"language":801,"meta":802},[799],"def cancel(\n    job_id: str,\n    *,\n    timeout: Timeout | None = None,\n    max_retries: int | None = None,\n    headers: Mapping[str, str] | None = None,\n    **extra: object,\n) -> Result[models.CancelJobData]: ...\n",[500,2359,2357],{"__ignoreMap":802},[465,2361,2362],{},[699,2363,809],{},[469,2365,2366,2376],{},[472,2367,2368],{},[475,2369,2370,2372,2374],{},[478,2371,818],{},[478,2373,821],{},[478,2375,824],{},[488,2377,2378,2392,2408,2422,2434],{},[475,2379,2380,2384,2388],{},[493,2381,2382],{},[500,2383,1655],{},[493,2385,2386],{},[500,2387,1660],{},[493,2389,2390,1665],{},[699,2391,843],{},[475,2393,2394,2398,2402],{},[493,2395,2396],{},[500,2397,973],{},[493,2399,2400],{},[500,2401,978],{},[493,2403,981,2404,984,2406,664],{},[500,2405,696],{},[500,2407,685],{},[475,2409,2410,2414,2418],{},[493,2411,2412],{},[500,2413,993],{},[493,2415,2416],{},[500,2417,998],{},[493,2419,1001,2420,664],{},[500,2421,685],{},[475,2423,2424,2428,2432],{},[493,2425,2426],{},[500,2427,1010],{},[493,2429,2430],{},[500,2431,1015],{},[493,2433,1018],{},[475,2435,2436,2440,2444],{},[493,2437,2438],{},[500,2439,1040],{},[493,2441,2442],{},[500,2443,1045],{},[493,2445,1048],{},[465,2447,2448],{},[699,2449,1053],{},[465,2451,2452,674,2455,2457,2458,709,2460,678,2462,664],{},[500,2453,2454],{},"Result[models.CancelJobData]",[500,2456,708],{}," contains the job state after cancellation, including ",[500,2459,1177],{},[500,2461,1750],{},[500,2463,1753],{},[465,2465,2466],{},[699,2467,1082],{},[465,2469,2470,1087,2472,1091,2474,1095,2476,1099,2478,664],{},[500,2471,731],{},[500,2473,1090],{},[500,2475,1094],{},[500,2477,1098],{},[500,2479,1102],{},[465,2481,2482],{},[699,2483,1107],{},[793,2485,2486],{"title":395},[796,2487,2490],{"className":2488,"code":2489,"filename":395,"language":801,"meta":802},[799],"from reversecontact import ReverseContact\n\nwith ReverseContact() as client:\n    result = client.bulk.cancel(\"00000000-0000-4000-8000-000000000001\")\n    print(result.data if result is not None else None)\n",[500,2491,2489],{"__ignoreMap":802},[650,2493,1672],{"id":1672},[465,2495,1120,2496,1123,2498,664],{},[496,2497,98],{"href":97},[500,2499,2500],{},"client.bulk.wait()",[793,2502,2503],{"title":395},[796,2504,2507],{"className":2505,"code":2506,"filename":395,"language":801,"meta":802},[799],"def wait(\n    job_id: str,\n    *,\n    timeout: float = 1800,\n    poll_wait: int = 20,\n    on_poll: Callable[[Result[GetJobData]], None] | None = None,\n    headers: Mapping[str, str] | None = None,\n) -> Result[GetJobData]: ...\n",[500,2508,2506],{"__ignoreMap":802},[465,2510,2511],{},[699,2512,809],{},[469,2514,2515,2525],{},[472,2516,2517],{},[475,2518,2519,2521,2523],{},[478,2520,818],{},[478,2522,821],{},[478,2524,824],{},[488,2526,2527,2541,2558,2582,2597],{},[475,2528,2529,2533,2537],{},[493,2530,2531],{},[500,2532,1655],{},[493,2534,2535],{},[500,2536,1660],{},[493,2538,2539,1665],{},[699,2540,843],{},[475,2542,2543,2547,2552],{},[493,2544,2545],{},[500,2546,973],{},[493,2548,2549],{},[500,2550,2551],{},"float",[493,2553,2554,2555,664],{},"Optional. Overall polling deadline in seconds. Default ",[500,2556,2557],{},"1800",[475,2559,2560,2565,2570],{},[493,2561,2562],{},[500,2563,2564],{},"poll_wait",[493,2566,2567],{},[500,2568,2569],{},"int",[493,2571,2572,2573,2575,2576,2579,2580,664],{},"Optional. Long-poll duration from ",[500,2574,1549],{}," to ",[500,2577,2578],{},"20"," seconds. Default ",[500,2581,2578],{},[475,2583,2584,2589,2594],{},[493,2585,2586],{},[500,2587,2588],{},"on_poll",[493,2590,2591],{},[500,2592,2593],{},"Callable[[Result[GetJobData]], None] | None",[493,2595,2596],{},"Optional. Synchronous callback called with each successful poll response.",[475,2598,2599,2603,2607],{},[493,2600,2601],{},[500,2602,1010],{},[493,2604,2605],{},[500,2606,1015],{},[493,2608,1018],{},[465,2610,2611],{},[699,2612,1053],{},[465,2614,2615,674,2618,2620,2621,769,2623,2625,2626,709,2628,709,2630,769,2632,2634,2635,2637,2638,664],{},[500,2616,2617],{},"Result[GetJobData]",[500,2619,708],{}," contains the job when the status leaves ",[500,2622,1187],{},[500,2624,1190],{},", including ",[500,2627,1196],{},[500,2629,1199],{},[500,2631,1202],{},[500,2633,1193],{},". Inspect ",[500,2636,1177],{},". Failed and paused jobs are returned without ",[500,2639,2640],{},"JobFailedError",[465,2642,2643],{},[699,2644,1082],{},[465,2646,2647,1087,2649,1091,2651,1095,2653,2655,2656,769,2658,674,2660,2663,2664,664],{},[500,2648,731],{},[500,2650,1090],{},[500,2652,1094],{},[500,2654,1098],{}," covers invalid ",[500,2657,2564],{},[500,2659,973],{},[500,2661,2662],{},"JobTimeoutError"," reports an expired deadline. Failed or paused server states are returned for inspection. Malformed typed response data can raise Pydantic ",[500,2665,1102],{},[465,2667,2668],{},[699,2669,1107],{},[793,2671,2672],{"title":395},[796,2673,2676],{"className":2674,"code":2675,"filename":395,"language":801,"meta":802},[799],"from reversecontact import ReverseContact\n\nwith ReverseContact() as client:\n    result = client.bulk.wait(\"00000000-0000-4000-8000-000000000001\")\n    print(result.data if result is not None else None)\n",[500,2677,2675],{"__ignoreMap":802},[650,2679,2681],{"id":2680},"related-guides","Related guides",[465,2683,2684,2685,709,2688,678,2691,664],{},"See the ",[496,2686,2687],{"href":394},"Python SDK overview",[496,2689,2690],{"href":424},"Lists and bulk",[496,2692,125],{"href":422},[650,2694,2696],{"id":2695},"faq","FAQ",[2698,2699,2701],"h3",{"id":2700},"does-bulkenrich_persons-return-a-job-handle","Does bulk.enrich_persons return a Job handle?",[465,2703,2704,2707,2708,2711,2712,2714,2715,664],{},[500,2705,2706],{},"client.bulk.enrich_persons()"," returns a ",[500,2709,2710],{},"Result"," acknowledgement. Read ",[500,2713,1061],{},", then call ",[500,2716,1075],{},[2698,2718,2720],{"id":2719},"does-bulkwait-raise-when-the-bulk-job-fails","Does bulk.wait raise when the Bulk job fails?",[465,2722,2723,2725,2726,2729,2730,664],{},[500,2724,2500],{}," returns completed, cancelled, failed or paused job states. Inspect ",[500,2727,2728],{},"data.status",". If the wait exceeds its deadline, the SDK raises ",[500,2731,2662],{},[2698,2733,2735],{"id":2734},"how-do-i-download-bulk-enrichment-results-in-python","How do I download Bulk enrichment results in Python?",[465,2737,2738,2739,2742,2743,2746,2747,2750],{},"Once the job is completed or cancelled, call ",[500,2740,2741],{},"client.bulk.results(job_id)"," to download the CSV as text, or ",[500,2744,2745],{},"client.bulk.results(job_id, format=\"ndjson\")"," for NDJSON. From SDK 0.3.0, ",[500,2748,2749],{},"client.bulk.iter_rows(job_id)"," reads each result as soon as it is ready.",[2698,2752,2754],{"id":2753},"how-do-i-list-all-bulk-jobs-in-python","How do I list all Bulk jobs in Python?",[465,2756,2757,2758,2760,2761,2763,2764,2766],{},"Use the free ",[500,2759,1369],{}," iterator. With SDK 0.3.0, set ",[500,2762,1223],{}," explicitly. ",[500,2765,1376],{}," is optional and limits how many job records the iterator yields.",{"title":802,"searchDepth":2768,"depth":2768,"links":2769},3,[2770,2771,2772,2773,2774,2775,2776,2777,2778,2779,2780,2781],{"id":652,"depth":298,"text":653},{"id":779,"depth":298,"text":779},{"id":126,"depth":298,"text":126},{"id":1363,"depth":298,"text":1363},{"id":1615,"depth":298,"text":1615},{"id":1794,"depth":298,"text":1794},{"id":1973,"depth":298,"text":1973},{"id":2184,"depth":298,"text":2184},{"id":2344,"depth":298,"text":2344},{"id":1672,"depth":298,"text":1672},{"id":2680,"depth":298,"text":2681},{"id":2695,"depth":298,"text":2696,"children":2782},[2783,2784,2785,2786],{"id":2700,"depth":2768,"text":2701},{"id":2719,"depth":2768,"text":2720},{"id":2734,"depth":2768,"text":2735},{"id":2753,"depth":2768,"text":2754},"Start, monitor and cancel Bulk enrichment jobs with the Python SDK, read results as they come, or download them as CSV or NDJSON.","md","2026-11-04",{},true,"\u002Fdocs\u002Fsdk\u002Fpython,\u002Fdocs\u002Fsdk\u002Fpython\u002Flists-and-bulk,\u002Fdocs\u002Fsdk\u002Fpython\u002Flists",{"title":340,"description":2787},"sdk\u002Fpython\u002Fbulk","jA6bHbFZbaFR-_TRmHZoU9BME1AY3BpkYriMmqXSVcU",1793830206050]