{"openapi":"3.1.0","info":{"title":"LeadIQ Pro Developer API","summary":"Enrich B2B leads, discover work emails, and find mobile numbers programmatically.","description":"Authenticate every call with a Bearer API key you create in Settings → API. All endpoints share your dashboard's monthly quota and credit balances — no separate SKU, no new invoicing.","version":"1.0.0"},"paths":{"/api/v1/health":{"get":{"tags":["Developer API v1"],"summary":"V1 Health","description":"Liveness check — does not consume quota and does not require auth.\nUseful for CRM integration health checks.","operationId":"v1_health_api_v1_health_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/v1/leads/enrich":{"post":{"tags":["Developer API v1"],"summary":"Enrich a lead","description":"Enrich a single lead. Default is **async** — returns `{job_id,status}` in\n<1s and (if `callback_url` is set) POSTs the full enriched payload to that\nURL on completion. Pass `?mode=sync` to block up to ~90s and get the\nenriched lead inline.","operationId":"v1_enrich_lead_api_v1_leads_enrich_post","parameters":[{"name":"mode","in":"query","required":false,"schema":{"type":"string","default":"async","title":"Mode"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/V1EnrichIn"}}}},"responses":{"200":{"description":"Sync mode — the fully enriched lead.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V1LeadOut"}}}},"202":{"description":"Async mode — job queued. Poll /v1/jobs/{job_id} or wait for your `callback_url`.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V1EnrichJobCreated"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/json":{"example":{"detail":"Missing API key. Pass it as `Authorization: Bearer liq_live_…`."}}}},"402":{"description":"You've exhausted your monthly quota or credits.","content":{"application/json":{"example":{"detail":"Monthly enrichment limit reached. Buy a credit pack to continue."}}}},"403":{"description":"Your plan doesn't allow API access. Growth / Scale / Enterprise only.","content":{"application/json":{"example":{"detail":"The LeadIQ Pro Developer API requires a Growth, Scale, or Enterprise plan."}}}},"404":{"description":"The requested resource was not found or isn't owned by this API key.","content":{"application/json":{"example":{"detail":"Lead not found."}}}},"429":{"description":"Rate limited. Two variants: **per-key** (60/min sync, 600/min async) and **upstream_full** (the platform-wide ceiling on concurrent enrichments).","headers":{"Retry-After":{"description":"Seconds to wait before retrying.","schema":{"type":"integer"}}},"content":{"application/json":{"examples":{"per_key":{"summary":"Per-key rate limit hit","value":{"detail":"Rate limit exceeded (60 req/min). Retry in 42s."}},"upstream_full":{"summary":"Platform ceiling hit","value":{"detail":"upstream_full — the platform is at its concurrent enrichment ceiling. Retry in a few seconds."}}}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/jobs/{job_id}":{"get":{"tags":["Developer API v1"],"summary":"Get enrichment job status","operationId":"v1_get_job_api_v1_jobs__job_id__get","parameters":[{"name":"job_id","in":"path","required":true,"schema":{"type":"string","title":"Job Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V1JobOut"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/json":{"example":{"detail":"Missing API key. Pass it as `Authorization: Bearer liq_live_…`."}}}},"402":{"description":"You've exhausted your monthly quota or credits.","content":{"application/json":{"example":{"detail":"Monthly enrichment limit reached. Buy a credit pack to continue."}}}},"403":{"description":"Your plan doesn't allow API access. Growth / Scale / Enterprise only.","content":{"application/json":{"example":{"detail":"The LeadIQ Pro Developer API requires a Growth, Scale, or Enterprise plan."}}}},"404":{"description":"The requested resource was not found or isn't owned by this API key.","content":{"application/json":{"example":{"detail":"Lead not found."}}}},"429":{"description":"Rate limited. Two variants: **per-key** (60/min sync, 600/min async) and **upstream_full** (the platform-wide ceiling on concurrent enrichments).","headers":{"Retry-After":{"description":"Seconds to wait before retrying.","schema":{"type":"integer"}}},"content":{"application/json":{"examples":{"per_key":{"summary":"Per-key rate limit hit","value":{"detail":"Rate limit exceeded (60 req/min). Retry in 42s."}},"upstream_full":{"summary":"Platform ceiling hit","value":{"detail":"upstream_full — the platform is at its concurrent enrichment ceiling. Retry in a few seconds."}}}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/leads":{"get":{"tags":["Developer API v1"],"summary":"List enriched leads","operationId":"v1_list_leads_api_v1_leads_get","parameters":[{"name":"limit","in":"query","required":false,"schema":{"type":"integer","default":50,"title":"Limit"}},{"name":"skip","in":"query","required":false,"schema":{"type":"integer","default":0,"title":"Skip"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"401":{"description":"Missing or invalid API key.","content":{"application/json":{"example":{"detail":"Missing API key. Pass it as `Authorization: Bearer liq_live_…`."}}}},"402":{"description":"You've exhausted your monthly quota or credits.","content":{"application/json":{"example":{"detail":"Monthly enrichment limit reached. Buy a credit pack to continue."}}}},"403":{"description":"Your plan doesn't allow API access. Growth / Scale / Enterprise only.","content":{"application/json":{"example":{"detail":"The LeadIQ Pro Developer API requires a Growth, Scale, or Enterprise plan."}}}},"404":{"description":"The requested resource was not found or isn't owned by this API key.","content":{"application/json":{"example":{"detail":"Lead not found."}}}},"429":{"description":"Rate limited. Two variants: **per-key** (60/min sync, 600/min async) and **upstream_full** (the platform-wide ceiling on concurrent enrichments).","headers":{"Retry-After":{"description":"Seconds to wait before retrying.","schema":{"type":"integer"}}},"content":{"application/json":{"examples":{"per_key":{"summary":"Per-key rate limit hit","value":{"detail":"Rate limit exceeded (60 req/min). Retry in 42s."}},"upstream_full":{"summary":"Platform ceiling hit","value":{"detail":"upstream_full — the platform is at its concurrent enrichment ceiling. Retry in a few seconds."}}}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/leads/{lead_id}":{"get":{"tags":["Developer API v1"],"summary":"Get a single enriched lead","operationId":"v1_get_lead_api_v1_leads__lead_id__get","parameters":[{"name":"lead_id","in":"path","required":true,"schema":{"type":"string","title":"Lead Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V1LeadOut"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/json":{"example":{"detail":"Missing API key. Pass it as `Authorization: Bearer liq_live_…`."}}}},"402":{"description":"You've exhausted your monthly quota or credits.","content":{"application/json":{"example":{"detail":"Monthly enrichment limit reached. Buy a credit pack to continue."}}}},"403":{"description":"Your plan doesn't allow API access. Growth / Scale / Enterprise only.","content":{"application/json":{"example":{"detail":"The LeadIQ Pro Developer API requires a Growth, Scale, or Enterprise plan."}}}},"404":{"description":"The requested resource was not found or isn't owned by this API key.","content":{"application/json":{"example":{"detail":"Lead not found."}}}},"429":{"description":"Rate limited. Two variants: **per-key** (60/min sync, 600/min async) and **upstream_full** (the platform-wide ceiling on concurrent enrichments).","headers":{"Retry-After":{"description":"Seconds to wait before retrying.","schema":{"type":"integer"}}},"content":{"application/json":{"examples":{"per_key":{"summary":"Per-key rate limit hit","value":{"detail":"Rate limit exceeded (60 req/min). Retry in 42s."}},"upstream_full":{"summary":"Platform ceiling hit","value":{"detail":"upstream_full — the platform is at its concurrent enrichment ceiling. Retry in a few seconds."}}}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["Developer API v1"],"summary":"Delete an enriched lead","operationId":"v1_delete_lead_api_v1_leads__lead_id__delete","parameters":[{"name":"lead_id","in":"path","required":true,"schema":{"type":"string","title":"Lead Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"401":{"description":"Missing or invalid API key.","content":{"application/json":{"example":{"detail":"Missing API key. Pass it as `Authorization: Bearer liq_live_…`."}}}},"402":{"description":"You've exhausted your monthly quota or credits.","content":{"application/json":{"example":{"detail":"Monthly enrichment limit reached. Buy a credit pack to continue."}}}},"403":{"description":"Your plan doesn't allow API access. Growth / Scale / Enterprise only.","content":{"application/json":{"example":{"detail":"The LeadIQ Pro Developer API requires a Growth, Scale, or Enterprise plan."}}}},"404":{"description":"The requested resource was not found or isn't owned by this API key.","content":{"application/json":{"example":{"detail":"Lead not found."}}}},"429":{"description":"Rate limited. Two variants: **per-key** (60/min sync, 600/min async) and **upstream_full** (the platform-wide ceiling on concurrent enrichments).","headers":{"Retry-After":{"description":"Seconds to wait before retrying.","schema":{"type":"integer"}}},"content":{"application/json":{"examples":{"per_key":{"summary":"Per-key rate limit hit","value":{"detail":"Rate limit exceeded (60 req/min). Retry in 42s."}},"upstream_full":{"summary":"Platform ceiling hit","value":{"detail":"upstream_full — the platform is at its concurrent enrichment ceiling. Retry in a few seconds."}}}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/leads/{lead_id}/re-enrich":{"post":{"tags":["Developer API v1"],"summary":"Re-enrich an existing lead","operationId":"v1_reenrich_lead_api_v1_leads__lead_id__re_enrich_post","parameters":[{"name":"lead_id","in":"path","required":true,"schema":{"type":"string","title":"Lead Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V1LeadOut"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/json":{"example":{"detail":"Missing API key. Pass it as `Authorization: Bearer liq_live_…`."}}}},"402":{"description":"You've exhausted your monthly quota or credits.","content":{"application/json":{"example":{"detail":"Monthly enrichment limit reached. Buy a credit pack to continue."}}}},"403":{"description":"Your plan doesn't allow API access. Growth / Scale / Enterprise only.","content":{"application/json":{"example":{"detail":"The LeadIQ Pro Developer API requires a Growth, Scale, or Enterprise plan."}}}},"404":{"description":"The requested resource was not found or isn't owned by this API key.","content":{"application/json":{"example":{"detail":"Lead not found."}}}},"429":{"description":"Rate limited. Two variants: **per-key** (60/min sync, 600/min async) and **upstream_full** (the platform-wide ceiling on concurrent enrichments).","headers":{"Retry-After":{"description":"Seconds to wait before retrying.","schema":{"type":"integer"}}},"content":{"application/json":{"examples":{"per_key":{"summary":"Per-key rate limit hit","value":{"detail":"Rate limit exceeded (60 req/min). Retry in 42s."}},"upstream_full":{"summary":"Platform ceiling hit","value":{"detail":"upstream_full — the platform is at its concurrent enrichment ceiling. Retry in a few seconds."}}}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/email/find":{"post":{"tags":["Developer API v1"],"summary":"Find a work email","description":"Manual email discovery — draws from the user's Enrichment credit pool\n(same budget as `/find-email` in the UI). Charged ONLY on hit.","operationId":"v1_find_email_api_v1_email_find_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/V1EmailFindIn"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V1EmailFindOut"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/json":{"example":{"detail":"Missing API key. Pass it as `Authorization: Bearer liq_live_…`."}}}},"402":{"description":"You've exhausted your monthly quota or credits.","content":{"application/json":{"example":{"detail":"Monthly enrichment limit reached. Buy a credit pack to continue."}}}},"403":{"description":"Your plan doesn't allow API access. Growth / Scale / Enterprise only.","content":{"application/json":{"example":{"detail":"The LeadIQ Pro Developer API requires a Growth, Scale, or Enterprise plan."}}}},"404":{"description":"The requested resource was not found or isn't owned by this API key.","content":{"application/json":{"example":{"detail":"Lead not found."}}}},"429":{"description":"Rate limited. Two variants: **per-key** (60/min sync, 600/min async) and **upstream_full** (the platform-wide ceiling on concurrent enrichments).","headers":{"Retry-After":{"description":"Seconds to wait before retrying.","schema":{"type":"integer"}}},"content":{"application/json":{"examples":{"per_key":{"summary":"Per-key rate limit hit","value":{"detail":"Rate limit exceeded (60 req/min). Retry in 42s."}},"upstream_full":{"summary":"Platform ceiling hit","value":{"detail":"upstream_full — the platform is at its concurrent enrichment ceiling. Retry in a few seconds."}}}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/mobile/find":{"post":{"tags":["Developer API v1"],"summary":"Submit a mobile-number lookup","description":"Manual mobile discovery — draws from the user's Mobile credit pool\n(same budget as `/find-mobile` in the UI). Returns `pending` and a\n`lookup_id` the caller can poll via `GET /v1/mobile/find/{lookup_id}`.\nCharged only when the lookup settles with a number.","operationId":"v1_find_mobile_api_v1_mobile_find_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/V1MobileFindIn"}}},"required":true},"responses":{"202":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V1MobileFindOut"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/json":{"example":{"detail":"Missing API key. Pass it as `Authorization: Bearer liq_live_…`."}}}},"402":{"description":"You've exhausted your monthly quota or credits.","content":{"application/json":{"example":{"detail":"Monthly enrichment limit reached. Buy a credit pack to continue."}}}},"403":{"description":"Your plan doesn't allow API access. Growth / Scale / Enterprise only.","content":{"application/json":{"example":{"detail":"The LeadIQ Pro Developer API requires a Growth, Scale, or Enterprise plan."}}}},"404":{"description":"The requested resource was not found or isn't owned by this API key.","content":{"application/json":{"example":{"detail":"Lead not found."}}}},"429":{"description":"Rate limited. Two variants: **per-key** (60/min sync, 600/min async) and **upstream_full** (the platform-wide ceiling on concurrent enrichments).","headers":{"Retry-After":{"description":"Seconds to wait before retrying.","schema":{"type":"integer"}}},"content":{"application/json":{"examples":{"per_key":{"summary":"Per-key rate limit hit","value":{"detail":"Rate limit exceeded (60 req/min). Retry in 42s."}},"upstream_full":{"summary":"Platform ceiling hit","value":{"detail":"upstream_full — the platform is at its concurrent enrichment ceiling. Retry in a few seconds."}}}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/mobile/find/{lookup_id}":{"get":{"tags":["Developer API v1"],"summary":"Poll a mobile lookup","operationId":"v1_mobile_lookup_status_api_v1_mobile_find__lookup_id__get","parameters":[{"name":"lookup_id","in":"path","required":true,"schema":{"type":"string","title":"Lookup Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V1MobileFindOut"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/json":{"example":{"detail":"Missing API key. Pass it as `Authorization: Bearer liq_live_…`."}}}},"402":{"description":"You've exhausted your monthly quota or credits.","content":{"application/json":{"example":{"detail":"Monthly enrichment limit reached. Buy a credit pack to continue."}}}},"403":{"description":"Your plan doesn't allow API access. Growth / Scale / Enterprise only.","content":{"application/json":{"example":{"detail":"The LeadIQ Pro Developer API requires a Growth, Scale, or Enterprise plan."}}}},"404":{"description":"The requested resource was not found or isn't owned by this API key.","content":{"application/json":{"example":{"detail":"Lead not found."}}}},"429":{"description":"Rate limited. Two variants: **per-key** (60/min sync, 600/min async) and **upstream_full** (the platform-wide ceiling on concurrent enrichments).","headers":{"Retry-After":{"description":"Seconds to wait before retrying.","schema":{"type":"integer"}}},"content":{"application/json":{"examples":{"per_key":{"summary":"Per-key rate limit hit","value":{"detail":"Rate limit exceeded (60 req/min). Retry in 42s."}},"upstream_full":{"summary":"Platform ceiling hit","value":{"detail":"upstream_full — the platform is at its concurrent enrichment ceiling. Retry in a few seconds."}}}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/usage":{"get":{"tags":["Developer API v1"],"summary":"Get your usage and remaining credits","description":"Current month quota, credit balances, request counts.","operationId":"v1_usage_api_v1_usage_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V1UsageOut"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/json":{"example":{"detail":"Missing API key. Pass it as `Authorization: Bearer liq_live_…`."}}}},"402":{"description":"You've exhausted your monthly quota or credits.","content":{"application/json":{"example":{"detail":"Monthly enrichment limit reached. Buy a credit pack to continue."}}}},"403":{"description":"Your plan doesn't allow API access. Growth / Scale / Enterprise only.","content":{"application/json":{"example":{"detail":"The LeadIQ Pro Developer API requires a Growth, Scale, or Enterprise plan."}}}},"404":{"description":"The requested resource was not found or isn't owned by this API key.","content":{"application/json":{"example":{"detail":"Lead not found."}}}},"429":{"description":"Rate limited. Two variants: **per-key** (60/min sync, 600/min async) and **upstream_full** (the platform-wide ceiling on concurrent enrichments).","headers":{"Retry-After":{"description":"Seconds to wait before retrying.","schema":{"type":"integer"}}},"content":{"application/json":{"examples":{"per_key":{"summary":"Per-key rate limit hit","value":{"detail":"Rate limit exceeded (60 req/min). Retry in 42s."}},"upstream_full":{"summary":"Platform ceiling hit","value":{"detail":"upstream_full — the platform is at its concurrent enrichment ceiling. Retry in a few seconds."}}}}}}}}}},"components":{"schemas":{"HTTPValidationError":{"properties":{"detail":{"items":{"$ref":"#/components/schemas/ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"},"V1BuyingCommitteeMember":{"properties":{"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"title":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Title"},"role":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Role","description":"E.g. 'Economic buyer', 'Champion', 'Technical evaluator'."},"linkedin_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Linkedin Url"}},"type":"object","title":"V1BuyingCommitteeMember"},"V1CompanyOverview":{"properties":{"company_size":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Company Size","description":"Bucketed headcount, e.g. '51-200'."},"industry":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Industry","description":"Primary industry classification."},"summary":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Summary","description":"One-paragraph plain-English summary of the company."}},"type":"object","title":"V1CompanyOverview"},"V1EmailFindIn":{"properties":{"linkedin_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Linkedin Url","examples":["https://linkedin.com/in/janedoe"]},"first_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"First Name","examples":["Jane"]},"last_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Last Name","examples":["Doe"]},"company_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Company Name","examples":["Acme Corp"]},"domain":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Domain","examples":["acme.com"]}},"type":"object","title":"V1EmailFindIn","description":"Input to POST /v1/email/find. Provide either `linkedin_url`, OR\n`first_name` + `last_name` + (`company_name` or `domain`)."},"V1EmailFindOut":{"properties":{"state":{"type":"string","title":"State","description":"`found` on hit, `not_found` on miss (no credit charged on miss)."},"email":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Email"},"email_status":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Email Status","description":"E.g. `verified`, `catch_all`, `risky`."},"email_score":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Email Score","description":"0-100 confidence score (provider-dependent)."},"source":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Source","description":"Always `leadiq_verified` on hit."},"contact":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Contact"},"message":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Message"}},"type":"object","required":["state"],"title":"V1EmailFindOut"},"V1EngagementPlaybook":{"properties":{"timing":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Timing","description":"When to reach out (e.g. 'Within 2 weeks of their Series B')."},"opening_line":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Opening Line","description":"Personalized first line for outreach."},"value_prop":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Value Prop","description":"Positioning that fits this specific lead."},"case_study_angle":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Case Study Angle","description":"Which case-study story to lean on."}},"type":"object","title":"V1EngagementPlaybook"},"V1EnrichIn":{"properties":{"lead":{"$ref":"#/components/schemas/V1LeadIn"},"callback_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Callback Url","description":"Webhook URL — if provided, LeadIQ Pro POSTs the enriched payload here when the job completes. Ignored for sync requests.","examples":["https://yourapp.com/webhooks/leadiq"]}},"type":"object","required":["lead"],"title":"V1EnrichIn","description":"Request body for POST /v1/leads/enrich. Attach a `callback_url` to turn\nthe async flow into a webhook callback — LeadIQ will POST the enriched\npayload to that URL once the job completes."},"V1EnrichJobCreated":{"properties":{"job_id":{"type":"string","title":"Job Id"},"status":{"type":"string","title":"Status","description":"Always `queued` on creation.","default":"queued"}},"type":"object","required":["job_id"],"title":"V1EnrichJobCreated"},"V1Enrichment":{"properties":{"company_overview":{"$ref":"#/components/schemas/V1CompanyOverview"},"tech_stack":{"$ref":"#/components/schemas/V1TechStack"},"products":{"items":{"type":"string"},"type":"array","title":"Products"},"intent_signals":{"$ref":"#/components/schemas/V1IntentSignals"},"buying_committee":{"items":{"$ref":"#/components/schemas/V1BuyingCommitteeMember"},"type":"array","title":"Buying Committee"},"pain_points":{"items":{"type":"string"},"type":"array","title":"Pain Points"},"engagement_playbook":{"$ref":"#/components/schemas/V1EngagementPlaybook"},"opportunity_score":{"type":"integer","maximum":100.0,"minimum":0.0,"title":"Opportunity Score","description":"0-100 score of how promising this lead is overall."},"score_rationale":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Score Rationale","description":"One-sentence explanation of why the score landed where it did."},"tags":{"items":{"type":"string"},"type":"array","title":"Tags","description":"Semantic tags describing this lead (persona, segment, etc.)."}},"type":"object","required":["company_overview","tech_stack","intent_signals","engagement_playbook","opportunity_score"],"title":"V1Enrichment","description":"The full enriched payload for a lead — this is the data `/v1/leads/enrich`\nreturns inline (sync) or sends to your `callback_url` (async)."},"V1IntentSignals":{"properties":{"hiring_signals":{"items":{"type":"string"},"type":"array","title":"Hiring Signals","description":"Recent hires or open roles signalling intent."},"recent_news":{"items":{"type":"string"},"type":"array","title":"Recent News","description":"Press and news hits from the last ~90 days."},"content_published":{"items":{"type":"string"},"type":"array","title":"Content Published","description":"Published content, blog posts, or launches."},"events_attended":{"items":{"type":"string"},"type":"array","title":"Events Attended","description":"Industry events or sponsorships."}},"type":"object","title":"V1IntentSignals"},"V1JobOut":{"properties":{"job_id":{"type":"string","title":"Job Id"},"status":{"type":"string","title":"Status","description":"One of: `queued`, `running`, `done`, `failed`."},"kind":{"type":"string","title":"Kind","description":"Always `lead.enrich` in MVP."},"created_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Created At"},"started_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Started At"},"finished_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Finished At"},"result":{"anyOf":[{"$ref":"#/components/schemas/V1LeadOut"},{"type":"null"}]},"error":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Error"},"callback_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Callback Url"}},"type":"object","required":["job_id","status","kind"],"title":"V1JobOut"},"V1LeadIn":{"properties":{"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Full name of the contact, e.g. 'Jane Doe'.","examples":["Jane Doe"]},"email":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Email","description":"Contact's email. Used for dedupe against your existing leads and for email validation.","examples":["jane@acme.com"]},"title":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Title","description":"Job title, e.g. 'VP of Marketing'.","examples":["VP of Marketing"]},"company":{"type":"string","title":"Company","description":"Company name, e.g. 'Acme Corp'.","examples":["Acme Corp"]},"domain":{"type":"string","title":"Domain","description":"Company domain (bare, no scheme), e.g. 'acme.com'. Used for firmographics, intent signals, and email discovery.","examples":["acme.com"]},"linkedin_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Linkedin Url","description":"LinkedIn profile URL (optional). Enables profile-based enrichment paths.","examples":["https://linkedin.com/in/janedoe"]}},"type":"object","required":["company","domain"],"title":"V1LeadIn","description":"A single lead to enrich. `company` and `domain` are required — everything\nelse sharpens matching and personalization but isn't mandatory."},"V1LeadOut":{"properties":{"id":{"type":"string","title":"Id"},"input":{"$ref":"#/components/schemas/V1LeadIn"},"enrichment":{"$ref":"#/components/schemas/V1Enrichment"},"tier":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tier","description":"Account tier at the time of enrichment."},"created_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Created At","description":"ISO-8601 timestamp."},"deduped":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Deduped","description":"`true` if this contact already existed and we returned the existing record without charging."},"message":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Message"}},"type":"object","required":["id","input","enrichment"],"title":"V1LeadOut","description":"Shape returned by GET /v1/leads/{id}, POST /v1/leads/enrich?mode=sync,\nand inside the webhook payload's `result` field."},"V1MobileFindIn":{"properties":{"linkedin_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Linkedin Url","examples":["https://linkedin.com/in/janedoe"]},"first_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"First Name","examples":["Jane"]},"last_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Last Name","examples":["Doe"]},"company_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Company Name","examples":["Acme Corp"]},"domain":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Domain","examples":["acme.com"]}},"type":"object","title":"V1MobileFindIn","description":"Input to POST /v1/mobile/find. Same shape as email find — provide a\nLinkedIn URL or a (first + last + company/domain) tuple."},"V1MobileFindOut":{"properties":{"lookup_id":{"type":"string","title":"Lookup Id","description":"Pass this to GET /v1/mobile/find/{lookup_id} to poll for the result."},"state":{"type":"string","title":"State","description":"`pending`, `settled` (number found), or `refunded` (no number — credit not charged)."},"contact":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Contact"},"mobile":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Mobile","description":"Phone number in E.164 format, only present when state=`settled`."},"created_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Created At"}},"type":"object","required":["lookup_id","state"],"title":"V1MobileFindOut"},"V1TechStack":{"properties":{"cloud":{"items":{"type":"string"},"type":"array","title":"Cloud","description":"Cloud providers detected (AWS, GCP, Azure, etc.)."},"crm":{"items":{"type":"string"},"type":"array","title":"Crm","description":"CRM systems in use (HubSpot, Salesforce, Pipedrive, etc.)."},"security":{"items":{"type":"string"},"type":"array","title":"Security","description":"Security / IAM tooling."},"infrastructure":{"items":{"type":"string"},"type":"array","title":"Infrastructure","description":"Infra and devtools (Kubernetes, Datadog, …)."},"other":{"items":{"type":"string"},"type":"array","title":"Other","description":"Other notable tools that didn't fit the categories above."}},"type":"object","title":"V1TechStack"},"V1UsageOut":{"properties":{"tier":{"type":"string","title":"Tier"},"monthly_leads":{"$ref":"#/components/schemas/_MonthlyLeads"},"mobile_credits":{"$ref":"#/components/schemas/_MobileCredits"},"api_calls_this_month":{"$ref":"#/components/schemas/_ApiCalls"}},"type":"object","required":["tier","monthly_leads","mobile_credits","api_calls_this_month"],"title":"V1UsageOut"},"ValidationError":{"properties":{"loc":{"items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"array","title":"Location"},"msg":{"type":"string","title":"Message"},"type":{"type":"string","title":"Error Type"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError"},"_ApiCalls":{"properties":{"total":{"type":"integer","title":"Total"},"this_key":{"type":"integer","title":"This Key"}},"type":"object","required":["total","this_key"],"title":"_ApiCalls"},"_MobileCredits":{"properties":{"purchased":{"type":"integer","title":"Purchased"},"used":{"type":"integer","title":"Used"},"balance":{"type":"integer","title":"Balance"}},"type":"object","required":["purchased","used","balance"],"title":"_MobileCredits"},"_MonthlyLeads":{"properties":{"included":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Included"},"credits_added":{"type":"integer","title":"Credits Added"},"effective_limit":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Effective Limit"},"used":{"type":"integer","title":"Used"}},"type":"object","required":["included","credits_added","effective_limit","used"],"title":"_MonthlyLeads"}},"securitySchemes":{"BearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"liq_live_…"}}},"security":[{"BearerAuth":[]}]}