[{"data":1,"prerenderedAt":2467},["ShallowReactive",2],{"docs-navigation":3,"docs-\u002Fsdk\u002Fjavascript\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":2458,"endpointId":10,"extension":2459,"family":342,"lastVerified":2460,"links":10,"meta":2461,"navigation":2462,"order":341,"path":339,"relatedArticles":2463,"requiresFlag":10,"seo":2464,"status":10,"stem":2465,"subfamily":10,"__hash__":2466},"docs\u002Fsdk\u002Fjavascript\u002Fbulk.md",{"type":462,"value":463,"toc":2439},"minimark",[464,468,616,645,667,718,723,730,745,751,961,966,987,992,1010,1015,1023,1026,1029,1037,1041,1192,1196,1222,1226,1236,1240,1248,1252,1259,1267,1271,1353,1357,1365,1369,1379,1383,1391,1395,1402,1410,1414,1507,1511,1524,1528,1552,1556,1564,1568,1587,1595,1599,1694,1698,1727,1731,1761,1765,1773,1777,1786,1794,1798,1873,1877,1893,1897,1907,1911,1919,1923,1926,1934,1938,1990,1994,1999,2003,2013,2017,2025,2028,2039,2047,2051,2110,2114,2137,2141,2157,2161,2169,2173,2181,2185,2307,2311,2318,2322,2341,2345,2353,2357,2367,2371,2376,2388,2392,2412,2416,2426,2430],[465,466,467],"p",{},"Submit people for Bulk enrichment, then check progress, wait for the job to stop, cancel the job, read its results as they come or 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,507,521,535,549,563,576,590,603],"tbody",{},[475,491,492,499,504],{},[493,494,495],"td",{},[496,497,498],"code",{},"client.bulk.enrichPersons()",[493,500,501],{},[502,503,29],"a",{"href":28},[493,505,506],{},"Free to send. Each item costs the same as its individual API call. Credits are reserved when the job is created and refunded for data that is not found.",[475,508,509,514,518],{},[493,510,511],{},[496,512,513],{},"client.bulk.list()",[493,515,516],{},[502,517,118],{"href":117},[493,519,520],{},"Free.",[475,522,523,528,532],{},[493,524,525],{},[496,526,527],{},"client.bulk.retrieve()",[493,529,530],{},[502,531,98],{"href":97},[493,533,534],{},"Free even with a zero balance. Does not count against rate limits.",[475,536,537,542,546],{},[493,538,539],{},[496,540,541],{},"client.bulk.results()",[493,543,544],{},[502,545,108],{"href":107},[493,547,548],{},"Free even with a zero balance.",[475,550,551,556,560],{},[493,552,553],{},[496,554,555],{},"client.bulk.rows()",[493,557,558],{},[502,559,113],{"href":112},[493,561,562],{},"Free even with a zero balance. Each page counts toward rate limits.",[475,564,565,570,574],{},[493,566,567],{},[496,568,569],{},"client.bulk.iterateRows()",[493,571,572],{},[502,573,113],{"href":112},[493,575,562],{},[475,577,578,583,587],{},[493,579,580],{},[496,581,582],{},"client.bulk.cancel()",[493,584,585],{},[502,586,103],{"href":102},[493,588,589],{},"Free. Items that had not started are never charged.",[475,591,592,597,601],{},[493,593,594],{},[496,595,596],{},"client.bulk.wait()",[493,598,599],{},[502,600,98],{"href":97},[493,602,534],{},[475,604,605,610,614],{},[493,606,607],{},[496,608,609],{},"client.bulk.listAll()",[493,611,612],{},[502,613,118],{"href":117},[493,615,520],{},[465,617,618,619,622,623,625,626,629,630,633,634,637,638,637,641,644],{},"Create ",[496,620,621],{},"client"," by following ",[502,624,367],{"href":366},". The examples use a saved ",[496,627,628],{},"jobId"," from the relevant job family. The ",[496,631,632],{},"@reverse-contact\u002Fsdk"," package exports ",[496,635,636],{},"Body",", ",[496,639,640],{},"Data",[496,642,643],{},"Query"," and the other types used in the signatures.",[465,646,647,648,651,652,655,656,659,660,663,664,666],{},"JSON responses contain ",[496,649,650],{},"data"," and optional ",[496,653,654],{},"quotas"," and ",[496,657,658],{},"metadata",". They also include the original ",[496,661,662],{},"response",", with its body already read. See ",[502,665,364],{"href":363}," for response handling.",[465,668,669,670,673,674,637,677,637,680,637,683,637,686,637,689,637,692,637,695,637,698,637,701,637,704,637,707,655,710,713,714,717],{},"HTTP errors use the ",[502,671,672],{"href":354},"APIError subclasses and retry rules",": ",[496,675,676],{},"BadRequestError",[496,678,679],{},"AuthenticationError",[496,681,682],{},"InsufficientCreditsError",[496,684,685],{},"PermissionDeniedError",[496,687,688],{},"NotFoundError",[496,690,691],{},"ConflictError",[496,693,694],{},"GoneError",[496,696,697],{},"UnprocessableEntityError",[496,699,700],{},"RateLimitError",[496,702,703],{},"DailyLimitError",[496,705,706],{},"KeyCreditLimitError",[496,708,709],{},"UnavailableForLegalReasonsError",[496,711,712],{},"InternalServerError",", according to the API response. Other statuses use ",[496,715,716],{},"APIError",".",[719,720,722],"h2",{"id":721},"enrichpersons","enrichPersons()",[465,724,725,726,729],{},"Send 1 to 25,000 items. The SDK generates an ",[496,727,728],{},"Idempotency-Key"," if you omit it and reuses the key on automatic retries. Save your own key to repeat the same submission after a restart.",[731,732,734],"code-group",{"title":733},"Signature",[735,736,743],"pre",{"className":737,"code":739,"filename":740,"language":741,"meta":742},[738],"language-typescript","client.bulk.enrichPersons(\n  params: Body\u003C\"bulkEnrichPersons\">,\n  options?: IdempotentRequestOptions\n): Promise\u003CResult\u003CData\u003C\"bulkEnrichPersons\">>>\n","TypeScript SDK","typescript","",[496,744,739],{"__ignoreMap":742},[465,746,747],{},[748,749,750],"strong",{},"Parameters",[469,752,753,766],{},[472,754,755],{},[475,756,757,760,763],{},[478,758,759],{},"Name",[478,761,762],{},"Type",[478,764,765],{},"Description",[488,767,768,787,808,836,865,887,904,926],{},[475,769,770,779,784],{},[493,771,772,775,776],{},[496,773,774],{},"params"," ",[748,777,778],{},"required",[493,780,781],{},[496,782,783],{},"Body\u003C\"bulkEnrichPersons\">",[493,785,786],{},"Request body. See the fields and their requirements below.",[475,788,789,796,801],{},[493,790,791,775,794],{},[496,792,793],{},"params.items",[748,795,778],{},[493,797,798],{},[496,799,800],{},"Body\u003C\"bulkEnrichPersons\">[\"items\"]",[493,802,803,804],{},"1 to 25,000 people, see ",[502,805,807],{"href":806},"\u002Fendpoints\u002Fbulk-enrich-persons#items","Items",[475,809,810,815,820],{},[493,811,812],{},[496,813,814],{},"params.families",[493,816,817],{},[496,818,819],{},"(\"profile\" | \"contact_email\" | \"contact_phone\")[]",[493,821,822,823,637,826,637,829,832,833,717],{},"What to look up for each item: ",[496,824,825],{},"profile",[496,827,828],{},"contact_email",[496,830,831],{},"contact_phone",". Defaults to ",[496,834,835],{},"[\"profile\"]",[475,837,838,843,848],{},[493,839,840],{},[496,841,842],{},"params.emailType",[493,844,845],{},[496,846,847],{},"string",[493,849,850,851,853,854,857,858,861,862],{},"With ",[496,852,828],{},", the kind of email to find: ",[496,855,856],{},"professional"," (default), ",[496,859,860],{},"personal"," or ",[496,863,864],{},"any",[475,866,867,872,877],{},[493,868,869],{},[496,870,871],{},"params.live",[493,873,874],{},[496,875,876],{},"boolean",[493,878,879,882,883,886],{},[496,880,881],{},"true"," fetches the profile of a Social profile URL item live. Omitted or ",[496,884,885],{},"false",", saved data is used.",[475,888,889,894,898],{},[493,890,891],{},[496,892,893],{},"params.name",[493,895,896],{},[496,897,847],{},[493,899,900,901,717],{},"A name for the job, up to 255 characters, shown in the job history and in the app. Defaults to ",[496,902,903],{},"Sent via API",[475,905,906,911,915],{},[493,907,908],{},[496,909,910],{},"params.webhookUrl",[493,912,913],{},[496,914,847],{},[493,916,917,918,921,922],{},"Public HTTPS URL that receives one ",[496,919,920],{},"POST"," when the job settles. See ",[502,923,925],{"href":924},"\u002Fendpoints\u002Fbulk-enrich-persons#webhook-callback","Webhook callback",[475,927,928,933,938],{},[493,929,930],{},[496,931,932],{},"options",[493,934,935],{},[496,936,937],{},"IdempotentRequestOptions",[493,939,940,941,637,944,637,947,655,950,953,954,956,957,960],{},"Optional per-request ",[496,942,943],{},"timeout",[496,945,946],{},"maxRetries",[496,948,949],{},"headers",[496,951,952],{},"signal",". See ",[502,955,345],{"href":344},". Also accepts ",[496,958,959],{},"idempotencyKey",". The SDK generates a key if you omit it.",[465,962,963],{},[748,964,965],{},"Returns",[465,967,968,969,972,973,976,977,953,980,982,983,986],{},"A response envelope with the background job in ",[496,970,971],{},"data.job",". Save ",[496,974,975],{},"data.job.id",", then call ",[496,978,979],{},"client.bulk.wait(id)",[502,981,376],{"href":375},". This is not a ",[496,984,985],{},"Job"," object.",[465,988,989],{},[748,990,991],{},"Errors",[465,993,994,995,997,998,1001,1002,1005,1006,1009],{},"Calls can raise the HTTP ",[496,996,716],{}," subclasses listed above. Network failures or cancellation raise ",[496,999,1000],{},"APIConnectionError",", and attempt timeouts raise ",[496,1003,1004],{},"APITimeoutError",". ",[496,1007,1008],{},"ReverseContactError"," reports invalid SDK options or an invalid successful JSON response.",[465,1011,1012],{},[748,1013,1014],{},"Example",[731,1016,1017],{"title":1014},[735,1018,1021],{"className":1019,"code":1020,"filename":740,"language":741,"meta":742},[738],"const created = await client.bulk.enrichPersons({\n  items: [{ linkedinUrl: \"https:\u002F\u002Fsocial.com\u002Fin\u002Fjanedoe\", externalId: \"crm-001\" }],\n  families: [\"profile\"]\n}, { idempotencyKey: \"crm-export-2026-11-04\" });\nconsole.log(\"Save job id:\", created.data.job.id);\nconst progress = await client.bulk.wait(created.data.job.id);\nconsole.log(progress.data.status);\n",[496,1022,1020],{"__ignoreMap":742},[719,1024,1025],{"id":126},"list()",[465,1027,1028],{},"Read background job history, including Bulk enrichment and List jobs allowed by the API key permissions.",[731,1030,1031],{"title":733},[735,1032,1035],{"className":1033,"code":1034,"filename":740,"language":741,"meta":742},[738],"client.bulk.list(\n  params?: Query\u003C\"listJobs\">,\n  options?: RequestOptions\n): Promise\u003CPage\u003CData\u003C\"listJobs\">[\"items\"][number], undefined>>\n",[496,1036,1034],{"__ignoreMap":742},[465,1038,1039],{},[748,1040,750],{},[469,1042,1043,1053],{},[472,1044,1045],{},[475,1046,1047,1049,1051],{},[478,1048,759],{},[478,1050,762],{},[478,1052,765],{},[488,1054,1055,1069,1087,1119,1133,1148,1169],{},[475,1056,1057,1061,1066],{},[493,1058,1059],{},[496,1060,774],{},[493,1062,1063],{},[496,1064,1065],{},"Query\u003C\"listJobs\">",[493,1067,1068],{},"Query parameters. Omit to use the defaults.",[475,1070,1071,1076,1080],{},[493,1072,1073],{},[496,1074,1075],{},"params.type",[493,1077,1078],{},[496,1079,847],{},[493,1081,1082,1083],{},"Filter by these comma-separated job types. See ",[502,1084,1086],{"href":1085},"\u002Fendpoints\u002Fjobs#job-types","Job types",[475,1088,1089,1094,1098],{},[493,1090,1091],{},[496,1092,1093],{},"params.status",[493,1095,1096],{},[496,1097,847],{},[493,1099,1100,1101,637,1104,637,1107,637,1110,637,1113,637,1116],{},"Filter by these comma-separated statuses: ",[496,1102,1103],{},"queued",[496,1105,1106],{},"running",[496,1108,1109],{},"paused",[496,1111,1112],{},"completed",[496,1114,1115],{},"cancelled",[496,1117,1118],{},"failed",[475,1120,1121,1126,1130],{},[493,1122,1123],{},[496,1124,1125],{},"params.listId",[493,1127,1128],{},[496,1129,847],{},[493,1131,1132],{},"Return only jobs for this List (UUID)",[475,1134,1135,1140,1145],{},[493,1136,1137],{},[496,1138,1139],{},"params.perPage",[493,1141,1142],{},[496,1143,1144],{},"number",[493,1146,1147],{},"Jobs per page, from 1 to 100. Defaults to 50.",[475,1149,1150,1155,1159],{},[493,1151,1152],{},[496,1153,1154],{},"params.cursor",[493,1156,1157],{},[496,1158,847],{},[493,1160,1161,1162,1165,1166,717],{},"The ",[496,1163,1164],{},"nextCursor"," of the previous page, sent with the same filters. A malformed cursor, or one sent with other filters, returns ",[496,1167,1168],{},"400",[475,1170,1171,1175,1180],{},[493,1172,1173],{},[496,1174,932],{},[493,1176,1177],{},[496,1178,1179],{},"RequestOptions",[493,1181,940,1182,637,1184,637,1186,655,1188,953,1190,717],{},[496,1183,943],{},[496,1185,946],{},[496,1187,949],{},[496,1189,952],{},[502,1191,345],{"href":344},[465,1193,1194],{},[748,1195,965],{},[465,1197,1198,1199,1202,1203,1205,1206,637,1208,655,1211,1214,1215,655,1217,1219,1220,717],{},"A ",[496,1200,1201],{},"Page"," with results in ",[496,1204,650],{}," and pagination through ",[496,1207,1164],{},[496,1209,1210],{},"hasNextPage()",[496,1212,1213],{},"getNextPage()",". The page also includes optional ",[496,1216,654],{},[496,1218,658],{},", and the original ",[496,1221,662],{},[465,1223,1224],{},[748,1225,991],{},[465,1227,994,1228,997,1230,1001,1232,1005,1234,1009],{},[496,1229,716],{},[496,1231,1000],{},[496,1233,1004],{},[496,1235,1008],{},[465,1237,1238],{},[748,1239,1014],{},[731,1241,1242],{"title":1014},[735,1243,1246],{"className":1244,"code":1245,"filename":740,"language":741,"meta":742},[738],"const page = await client.bulk.list({ type: \"enrich_persons\", perPage: 20 });\nconsole.log(page.data);\n",[496,1247,1245],{"__ignoreMap":742},[719,1249,1251],{"id":1250},"retrieve","retrieve()",[465,1253,1254,1255,1258],{},"Read the current state of a background job. Use ",[496,1256,1257],{},"wait"," to hold the request while the job is queued or running.",[731,1260,1261],{"title":733},[735,1262,1265],{"className":1263,"code":1264,"filename":740,"language":741,"meta":742},[738],"client.bulk.retrieve(\n  jobId: string,\n  params?: Query\u003C\"getJob\">,\n  options?: RequestOptions\n): Promise\u003CResult\u003CData\u003C\"getJob\">>>\n",[496,1266,1264],{"__ignoreMap":742},[465,1268,1269],{},[748,1270,750],{},[469,1272,1273,1283],{},[472,1274,1275],{},[475,1276,1277,1279,1281],{},[478,1278,759],{},[478,1280,762],{},[478,1282,765],{},[488,1284,1285,1304,1317,1331],{},[475,1286,1287,1293,1297],{},[493,1288,1289,775,1291],{},[496,1290,628],{},[748,1292,778],{},[493,1294,1295],{},[496,1296,847],{},[493,1298,1299,1300,1303],{},"Background job id from ",[496,1301,1302],{},"created.data.job.id"," or job history.",[475,1305,1306,1310,1315],{},[493,1307,1308],{},[496,1309,774],{},[493,1311,1312],{},[496,1313,1314],{},"Query\u003C\"getJob\">",[493,1316,1068],{},[475,1318,1319,1324,1328],{},[493,1320,1321],{},[496,1322,1323],{},"params.wait",[493,1325,1326],{},[496,1327,1144],{},[493,1329,1330],{},"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,1332,1333,1337,1341],{},[493,1334,1335],{},[496,1336,932],{},[493,1338,1339],{},[496,1340,1179],{},[493,1342,940,1343,637,1345,637,1347,655,1349,953,1351,717],{},[496,1344,943],{},[496,1346,946],{},[496,1348,949],{},[496,1350,952],{},[502,1352,345],{"href":344},[465,1354,1355],{},[748,1356,965],{},[465,1358,1359,1362,1363,717],{},[496,1360,1361],{},"Result\u003CBulkJob>"," with the current status, progress, credit usage and result links in ",[496,1364,650],{},[465,1366,1367],{},[748,1368,991],{},[465,1370,994,1371,997,1373,1001,1375,1005,1377,1009],{},[496,1372,716],{},[496,1374,1000],{},[496,1376,1004],{},[496,1378,1008],{},[465,1380,1381],{},[748,1382,1014],{},[731,1384,1385],{"title":1014},[735,1386,1389],{"className":1387,"code":1388,"filename":740,"language":741,"meta":742},[738],"const result = await client.bulk.retrieve(jobId, { wait: 20 });\nconsole.log(result.data.status, result.data.credits);\n",[496,1390,1388],{"__ignoreMap":742},[719,1392,1394],{"id":1393},"results","results()",[465,1396,1397,1398,1401],{},"Download only when ",[496,1399,1400],{},"links.results"," is set, after the job completes or is cancelled. Failed jobs have no results file.",[731,1403,1404],{"title":733},[735,1405,1408],{"className":1406,"code":1407,"filename":740,"language":741,"meta":742},[738],"client.bulk.results(\n  jobId: string,\n  params?: Query\u003C\"getJobResults\">,\n  options?: RequestOptions\n): Promise\u003Cstring>\n",[496,1409,1407],{"__ignoreMap":742},[465,1411,1412],{},[748,1413,750],{},[469,1415,1416,1426],{},[472,1417,1418],{},[475,1419,1420,1422,1424],{},[478,1421,759],{},[478,1423,762],{},[478,1425,765],{},[488,1427,1428,1444,1457,1485],{},[475,1429,1430,1436,1440],{},[493,1431,1432,775,1434],{},[496,1433,628],{},[748,1435,778],{},[493,1437,1438],{},[496,1439,847],{},[493,1441,1299,1442,1303],{},[496,1443,1302],{},[475,1445,1446,1450,1455],{},[493,1447,1448],{},[496,1449,774],{},[493,1451,1452],{},[496,1453,1454],{},"Query\u003C\"getJobResults\">",[493,1456,1068],{},[475,1458,1459,1464,1469],{},[493,1460,1461],{},[496,1462,1463],{},"params.format",[493,1465,1466],{},[496,1467,1468],{},"\"csv\" | \"ndjson\"",[493,1470,1471,1474,1475,1478,1479,1482,1483,717],{},[496,1472,1473],{},"csv"," for the CSV file, ",[496,1476,1477],{},"ndjson"," for one ",[496,1480,1481],{},"JobResultLine"," JSON object per line. Defaults to ",[496,1484,1473],{},[475,1486,1487,1491,1495],{},[493,1488,1489],{},[496,1490,932],{},[493,1492,1493],{},[496,1494,1179],{},[493,1496,940,1497,637,1499,637,1501,655,1503,953,1505,717],{},[496,1498,943],{},[496,1500,946],{},[496,1502,949],{},[496,1504,952],{},[502,1506,345],{"href":344},[465,1508,1509],{},[748,1510,965],{},[465,1512,1198,1513,1515,1516,1519,1520,1523],{},[496,1514,847],{},": the CSV without its byte order mark, or with ",[496,1517,1518],{},"format: \"ndjson\""," one JSON object per line. Prepend ",[496,1521,1522],{},"\"\\uFEFF\""," when saving the CSV for spreadsheet applications.",[465,1525,1526],{},[748,1527,991],{},[465,1529,994,1530,997,1532,1001,1534,1005,1536,1538,1539,1541,1542,1545,1546,1541,1548,1551],{},[496,1531,716],{},[496,1533,1000],{},[496,1535,1004],{},[496,1537,1008],{}," reports invalid SDK options. ",[496,1540,691],{}," with ",[496,1543,1544],{},"JOB_RESULTS_NOT_READY"," means the file is not ready. ",[496,1547,691],{},[496,1549,1550],{},"JOB_RESULTS_FORMAT_UNAVAILABLE"," means the job was stored before NDJSON existed: download its CSV.",[465,1553,1554],{},[748,1555,1014],{},[731,1557,1558],{"title":1014},[735,1559,1562],{"className":1560,"code":1561,"filename":740,"language":741,"meta":742},[738],"const job = await client.bulk.retrieve(jobId);\nif (job.data.links.results) {\n  const csv = await client.bulk.results(jobId);\n  const ndjson = await client.bulk.results(jobId, { format: \"ndjson\" });\n  const items = ndjson.split(\"\\n\").filter(Boolean).map((line) => JSON.parse(line));\n  console.log(csv.length, items.length);\n}\n",[496,1563,1561],{"__ignoreMap":742},[719,1565,1567],{"id":1566},"rows","rows()",[465,1569,1570,1571,1573,1574,1576,1577,1005,1580,1582,1583,1586],{},"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: ",[496,1572,650],{}," is empty and ",[496,1575,1164],{}," is set while the next item runs, so read it again after ",[496,1578,1579],{},"Retry-After",[496,1581,1164],{}," is ",[496,1584,1585],{},"null"," once nothing more will come. Available from SDK 0.3.0.",[731,1588,1589],{"title":733},[735,1590,1593],{"className":1591,"code":1592,"filename":740,"language":741,"meta":742},[738],"client.bulk.rows(\n  jobId: string,\n  params?: Query\u003C\"getJobRows\">,\n  options?: RequestOptions\n): Promise\u003CPage\u003CPageItem\u003CData\u003C\"getJobRows\">>, Interpretation\u003CData\u003C\"getJobRows\">>>>\n",[496,1594,1592],{"__ignoreMap":742},[465,1596,1597],{},[748,1598,750],{},[469,1600,1601,1611],{},[472,1602,1603],{},[475,1604,1605,1607,1609],{},[478,1606,759],{},[478,1608,762],{},[478,1610,765],{},[488,1612,1613,1629,1643,1658,1672],{},[475,1614,1615,1621,1625],{},[493,1616,1617,775,1619],{},[496,1618,628],{},[748,1620,778],{},[493,1622,1623],{},[496,1624,847],{},[493,1626,1299,1627,1303],{},[496,1628,1302],{},[475,1630,1631,1635,1640],{},[493,1632,1633],{},[496,1634,774],{},[493,1636,1637],{},[496,1638,1639],{},"Query\u003C\"getJobRows\">",[493,1641,1642],{},"Query parameters. Omit to read from the first item.",[475,1644,1645,1649,1653],{},[493,1646,1647],{},[496,1648,1154],{},[493,1650,1651],{},[496,1652,847],{},[493,1654,1655,1657],{},[496,1656,1164],{}," of the previous page, up to 512 characters. Without it, the page starts at the first item.",[475,1659,1660,1665,1669],{},[493,1661,1662],{},[496,1663,1664],{},"params.limit",[493,1666,1667],{},[496,1668,1144],{},[493,1670,1671],{},"Items per page, 1 to 100. Defaults to 100.",[475,1673,1674,1678,1682],{},[493,1675,1676],{},[496,1677,932],{},[493,1679,1680],{},[496,1681,1179],{},[493,1683,940,1684,637,1686,637,1688,655,1690,953,1692,717],{},[496,1685,943],{},[496,1687,946],{},[496,1689,949],{},[496,1691,952],{},[502,1693,345],{"href":344},[465,1695,1696],{},[748,1697,965],{},[465,1699,1198,1700,1541,1702,1704,1705,637,1707,655,1709,1711,1712,1005,1714,1717,1718,1214,1721,655,1723,1219,1725,717],{},[496,1701,1201],{},[496,1703,1481],{}," items in ",[496,1706,650],{},[496,1708,1164],{},[496,1710,1213],{},", like ",[496,1713,1025],{},[496,1715,1716],{},"extras.status"," is the job status when the page was read. A page can hold fewer items than ",[496,1719,1720],{},"limit",[496,1722,654],{},[496,1724,658],{},[496,1726,662],{},[465,1728,1729],{},[748,1730,991],{},[465,1732,994,1733,997,1735,1001,1737,1005,1739,1741,1742,1541,1744,1746,1747,1005,1749,1541,1751,1754,1755,1757,1758,1760],{},[496,1734,716],{},[496,1736,1000],{},[496,1738,1004],{},[496,1740,1008],{}," reports invalid SDK options or an invalid successful JSON response. ",[496,1743,691],{},[496,1745,1550],{}," means the job was stored before reading by page existed: download its CSV with ",[496,1748,1394],{},[496,1750,700],{},[496,1752,1753],{},"JOB_ROWS_BUSY"," means too many pages are being read at once: the SDK retries it after ",[496,1756,1579],{},", as ",[502,1759,355],{"href":354}," describes.",[465,1762,1763],{},[748,1764,1014],{},[731,1766,1767],{"title":1014},[735,1768,1771],{"className":1769,"code":1770,"filename":740,"language":741,"meta":742},[738],"const page = await client.bulk.rows(jobId, { limit: 100 });\nfor (const item of page.data) console.log(item.row, item.status);\nconsole.log(page.extras.status, page.nextCursor);\n",[496,1772,1770],{"__ignoreMap":742},[719,1774,1776],{"id":1775},"iteraterows","iterateRows()",[465,1778,1779,1780,1782,1783,1785],{},"Read the results one item at a time, as they become ready, whatever the job is doing. While the next item runs, the iterator waits ",[496,1781,1579],{}," (2 seconds by default) and reads the same position again. It ends with the job, or when the job is paused, since nothing moves until someone resumes it: read on later with ",[496,1784,1567],{}," 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.",[731,1787,1788],{"title":733},[735,1789,1792],{"className":1790,"code":1791,"filename":740,"language":741,"meta":742},[738],"client.bulk.iterateRows(\n  jobId: string,\n  params?: Query\u003C\"getJobRows\">,\n  options?: RequestOptions\n): AsyncGenerator\u003CJobResultLine, void, unknown>\n",[496,1793,1791],{"__ignoreMap":742},[465,1795,1796],{},[748,1797,750],{},[469,1799,1800,1810],{},[472,1801,1802],{},[475,1803,1804,1806,1808],{},[478,1805,759],{},[478,1807,762],{},[478,1809,765],{},[488,1811,1812,1828,1847],{},[475,1813,1814,1820,1824],{},[493,1815,1816,775,1818],{},[496,1817,628],{},[748,1819,778],{},[493,1821,1822],{},[496,1823,847],{},[493,1825,1299,1826,1303],{},[496,1827,1302],{},[475,1829,1830,1834,1838],{},[493,1831,1832],{},[496,1833,774],{},[493,1835,1836],{},[496,1837,1639],{},[493,1839,1840,1843,1844,1846],{},[496,1841,1842],{},"cursor"," to start after a page you already read, and ",[496,1845,1720],{},", 1 to 100 items per page.",[475,1848,1849,1853,1857],{},[493,1850,1851],{},[496,1852,932],{},[493,1854,1855],{},[496,1856,1179],{},[493,1858,940,1859,637,1861,637,1863,655,1865,1867,1868,1870,1871,717],{},[496,1860,943],{},[496,1862,946],{},[496,1864,949],{},[496,1866,952],{},". The ",[496,1869,952],{}," also stops the wait between pages. See ",[502,1872,345],{"href":344},[465,1874,1875],{},[748,1876,965],{},[465,1878,1879,1880,1883,1884,1886,1887,1889,1890,1892],{},"An ",[496,1881,1882],{},"AsyncGenerator"," of ",[496,1885,1481],{}," items, in the order sent. The ",[496,1888,632],{}," package exports the ",[496,1891,1481],{}," type.",[465,1894,1895],{},[748,1896,991],{},[465,1898,1899,1900,1902,1903,1001,1905,717],{},"The errors of ",[496,1901,1567],{},". Network failures or cancellation raise ",[496,1904,1000],{},[496,1906,1004],{},[465,1908,1909],{},[748,1910,1014],{},[731,1912,1913],{"title":1014},[735,1914,1917],{"className":1915,"code":1916,"filename":740,"language":741,"meta":742},[738],"for await (const item of client.bulk.iterateRows(jobId)) {\n  console.log(item.row, item.input.externalId, item.status, item.creditsConsumed);\n}\n",[496,1918,1916],{"__ignoreMap":742},[719,1920,1922],{"id":1921},"cancel","cancel()",[465,1924,1925],{},"Request a server-side stop. Items that have not started are not charged.",[731,1927,1928],{"title":733},[735,1929,1932],{"className":1930,"code":1931,"filename":740,"language":741,"meta":742},[738],"client.bulk.cancel(\n  jobId: string,\n  options?: RequestOptions\n): Promise\u003CResult\u003CData\u003C\"cancelJob\">>>\n",[496,1933,1931],{"__ignoreMap":742},[465,1935,1936],{},[748,1937,750],{},[469,1939,1940,1950],{},[472,1941,1942],{},[475,1943,1944,1946,1948],{},[478,1945,759],{},[478,1947,762],{},[478,1949,765],{},[488,1951,1952,1968],{},[475,1953,1954,1960,1964],{},[493,1955,1956,775,1958],{},[496,1957,628],{},[748,1959,778],{},[493,1961,1962],{},[496,1963,847],{},[493,1965,1299,1966,1303],{},[496,1967,1302],{},[475,1969,1970,1974,1978],{},[493,1971,1972],{},[496,1973,932],{},[493,1975,1976],{},[496,1977,1179],{},[493,1979,940,1980,637,1982,637,1984,655,1986,953,1988,717],{},[496,1981,943],{},[496,1983,946],{},[496,1985,949],{},[496,1987,952],{},[502,1989,345],{"href":344},[465,1991,1992],{},[748,1993,965],{},[465,1995,1996,1997,717],{},"A response envelope with the cancellation acknowledgement in ",[496,1998,650],{},[465,2000,2001],{},[748,2002,991],{},[465,2004,994,2005,997,2007,1001,2009,1005,2011,1009],{},[496,2006,716],{},[496,2008,1000],{},[496,2010,1004],{},[496,2012,1008],{},[465,2014,2015],{},[748,2016,1014],{},[731,2018,2019],{"title":1014},[735,2020,2023],{"className":2021,"code":2022,"filename":740,"language":741,"meta":742},[738],"const result = await client.bulk.cancel(jobId);\nconsole.log(result.data);\n",[496,2024,2022],{"__ignoreMap":742},[719,2026,2027],{"id":1257},"wait()",[465,2029,2030,2031,861,2033,2035,2036,2038],{},"Wait while the background job is ",[496,2032,1103],{},[496,2034,1106],{},". A ",[496,2037,1109],{}," job returns control to your code even though the job can resume later.",[731,2040,2041],{"title":733},[735,2042,2045],{"className":2043,"code":2044,"filename":740,"language":741,"meta":742},[738],"client.bulk.wait(\n  jobId: string,\n  options?: WaitOptions\u003CBulkJob>\n): Promise\u003CResult\u003CBulkJob>>\n",[496,2046,2044],{"__ignoreMap":742},[465,2048,2049],{},[748,2050,750],{},[469,2052,2053,2063],{},[472,2054,2055],{},[475,2056,2057,2059,2061],{},[478,2058,759],{},[478,2060,762],{},[478,2062,765],{},[488,2064,2065,2081],{},[475,2066,2067,2073,2077],{},[493,2068,2069,775,2071],{},[496,2070,628],{},[748,2072,778],{},[493,2074,2075],{},[496,2076,847],{},[493,2078,1299,2079,1303],{},[496,2080,1302],{},[475,2082,2083,2087,2092],{},[493,2084,2085],{},[496,2086,932],{},[493,2088,2089],{},[496,2090,2091],{},"WaitOptions\u003CBulkJob>",[493,2093,2094,2095,637,2097,637,2100,637,2103,655,2105,953,2107,717],{},"Optional overall ",[496,2096,943],{},[496,2098,2099],{},"pollWait",[496,2101,2102],{},"onPoll",[496,2104,949],{},[496,2106,952],{},[502,2108,2109],{"href":384},"Wait options",[465,2111,2112],{},[748,2113,965],{},[465,2115,2116,2118,2119,637,2121,637,2123,861,2125,2035,2127,2129,2130,2133,2134,717],{},[496,2117,1361],{}," when the status is ",[496,2120,1112],{},[496,2122,1115],{},[496,2124,1118],{},[496,2126,1109],{},[496,2128,1118],{}," status does not raise ",[496,2131,2132],{},"JobFailedError",". Check ",[496,2135,2136],{},"data.status",[465,2138,2139],{},[748,2140,991],{},[465,2142,994,2143,997,2145,1001,2147,1005,2149,1741,2151,2154,2155,717],{},[496,2144,716],{},[496,2146,1000],{},[496,2148,1004],{},[496,2150,1008],{},[496,2152,2153],{},"JobTimeoutError"," means the overall wait deadline has expired. An unsuccessful terminal state does not raise ",[496,2156,2132],{},[465,2158,2159],{},[748,2160,1014],{},[731,2162,2163],{"title":1014},[735,2164,2167],{"className":2165,"code":2166,"filename":740,"language":741,"meta":742},[738],"const result = await client.bulk.wait(jobId, { timeout: 30 * 60 * 1000 });\nconsole.log(result.data.status, result.data.links.results);\n",[496,2168,2166],{"__ignoreMap":742},[719,2170,2172],{"id":2171},"listall","listAll()",[731,2174,2175],{"title":733},[735,2176,2179],{"className":2177,"code":2178,"filename":740,"language":741,"meta":742},[738],"client.bulk.listAll(\n  params?: Query\u003C\"listJobs\">,\n  options?: ListIteratorOptions\n): AsyncGenerator\u003CData\u003C\"listJobs\">[\"items\"][number], void, unknown>\n",[496,2180,2178],{"__ignoreMap":742},[465,2182,2183],{},[748,2184,750],{},[469,2186,2187,2197],{},[472,2188,2189],{},[475,2190,2191,2193,2195],{},[478,2192,759],{},[478,2194,762],{},[478,2196,765],{},[488,2198,2199,2211,2225,2249,2261,2273,2289],{},[475,2200,2201,2205,2209],{},[493,2202,2203],{},[496,2204,774],{},[493,2206,2207],{},[496,2208,1065],{},[493,2210,1068],{},[475,2212,2213,2217,2221],{},[493,2214,2215],{},[496,2216,1075],{},[493,2218,2219],{},[496,2220,847],{},[493,2222,1082,2223],{},[502,2224,1086],{"href":1085},[475,2226,2227,2231,2235],{},[493,2228,2229],{},[496,2230,1093],{},[493,2232,2233],{},[496,2234,847],{},[493,2236,1100,2237,637,2239,637,2241,637,2243,637,2245,637,2247],{},[496,2238,1103],{},[496,2240,1106],{},[496,2242,1109],{},[496,2244,1112],{},[496,2246,1115],{},[496,2248,1118],{},[475,2250,2251,2255,2259],{},[493,2252,2253],{},[496,2254,1125],{},[493,2256,2257],{},[496,2258,847],{},[493,2260,1132],{},[475,2262,2263,2267,2271],{},[493,2264,2265],{},[496,2266,1139],{},[493,2268,2269],{},[496,2270,1144],{},[493,2272,1147],{},[475,2274,2275,2279,2283],{},[493,2276,2277],{},[496,2278,1154],{},[493,2280,2281],{},[496,2282,847],{},[493,2284,1161,2285,1165,2287,717],{},[496,2286,1164],{},[496,2288,1168],{},[475,2290,2291,2295,2300],{},[493,2292,2293],{},[496,2294,932],{},[493,2296,2297],{},[496,2298,2299],{},"ListIteratorOptions",[493,2301,2302,2303,2306],{},"Optional ",[496,2304,2305],{},"maxResults",", a nonnegative safe integer. Omit to read all pages. Also accepts request options.",[465,2308,2309],{},[748,2310,965],{},[465,2312,1879,2313,2315,2316,717],{},[496,2314,1882],{}," of individual results. The iterator requests pages as needed. A repeated cursor raises ",[496,2317,1008],{},[465,2319,2320],{},[748,2321,991],{},[465,2323,994,2324,997,2326,1001,2328,1005,2330,1741,2332,2334,2335,861,2338,2340],{},[496,2325,716],{},[496,2327,1000],{},[496,2329,1004],{},[496,2331,1008],{},[496,2333,1008],{}," also reports invalid ",[496,2336,2337],{},"perPage",[496,2339,2305],{}," values and repeated cursors.",[465,2342,2343],{},[748,2344,1014],{},[731,2346,2347],{"title":1014},[735,2348,2351],{"className":2349,"code":2350,"filename":740,"language":741,"meta":742},[738],"for await (const job of client.bulk.listAll({ type: \"enrich_persons\" })) {\n  console.log(job.id, job.status);\n}\n",[496,2352,2350],{"__ignoreMap":742},[719,2354,2356],{"id":2355},"related-guides","Related guides",[465,2358,2359,637,2361,2363,2364,717],{},[502,2360,376],{"href":375},[502,2362,385],{"href":384},". Return to the ",[502,2365,2366],{"href":331},"TypeScript SDK overview",[719,2368,2370],{"id":2369},"faq","FAQ",[2372,2373,2375],"h3",{"id":2374},"how-do-i-start-a-bulk-enrichment-job-in-typescript","How do I start a Bulk enrichment job in TypeScript?",[465,2377,2378,2379,2381,2382,2384,2385,2387],{},"Call ",[496,2380,498],{}," with 1 to 25,000 items. Save ",[496,2383,1302],{}," and use ",[496,2386,596],{}," to follow progress.",[2372,2389,2391],{"id":2390},"does-clientbulkwait-throw-when-a-bulk-job-fails","Does client.bulk.wait throw when a Bulk job fails?",[465,2393,2394,2396,2397,637,2399,637,2401,861,2403,2405,2406,2409,2410,717],{},[496,2395,596],{}," returns jobs in ",[496,2398,1112],{},[496,2400,1115],{},[496,2402,1118],{},[496,2404,1109],{}," states. Check ",[496,2407,2408],{},"result.data.status",". A failed state does not raise ",[496,2411,2132],{},[2372,2413,2415],{"id":2414},"when-can-i-download-bulk-results","When can I download Bulk results?",[465,2417,2378,2418,2420,2421,2423,2424,717],{},[496,2419,541],{}," when ",[496,2422,1400],{}," is set, after the job completes or is cancelled. The method returns CSV text, or NDJSON with ",[496,2425,1518],{},[2372,2427,2429],{"id":2428},"can-i-read-bulk-results-before-the-job-ends-in-typescript","Can I read Bulk results before the job ends in TypeScript?",[465,2431,2432,2433,2435,2436,2438],{},"Yes, from SDK 0.3.0. ",[496,2434,569],{}," yields each result as soon as it is ready, in the order sent, and ",[496,2437,555],{}," reads one page at a time with a cursor.",{"title":742,"searchDepth":2440,"depth":2440,"links":2441},3,[2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452],{"id":721,"depth":298,"text":722},{"id":126,"depth":298,"text":1025},{"id":1250,"depth":298,"text":1251},{"id":1393,"depth":298,"text":1394},{"id":1566,"depth":298,"text":1567},{"id":1775,"depth":298,"text":1776},{"id":1921,"depth":298,"text":1922},{"id":1257,"depth":298,"text":2027},{"id":2171,"depth":298,"text":2172},{"id":2355,"depth":298,"text":2356},{"id":2369,"depth":298,"text":2370,"children":2453},[2454,2455,2456,2457],{"id":2374,"depth":2440,"text":2375},{"id":2390,"depth":2440,"text":2391},{"id":2414,"depth":2440,"text":2415},{"id":2428,"depth":2440,"text":2429},"Use client.bulk in the Reverse Contact TypeScript SDK to enrich people in bulk, wait for the job, and read results as they come or as CSV or NDJSON.","md","2026-11-04",{},true,"\u002Fdocs\u002Fsdk\u002Fjavascript,\u002Fdocs\u002Fsdk\u002Fjavascript\u002Flists-and-bulk,\u002Fdocs\u002Fsdk\u002Fjavascript\u002Ftimeouts",{"title":340,"description":2458},"sdk\u002Fjavascript\u002Fbulk","jgGF33JP-0G5SL9kA5GkPkPzERLyOWFg9bLD4ZkE6ak",1793830204776]