One row per person who engaged a competitor: the person, their signals, and their account flattened alongside, as the webhook sends it. Takes the same filters as /accounts. Best fit first unless sorted.
GET
/
contacts
List contacts
curl --request GET \ --url https://api.letterdrop.com/api/v2/contacts \ --header 'api-key: <api-key>'
Stale alone = only stale accounts; Recent and Historic together = exclude stale accounts. Other combinations are rejected: Recent and Historic cannot be filtered apart yet.
true = the account was already in your CRM when we found it, false = net new (it was not). An account added to the CRM later can have crm_account_url set and still be net new.
Comma-separated Contact row fields to return; omit for all. Reach into a list with a dot (contacts.contact_name, contacts.signals.signal_date). account_id and signal_id always ship.
Filter on any Contact row key GET /fields lists: filter[]= (repeat for any of several values) or filter[][]= with eq, ne, contains, gt, gte, lt, lte, exists. Keys inside a list (contacts.contact_job_title, signals.signal_freshness) match when any element matches. Combines with the dedicated filters; all of them must hold.
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"Letterdrop API","description":"Developer docs for the Letterdrop API: read your workspace's Competitor Monitoring data.","colors":{"primary":"#4F46E5","light":"#818CF8","dark":"#4338CA"},"favicon":"https://mintcdn.com/parthi-letterdrop-com/fiv0JkKhdKAQLBA9/favicon.svg?fit=max\u0026auto=format\u0026n=fiv0JkKhdKAQLBA9\u0026q=85\u0026s=3c525d617e3233655a8f92058d44b498","api":{"openapi":"openapi.json","playground":{"display":"interactive"},"examples":{"languages":["curl","javascript","python"]}},"navbar":{"links":[{"href":"https://letterdrop.com","label":"Letterdrop"}],"primary":{"type":"button","label":"Get an API key","href":"https://app.letterdrop.com"}},"footer":{"socials":{"website":"https://letterdrop.com"}},"styling":{"latex":false},"navigation":{"global":{"anchors":[{"anchor":"OpenAPI spec","icon":"file-code","href":"https://api.letterdrop.com/api/v2/openapi.json"},{"anchor":"llms.txt","icon":"robot","href":"https://api.letterdrop.com/api/v2/llms.txt"}]},"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"parthi-letterdrop-com","hasAudioNarration":false,"actualSubdomain":"parthi-letterdrop-com","customDomains":["docs.letterdrop.com"],"gitSource":{"type":"github","owner":"randomwalklabsco","repo":"letterdrop-docs","deployBranch":"main","contentDirectory":"","isPrivate":true,"mountPath":"","label":"","_id":"6aedfc16b3ef28751d107231"},"entitlements":{"AI_CHAT":{"status":"ENABLED"},"WEB_MCP":{"status":"ENABLED"},"NARRATION":{"status":"ENABLED"}},"buildId":"6af31a8ebf3bef8b862409ce","clientVersion":"0.0.4102","searchFilterCounts":[{"language":"default","tag":"API reference","count":18},{"language":"default","tag":"Guides","count":9},{"language":"default","tag":"Analytics","count":8},{"language":"default","tag":"Accounts","count":7},{"language":"default","tag":"Get started","count":4},{"language":"default","tag":"Using the API","count":4},{"language":"default","tag":"Webhooks","count":1},{"language":"default","tag":"Contacts","count":1},{"language":"default","tag":"Filters","count":1},{"language":"default","tag":"API Reference","count":1}]},"assistantConfig":{"enableAskAiButton":false,"enableStarterQuestions":false,"enableContextualStarterQuestions":false,"enableAskAiSearchBar":true},"basePath":"","hasChatPermissions":true,"hasWebMcpPermissions":true,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-rbac-roles","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"rbac-expansion","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"full-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-dual-write","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"approve-review-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-metadata","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"sso-setup-deadline-banner","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-serve","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"live-agents","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":false},"customCss":[],"page":{"pagePath":"api-reference/contacts/list-contacts","slug":"/api-reference/contacts/list-contacts","pageMetadata":{"title":"List contacts","description":"One row per person who engaged a competitor: the person, their signals, and their account flattened alongside, as the webhook sends it. Takes the same filters as /accounts. Best fit first unless sorted.","deprecated":null,"version":null,"openapi":"/openapi.json get /contacts","href":"/api-reference/contacts/list-contacts","autogeneratedByOpenApi":true},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsx(_components.p, {\n children: \"One row per person who engaged a competitor: the person, their signals, and their account flattened alongside, as the webhook sends it. Takes the same filters as /accounts. Best fit first unless sorted.\"\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){return _jsx(_Fragment,{})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"List contacts","description":"One row per person who engaged a competitor: the person, their signals, and their account flattened alongside, as the webhook sends it. Takes the same filters as /accounts. Best fit first unless sorted.","deprecated":null,"version":null,"openapi":"/openapi.json get /contacts","href":"/api-reference/contacts/list-contacts","autogeneratedByOpenApi":true}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[],"codeExamples":{}},"jsLinks":[],"openApiReferenceData":{"operation":{"operationId":"listContacts","summary":"List contacts","description":"One row per person who engaged a competitor: the person, their signals, and their account flattened alongside, as the webhook sends it. Takes the same filters as /accounts. Best fit first unless sorted.","x-example-request":{"query":{"account_priority":["High"],"fields":"contact_name,contact_job_title,company_name,signals.signal_date","page_size":100}},"tags":["Contacts"],"security":["b08a50af-8c4f-4dd6-bde4-c5e37458810a","cbc6a301-f10f-46cf-9fbd-94f1d213407a"],"parameters":["696b0c0b-1ebc-4c34-8d7b-f575981edec3","57c7293f-bd14-4b88-aa6e-cfe9aaa9a2e3","7a43c0ea-91c4-43ef-885b-964b0614f1f3","5e9a32d3-12aa-4493-94ec-7509ef7915e4","a07be62b-7766-4157-bd9e-532aea513116","f1e52104-306b-4269-892f-5cc3b1d66741","dfa45d67-8754-4b8a-8b7a-1d9e839b0854","b7c9c8c0-f997-4f4a-bfb9-c31fc44388a7","0bff22d4-b686-40a4-8581-7806e237887c","c87d8097-c102-4e42-8b77-ee173aff1958","d6d7eb22-a6c9-4e46-86ad-0abe86adc849","b1be313f-c9ae-4bff-9221-15f7d93e3a4a","9b0e3eec-7672-4c12-9cf7-eab3ba32b87d","fc1130e5-aad0-44dd-8b63-218986a73547","ef67fd5c-f032-4a10-a7f7-73249262e721","f810d1b0-e1ed-48e3-bb3f-0c7970ddd955","3db84aa7-41e3-4ae3-a967-8c81f94b6665","42c75524-02f8-4a67-9e09-40e6546fb19e","85af9b74-08ae-4f8e-9f28-569715416390","465350b8-2a28-4eed-ad85-698cb7439cce","6ad011c2-2d90-4caa-9f76-26b59cdfe233","00e674c7-9415-4a70-8d71-48b7fe351b35","eb265506-84c1-4d33-a2f9-9391e18826c9","0a05eeda-388b-400f-97ac-30da5d457641","81f8a20b-17d7-4d7e-afaf-99ed07d7439f","146d2869-fbb2-4043-8b4c-5045f5879ce5","37a8b58b-4c8d-47bd-b975-7d87c0407563","f88289b7-2f2e-4544-9d54-616fcad957e1","3db4e1a1-1444-4a3e-ad8c-d7d2f3538273","a0058e6f-cede-4550-84c1-2ed1f3308957","915579a2-95b8-4d03-a37b-6829941f48b7","f1dfb8bf-8a67-4d58-b07b-a0d9657504fe","28e7e8b8-7067-4b50-b5fc-ab9a1dab712b","8c7d8ed2-44aa-4fa7-9e87-1fe2d7b5d9ca"],"responses":{"200":"87b62214-2020-4b5d-b236-210449010b7d","400":"89aef922-a8b6-44df-a4ab-9a355c4cda53","401":"1628861e-b971-45c9-bbd5-19a1f65b73e9","403":"365ca819-351b-4dc9-8013-d06e5b10672b","410":"49bd2e1e-30a7-4923-ad5c-6bd928c4d341","422":"194a476c-b91b-4a61-b8f8-334458ca7188","429":"b6294734-3a72-4aef-9893-41052aca2421","500":"275635b5-3ad8-4966-99d9-e1c5405a135d"},"method":"get","type":"path","servers":["a83e41f0-aef7-41c9-a38c-38cdd354134b"],"path":"/contacts","baseUrlOptions":["https://api.letterdrop.com/api/v2"],"title":"List contacts","codeSamples":[],"requestExampleLanguages":["bash","javascript","python"],"requiredOnlyExamples":false,"requestExampleType":"generated","responseExampleType":"generated"},"dependencies":{"parameters":{"696b0c0b-1ebc-4c34-8d7b-f575981edec3":{"name":"search","in":"query","required":false,"description":"Free-text match on company and contact names.","schema":{"type":"string","maxLength":200,"isRequired":false,"description":"Free-text match on company and contact names.","uniqueKey":"","typeLabel":"string"},"x-filter":true},"57c7293f-bd14-4b88-aa6e-cfe9aaa9a2e3":{"name":"account_competitors","in":"query","required":false,"description":"Accounts with signals for any of these competitors (names from GET /fields?object=account).","style":"form","explode":true,"schema":{"minItems":1,"maxItems":200,"type":"array","items":{"type":"string","minLength":1,"maxLength":500,"uniqueKey":"items.[INDEX]","typeLabel":"string"},"isRequired":false,"description":"Accounts with signals for any of these competitors (names from GET /fields?object=account).","uniqueKey":"","typeLabel":"string[]"},"x-filter":true},"7a43c0ea-91c4-43ef-885b-964b0614f1f3":{"name":"account_competitor_cycle_stage","in":"query","required":false,"description":"Inferred competitor buying-cycle stage.","style":"form","explode":true,"schema":{"minItems":1,"maxItems":200,"type":"array","items":{"type":"string","enum":["Aware of Competitor","Historical","Prospecting","Early Stage","Late Stage"],"uniqueKey":"items.[INDEX]","typeLabel":"enum\u003cstring>"},"isRequired":false,"description":"Inferred competitor buying-cycle stage.","uniqueKey":"","typeLabel":"enum\u003cstring>[]"},"x-filter":true},"5e9a32d3-12aa-4493-94ec-7509ef7915e4":{"name":"account_priority","in":"query","required":false,"description":"Priority.","style":"form","explode":true,"schema":{"minItems":1,"maxItems":200,"type":"array","items":{"type":"string","enum":["High","Medium","Nurture"],"uniqueKey":"items.[INDEX]","typeLabel":"enum\u003cstring>"},"isRequired":false,"description":"Priority.","uniqueKey":"","typeLabel":"enum\u003cstring>[]"},"x-filter":true},"a07be62b-7766-4157-bd9e-532aea513116":{"name":"account_icp_fit","in":"query","required":false,"description":"true = only ICP-fit accounts, false = only the rest.","schema":{"type":"string","enum":["true","false"],"isRequired":false,"description":"true = only ICP-fit accounts, false = only the rest.","uniqueKey":"","typeLabel":"enum\u003cstring>"},"x-filter":true},"f1e52104-306b-4269-892f-5cc3b1d66741":{"name":"account_signal_freshness","in":"query","required":false,"description":"Stale alone = only stale accounts; Recent and Historic together = exclude stale accounts. Other combinations are rejected: Recent and Historic cannot be filtered apart yet.","style":"form","explode":true,"schema":{"minItems":1,"maxItems":200,"type":"array","items":{"type":"string","enum":["Recent","Historic","Stale"],"uniqueKey":"items.[INDEX]","typeLabel":"enum\u003cstring>"},"isRequired":false,"description":"Stale alone = only stale accounts; Recent and Historic together = exclude stale accounts. Other combinations are rejected: Recent and Historic cannot be filtered apart yet.","uniqueKey":"","typeLabel":"enum\u003cstring>[]"},"x-filter":true},"dfa45d67-8754-4b8a-8b7a-1d9e839b0854":{"name":"latest_signal_within_days","in":"query","required":false,"description":"Accounts whose latest signal was within the last N days.","schema":{"type":"integer","minimum":1,"maximum":3650,"isRequired":false,"description":"Accounts whose latest signal was within the last N days.","uniqueKey":"","typeLabel":"integer"},"x-filter":true},"b7c9c8c0-f997-4f4a-bfb9-c31fc44388a7":{"name":"latest_signal_after","in":"query","required":false,"description":"Latest signal on or after this date.","schema":{"type":"string","isRequired":false,"description":"Latest signal on or after this date.","uniqueKey":"","typeLabel":"string"},"x-filter":true},"0bff22d4-b686-40a4-8581-7806e237887c":{"name":"latest_signal_before","in":"query","required":false,"description":"Latest signal on or before this date.","schema":{"type":"string","isRequired":false,"description":"Latest signal on or before this date.","uniqueKey":"","typeLabel":"string"},"x-filter":true},"c87d8097-c102-4e42-8b77-ee173aff1958":{"name":"company_size","in":"query","required":false,"description":"Employee bands, e.g. \"51-200\".","style":"form","explode":true,"schema":{"minItems":1,"maxItems":200,"type":"array","items":{"type":"string","minLength":1,"maxLength":500,"uniqueKey":"items.[INDEX]","typeLabel":"string"},"isRequired":false,"description":"Employee bands, e.g. \"51-200\".","uniqueKey":"","typeLabel":"string[]"},"x-filter":true},"d6d7eb22-a6c9-4e46-86ad-0abe86adc849":{"name":"company_hq_country","in":"query","required":false,"description":"Headquarters country, ISO 3166-1 alpha-2 (e.g. \"US\"); a country name (\"United States\") is accepted too.","style":"form","explode":true,"schema":{"minItems":1,"maxItems":200,"type":"array","items":{"type":"string","minLength":2,"maxLength":100,"uniqueKey":"items.[INDEX]","typeLabel":"string"},"isRequired":false,"description":"Headquarters country, ISO 3166-1 alpha-2 (e.g. \"US\"); a country name (\"United States\") is accepted too.","uniqueKey":"","typeLabel":"string[]"},"x-filter":true},"b1be313f-c9ae-4bff-9221-15f7d93e3a4a":{"name":"crm_has_account","in":"query","required":false,"description":"true = the account was already in your CRM when we found it, false = net new (it was not). An account added to the CRM later can have crm_account_url set and still be net new.","schema":{"type":"string","enum":["true","false"],"isRequired":false,"description":"true = the account was already in your CRM when we found it, false = net new (it was not). An account added to the CRM later can have crm_account_url set and still be net new.","uniqueKey":"","typeLabel":"enum\u003cstring>"},"x-filter":true},"9b0e3eec-7672-4c12-9cf7-eab3ba32b87d":{"name":"crm_is_customer","in":"query","required":false,"description":"true = your customers only, false = exclude them.","schema":{"type":"string","enum":["true","false"],"isRequired":false,"description":"true = your customers only, false = exclude them.","uniqueKey":"","typeLabel":"enum\u003cstring>"},"x-filter":true},"fc1130e5-aad0-44dd-8b63-218986a73547":{"name":"crm_has_opp","in":"query","required":false,"description":"false = accounts with no CRM opportunity. true is the same as listing every crm_latest_opp_stage.","schema":{"type":"string","enum":["true","false"],"isRequired":false,"description":"false = accounts with no CRM opportunity. true is the same as listing every crm_latest_opp_stage.","uniqueKey":"","typeLabel":"enum\u003cstring>"},"x-filter":true},"ef67fd5c-f032-4a10-a7f7-73249262e721":{"name":"crm_latest_opp_stage","in":"query","required":false,"description":"Latest opportunity's stage, as your CRM labels it (values from GET /fields?object=account).","style":"form","explode":true,"schema":{"minItems":1,"maxItems":200,"type":"array","items":{"type":"string","minLength":1,"maxLength":500,"uniqueKey":"items.[INDEX]","typeLabel":"string"},"isRequired":false,"description":"Latest opportunity's stage, as your CRM labels it (values from GET /fields?object=account).","uniqueKey":"","typeLabel":"string[]"},"x-filter":true},"f810d1b0-e1ed-48e3-bb3f-0c7970ddd955":{"name":"crm_latest_opp_owner_email","in":"query","required":false,"description":"Latest opportunity owner's email.","style":"form","explode":true,"schema":{"minItems":1,"maxItems":200,"type":"array","items":{"type":"string","format":"email","pattern":"^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$","uniqueKey":"items.[INDEX]","typeLabel":"string\u003cemail>"},"isRequired":false,"description":"Latest opportunity owner's email.","uniqueKey":"","typeLabel":"string\u003cemail>[]"},"x-filter":true},"3db84aa7-41e3-4ae3-a967-8c81f94b6665":{"name":"crm_account_owner_name","in":"query","required":false,"description":"CRM account owner's name (values from GET /fields?object=account).","style":"form","explode":true,"schema":{"minItems":1,"maxItems":200,"type":"array","items":{"type":"string","minLength":1,"maxLength":500,"uniqueKey":"items.[INDEX]","typeLabel":"string"},"isRequired":false,"description":"CRM account owner's name (values from GET /fields?object=account).","uniqueKey":"","typeLabel":"string[]"},"x-filter":true},"42c75524-02f8-4a67-9e09-40e6546fb19e":{"name":"crm_account_owner_email","in":"query","required":false,"description":"CRM account owner's email.","style":"form","explode":true,"schema":{"minItems":1,"maxItems":200,"type":"array","items":{"type":"string","format":"email","pattern":"^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$","uniqueKey":"items.[INDEX]","typeLabel":"string\u003cemail>"},"isRequired":false,"description":"CRM account owner's email.","uniqueKey":"","typeLabel":"string\u003cemail>[]"},"x-filter":true},"85af9b74-08ae-4f8e-9f28-569715416390":{"name":"crm_latest_opp_date_within_days","in":"query","required":false,"description":"Latest opportunity created or closed within the last N days.","schema":{"type":"integer","minimum":1,"maximum":3650,"isRequired":false,"description":"Latest opportunity created or closed within the last N days.","uniqueKey":"","typeLabel":"integer"},"x-filter":true},"465350b8-2a28-4eed-ad85-698cb7439cce":{"name":"crm_latest_opp_date_older_than_days","in":"query","required":false,"description":"Latest opportunity created or closed more than N days ago.","schema":{"type":"integer","minimum":1,"maximum":3650,"isRequired":false,"description":"Latest opportunity created or closed more than N days ago.","uniqueKey":"","typeLabel":"integer"},"x-filter":true},"6ad011c2-2d90-4caa-9f76-26b59cdfe233":{"name":"crm_latest_opp_date_after","in":"query","required":false,"description":"Latest opportunity created or closed on or after this date.","schema":{"type":"string","isRequired":false,"description":"Latest opportunity created or closed on or after this date.","uniqueKey":"","typeLabel":"string"},"x-filter":true},"00e674c7-9415-4a70-8d71-48b7fe351b35":{"name":"crm_latest_opp_date_before","in":"query","required":false,"description":"Latest opportunity created or closed on or before this date.","schema":{"type":"string","isRequired":false,"description":"Latest opportunity created or closed on or before this date.","uniqueKey":"","typeLabel":"string"},"x-filter":true},"eb265506-84c1-4d33-a2f9-9391e18826c9":{"name":"outreach_status","in":"query","required":false,"description":"Where outreach stands. *_after_signal values count only outreach after the first signal.","style":"form","explode":true,"schema":{"minItems":1,"maxItems":200,"type":"array","items":{"type":"string","enum":["reached_out","replied","opportunity_created","not_reached_out","reached_out_after_signal","replied_after_signal","opportunity_created_after_signal"],"uniqueKey":"items.[INDEX]","typeLabel":"enum\u003cstring>"},"isRequired":false,"description":"Where outreach stands. *_after_signal values count only outreach after the first signal.","uniqueKey":"","typeLabel":"enum\u003cstring>[]"},"x-filter":true},"0a05eeda-388b-400f-97ac-30da5d457641":{"name":"outreach_attribution","in":"query","required":false,"description":"Attribution verdict.","style":"form","explode":true,"schema":{"minItems":1,"maxItems":200,"type":"array","items":{"type":"string","enum":["direct_reply","driven","assisted","detected","competitive_deal","not_attributed"],"uniqueKey":"items.[INDEX]","typeLabel":"enum\u003cstring>"},"isRequired":false,"description":"Attribution verdict.","uniqueKey":"","typeLabel":"enum\u003cstring>[]"},"x-filter":true},"81f8a20b-17d7-4d7e-afaf-99ed07d7439f":{"name":"preset","in":"query","required":false,"description":"A prebuilt view of the table. CRM presets replace crm_latest_opp_stage with their own rule.","schema":{"type":"string","enum":["pilot","advertising","capacity_based_outbound","sell_now","competitor_aware_tam","customers_at_risk","competitive_deals"],"isRequired":false,"description":"A prebuilt view of the table. CRM presets replace crm_latest_opp_stage with their own rule.","uniqueKey":"","typeLabel":"enum\u003cstring>"},"x-filter":true},"146d2869-fbb2-4043-8b4c-5045f5879ce5":{"name":"crm_custom_fields","in":"query","required":false,"description":"Custom CRM fields, as crm_custom_fields[\u003ccrm>:\u003cobject>:\u003cfield>]=\u003cvalue> (e.g. crm_custom_fields[hubspot:company:Tier]=A). Fields AND together; values of one field OR.","style":"deepObject","explode":true,"schema":{"type":"object","propertyNames":{"type":"string","minLength":1,"maxLength":300},"additionalProperties":{"minItems":1,"maxItems":200,"type":"array","items":{"type":"string","minLength":1,"maxLength":500,"uniqueKey":"additionalProperties.items.[INDEX]","typeLabel":"string"},"uniqueKey":"additionalProperties","typeLabel":"string[]"},"isRequired":false,"description":"Custom CRM fields, as crm_custom_fields[\u003ccrm>:\u003cobject>:\u003cfield>]=\u003cvalue> (e.g. crm_custom_fields[hubspot:company:Tier]=A). Fields AND together; values of one field OR.","uniqueKey":"","typeLabel":"object"},"x-filter":true},"37a8b58b-4c8d-47bd-b975-7d87c0407563":{"name":"sort","in":"query","required":false,"description":"Sort field. Default latest_signal_date.","schema":{"type":"string","enum":["latest_signal_date","account_priority","crm_latest_opp_created_date","crm_latest_opp_close_date"],"isRequired":false,"description":"Sort field. Default latest_signal_date.","uniqueKey":"","typeLabel":"enum\u003cstring>"}},"f88289b7-2f2e-4544-9d54-616fcad957e1":{"name":"order","in":"query","required":false,"description":"Sort order. Default desc.","schema":{"type":"string","enum":["asc","desc"],"isRequired":false,"description":"Sort order. Default desc.","uniqueKey":"","typeLabel":"enum\u003cstring>"}},"3db4e1a1-1444-4a3e-ad8c-d7d2f3538273":{"name":"include","in":"query","required":false,"description":"contact_info adds contact_work_email and contact_phone_number.","schema":{"type":"string","isRequired":false,"description":"contact_info adds contact_work_email and contact_phone_number.","uniqueKey":"","typeLabel":"string"}},"a0058e6f-cede-4550-84c1-2ed1f3308957":{"name":"fields","in":"query","required":false,"description":"Comma-separated Contact row fields to return; omit for all. Reach into a list with a dot (contacts.contact_name, contacts.signals.signal_date). account_id and signal_id always ship.","schema":{"type":"string","maxLength":4000,"isRequired":false,"description":"Comma-separated Contact row fields to return; omit for all. Reach into a list with a dot (contacts.contact_name, contacts.signals.signal_date). account_id and signal_id always ship.","uniqueKey":"","typeLabel":"string"}},"915579a2-95b8-4d03-a37b-6829941f48b7":{"name":"filter","in":"query","required":false,"description":"Filter on any Contact row key GET /fields lists: filter[\u003ckey>]=\u003cvalue> (repeat for any of several values) or filter[\u003ckey>][\u003coperator>]=\u003cvalue> with eq, ne, contains, gt, gte, lt, lte, exists. Keys inside a list (contacts.contact_job_title, signals.signal_freshness) match when any element matches. Combines with the dedicated filters; all of them must hold.","style":"deepObject","explode":true,"schema":{"type":"object","propertyNames":{"type":"string","minLength":1,"maxLength":200},"additionalProperties":{"oneOf":[{"type":"string","maxLength":500,"uniqueKey":"additionalProperties.oneOf.0","typeLabel":"string"},{"type":"array","items":{"type":"string","maxLength":500,"uniqueKey":"additionalProperties.oneOf.1.items.[INDEX]","typeLabel":"string"},"maxItems":200,"uniqueKey":"additionalProperties.oneOf.1","typeLabel":"string[]"},{"type":"object","additionalProperties":{"oneOf":[{"type":"string","maxLength":500,"uniqueKey":"additionalProperties.oneOf.2.additionalProperties.oneOf.0","typeLabel":"string"},{"type":"array","items":{"type":"string","maxLength":500,"uniqueKey":"additionalProperties.oneOf.2.additionalProperties.oneOf.1.items.[INDEX]","typeLabel":"string"},"maxItems":200,"uniqueKey":"additionalProperties.oneOf.2.additionalProperties.oneOf.1","typeLabel":"string[]"}],"uniqueKey":"additionalProperties.oneOf.2.additionalProperties","typeLabel":"string | string[]"},"uniqueKey":"additionalProperties.oneOf.2","typeLabel":"object"}],"uniqueKey":"additionalProperties","typeLabel":"string | string[] | object"},"isRequired":false,"description":"Filter on any Contact row key GET /fields lists: filter[\u003ckey>]=\u003cvalue> (repeat for any of several values) or filter[\u003ckey>][\u003coperator>]=\u003cvalue> with eq, ne, contains, gt, gte, lt, lte, exists. Keys inside a list (contacts.contact_job_title, signals.signal_freshness) match when any element matches. Combines with the dedicated filters; all of them must hold.","uniqueKey":"","typeLabel":"object"}},"f1dfb8bf-8a67-4d58-b07b-a0d9657504fe":{"name":"page_size","in":"query","required":false,"description":"Rows per page, 1-500. Default 25.","schema":{"type":"integer","minimum":1,"maximum":500,"isRequired":false,"description":"Rows per page, 1-500. Default 25.","uniqueKey":"","typeLabel":"integer"}},"28e7e8b8-7067-4b50-b5fc-ab9a1dab712b":{"name":"offset","in":"query","required":false,"description":"Rows to skip, to jump to a position. Cannot be combined with cursor.","schema":{"type":"integer","minimum":0,"maximum":100000,"isRequired":false,"description":"Rows to skip, to jump to a position. Cannot be combined with cursor.","uniqueKey":"","typeLabel":"integer"}},"8c7d8ed2-44aa-4fa7-9e87-1fe2d7b5d9ca":{"name":"cursor","in":"query","required":false,"description":"pagination.next_cursor from the previous page. Send only cursor (plus page_size or fields): the query travels inside it.","schema":{"type":"string","minLength":1,"maxLength":8192,"isRequired":false,"description":"pagination.next_cursor from the previous page. Send only cursor (plus page_size or fields): the query travels inside it.","uniqueKey":"","typeLabel":"string"}}},"responses":{"87b62214-2020-4b5d-b236-210449010b7d":{"description":"OK","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"contacts":{"type":"array","items":{"type":"object","description":"A /contacts row: the Contact, then their Account's fields flattened alongside, the way the webhook sends a signal.","x-field-groups":["Account","Company","Contact","Signal","CRM","Outreach","Recommended"],"properties":{"account_id":{"type":"string","description":"Stable id of the account, e.g. \"domain:acme.com\". Use it in /accounts/{account_id} paths (URL-encoded).","x-group":"Account","uniqueKey":"data.contacts.items.[INDEX].account_id","typeLabel":"string"},"contact_name":{"type":"string","description":"Full name.","x-group":"Contact","uniqueKey":"data.contacts.items.[INDEX].contact_name","typeLabel":"string"},"contact_job_title":{"type":"string","description":"Current job title.","x-group":"Contact","uniqueKey":"data.contacts.items.[INDEX].contact_job_title","typeLabel":"string"},"contact_linkedin_url":{"type":"string","description":"Social profile URL.","x-group":"Contact","uniqueKey":"data.contacts.items.[INDEX].contact_linkedin_url","typeLabel":"string"},"contact_work_email":{"type":"string","description":"Work email this workspace already enriched. Only with include=contact_info; empty means not enriched yet.","x-group":"Contact","uniqueKey":"data.contacts.items.[INDEX].contact_work_email","typeLabel":"string"},"contact_phone_number":{"type":"string","description":"Phone this workspace already enriched. Only with include=contact_info.","x-group":"Contact","uniqueKey":"data.contacts.items.[INDEX].contact_phone_number","typeLabel":"string"},"contact_type":{"type":"string","x-values":["Engaged Contact","Buying Committee"],"description":"Engaged Contact: this person produced signals. Buying Committee: a decision-maker at the account who has NOT engaged a competitor.","x-group":"Contact","uniqueKey":"data.contacts.items.[INDEX].contact_type","typeLabel":"string"},"contact_role":{"oneOf":[{"type":"string","description":"Role in a purchase (e.g. champion, decision_maker). Null when not classified.","x-group":"Contact","uniqueKey":"data.contacts.items.[INDEX].contact_role.oneOf.0","typeLabel":"string"},{"type":"null","description":"Role in a purchase (e.g. champion, decision_maker). Null when not classified.","x-group":"Contact","uniqueKey":"data.contacts.items.[INDEX].contact_role.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.contacts.items.[INDEX].contact_role","typeLabel":"string | null"},"contact_bucket":{"oneOf":[{"type":"string","description":"How strong a fit the person is (strong, potential, weak). Null when not classified.","x-group":"Contact","uniqueKey":"data.contacts.items.[INDEX].contact_bucket.oneOf.0","typeLabel":"string"},{"type":"null","description":"How strong a fit the person is (strong, potential, weak). Null when not classified.","x-group":"Contact","uniqueKey":"data.contacts.items.[INDEX].contact_bucket.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.contacts.items.[INDEX].contact_bucket","typeLabel":"string | null"},"contact_buying_committee_role":{"type":"string","description":"Seniority classification of the person (e.g. business_evaluator). Not committee membership.","x-group":"Contact","uniqueKey":"data.contacts.items.[INDEX].contact_buying_committee_role","typeLabel":"string"},"contact_first_signal_date":{"type":"string","x-format":"YYYY-MM-DD, or empty","description":"This person's first dated signal. Empty when all their signals are Historic.","x-group":"Signal","uniqueKey":"data.contacts.items.[INDEX].contact_first_signal_date","typeLabel":"string"},"contact_latest_signal_date":{"type":"string","x-format":"YYYY-MM-DD, or empty","description":"This person's latest dated signal. Empty when all their signals are Historic.","x-group":"Signal","uniqueKey":"data.contacts.items.[INDEX].contact_latest_signal_date","typeLabel":"string"},"signal_freshness":{"type":"string","x-values":["Recent","Historic","Stale"],"description":"Freshness of this person's latest signal.","x-group":"Signal","uniqueKey":"data.contacts.items.[INDEX].signal_freshness","typeLabel":"string"},"recommended_channels":{"type":"string","description":"The recommended outreach as one label, e.g. \"Email + Call\". Empty when there is no recommendation.","x-group":"Recommended","uniqueKey":"data.contacts.items.[INDEX].recommended_channels","typeLabel":"string"},"recommended_email":{"type":"boolean","description":"Email is recommended.","x-group":"Recommended","uniqueKey":"data.contacts.items.[INDEX].recommended_email","typeLabel":"boolean"},"recommended_linkedin":{"type":"boolean","description":"Social outreach is recommended.","x-group":"Recommended","uniqueKey":"data.contacts.items.[INDEX].recommended_linkedin","typeLabel":"boolean"},"recommended_call":{"type":"boolean","description":"A call is recommended.","x-group":"Recommended","uniqueKey":"data.contacts.items.[INDEX].recommended_call","typeLabel":"boolean"},"outreach_contacted":{"type":"boolean","description":"Your team has reached out to this person (CRM).","x-group":"Outreach","uniqueKey":"data.contacts.items.[INDEX].outreach_contacted","typeLabel":"boolean"},"outreach_replied":{"type":"boolean","description":"This person replied (CRM).","x-group":"Outreach","uniqueKey":"data.contacts.items.[INDEX].outreach_replied","typeLabel":"boolean"},"outreach_contacted_by_name":{"type":"string","description":"Who on your team reached out.","x-group":"Outreach","uniqueKey":"data.contacts.items.[INDEX].outreach_contacted_by_name","typeLabel":"string"},"outreach_contacted_by_email":{"type":"string","description":"Their email.","x-group":"Outreach","uniqueKey":"data.contacts.items.[INDEX].outreach_contacted_by_email","typeLabel":"string"},"signals":{"type":"array","items":{"type":"object","description":"One interaction between a contact and a competitor's employee.","x-field-groups":["Signal","Competitor"],"properties":{"signal_id":{"type":"string","description":"Stable id of this signal. The webhook sends the same id.","x-group":"Signal","uniqueKey":"data.contacts.items.[INDEX].signals.items.[INDEX].signal_id","typeLabel":"string"},"signal_summary":{"type":"string","description":"One sentence: who did what with whom, e.g. \"Engaged with a VP of Sales at HubSpot\".","x-group":"Signal","uniqueKey":"data.contacts.items.[INDEX].signals.items.[INDEX].signal_summary","typeLabel":"string"},"signal_post_url":{"type":"string","description":"The post the interaction was on, when there is one. Empty otherwise.","x-group":"Signal","uniqueKey":"data.contacts.items.[INDEX].signals.items.[INDEX].signal_post_url","typeLabel":"string"},"signal_freshness":{"type":"string","x-values":["Recent","Historic","Stale"],"description":"Recent: observed since monitoring began. Historic: a relationship that existed before monitoring began. Stale: the account's signals have aged past your sales cycle.","x-group":"Signal","uniqueKey":"data.contacts.items.[INDEX].signals.items.[INDEX].signal_freshness","typeLabel":"string"},"signal_date":{"type":"string","x-format":"YYYY-MM-DD, or empty","description":"When the signal happened. Empty for a Historic signal, whose real date is unknown.","x-group":"Signal","uniqueKey":"data.contacts.items.[INDEX].signals.items.[INDEX].signal_date","typeLabel":"string"},"signal_collected_date":{"type":"string","x-format":"YYYY-MM-DD, or empty","description":"When Letterdrop recorded the signal. For a Historic signal this is the only date there is.","x-group":"Signal","uniqueKey":"data.contacts.items.[INDEX].signals.items.[INDEX].signal_collected_date","typeLabel":"string"},"competitor_name":{"type":"string","description":"The competitor the signal involves.","x-group":"Competitor","uniqueKey":"data.contacts.items.[INDEX].signals.items.[INDEX].competitor_name","typeLabel":"string"},"competitor_rep_title":{"type":"string","description":"Job title of the competitor's employee in the signal. Names are not published.","x-group":"Competitor","uniqueKey":"data.contacts.items.[INDEX].signals.items.[INDEX].competitor_rep_title","typeLabel":"string"}},"uniqueKey":"data.contacts.items.[INDEX].signals.items.[INDEX]","typeLabel":"object"},"description":"This person's signals, newest first. Empty for a Buying Committee member.","x-group":"Signal","uniqueKey":"data.contacts.items.[INDEX].signals","typeLabel":"object[]"},"company_name":{"type":"string","description":"Company name.","x-group":"Company","uniqueKey":"data.contacts.items.[INDEX].company_name","typeLabel":"string"},"company_domain":{"type":"string","description":"Website domain.","x-group":"Company","uniqueKey":"data.contacts.items.[INDEX].company_domain","typeLabel":"string"},"company_size":{"type":"string","description":"Employee band, e.g. \"1001-5000\".","x-group":"Company","uniqueKey":"data.contacts.items.[INDEX].company_size","typeLabel":"string"},"company_industry":{"type":"string","description":"Industry.","x-group":"Company","uniqueKey":"data.contacts.items.[INDEX].company_industry","typeLabel":"string"},"company_hq_country":{"type":"string","description":"Headquarters country, ISO 3166-1 alpha-2 (e.g. \"US\").","x-group":"Company","uniqueKey":"data.contacts.items.[INDEX].company_hq_country","typeLabel":"string"},"company_hq_location":{"type":"string","description":"Headquarters location as listed, e.g. \"San Francisco, California\".","x-group":"Company","uniqueKey":"data.contacts.items.[INDEX].company_hq_location","typeLabel":"string"},"company_description":{"type":"string","description":"Company description.","x-group":"Company","uniqueKey":"data.contacts.items.[INDEX].company_description","typeLabel":"string"},"company_logo_url":{"type":"string","description":"Logo image URL.","x-group":"Company","uniqueKey":"data.contacts.items.[INDEX].company_logo_url","typeLabel":"string"},"account_competitors":{"type":"string","description":"Every competitor with signals at this account, comma-joined (\"Common Room, G2\"), as the webhook sends it.","x-group":"Account","uniqueKey":"data.contacts.items.[INDEX].account_competitors","typeLabel":"string"},"account_competitor_cycle_stage":{"type":"string","x-values":["Aware of Competitor","Historical","Prospecting","Early Stage","Late Stage"],"description":"Where we infer the account is in a buying cycle with a competitor. An inference from signals, not CRM data.","x-group":"Account","uniqueKey":"data.contacts.items.[INDEX].account_competitor_cycle_stage","typeLabel":"string"},"account_competitor_cycle_reason":{"type":"string","description":"Why we inferred that stage.","x-group":"Account","uniqueKey":"data.contacts.items.[INDEX].account_competitor_cycle_reason","typeLabel":"string"},"account_priority":{"type":"string","x-values":["High","Medium","Nurture"],"description":"How soon to act, as the Competitor Monitoring table shows it. The webhook sends this as signal_priority.","x-group":"Account","uniqueKey":"data.contacts.items.[INDEX].account_priority","typeLabel":"string"},"account_icp_fit":{"type":"boolean","description":"The account matches your ideal customer profile.","x-group":"Account","uniqueKey":"data.contacts.items.[INDEX].account_icp_fit","typeLabel":"boolean"},"account_icp_fit_reason":{"type":"string","description":"Why it fits. Empty when account_icp_fit is false.","x-group":"Account","uniqueKey":"data.contacts.items.[INDEX].account_icp_fit_reason","typeLabel":"string"},"account_confirmed_competitor":{"type":"string","description":"A competitor the account's own job posts or filings say it uses, with the source: \"\u003cname> - Source: \u003curl>\". Empty when none.","x-group":"Account","uniqueKey":"data.contacts.items.[INDEX].account_confirmed_competitor","typeLabel":"string"},"account_confirmed_project":{"type":"string","description":"A project in the account's job posts or filings that what you sell would help: \"\u003csummary> - Source: \u003curl>\". Empty when none.","x-group":"Account","uniqueKey":"data.contacts.items.[INDEX].account_confirmed_project","typeLabel":"string"},"account_estimated_renewal_date":{"type":"string","x-format":"YYYY-MM-DD, or empty","description":"Estimated renewal date of the competitor contract. Empty when unknown.","x-group":"Account","uniqueKey":"data.contacts.items.[INDEX].account_estimated_renewal_date","typeLabel":"string"},"account_optimal_outreach_date":{"type":"string","x-format":"YYYY-MM-DD, or empty","description":"Suggested date to reach out. Empty when unknown.","x-group":"Account","uniqueKey":"data.contacts.items.[INDEX].account_optimal_outreach_date","typeLabel":"string"},"account_signal_freshness":{"type":"string","x-values":["Recent","Historic","Stale"],"description":"Stale when the account's signals aged past your sales cycle, Historic when every signal is Historic, Recent otherwise.","x-group":"Signal","uniqueKey":"data.contacts.items.[INDEX].account_signal_freshness","typeLabel":"string"},"first_signal_date":{"type":"string","x-format":"YYYY-MM-DD, or empty","description":"The account's first dated signal.","x-group":"Signal","uniqueKey":"data.contacts.items.[INDEX].first_signal_date","typeLabel":"string"},"first_signal_date_approximate":{"type":"boolean","description":"first_signal_date was inferred from a scan rather than observed.","x-group":"Signal","uniqueKey":"data.contacts.items.[INDEX].first_signal_date_approximate","typeLabel":"boolean"},"latest_signal_date":{"type":"string","x-format":"YYYY-MM-DD, or empty","description":"The account's latest dated signal.","x-group":"Signal","uniqueKey":"data.contacts.items.[INDEX].latest_signal_date","typeLabel":"string"},"latest_signal_summary":{"type":"string","description":"The latest signal in one sentence, e.g. \"Jane Doe engaged with a VP of Sales at HubSpot.\"","x-group":"Signal","uniqueKey":"data.contacts.items.[INDEX].latest_signal_summary","typeLabel":"string"},"account_evaluating_vendors_confirmed":{"type":"boolean","description":"Someone on your team confirmed the account is evaluating vendors.","x-group":"Account","uniqueKey":"data.contacts.items.[INDEX].account_evaluating_vendors_confirmed","typeLabel":"boolean"},"crm_account_url":{"type":"string","description":"Link to the account's own CRM record. Empty when it is not in your CRM.","x-group":"CRM","uniqueKey":"data.contacts.items.[INDEX].crm_account_url","typeLabel":"string"},"crm_account_owner_name":{"type":"string","description":"CRM account owner.","x-group":"CRM","uniqueKey":"data.contacts.items.[INDEX].crm_account_owner_name","typeLabel":"string"},"crm_account_owner_email":{"type":"string","description":"Their email.","x-group":"CRM","uniqueKey":"data.contacts.items.[INDEX].crm_account_owner_email","typeLabel":"string"},"crm_is_customer":{"type":"boolean","description":"The account is your customer now.","x-group":"CRM","uniqueKey":"data.contacts.items.[INDEX].crm_is_customer","typeLabel":"boolean"},"crm_has_open_opp":{"oneOf":[{"type":"boolean","description":"The latest opportunity is open. Null when the latest is closed and an older one might be open.","x-group":"CRM","uniqueKey":"data.contacts.items.[INDEX].crm_has_open_opp.oneOf.0","typeLabel":"boolean"},{"type":"null","description":"The latest opportunity is open. Null when the latest is closed and an older one might be open.","x-group":"CRM","uniqueKey":"data.contacts.items.[INDEX].crm_has_open_opp.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.contacts.items.[INDEX].crm_has_open_opp","typeLabel":"boolean | null"},"crm_opp_count":{"type":"integer","description":"Opportunities on the account.","x-group":"CRM","uniqueKey":"data.contacts.items.[INDEX].crm_opp_count","typeLabel":"integer"},"crm_latest_opp_id":{"type":"string","description":"CRM id of the latest opportunity.","x-group":"CRM","uniqueKey":"data.contacts.items.[INDEX].crm_latest_opp_id","typeLabel":"string"},"crm_latest_opp_stage":{"type":"string","description":"Its stage as your CRM labels it, e.g. \"S1: Discover (SAO)\".","x-group":"CRM","uniqueKey":"data.contacts.items.[INDEX].crm_latest_opp_stage","typeLabel":"string"},"crm_latest_opp_amount":{"oneOf":[{"type":"number","description":"Its amount.","x-group":"CRM","uniqueKey":"data.contacts.items.[INDEX].crm_latest_opp_amount.oneOf.0","typeLabel":"number"},{"type":"null","description":"Its amount.","x-group":"CRM","uniqueKey":"data.contacts.items.[INDEX].crm_latest_opp_amount.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.contacts.items.[INDEX].crm_latest_opp_amount","typeLabel":"number | null"},"crm_latest_opp_pipeline":{"type":"string","description":"Its pipeline.","x-group":"CRM","uniqueKey":"data.contacts.items.[INDEX].crm_latest_opp_pipeline","typeLabel":"string"},"crm_latest_opp_created_date":{"type":"string","x-format":"YYYY-MM-DD, or empty","description":"When it was created.","x-group":"CRM","uniqueKey":"data.contacts.items.[INDEX].crm_latest_opp_created_date","typeLabel":"string"},"crm_latest_opp_close_date":{"type":"string","x-format":"YYYY-MM-DD, or empty","description":"Its close date (expected close while open).","x-group":"CRM","uniqueKey":"data.contacts.items.[INDEX].crm_latest_opp_close_date","typeLabel":"string"},"crm_latest_opp_owner_name":{"type":"string","description":"Its owner.","x-group":"CRM","uniqueKey":"data.contacts.items.[INDEX].crm_latest_opp_owner_name","typeLabel":"string"},"crm_latest_opp_owner_email":{"type":"string","description":"Their email.","x-group":"CRM","uniqueKey":"data.contacts.items.[INDEX].crm_latest_opp_owner_email","typeLabel":"string"},"crm_latest_opp_is_renewal":{"type":"boolean","description":"It is a renewal, so not new pipeline even while open.","x-group":"CRM","uniqueKey":"data.contacts.items.[INDEX].crm_latest_opp_is_renewal","typeLabel":"boolean"},"crm_custom_fields":{"type":"object","additionalProperties":true,"description":"The CRM columns you added to the table, keyed \"\u003ccrm>:\u003cobject>:\u003cfield>\" (e.g. \"hubspot:company:Tier\"), each a list of values.","x-group":"CRM","uniqueKey":"data.contacts.items.[INDEX].crm_custom_fields","typeLabel":"object"},"outreach_status":{"type":"string","x-values":["opportunity_created","replied","reached_out"],"description":"Where outreach to the account stands. *_after_signal values count only outreach after the first signal.","x-group":"Outreach","uniqueKey":"data.contacts.items.[INDEX].outreach_status","typeLabel":"string"},"outreach_started":{"type":"boolean","description":"Anyone at the account has been contacted (CRM).","x-group":"Outreach","uniqueKey":"data.contacts.items.[INDEX].outreach_started","typeLabel":"boolean"},"outreach_any_replied":{"type":"boolean","description":"Anyone at the account replied (CRM).","x-group":"Outreach","uniqueKey":"data.contacts.items.[INDEX].outreach_any_replied","typeLabel":"boolean"},"outreach_attribution":{"type":"string","x-values":["direct_reply","driven","assisted","detected","competitive_deal","pending_analysis","none"],"description":"Our verdict on whether the signal led to the meeting or deal. Empty when we make no claim.","x-group":"Outreach","uniqueKey":"data.contacts.items.[INDEX].outreach_attribution","typeLabel":"string"},"outreach_attribution_reason":{"type":"string","description":"Why we reached that verdict.","x-group":"Outreach","uniqueKey":"data.contacts.items.[INDEX].outreach_attribution_reason","typeLabel":"string"},"outreach_summary":{"type":"string","description":"A short summary of the CRM outreach.","x-group":"Outreach","uniqueKey":"data.contacts.items.[INDEX].outreach_summary","typeLabel":"string"},"outreach_before_signal":{"oneOf":[{"type":"boolean","description":"Your team reached out in the 30 days before the first signal. Null when that window was not observed, which is not the same as no outreach.","x-group":"Outreach","uniqueKey":"data.contacts.items.[INDEX].outreach_before_signal.oneOf.0","typeLabel":"boolean"},{"type":"null","description":"Your team reached out in the 30 days before the first signal. Null when that window was not observed, which is not the same as no outreach.","x-group":"Outreach","uniqueKey":"data.contacts.items.[INDEX].outreach_before_signal.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.contacts.items.[INDEX].outreach_before_signal","typeLabel":"boolean | null"},"outreach_lead_source":{"type":"string","description":"Lead source category (outbound, inbound, …).","x-group":"Outreach","uniqueKey":"data.contacts.items.[INDEX].outreach_lead_source","typeLabel":"string"},"outreach_last_date":{"type":"string","x-format":"YYYY-MM-DD, or empty","description":"Latest outreach.","x-group":"Outreach","uniqueKey":"data.contacts.items.[INDEX].outreach_last_date","typeLabel":"string"},"outreach_last_before_signal_date":{"type":"string","x-format":"YYYY-MM-DD, or empty","description":"Latest outreach before the first signal.","x-group":"Outreach","uniqueKey":"data.contacts.items.[INDEX].outreach_last_before_signal_date","typeLabel":"string"},"outreach_first_after_signal_date":{"type":"string","x-format":"YYYY-MM-DD, or empty","description":"First outreach after the first signal.","x-group":"Outreach","uniqueKey":"data.contacts.items.[INDEX].outreach_first_after_signal_date","typeLabel":"string"},"outreach_meeting_booked_date":{"type":"string","x-format":"YYYY-MM-DD, or empty","description":"When a meeting was booked.","x-group":"Outreach","uniqueKey":"data.contacts.items.[INDEX].outreach_meeting_booked_date","typeLabel":"string"}},"uniqueKey":"data.contacts.items.[INDEX]","typeLabel":"object"},"uniqueKey":"data.contacts","typeLabel":"object[]"}},"isRequired":true,"uniqueKey":"data","typeLabel":"object"},"meta":{"type":"object","required":["api_version","data_as_of","cache"],"properties":{"api_version":{"type":"string","const":"2","isRequired":true,"uniqueKey":"meta.api_version","typeLabel":"string"},"data_as_of":{"type":"string","format":"date-time","description":"When the data in this response was computed. Responses are cached for a few minutes; this tells you how fresh they are.","isRequired":true,"uniqueKey":"meta.data_as_of","typeLabel":"string\u003cdate-time>"},"cache":{"type":"string","enum":["hit","miss","shared","off"],"description":"hit = served from cache; miss = computed for this request; shared = joined a computation already running for the same query.","isRequired":true,"uniqueKey":"meta.cache","typeLabel":"enum\u003cstring>"}},"isRequired":true,"uniqueKey":"meta","typeLabel":"object"},"pagination":{"type":"object","required":["total","has_more","next_cursor"],"properties":{"total":{"type":"integer","description":"Rows matching the query.","isRequired":true,"uniqueKey":"pagination.total","typeLabel":"integer"},"has_more":{"type":"boolean","isRequired":true,"uniqueKey":"pagination.has_more","typeLabel":"boolean"},"next_cursor":{"oneOf":[{"type":"string","description":"Send as cursor to get the next page. Valid for 6 hours.","isRequired":true,"uniqueKey":"pagination.next_cursor.oneOf.0","typeLabel":"string"},{"type":"null","description":"Send as cursor to get the next page. Valid for 6 hours.","isRequired":true,"uniqueKey":"pagination.next_cursor.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"pagination.next_cursor","typeLabel":"string | null"}},"uniqueKey":"pagination","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"example":{"data":{"contacts":[{"account_id":"domain:acme.com","contact_name":"Jane Doe","contact_job_title":"VP Marketing","contact_linkedin_url":"https://example.com/in/jane-doe","contact_type":"Engaged Contact","contact_role":"champion","contact_bucket":"strong","contact_buying_committee_role":"business_evaluator","contact_first_signal_date":"2026-10-02","contact_latest_signal_date":"2026-10-28","signal_freshness":"Recent","recommended_channels":"Email + Call","recommended_email":true,"recommended_linkedin":false,"recommended_call":true,"outreach_contacted":true,"outreach_replied":false,"outreach_contacted_by_name":"Alex Owner","outreach_contacted_by_email":"alex@example.com","signals":[{"signal_id":"6aa5558899db31a0da3c9465","signal_summary":"Engaged with a Vice President of Sales at HubSpot","signal_post_url":"https://example.com/posts/7392000000000000000","signal_freshness":"Recent","signal_date":"2026-10-28","signal_collected_date":"2026-10-28","competitor_name":"HubSpot","competitor_rep_title":"Vice President of Sales"},{"signal_id":"6aa5558899db31a0da3c9411","signal_summary":"Engaged with an Account Executive at HubSpot","signal_post_url":"","signal_freshness":"Recent","signal_date":"2026-10-02","signal_collected_date":"2026-10-02","competitor_name":"HubSpot","competitor_rep_title":"Account Executive"}],"company_name":"Acme","company_domain":"acme.com","company_size":"1001-5000","company_industry":"Software Development","company_hq_country":"US","company_hq_location":"San Francisco, California","company_description":"Acme makes workflow software for finance teams.","company_logo_url":"https://cdn.letterdrop.co/logos/acme.png","account_competitors":"HubSpot, Salesforce","account_competitor_cycle_stage":"Early Stage","account_competitor_cycle_reason":"Three decision makers engaged HubSpot sales reps in the last 30 days; no deal activity yet.","account_priority":"High","account_icp_fit":true,"account_icp_fit_reason":"Matches the industries and company sizes of your closed-won customers.","account_confirmed_competitor":"HubSpot - Source: https://jobs.example.com/acme/marketing-ops-manager","account_confirmed_project":"","account_estimated_renewal_date":"2027-03-01","account_optimal_outreach_date":"","account_evaluating_vendors_confirmed":false,"account_signal_freshness":"Recent","first_signal_date":"2026-10-02","first_signal_date_approximate":false,"latest_signal_date":"2026-10-28","latest_signal_summary":"Jane Doe engaged with a Vice President of Sales at HubSpot.","crm_account_url":"https://app.hubspot.com/contacts/12345678/company/17598685516","crm_account_owner_name":"Alex Owner","crm_account_owner_email":"alex@example.com","crm_is_customer":false,"crm_has_open_opp":true,"crm_opp_count":1,"crm_latest_opp_id":"64931875364","crm_latest_opp_stage":"S1: Discover (SAO)","crm_latest_opp_amount":24000,"crm_latest_opp_pipeline":"New Business","crm_latest_opp_created_date":"2026-10-29","crm_latest_opp_close_date":"2026-12-15","crm_latest_opp_owner_name":"Alex Owner","crm_latest_opp_owner_email":"alex@example.com","crm_latest_opp_is_renewal":false,"crm_custom_fields":{"hubspot:company:Tier":["A"]},"outreach_status":"reached_out_after_signal","outreach_started":true,"outreach_any_replied":true,"outreach_attribution":"direct_reply","outreach_attribution_reason":"The meeting was booked after Jane replied to the Oct 24 outreach.","outreach_summary":"First touch four days after the signal; a meeting was booked a week later.","outreach_before_signal":false,"outreach_lead_source":"outbound","outreach_last_date":"2026-10-24","outreach_last_before_signal_date":"","outreach_first_after_signal_date":"2026-10-24","outreach_meeting_booked_date":"2026-10-30"}]},"pagination":{"total":713,"has_more":true,"next_cursor":"eyJ2IjoyLC4uLn0.c2lnbmF0dXJl"},"meta":{"api_version":"2","data_as_of":"2026-11-02T09:36:28.016Z","cache":"hit"}},"examples":{"Example":{"title":"Example","value":{"data":{"contacts":[{"account_id":"domain:acme.com","contact_name":"Jane Doe","contact_job_title":"VP Marketing","contact_linkedin_url":"https://example.com/in/jane-doe","contact_type":"Engaged Contact","contact_role":"champion","contact_bucket":"strong","contact_buying_committee_role":"business_evaluator","contact_first_signal_date":"2026-10-02","contact_latest_signal_date":"2026-10-28","signal_freshness":"Recent","recommended_channels":"Email + Call","recommended_email":true,"recommended_linkedin":false,"recommended_call":true,"outreach_contacted":true,"outreach_replied":false,"outreach_contacted_by_name":"Alex Owner","outreach_contacted_by_email":"alex@example.com","signals":[{"signal_id":"6aa5558899db31a0da3c9465","signal_summary":"Engaged with a Vice President of Sales at HubSpot","signal_post_url":"https://example.com/posts/7392000000000000000","signal_freshness":"Recent","signal_date":"2026-10-28","signal_collected_date":"2026-10-28","competitor_name":"HubSpot","competitor_rep_title":"Vice President of Sales"},{"signal_id":"6aa5558899db31a0da3c9411","signal_summary":"Engaged with an Account Executive at HubSpot","signal_post_url":"","signal_freshness":"Recent","signal_date":"2026-10-02","signal_collected_date":"2026-10-02","competitor_name":"HubSpot","competitor_rep_title":"Account Executive"}],"company_name":"Acme","company_domain":"acme.com","company_size":"1001-5000","company_industry":"Software Development","company_hq_country":"US","company_hq_location":"San Francisco, California","company_description":"Acme makes workflow software for finance teams.","company_logo_url":"https://cdn.letterdrop.co/logos/acme.png","account_competitors":"HubSpot, Salesforce","account_competitor_cycle_stage":"Early Stage","account_competitor_cycle_reason":"Three decision makers engaged HubSpot sales reps in the last 30 days; no deal activity yet.","account_priority":"High","account_icp_fit":true,"account_icp_fit_reason":"Matches the industries and company sizes of your closed-won customers.","account_confirmed_competitor":"HubSpot - Source: https://jobs.example.com/acme/marketing-ops-manager","account_confirmed_project":"","account_estimated_renewal_date":"2027-03-01","account_optimal_outreach_date":"","account_evaluating_vendors_confirmed":false,"account_signal_freshness":"Recent","first_signal_date":"2026-10-02","first_signal_date_approximate":false,"latest_signal_date":"2026-10-28","latest_signal_summary":"Jane Doe engaged with a Vice President of Sales at HubSpot.","crm_account_url":"https://app.hubspot.com/contacts/12345678/company/17598685516","crm_account_owner_name":"Alex Owner","crm_account_owner_email":"alex@example.com","crm_is_customer":false,"crm_has_open_opp":true,"crm_opp_count":1,"crm_latest_opp_id":"64931875364","crm_latest_opp_stage":"S1: Discover (SAO)","crm_latest_opp_amount":24000,"crm_latest_opp_pipeline":"New Business","crm_latest_opp_created_date":"2026-10-29","crm_latest_opp_close_date":"2026-12-15","crm_latest_opp_owner_name":"Alex Owner","crm_latest_opp_owner_email":"alex@example.com","crm_latest_opp_is_renewal":false,"crm_custom_fields":{"hubspot:company:Tier":["A"]},"outreach_status":"reached_out_after_signal","outreach_started":true,"outreach_any_replied":true,"outreach_attribution":"direct_reply","outreach_attribution_reason":"The meeting was booked after Jane replied to the Oct 24 outreach.","outreach_summary":"First touch four days after the signal; a meeting was booked a week later.","outreach_before_signal":false,"outreach_lead_source":"outbound","outreach_last_date":"2026-10-24","outreach_last_before_signal_date":"","outreach_first_after_signal_date":"2026-10-24","outreach_meeting_booked_date":"2026-10-30"}]},"pagination":{"total":713,"has_more":true,"next_cursor":"eyJ2IjoyLC4uLn0.c2lnbmF0dXJl"},"meta":{"api_version":"2","data_as_of":"2026-11-02T09:36:28.016Z","cache":"hit"}}}},"exampleType":"examples"}},"exampleType":"examples"},"89aef922-a8b6-44df-a4ab-9a355c4cda53":{"description":"Malformed request or cursor.","x-status":400,"x-codes":["invalid_json","invalid_cursor"],"content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["invalid_request","invalid_json","invalid_cursor","cursor_expired","unauthorized","forbidden","account_not_found","not_found","rate_limited","internal_error"],"isRequired":true,"uniqueKey":"error.code","typeLabel":"enum\u003cstring>"},"message":{"type":"string","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"},"details":{"type":"array","items":{"type":"object","properties":{"path":{"type":"string","uniqueKey":"error.details.items.[INDEX].path","typeLabel":"string"},"message":{"type":"string","uniqueKey":"error.details.items.[INDEX].message","typeLabel":"string"}},"uniqueKey":"error.details.items.[INDEX]","typeLabel":"object"},"description":"For invalid_request: one entry per parameter that failed.","uniqueKey":"error.details","typeLabel":"object[]"}},"isRequired":true,"uniqueKey":"error","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error":{"code":"invalid_request","message":"\u003cstring>","details":[{"path":"\u003cstring>","message":"\u003cstring>"}]}}}},"exampleType":"generated"}},"exampleType":"generated"},"1628861e-b971-45c9-bbd5-19a1f65b73e9":{"description":"Missing or invalid credential.","x-status":401,"x-codes":["unauthorized"],"content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["invalid_request","invalid_json","invalid_cursor","cursor_expired","unauthorized","forbidden","account_not_found","not_found","rate_limited","internal_error"],"isRequired":true,"uniqueKey":"error.code","typeLabel":"enum\u003cstring>"},"message":{"type":"string","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"},"details":{"type":"array","items":{"type":"object","properties":{"path":{"type":"string","uniqueKey":"error.details.items.[INDEX].path","typeLabel":"string"},"message":{"type":"string","uniqueKey":"error.details.items.[INDEX].message","typeLabel":"string"}},"uniqueKey":"error.details.items.[INDEX]","typeLabel":"object"},"description":"For invalid_request: one entry per parameter that failed.","uniqueKey":"error.details","typeLabel":"object[]"}},"isRequired":true,"uniqueKey":"error","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error":{"code":"invalid_request","message":"\u003cstring>","details":[{"path":"\u003cstring>","message":"\u003cstring>"}]}}}},"exampleType":"generated"}},"exampleType":"generated"},"365ca819-351b-4dc9-8013-d06e5b10672b":{"description":"The credential lacks the mcp.read scope.","x-status":403,"x-codes":["forbidden"],"content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["invalid_request","invalid_json","invalid_cursor","cursor_expired","unauthorized","forbidden","account_not_found","not_found","rate_limited","internal_error"],"isRequired":true,"uniqueKey":"error.code","typeLabel":"enum\u003cstring>"},"message":{"type":"string","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"},"details":{"type":"array","items":{"type":"object","properties":{"path":{"type":"string","uniqueKey":"error.details.items.[INDEX].path","typeLabel":"string"},"message":{"type":"string","uniqueKey":"error.details.items.[INDEX].message","typeLabel":"string"}},"uniqueKey":"error.details.items.[INDEX]","typeLabel":"object"},"description":"For invalid_request: one entry per parameter that failed.","uniqueKey":"error.details","typeLabel":"object[]"}},"isRequired":true,"uniqueKey":"error","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error":{"code":"invalid_request","message":"\u003cstring>","details":[{"path":"\u003cstring>","message":"\u003cstring>"}]}}}},"exampleType":"generated"}},"exampleType":"generated"},"49bd2e1e-30a7-4923-ad5c-6bd928c4d341":{"description":"The cursor expired; start the list again.","x-status":410,"x-codes":["cursor_expired"],"content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["invalid_request","invalid_json","invalid_cursor","cursor_expired","unauthorized","forbidden","account_not_found","not_found","rate_limited","internal_error"],"isRequired":true,"uniqueKey":"error.code","typeLabel":"enum\u003cstring>"},"message":{"type":"string","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"},"details":{"type":"array","items":{"type":"object","properties":{"path":{"type":"string","uniqueKey":"error.details.items.[INDEX].path","typeLabel":"string"},"message":{"type":"string","uniqueKey":"error.details.items.[INDEX].message","typeLabel":"string"}},"uniqueKey":"error.details.items.[INDEX]","typeLabel":"object"},"description":"For invalid_request: one entry per parameter that failed.","uniqueKey":"error.details","typeLabel":"object[]"}},"isRequired":true,"uniqueKey":"error","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error":{"code":"invalid_request","message":"\u003cstring>","details":[{"path":"\u003cstring>","message":"\u003cstring>"}]}}}},"exampleType":"generated"}},"exampleType":"generated"},"194a476c-b91b-4a61-b8f8-334458ca7188":{"description":"A parameter failed validation; details lists each one.","x-status":422,"x-codes":["invalid_request"],"content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["invalid_request","invalid_json","invalid_cursor","cursor_expired","unauthorized","forbidden","account_not_found","not_found","rate_limited","internal_error"],"isRequired":true,"uniqueKey":"error.code","typeLabel":"enum\u003cstring>"},"message":{"type":"string","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"},"details":{"type":"array","items":{"type":"object","properties":{"path":{"type":"string","uniqueKey":"error.details.items.[INDEX].path","typeLabel":"string"},"message":{"type":"string","uniqueKey":"error.details.items.[INDEX].message","typeLabel":"string"}},"uniqueKey":"error.details.items.[INDEX]","typeLabel":"object"},"description":"For invalid_request: one entry per parameter that failed.","uniqueKey":"error.details","typeLabel":"object[]"}},"isRequired":true,"uniqueKey":"error","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error":{"code":"invalid_request","message":"\u003cstring>","details":[{"path":"\u003cstring>","message":"\u003cstring>"}]}}}},"exampleType":"generated"}},"exampleType":"generated"},"b6294734-3a72-4aef-9893-41052aca2421":{"description":"Rate limited; wait Retry-After seconds.","x-status":429,"x-codes":["rate_limited"],"content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["invalid_request","invalid_json","invalid_cursor","cursor_expired","unauthorized","forbidden","account_not_found","not_found","rate_limited","internal_error"],"isRequired":true,"uniqueKey":"error.code","typeLabel":"enum\u003cstring>"},"message":{"type":"string","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"},"details":{"type":"array","items":{"type":"object","properties":{"path":{"type":"string","uniqueKey":"error.details.items.[INDEX].path","typeLabel":"string"},"message":{"type":"string","uniqueKey":"error.details.items.[INDEX].message","typeLabel":"string"}},"uniqueKey":"error.details.items.[INDEX]","typeLabel":"object"},"description":"For invalid_request: one entry per parameter that failed.","uniqueKey":"error.details","typeLabel":"object[]"}},"isRequired":true,"uniqueKey":"error","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error":{"code":"invalid_request","message":"\u003cstring>","details":[{"path":"\u003cstring>","message":"\u003cstring>"}]}}}},"exampleType":"generated"}},"headers":{"Retry-After":{"schema":{"type":"integer"},"description":"Seconds to wait."}},"exampleType":"generated"},"275635b5-3ad8-4966-99d9-e1c5405a135d":{"description":"Our fault; retry, and contact support if it persists.","x-status":500,"x-codes":["internal_error"],"content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["invalid_request","invalid_json","invalid_cursor","cursor_expired","unauthorized","forbidden","account_not_found","not_found","rate_limited","internal_error"],"isRequired":true,"uniqueKey":"error.code","typeLabel":"enum\u003cstring>"},"message":{"type":"string","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"},"details":{"type":"array","items":{"type":"object","properties":{"path":{"type":"string","uniqueKey":"error.details.items.[INDEX].path","typeLabel":"string"},"message":{"type":"string","uniqueKey":"error.details.items.[INDEX].message","typeLabel":"string"}},"uniqueKey":"error.details.items.[INDEX]","typeLabel":"object"},"description":"For invalid_request: one entry per parameter that failed.","uniqueKey":"error.details","typeLabel":"object[]"}},"isRequired":true,"uniqueKey":"error","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error":{"code":"invalid_request","message":"\u003cstring>","details":[{"path":"\u003cstring>","message":"\u003cstring>"}]}}}},"exampleType":"generated"}},"exampleType":"generated"}},"security":{"b08a50af-8c4f-4dd6-bde4-c5e37458810a":{"WorkspaceKey":{"type":"apiKey","in":"header","name":"api-key","scopes":[],"schemeName":"WorkspaceKey"}},"cbc6a301-f10f-46cf-9fbd-94f1d213407a":{"BearerAuth":{"type":"http","scheme":"bearer","scopes":["mcp.read"],"schemeName":"BearerAuth"}}},"servers":{"a83e41f0-aef7-41c9-a38c-38cdd354134b":{"url":"https://api.letterdrop.com/api/v2"}},"processedSecurityOptions":[{"schemes":[{"scheme":{"type":"apiKey","in":"header","name":"api-key","scopes":[],"schemeName":"WorkspaceKey"},"schema":{"title":"api-key","type":"string","isRequired":true,"typeLabel":"string","deprecated":false},"schemeName":"WorkspaceKey","name":"api-key"}],"title":"WorkspaceKey"},{"schemes":[{"scheme":{"type":"http","scheme":"bearer","scopes":["mcp.read"],"schemeName":"BearerAuth"},"schema":{"title":"Bearer Auth","type":"string","isRequired":true,"description":"Bearer authentication header of the form `Bearer \u003ctoken>`, where `\u003ctoken>` is your auth token.","format":"bearer","typeLabel":"string\u003cbearer>","deprecated":false},"schemeName":"BearerAuth","name":"Authorization"}],"title":"BearerAuth"}]},"originalFileLocation":"openapi.json"},"subdomain":"parthi-letterdrop-com","siteName":"Letterdrop API","title":"List contacts - Letterdrop API","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-11-10T13:22:28.152Z","originalFileLocation":"api-reference/contacts/list-contacts.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"system\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"One row per person who engaged a competitor: the person, their signals, and their account flattened alongside, as the webhook sends it. Takes the same filters as /accounts. Best fit first unless sorted.\">\u003cmeta data-mint-head name=\"application-name\" content=\"Letterdrop API\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/parthi-letterdrop-com/6oeaApTCGZkZfhTL/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/mintlify-assets/_mintlify/favicons/parthi-letterdrop-com/6oeaApTCGZkZfhTL/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/parthi-letterdrop-com/6oeaApTCGZkZfhTL/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/parthi-letterdrop-com/6oeaApTCGZkZfhTL/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/parthi-letterdrop-com/6oeaApTCGZkZfhTL/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/parthi-letterdrop-com/6oeaApTCGZkZfhTL/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/parthi-letterdrop-com/6oeaApTCGZkZfhTL/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/parthi-letterdrop-com/6oeaApTCGZkZfhTL/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/parthi-letterdrop-com/6oeaApTCGZkZfhTL/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"List contacts - Letterdrop API\">\u003cmeta data-mint-head property=\"og:description\" content=\"One row per person who engaged a competitor: the person, their signals, and their account flattened alongside, as the webhook sends it. Takes the same filters as /accounts. Best fit first unless sorted.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Letterdrop API\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.letterdrop.com/api-reference/contacts/list-contacts\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://parthi-letterdrop-com.mintlify.site/_mintlify/api/og/v2?division=Contacts\u0026amp;title=List+contacts\u0026amp;description=One+row+per+person+who+engaged+a+competitor%3A+the+person%2C+their+signals%2C+and+their+account+flattened+alongside%2C+as+the+webhook+sends+it.+Takes+the+same+filters+a\u0026amp;theme=01e646d607e9f4c56b237617\u0026amp;signature=df6cda9f8e7909fc08872f6be2ecd6e1d76d26273bf4b086135353da5ab962a7\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"List contacts - Letterdrop API\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"One row per person who engaged a competitor: the person, their signals, and their account flattened alongside, as the webhook sends it. Takes the same filters as /accounts. Best fit first unless sorted.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://parthi-letterdrop-com.mintlify.site/_mintlify/api/og/v2?division=Contacts\u0026amp;title=List+contacts\u0026amp;description=One+row+per+person+who+engaged+a+competitor%3A+the+person%2C+their+signals%2C+and+their+account+flattened+alongside%2C+as+the+webhook+sends+it.+Takes+the+same+filters+a\u0026amp;theme=01e646d607e9f4c56b237617\u0026amp;signature=df6cda9f8e7909fc08872f6be2ecd6e1d76d26273bf4b086135353da5ab962a7\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/mintlify-assets/_mintlify/favicons/parthi-letterdrop-com/6oeaApTCGZkZfhTL/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Letterdrop API\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#4F46E5\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.letterdrop.com/api-reference/contacts/list-contacts\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/api-reference/contacts/list-contacts.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.letterdrop.com/#organization\",\"name\":\"Letterdrop API\",\"url\":\"https://docs.letterdrop.com\"},{\"@type\":\"WebSite\",\"@id\":\"https://docs.letterdrop.com#website\",\"name\":\"Letterdrop API\",\"url\":\"https://docs.letterdrop.com\",\"publisher\":{\"@id\":\"https://docs.letterdrop.com/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.letterdrop.com/api-reference/contacts/list-contacts#webpage\",\"url\":\"https://docs.letterdrop.com/api-reference/contacts/list-contacts\",\"name\":\"List contacts\",\"description\":\"One row per person who engaged a competitor: the person, their signals, and their account flattened alongside, as the webhook sends it. Takes the same filters as /accounts. Best fit first unless sorted.\",\"dateModified\":\"2026-11-10T13:22:28.152Z\",\"isPartOf\":{\"@id\":\"https://docs.letterdrop.com#website\"},\"breadcrumb\":{\"@id\":\"https://docs.letterdrop.com/api-reference/contacts/list-contacts#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.letterdrop.com/api-reference/contacts/list-contacts#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Letterdrop API\",\"item\":\"https://docs.letterdrop.com\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"List contacts\",\"item\":\"https://docs.letterdrop.com/api-reference/contacts/list-contacts\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://docs.letterdrop.com/api-reference/contacts/list-contacts#apireference\",\"headline\":\"List contacts\",\"name\":\"List contacts\",\"description\":\"One row per person who engaged a competitor: the person, their signals, and their account flattened alongside, as the webhook sends it. Takes the same filters as /accounts. Best fit first unless sorted.\",\"url\":\"https://docs.letterdrop.com/api-reference/contacts/list-contacts\",\"mainEntityOfPage\":{\"@id\":\"https://docs.letterdrop.com/api-reference/contacts/list-contacts#webpage\"},\"dateModified\":\"2026-11-10T13:22:28.152Z\",\"publisher\":{\"@id\":\"https://docs.letterdrop.com/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.letterdrop.com#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Letterdrop API\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Letterdrop API\"},\"provider\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","agentPointerHref":"/api-reference/contacts/list-contacts.md","siteName":"Letterdrop API","nav":{"global":{"anchors":[{"anchor":"OpenAPI spec","icon":"file-code","href":"https://api.letterdrop.com/api/v2/openapi.json"},{"anchor":"llms.txt","icon":"robot","href":"https://api.letterdrop.com/api/v2/llms.txt"}]},"tabs":[{"tab":"Guides","pages":[{"title":"Guides","href":"/introduction"}]},{"tab":"API reference","groups":[{"group":"Accounts","pages":[{"title":"List accounts","deprecated":null,"version":null,"openapi":"/openapi.json get /accounts","href":"/api-reference/accounts/list-accounts"},{"title":"Find one account by domain or name","deprecated":null,"version":null,"openapi":"/openapi.json get /accounts/lookup","href":"/api-reference/accounts/find-one-account-by-domain-or-name"},{"title":"Get one account","deprecated":null,"version":null,"openapi":"/openapi.json get /accounts/{account_id}","href":"/api-reference/accounts/get-one-account"},{"title":"Get an account's CRM outreach","deprecated":null,"version":null,"openapi":"/openapi.json get /accounts/{account_id}/outreach","href":"/api-reference/accounts/get-an-accounts-crm-outreach"},{"title":"Get an account's CRM opportunities","deprecated":null,"version":null,"openapi":"/openapi.json get /accounts/{account_id}/opportunities","href":"/api-reference/accounts/get-an-accounts-crm-opportunities"},{"title":"Get an account's buying committee","deprecated":null,"version":null,"openapi":"/openapi.json get /accounts/{account_id}/buying-committee","href":"/api-reference/accounts/get-an-accounts-buying-committee"},{"title":"Get an account's job postings","description":"What the account's job postings say: competitors and software in use, and projects relevant to what you sell.","deprecated":null,"version":null,"openapi":"/openapi.json get /accounts/{account_id}/job-postings","href":"/api-reference/accounts/get-an-accounts-job-postings"}]},{"group":"Contacts","pages":[{"title":"List contacts","deprecated":null,"version":null,"openapi":"/openapi.json get /contacts","href":"/api-reference/contacts/list-contacts"}]},{"group":"Analytics","pages":[{"title":"Deals and meetings after a signal","description":"Deals created and meetings booked in the period on accounts with a signal, with the attribution verdict behind each. Requires start_date and end_date; takes the same filters as /accounts except the *_within_days and *_older_than_days ones.","deprecated":null,"version":null,"openapi":"/openapi.json get /analytics/deals-and-meetings","href":"/api-reference/analytics/deals-and-meetings-after-a-signal"},{"title":"Share of new-business pipeline with a signal","deprecated":null,"version":null,"openapi":"/openapi.json get /analytics/pipeline-coverage","href":"/api-reference/analytics/share-of-new-business-pipeline-with-a-signal"},{"title":"Accounts by priority","deprecated":null,"version":null,"openapi":"/openapi.json get /analytics/priority-breakdown","href":"/api-reference/analytics/accounts-by-priority"},{"title":"Estimated opportunities you can intercept","deprecated":null,"version":null,"openapi":"/openapi.json get /analytics/estimated-opportunities","href":"/api-reference/analytics/estimated-opportunities-you-can-intercept"},{"title":"Deal overlap and net new accounts","deprecated":null,"version":null,"openapi":"/openapi.json get /analytics/deal-overlap","href":"/api-reference/analytics/deal-overlap-and-net-new-accounts"},{"title":"Confirmed evaluations","deprecated":null,"version":null,"openapi":"/openapi.json get /analytics/confirmed-evaluations","href":"/api-reference/analytics/confirmed-evaluations"},{"title":"Accounts reached out to","deprecated":null,"version":null,"openapi":"/openapi.json get /analytics/outreach","href":"/api-reference/analytics/accounts-reached-out-to"},{"title":"Win rate with and without a signal","deprecated":null,"version":null,"openapi":"/openapi.json get /analytics/win-rate","href":"/api-reference/analytics/win-rate-with-and-without-a-signal"}]},{"group":"Filters","pages":[{"title":"Every key of an object, and how to select and filter on it","deprecated":null,"version":null,"openapi":"/openapi.json get /fields","href":"/api-reference/filters/every-key-of-an-object-and-how-to-select-and-filter-on-it"}]},{"group":"API Reference","pages":[{"title":"New competitor deal","version":null,"deprecated":null,"openapi":"/openapi.json webhook newCompetitorDeal","href":"/api-reference/new-competitor-deal"}]}]}]},"basePath":"","title":"List contacts - Letterdrop API","buildId":"dpl_596ePT575z4qnAFksq1biRW97aLY","deploymentId":"dpl_596ePT575z4qnAFksq1biRW97aLY","dynamics":["c2aa737661","2b790eda92","b0f84f53ff","a9bb46feb3"],"chunks":["OpenApiReferenceProvider-C9Wu0MeN.js","utils-jWgu-6Qf.js","cloneDeep-izs3Hzxb.js","_Uint8Array-BVIqJ90l.js","isObjectLike-C8vmzPEN.js","isArray-Dcu1dQ5t.js","utils-DBD8f9qn.js","toString-BX-iyh8G.js","isSymbol-CSH9U2Gm.js","addUniqueKeysToSchema-BGuX1ui5.js","snippetPresets-Evy63nQB.js","style-to-object-BY3JEAdk.js","v4-DIgz8zy6.js","conditional-requirements-CFM0id0Q.js","ApiExamples-BQHO1lnV.js","isEqual-BfaiBbcl.js","usePlaygroundInputsStore-B6C8m-t_.js","shallow-BG4cT0fH.js","getApiPlaygroundDisplay-CgEPrE-D.js","CodeSnippet-CU8JyZ9N.js","CodeSnippets-BnxHU32T.js","Page-D6S0Yh6q.js","getPastedJson-CwiYOonh.js","icon-DYDpWmDf.js","MethodPill-C-J-l7_c.js","DuplicateIcon-B6ARwg9w.js","createIcon-Dsv4MtDq.js","DynamicMarkdown-CtasenyM.js","SectionHeading-YNcgYwjB.js","axios-vUo_bRtp.js","Markdown-CwLx6PAg.js","clsx-C3kuh_dz.js","lib-DuNMoZ05.js","lib-B8HbPgcC.js","html-void-elements-mCSPHezU.js","dist-CmKHfscc.js","katex-YMM-FMeD.js","marked.esm-CZWythHk.js","AssistantPageLink-U3mI6Ljh.js"]}