[{"data":1,"prerenderedAt":991},["ShallowReactive",2],{"docs-navigation":3,"docs-\u002Fguides\u002Fbuild-a-list":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":251,"audience":10,"badgeColor":10,"badgeLabel":10,"body":461,"category":247,"description":982,"endpointId":10,"extension":983,"family":252,"lastVerified":984,"links":10,"meta":985,"navigation":986,"order":24,"path":250,"relatedArticles":987,"requiresFlag":10,"seo":988,"status":11,"stem":989,"subfamily":10,"__hash__":990},"docs\u002Fguides\u002Fbuild-a-list.md",{"type":462,"value":463,"toc":961},"minimark",[464,473,478,506,510,515,530,549,553,562,581,588,594,598,607,649,653,662,683,687,696,703,707,717,752,766,770,781,790,806,810,843,847,851,854,858,873,877,887,891,921,925],[465,466,467,468,472],"p",{},"This guide turns three contacts of a CRM into a ",[469,470,471],"a",{"href":290},"List",", finds their work emails, and reads them back. It takes five calls, all free: you pay only for the members the List adds and the emails it finds, 11 credits at most here.",[474,475,477],"h2",{"id":476},"before-you-start","Before you start",[479,480,481,503],"ul",{},[482,483,484,485,489,490,496,497,499,500,502],"li",{},"An API key in ",[486,487,488],"code",{},"RC_API_KEY",", from ",[469,491,495],{"href":492,"rel":493},"https:\u002F\u002Fapp.reversecontact.com\u002Fapi-keys",[494],"nofollow","API Keys",". A key with full access works. A scoped key needs ",[486,498,178],{},", plus Person Enrichment for the people the List adds and Contact for the emails it buys (see ",[469,501,246],{"href":245},").",[482,504,505],{},"A few credits. A free trial holds one List of up to 50 members, enough for this guide.",[474,507,509],{"id":508},"the-steps","The steps",[511,512,514],"h3",{"id":513},"_1-create-the-list","1. Create the List",[516,517,519],"code-group",{"title":518},"POST \u002Fv2\u002Flists",[520,521,528],"pre",{"className":522,"code":524,"filename":525,"language":526,"meta":527},[523],"language-bash","curl -X POST https:\u002F\u002Fapi.reversecontact.com\u002Fv2\u002Flists \\\n  -H \"Authorization: Bearer $RC_API_KEY\" \\\n  -H \"Content-Type: application\u002Fjson\" \\\n  -H \"Idempotency-Key: q4-sales-leaders\" \\\n  -d '{\"name\": \"Q4 sales leaders\", \"entity\": \"persons\"}'\n","cURL","bash","",[486,529,524],{"__ignoreMap":527},[465,531,532,533,536,537,540,541,544,545,548],{},"The response gives the List in ",[486,534,535],{},"data",": keep ",[486,538,539],{},"data.id",", the List id the next calls name in their path (",[486,542,543],{},"$LIST_ID"," in the commands below). The ",[486,546,547],{},"Idempotency-Key"," makes the call safe to retry: sent again, it returns the same List instead of a second one.",[511,550,552],{"id":551},"_2-import-the-people-and-buy-their-emails","2. Import the people and buy their emails",[516,554,556],{"title":555},"POST \u002Fv2\u002Flists\u002F:listId\u002Fintake\u002Fsignals",[520,557,560],{"className":558,"code":559,"filename":525,"language":526,"meta":527},[523],"curl -X POST https:\u002F\u002Fapi.reversecontact.com\u002Fv2\u002Flists\u002F$LIST_ID\u002Fintake\u002Fsignals \\\n  -H \"Authorization: Bearer $RC_API_KEY\" \\\n  -H \"Content-Type: application\u002Fjson\" \\\n  -d '{\n    \"operationId\": \"c4d5e6f7-8a9b-4c0d-9e1f-2a3b4c5d6e7f\",\n    \"signals\": [\n      { \"linkedinUrl\": \"https:\u002F\u002Fwww.social.com\u002Fin\u002Fjanedoe\", \"externalId\": \"crm-001\" },\n      { \"email\": \"john.smith@acme.com\", \"externalId\": \"crm-002\" },\n      { \"firstName\": \"Alex\", \"lastName\": \"Martin\", \"companyDomain\": \"acme.com\", \"externalId\": \"crm-003\" }\n    ],\n    \"families\": [\"contact_email\"],\n    \"maxCredits\": 50\n  }'\n",[486,561,559],{"__ignoreMap":527},[465,563,564,565,568,569,572,573,576,577,580],{},"Each Signal says what you know about one person, and ",[486,566,567],{},"externalId"," carries the id of the line in your CRM. ",[486,570,571],{},"families"," asks for a work email for each member that has none yet. The import answers at once with ",[486,574,575],{},"data.operationId"," and ",[486,578,579],{},"data.pollUrl",", and runs in the background.",[465,582,583,584,587],{},"The worst case of this import is 14 credits: 1 for Jane Doe found from her Social profile URL, 2 each for John Smith found from his email and Alex Martin found from his name, and 3 per email found. John Smith's email is the one you sent: it becomes his work email for free and is not looked up, so this import charges at most 11 credits. A line no one matches and an email not found cost nothing. Up to 25 credits of worst case, ",[486,585,586],{},"maxCredits"," is optional: without it, the import may spend up to its worst case. Send it anyway to set your own cap.",[465,589,590,593],{},[486,591,592],{},"operationId"," is a UUID you choose. Keep it: sending the same import again with it never charges twice, and it is how you resume an import that paused.",[511,595,597],{"id":596},"_3-follow-the-import","3. Follow the import",[516,599,601],{"title":600},"GET \u002Fv2\u002Flists\u002F:listId\u002Foperations\u002F:operationId\u002Fprogress",[520,602,605],{"className":603,"code":604,"filename":525,"language":526,"meta":527},[523],"curl \"https:\u002F\u002Fapi.reversecontact.com\u002Fv2\u002Flists\u002F$LIST_ID\u002Foperations\u002Fc4d5e6f7-8a9b-4c0d-9e1f-2a3b4c5d6e7f\u002Fprogress?wait=20\" \\\n  -H \"Authorization: Bearer $RC_API_KEY\"\n",[486,606,604],{"__ignoreMap":527},[465,608,609,610,613,614,616,617,620,621,624,625,628,629,632,633,636,637,640,641,644,645,648],{},"This route is the ",[486,611,612],{},"pollUrl"," the import answered with, built from the List id and your ",[486,615,592],{},". With ",[486,618,619],{},"wait=20",", each read waits up to 20 seconds for the import to complete, pause or stop, and otherwise answers with the import still running. Read it again while ",[486,622,623],{},"clientAction"," is ",[486,626,627],{},"poll",". Then ",[486,630,631],{},"done"," with ",[486,634,635],{},"status: \"completed\""," means the members and their emails are in the List, and ",[486,638,639],{},"resume"," means it paused: ",[486,642,643],{},"nextStep"," says what to do. These reads are free and never counted against your rate limits. Instead of reading, you can pass a public HTTPS ",[486,646,647],{},"webhookUrl"," with the import: it is told each time the operation stops moving.",[511,650,652],{"id":651},"_4-read-the-members-and-their-emails","4. Read the members and their emails",[516,654,656],{"title":655},"GET \u002Fv2\u002Flists\u002F:listId\u002Fmembers",[520,657,660],{"className":658,"code":659,"filename":525,"language":526,"meta":527},[523],"curl \"https:\u002F\u002Fapi.reversecontact.com\u002Fv2\u002Flists\u002F$LIST_ID\u002Fmembers?kind=members\" \\\n  -H \"Authorization: Bearer $RC_API_KEY\"\n\ncurl \"https:\u002F\u002Fapi.reversecontact.com\u002Fv2\u002Flists\u002F$LIST_ID\u002Fmembers?externalId=crm-002\" \\\n  -H \"Authorization: Bearer $RC_API_KEY\"\n",[486,661,659],{"__ignoreMap":527},[465,663,664,665,668,669,671,672,675,676,679,680,682],{},"Each member carries its ",[486,666,667],{},"fields"," (name, headline, company, location), your ",[486,670,567],{},", and ",[486,673,674],{},"families.contactEmail"," with the email found, or for John Smith the email you sent (",[486,677,678],{},"source: \"signal:paste\"","). The second call finds the member of a CRM line by its ",[486,681,567],{},", without storing any id of ours.",[511,684,686],{"id":685},"_5-or-download-the-list-as-csv","5. Or download the List as CSV",[516,688,690],{"title":689},"GET \u002Fv2\u002Flists\u002F:listId\u002Fexport",[520,691,694],{"className":692,"code":693,"filename":525,"language":526,"meta":527},[523],"curl -o q4-sales-leaders.csv \"https:\u002F\u002Fapi.reversecontact.com\u002Fv2\u002Flists\u002F$LIST_ID\u002Fexport\" \\\n  -H \"Authorization: Bearer $RC_API_KEY\"\n",[486,695,693],{"__ignoreMap":527},[465,697,698,699,702],{},"The file has one row per line of the List, members and Pending Intake, in the order they were added, with the data the List holds. Exporting is free and never looks anyone up again. A workspace exports one List at a time: run your exports one after the other, a second one at the same time returns ",[486,700,701],{},"429 LIST_EXPORT_IN_PROGRESS",".",[474,704,706],{"id":705},"the-complete-pipeline","The complete pipeline",[465,708,709,710,576,713,716],{},"The same five steps in one script, with plain HTTP calls or with the ",[469,711,712],{"href":331},"TypeScript",[469,714,715],{"href":394},"Python"," SDKs.",[516,718,720,729,737,746],{"title":719},"Create, import, follow, read",[520,721,727],{"className":722,"code":724,"filename":725,"language":726,"meta":527},[723],"language-javascript","const BASE = \"https:\u002F\u002Fapi.reversecontact.com\";\nconst headers = {\n  \"Authorization\": `Bearer ${process.env.RC_API_KEY}`,\n  \"Content-Type\": \"application\u002Fjson\"\n};\n\n\u002F\u002F 1. Create the List: the Idempotency-Key makes a retry safe\nconst list = await fetch(`${BASE}\u002Fv2\u002Flists`, {\n  method: \"POST\",\n  headers: { ...headers, \"Idempotency-Key\": \"q4-sales-leaders\" },\n  body: JSON.stringify({ name: \"Q4 sales leaders\", entity: \"persons\" })\n}).then((res) => res.json());\nconst listId = list.data.id;\n\n\u002F\u002F 2. Import the people and buy their emails, 50 credits at most\nconst queued = await fetch(`${BASE}\u002Fv2\u002Flists\u002F${listId}\u002Fintake\u002Fsignals`, {\n  method: \"POST\",\n  headers,\n  body: JSON.stringify({\n    operationId: crypto.randomUUID(), \u002F\u002F keep it to resume the import\n    signals: [\n      { linkedinUrl: \"https:\u002F\u002Fwww.social.com\u002Fin\u002Fjanedoe\", externalId: \"crm-001\" },\n      { email: \"john.smith@acme.com\", externalId: \"crm-002\" },\n      { firstName: \"Alex\", lastName: \"Martin\", companyDomain: \"acme.com\", externalId: \"crm-003\" }\n    ],\n    families: [\"contact_email\"],\n    maxCredits: 50\n  })\n}).then((res) => res.json());\n\n\u002F\u002F 3. Follow the import until it stops moving\nlet operation;\ndo {\n  const res = await fetch(`${BASE}${queued.data.pollUrl}?wait=20`, { headers });\n  operation = (await res.json()).data;\n} while (operation.clientAction === \"poll\");\nif (operation.status !== \"completed\") throw new Error(operation.nextStep?.message ?? `Import ${operation.status}`);\n\n\u002F\u002F 4. Read the members and their emails\nconst members = await fetch(`${BASE}\u002Fv2\u002Flists\u002F${listId}\u002Fmembers?kind=members`, { headers }).then((res) => res.json());\nfor (const member of members.data.items) {\n  console.log(member.externalId, member.fields.name, member.families.contactEmail?.value ?? \"no email\");\n}\n","JavaScript","javascript",[486,728,724],{"__ignoreMap":527},[520,730,735],{"className":731,"code":733,"filename":715,"language":734,"meta":527},[732],"language-python","import os\nimport uuid\nimport requests\n\nBASE = \"https:\u002F\u002Fapi.reversecontact.com\"\nheaders = {\n    \"Authorization\": f\"Bearer {os.environ['RC_API_KEY']}\",\n    \"Content-Type\": \"application\u002Fjson\",\n}\n\n# 1. Create the List: the Idempotency-Key makes a retry safe\nlist_ = requests.post(\n    f\"{BASE}\u002Fv2\u002Flists\",\n    headers={**headers, \"Idempotency-Key\": \"q4-sales-leaders\"},\n    json={\"name\": \"Q4 sales leaders\", \"entity\": \"persons\"},\n).json()\nlist_id = list_[\"data\"][\"id\"]\n\n# 2. Import the people and buy their emails, 50 credits at most\nqueued = requests.post(\n    f\"{BASE}\u002Fv2\u002Flists\u002F{list_id}\u002Fintake\u002Fsignals\",\n    headers=headers,\n    json={\n        \"operationId\": str(uuid.uuid4()),  # keep it to resume the import\n        \"signals\": [\n            {\"linkedinUrl\": \"https:\u002F\u002Fwww.social.com\u002Fin\u002Fjanedoe\", \"externalId\": \"crm-001\"},\n            {\"email\": \"john.smith@acme.com\", \"externalId\": \"crm-002\"},\n            {\"firstName\": \"Alex\", \"lastName\": \"Martin\", \"companyDomain\": \"acme.com\", \"externalId\": \"crm-003\"},\n        ],\n        \"families\": [\"contact_email\"],\n        \"maxCredits\": 50,\n    },\n).json()\n\n# 3. Follow the import until it stops moving\nwhile True:\n    operation = requests.get(\n        f\"{BASE}{queued['data']['pollUrl']}\", headers=headers, params={\"wait\": 20}, timeout=30\n    ).json()[\"data\"]\n    if operation[\"clientAction\"] != \"poll\":\n        break\nif operation[\"status\"] != \"completed\":\n    raise RuntimeError((operation.get(\"nextStep\") or {}).get(\"message\") or f\"Import {operation['status']}\")\n\n# 4. Read the members and their emails\nmembers = requests.get(f\"{BASE}\u002Fv2\u002Flists\u002F{list_id}\u002Fmembers\", headers=headers, params={\"kind\": \"members\"}).json()\nfor member in members[\"data\"][\"items\"]:\n    email = (member[\"families\"].get(\"contactEmail\") or {}).get(\"value\", \"no email\")\n    print(member.get(\"externalId\"), member[\"fields\"].get(\"name\"), email)\n","python",[486,736,733],{"__ignoreMap":527},[520,738,744],{"className":739,"code":741,"filename":742,"language":743,"meta":527},[740],"language-typescript","import ReverseContact from \"@reverse-contact\u002Fsdk\";\n\nconst client = new ReverseContact({ apiKey: process.env.RC_API_KEY });\n\n\u002F\u002F 1. Create the List: the SDK sends an Idempotency-Key and reuses it on its retries\nconst list = await client.lists.create({ name: \"Q4 sales leaders\", entity: \"persons\" });\nconst listId = list.data.id;\n\n\u002F\u002F 2. Import the people and buy their emails, 50 credits at most\nconst queued = await client.lists.importSignals(listId, {\n  signals: [\n    { linkedinUrl: \"https:\u002F\u002Fwww.social.com\u002Fin\u002Fjanedoe\", externalId: \"crm-001\" },\n    { email: \"john.smith@acme.com\", externalId: \"crm-002\" },\n    { firstName: \"Alex\", lastName: \"Martin\", companyDomain: \"acme.com\", externalId: \"crm-003\" }\n  ],\n  families: [\"contact_email\"],\n  maxCredits: 50\n});\n\n\u002F\u002F 3. Follow the import until it stops moving\nconst operation = await client.lists.operations.wait(listId, queued.data.operationId);\nconsole.log(operation.data.status, operation.data.clientAction);\n\n\u002F\u002F 4. Read the members and their emails\nfor await (const member of client.lists.members.listAll(listId, { kind: \"members\" })) {\n  console.log(member);\n}\n","TypeScript SDK","typescript",[486,745,741],{"__ignoreMap":527},[520,747,750],{"className":748,"code":749,"filename":395,"language":734,"meta":527},[732],"import os\n\nfrom reversecontact import ReverseContact\n\nwith ReverseContact(api_key=os.environ[\"RC_API_KEY\"]) as client:\n    # 1. Create the List: the SDK sends an Idempotency-Key and reuses it on its retries\n    list_id = client.lists.create(name=\"Q4 sales leaders\", entity=\"persons\").data.id\n\n    # 2. Import the people and buy their emails, 50 credits at most\n    queued = client.lists.import_signals(\n        list_id,\n        signals=[\n            {\"linkedinUrl\": \"https:\u002F\u002Fwww.social.com\u002Fin\u002Fjanedoe\", \"externalId\": \"crm-001\"},\n            {\"email\": \"john.smith@acme.com\", \"externalId\": \"crm-002\"},\n            {\"firstName\": \"Alex\", \"lastName\": \"Martin\", \"companyDomain\": \"acme.com\", \"externalId\": \"crm-003\"},\n        ],\n        families=[\"contact_email\"],\n        max_credits=50,\n    )\n\n    # 3. Follow the import until it stops moving\n    operation = client.lists.operations.wait(list_id, queued.data.operation_id)\n    print(operation.data.status, operation.data.client_action)\n\n    # 4. Read the members and their emails\n    for member in client.lists.members.list_all(list_id, kind=\"members\"):\n        print(member)\n",[486,751,749],{"__ignoreMap":527},[465,753,754,755,758,759,762,763,765],{},"A List holds more than one page of members: send ",[486,756,757],{},"nextCursor"," back as ",[486,760,761],{},"cursor"," to read the next one (see ",[469,764,150],{"href":149},"). The SDK iterators read every page for you.",[474,767,769],{"id":768},"import-a-csv-file-instead","Import a CSV file instead",[465,771,772,773,776,777,780],{},"Send the public URL of a CSV file or a Google Sheet in ",[486,774,775],{},"sourceUrl",", in place of ",[486,778,779],{},"signals",": up to 25,000 rows and 25 MiB. Columns are matched from their headers (Social URL, email, first name, last name, company, domain), and each row becomes a Signal.",[516,782,784],{"title":783},"Import a CSV file",[520,785,788],{"className":786,"code":787,"filename":525,"language":526,"meta":527},[523],"curl -X POST https:\u002F\u002Fapi.reversecontact.com\u002Fv2\u002Flists\u002F$LIST_ID\u002Fintake\u002Fsignals \\\n  -H \"Authorization: Bearer $RC_API_KEY\" \\\n  -H \"Content-Type: application\u002Fjson\" \\\n  -d '{\n    \"operationId\": \"7e8f9a0b-1c2d-4e3f-8a4b-5c6d7e8f9a0b\",\n    \"sourceUrl\": \"https:\u002F\u002Fexample.com\u002Fexports\u002Fq4-leads.csv\",\n    \"families\": [\"contact_email\"],\n    \"maxCredits\": 2000\n  }'\n",[486,789,787],{"__ignoreMap":527},[465,791,792,793,796,797,800,801,803,804,702],{},"The answer adds ",[486,794,795],{},"sourceRows",", the data rows read from the file, and ",[486,798,799],{},"mapping",", the header each field was read from: check it before you buy anything more. A file that is not public can be sent as ",[486,802,779],{}," instead, one object per row, with the id of the row in ",[486,805,567],{},[474,807,809],{"id":808},"what-to-do-next","What to do next",[479,811,812,819,824,836],{},[482,813,814,815,502],{},"Add the new leads of next week to the same List: a person already on it costs nothing (see ",[469,816,818],{"href":817},"\u002Fguides\u002Flists#grow-a-list-and-buy-data-over-time","Grow a List and buy data over time",[482,820,821,822,702],{},"Buy phone numbers or full profiles later, for the members that lack them, with the same import and other ",[486,823,571],{},[482,825,826,827,831,832,702],{},"See what was not found in ",[469,828,830],{"href":829},"\u002Fguides\u002Flists#pending-intake","Pending Intake",", and how an import pauses and resumes in ",[469,833,835],{"href":834},"\u002Fguides\u002Flists#control-spend-maxcredits-pauses-and-resume","Control spend",[482,837,838,839,842],{},"Hand the work to an AI agent: the ",[469,840,841],{"href":293},"MCP server"," runs the same steps on the same Lists.",[474,844,846],{"id":845},"faq","FAQ",[511,848,850],{"id":849},"how-much-does-it-cost-to-build-a-list-of-crm-contacts-with-their-work-emails","How much does it cost to build a List of CRM contacts with their work emails?",[465,852,853],{},"Creating, following, reading and exporting a List are free. Each new person costs 1 credit from a Social profile URL and 2 from an email or a name, and each work email found costs 3 credits. The email of a contact sent by email becomes its work email for free. For the three contacts of this guide, the import costs at most 11 credits, and a contact no one matches or an email not found costs nothing.",[511,855,857],{"id":856},"can-i-send-the-same-list-import-twice-without-paying-twice","Can I send the same List import twice without paying twice?",[465,859,860,861,863,864,866,867,869,870,872],{},"Yes. Send the import to ",[486,862,555],{}," with the same ",[486,865,592],{},": the API returns the operation it already created and never charges anything twice. The same ",[486,868,592],{}," also resumes an import that paused at its ",[486,871,586],{}," or at a low balance.",[511,874,876],{"id":875},"how-do-i-find-the-member-of-a-crm-contact-in-a-list","How do I find the member of a CRM contact in a List?",[465,878,879,880,882,883,886],{},"Send the id of the CRM contact as ",[486,881,567],{}," on its Signal. The member keeps it, and ",[486,884,885],{},"GET \u002Fv2\u002Flists\u002F:listId\u002Fmembers?externalId=crm-001"," returns that member, so you never have to store a Reverse Contact id.",[511,888,890],{"id":889},"how-do-i-know-when-a-list-import-is-finished","How do I know when a List import is finished?",[465,892,893,894,896,897,899,900,902,903,905,906,908,909,911,912,914,915,917,918,920],{},"Read ",[486,895,600],{},", the ",[486,898,612],{}," of the import, with ",[486,901,619],{}," until ",[486,904,623],{}," is no longer ",[486,907,627],{},": ",[486,910,631],{}," means it ended, ",[486,913,639],{}," means it paused and ",[486,916,643],{}," says what to do. These reads are free and not counted against your rate limits. You can also pass a public HTTPS ",[486,919,647],{}," with the import, which is told each time the operation stops moving.",[511,922,924],{"id":923},"can-i-build-a-list-with-the-reverse-contact-sdk","Can I build a List with the Reverse Contact SDK?",[465,926,927,928,931,932,935,936,908,938,941,942,945,946,949,950,953,954,945,957,960],{},"Yes. From version 0.2.0, the TypeScript SDK ",[486,929,930],{},"@reverse-contact\u002Fsdk"," and the Python SDK ",[486,933,934],{},"reversecontact"," manage Lists with ",[486,937,373],{},[486,939,940],{},"create",", ",[486,943,944],{},"importSignals"," (",[486,947,948],{},"import_signals"," in Python), ",[486,951,952],{},"operations.wait"," to follow an import, and ",[486,955,956],{},"members.listAll",[486,958,959],{},"members.list_all",") to read every member.",{"title":527,"searchDepth":962,"depth":962,"links":963},3,[964,965,972,973,974,975],{"id":476,"depth":298,"text":477},{"id":508,"depth":298,"text":509,"children":966},[967,968,969,970,971],{"id":513,"depth":962,"text":514},{"id":551,"depth":962,"text":552},{"id":596,"depth":962,"text":597},{"id":651,"depth":962,"text":652},{"id":685,"depth":962,"text":686},{"id":705,"depth":298,"text":706},{"id":768,"depth":298,"text":769},{"id":808,"depth":298,"text":809},{"id":845,"depth":298,"text":846,"children":976},[977,978,979,980,981],{"id":849,"depth":962,"text":850},{"id":856,"depth":962,"text":857},{"id":875,"depth":962,"text":876},{"id":889,"depth":962,"text":890},{"id":923,"depth":962,"text":924},"Turn CRM contacts into a List, buy their work emails under a credit cap, follow the import and read the result, with cURL, JavaScript, Python and the SDKs.","md","2026-11-04",{},true,"\u002Fdocs\u002Fguides\u002Flists,\u002Fdocs\u002Fendpoints\u002Flist-intake-signals,\u002Fdocs\u002Fendpoints\u002Flist-operation,\u002Fdocs\u002Fsdk\u002Fjavascript",{"title":251,"description":982},"guides\u002Fbuild-a-list","vU5P8tHE3etUrg2kjQfk6VPpAK6mj4xVZVm8OruiCEw",1793830203617]