{"openapi":"3.0.0","info":{"title":"ColdIQ API","version":"0.1.0","description":"ColdIQ API Marketplace — unified proxy for B2B data APIs.\n\n## Calling from a script\n\n**Send a User-Agent header.** Some default client User-Agents — `Python-urllib` among them —\nare blocked at the Cloudflare edge before the request reaches this API. A blocked request\nreturns a bare `403` with no body, which reads exactly like an authentication failure and sends\nyou to re-check your key, your `Bearer ` prefix and your base URL. None of those is the problem.\n\nSet an identifying User-Agent on every request and the 403 goes away:\n\n```python\nimport requests  # requests sets its own User-Agent; urllib does not\n\nrequests.post(\n    \"https://api.coldiq.com/v1/email/find\",\n    headers={\n        \"Authorization\": f\"Bearer {COLDIQ_API_KEY}\",\n        \"User-Agent\": \"my-company-enrichment/1.0\",\n    },\n    json={\"input\": {\"first_name\": \"Michel\", \"last_name\": \"Lieben\", \"domain\": \"coldiq.com\"}},\n)\n```\n\nHow to tell the two 403s apart: an authentication failure returns a JSON body with an `error`\nfield, and an invalid key returns `401`, not `403`. A bare `403` with no body is the edge block."},"servers":[{"url":"https://api.coldiq.com","description":"API"}],"tags":[{"name":"GTM Verbs","description":"Provider-agnostic GTM verbs — one call (find an email, enrich a company) routed across the best provider via a managed waterfall. Pin a vendor or supply an ordered chain with `provider`; charged only on a usable result.","externalDocs":{"url":"https://coldiq.com","description":"ColdIQ website"},"x-logo":"https://www.google.com/s2/favicons?domain=coldiq.com&sz=64"},{"name":"Team","description":"Invite teammates into your workspace. Members get full access to the API on your subscription — their usage bills your credits, and only you manage billing."},{"name":"Slack","description":"Connect your Slack workspace to your ColdIQ team, so the agent answers any member in Slack and the team owner pays for it."},{"name":"FullEnrich","description":"Email & phone number enrichment via LinkedIn URLs","externalDocs":{"url":"https://docs.fullenrich.com/","description":"FullEnrich API docs"},"x-logo":"https://www.google.com/s2/favicons?domain=fullenrich.com&sz=64"},{"name":"Adyntel","description":"Ad intelligence across Meta, Google, LinkedIn & TikTok ad libraries — by domain or keyword","externalDocs":{"url":"https://docs.adyntel.com/","description":"Adyntel API docs"},"x-logo":"https://www.google.com/s2/favicons?domain=adyntel.com&sz=64"},{"name":"Apollo","description":"B2B contact & company database with CRM features","externalDocs":{"url":"https://docs.apollo.io/reference","description":"Apollo API docs"},"x-logo":"https://www.google.com/s2/favicons?domain=apollo.io&sz=64"},{"name":"BounceBan","description":"Verify catch-all and risky emails without sending — verdicts for addresses other tools mark unknown","externalDocs":{"url":"https://bounceban.com/public/doc/api.html","description":"BounceBan API docs"},"x-logo":"https://www.google.com/s2/favicons?domain=bounceban.com&sz=64"},{"name":"DiscoLike","description":"Company discovery & B2B contacts — lookalike domain search, natural-language ICP matching, firmographics, and contact enrichment across 70M+ companies","externalDocs":{"url":"https://docs.discolike.com/","description":"DiscoLike API docs"},"x-logo":"https://www.google.com/s2/favicons?domain=discolike.com&sz=64"},{"name":"Exa","description":"AI-powered semantic web search & crawling","externalDocs":{"url":"https://docs.exa.ai/","description":"Exa API docs"},"x-logo":"https://www.google.com/s2/favicons?domain=exa.ai&sz=64"},{"name":"Findymail","description":"Professional email finder & verifier","externalDocs":{"url":"https://app.findymail.com/docs/","description":"Findymail API docs"},"x-logo":"https://www.google.com/s2/favicons?domain=findymail.com&sz=64"},{"name":"Icypeas","description":"Email search, verification & domain scanning","externalDocs":{"url":"https://api-doc.icypeas.com/","description":"Icypeas API docs"},"x-logo":"https://www.google.com/s2/favicons?domain=icypeas.com&sz=64"},{"name":"Lima Data","description":"Company and people data intelligence platform","externalDocs":{"url":"https://limadata.com","description":"Lima Data website"},"x-logo":"https://www.google.com/s2/favicons?domain=limadata.com&sz=64"},{"name":"PredictLeads","description":"Company growth signals & buying intent data","externalDocs":{"url":"https://docs.predictleads.com/","description":"PredictLeads API docs"},"x-logo":"https://www.google.com/s2/favicons?domain=predictleads.com&sz=64"},{"name":"Openmart","description":"Retail & local business search, enrichment, and people intelligence","externalDocs":{"url":"https://api.openmart.ai/docs","description":"Openmart API docs"},"x-logo":"https://www.google.com/s2/favicons?domain=openmart.com&sz=64"},{"name":"Instantly","description":"Cold email outreach automation — campaigns, leads, email accounts, and deliverability","externalDocs":{"url":"https://developer.instantly.ai","description":"Instantly API docs"},"x-logo":"https://www.google.com/s2/favicons?domain=instantly.ai&sz=64"},{"name":"Attio","description":"CRM platform — manage people, companies, notes, tasks, and search across records","externalDocs":{"url":"https://developers.attio.com/reference","description":"Attio API docs"},"x-logo":"https://www.google.com/s2/favicons?domain=attio.com&sz=64"},{"name":"Lemlist","description":"Cold email & multichannel outreach platform — campaigns, leads, and personalization","externalDocs":{"url":"https://developer.lemlist.com/","description":"Lemlist API docs"},"x-logo":"https://www.google.com/s2/favicons?domain=lemlist.com&sz=64"},{"name":"Wiza","description":"LinkedIn prospecting & email finder — export leads with verified contact data","externalDocs":{"url":"https://wiza.co/api-docs","description":"Wiza API docs"},"x-logo":"https://www.google.com/s2/favicons?domain=wiza.co&sz=64"},{"name":"Jina","description":"Usage-based web reading, search, reranking, zero-shot classification, grounding, segmentation, and deep research — no Jina account required","externalDocs":{"url":"https://docs.jina.ai/","description":"Jina AI API docs"},"x-logo":"https://www.google.com/s2/favicons?domain=jina.ai&sz=64"},{"name":"Twitter","description":"Twitter (X) scraping — search, profile, list, and URL-based tweet extraction","externalDocs":{"url":"https://x.com","description":"X (Twitter) website"},"x-logo":"https://www.google.com/s2/favicons?domain=x.com&sz=64"},{"name":"Google Maps","description":"Scrape reviews and place data from Google Maps","externalDocs":{"url":"https://maps.google.com","description":"Google Maps"},"x-logo":"https://www.google.com/s2/favicons?domain=maps.google.com&sz=64"},{"name":"Reddit","description":"Scrape Reddit posts and comments by subreddit, post URL, or search query","externalDocs":{"url":"https://reddit.com","description":"Reddit website"},"x-logo":"https://www.google.com/s2/favicons?domain=reddit.com&sz=64"},{"name":"LinkedIn Ad Library","description":"Search and extract ads from the LinkedIn Ad Library — ad copy, media, CTAs, impressions, and advertiser details","externalDocs":{"url":"https://www.linkedin.com/ad-library","description":"LinkedIn Ad Library"},"x-logo":"https://www.google.com/s2/favicons?domain=linkedin.com&sz=64"},{"name":"Meta Ads Library","description":"Search and scrape ads from the Facebook Ads Library — creatives, targeting, spend, and activity data","externalDocs":{"url":"https://www.facebook.com/ads/library","description":"Meta Ads Library"},"x-logo":"https://www.google.com/s2/favicons?domain=facebook.com&sz=64"},{"name":"Google Ads","description":"Scrape Google Ads from the Ads Transparency Center — search by advertiser name, domain, or ID to get ad creatives, formats, dates, and preview URLs","externalDocs":{"url":"https://adstransparency.google.com","description":"Google Ads Transparency Center"},"x-logo":"https://www.google.com/s2/favicons?domain=ads.google.com&sz=64"},{"name":"Twitter Ads Scraper","description":"Scrape Twitter/X Ad Transparency Center — extract ad text, images, impressions, engagement metrics, and targeting details","externalDocs":{"url":"https://ads.x.com/transparency","description":"X Ads Transparency Center"},"x-logo":"https://www.google.com/s2/favicons?domain=twitter.com&sz=64"},{"name":"BuiltWith","description":"Technology profiling — detect the full tech stack of any domain including frameworks, analytics, CRMs, ad networks, and CDNs","externalDocs":{"url":"https://api.builtwith.com/","description":"BuiltWith API docs"},"x-logo":"https://www.google.com/s2/favicons?domain=builtwith.com&sz=64"},{"name":"Prospeo","description":"Person and company enrichment and search — enrich by LinkedIn URL, email, or name; search with 30+ filters","externalDocs":{"url":"https://prospeo.io/api-docs","description":"Prospeo API docs"},"x-logo":"https://www.google.com/s2/favicons?domain=prospeo.io&sz=64"},{"name":"LeadMagic","description":"B2B enrichment — work/personal email finder and validation, mobile finder, profile and company intel, competitor ads","externalDocs":{"url":"https://leadmagic.io/docs/v1/making-api-calls","description":"LeadMagic API docs"},"x-logo":"https://www.google.com/s2/favicons?domain=leadmagic.io&sz=64"},{"name":"DataForSEO","description":"SEO data platform — SERP results, keyword research, backlink analysis, domain analytics, traffic estimation, and on-page audits","externalDocs":{"url":"https://docs.dataforseo.com/v3/","description":"DataForSEO API docs"},"x-logo":"https://www.google.com/s2/favicons?domain=dataforseo.com&sz=64"},{"name":"TheirStack","description":"Job postings and company technographics — search jobs by tech stack, find companies by technology usage and buying intent signals","externalDocs":{"url":"https://theirstack.com/en/docs/api-reference","description":"TheirStack API docs"},"x-logo":"https://www.google.com/s2/favicons?domain=theirstack.com&sz=64"},{"name":"Sumble","description":"B2B intelligence platform — find and enrich organizations, match company lists, find people by role, enrich contact details, and search job postings by technology","externalDocs":{"url":"https://docs.sumble.com/api","description":"Sumble API docs"},"x-logo":"https://www.google.com/s2/favicons?domain=sumble.com&sz=64"},{"name":"Unipile","description":"Unified messaging & email API — manage LinkedIn, WhatsApp, Gmail, Outlook and more from a single integration: send messages, manage chats, sync emails, handle invitations, and post on social","externalDocs":{"url":"https://developer.unipile.com/reference","description":"Unipile API docs"},"x-logo":"https://www.google.com/s2/favicons?domain=unipile.com&sz=64"},{"name":"LinkUp API","description":"B2B data intelligence — person & company enrichment, email finder & validation, reverse email lookup, and intent signals (funded companies, hiring companies)","externalDocs":{"url":"https://docs.linkupapi.com/api-reference/introduction","description":"LinkUp API docs"},"x-logo":"https://www.google.com/s2/favicons?domain=linkupapi.com&sz=64"},{"name":"AI Ark","description":"B2B people & company intelligence — search 500M+ people and 70M+ companies, find emails, look up mobile phones, and export enriched profiles with verified contact data","externalDocs":{"url":"https://docs.ai-ark.com/","description":"AI Ark API docs"},"x-logo":"https://www.google.com/s2/favicons?domain=ai-ark.com&sz=64"},{"name":"LinkedIn Jobs API","description":"Real-time LinkedIn job search with advanced filters — title, location, description, company size, industry, seniority, employment type, and AI enrichments (work arrangement, salary, experience level, visa sponsorship)","externalDocs":{"url":"https://www.linkedin.com/jobs","description":"LinkedIn Jobs"},"x-logo":"https://www.google.com/s2/favicons?domain=linkedin.com&sz=64"},{"name":"Career Site Jobs","description":"Real-time job postings scraped directly from 175k+ company career sites across 54 ATS platforms (Workday, Greenhouse, Ashby, Lever, and more) — with AI enrichments and LinkedIn company data","externalDocs":{"url":"https://fantastic.jobs","description":"Fantastic.jobs website"},"x-logo":"https://cdn.jsdelivr.net/npm/@fortawesome/fontawesome-free@6/svgs/solid/briefcase.svg"},{"name":"Serper","description":"Real-time Google Search API — web, news, images, videos, places, shopping, scholar, patents, and autocomplete results in structured JSON","externalDocs":{"url":"https://serper.dev/playground","description":"Serper API docs"},"x-logo":"https://www.google.com/s2/favicons?domain=serper.dev&sz=64"},{"name":"Influencers Club","description":"Creator intelligence platform — enrich influencer profiles by email or handle, discover creators with AI-powered filters, and find lookalikes across Instagram, TikTok, YouTube, Twitch, Twitter, and OnlyFans","externalDocs":{"url":"https://docs.influencers.club/","description":"Influencers Club API docs"},"x-logo":"https://influencers.club/wp-content/themes/understrap-child-main/assets/img/logo.svg"},{"name":"Signalbase","description":"Real-time funding, acquisition, job change, and hiring signals plus investor and company data — track market movements, discover opportunities, and enrich your pipeline with verified signal intelligence","externalDocs":{"url":"https://docs.trysignalbase.com","description":"Signalbase API docs"},"x-logo":"https://www.google.com/s2/favicons?domain=trysignalbase.com&sz=64"},{"name":"LeadsFactory","description":"LinkedIn prospecting platform — find contacts matching job titles across company lists (Contact Finder) and scrape Sales Navigator searches using the shared infrastructure account (SN Scraper)","externalDocs":{"url":"https://apiv2.leadsfactory.io/docs","description":"LeadsFactory API docs"},"x-logo":"https://www.google.com/s2/favicons?domain=leadsfactory.io&sz=64"},{"name":"Jungler","description":"LinkedIn post engagement extraction — collect commenters and reactors from any LinkedIn post, then retrieve contacts, comments, and reaction data","externalDocs":{"url":"https://jungler.io","description":"Jungler website"},"x-logo":"https://www.google.com/s2/favicons?domain=jungler.io&sz=64"},{"name":"HarvestAPI","description":"Real-time LinkedIn scraping without a LinkedIn account — profiles (with optional verified email), companies, Sales Navigator lead and account search, posts, comments, reactions, jobs, groups, and the LinkedIn Ad Library","externalDocs":{"url":"https://docs.harvestapi.io/guides/quickstart","description":"HarvestAPI API docs"},"x-logo":"https://www.google.com/s2/favicons?domain_url=https://harvestapi.io&sz=64"},{"name":"Visitor ID","description":"ColdIQ Visitor ID — turn anonymous website traffic into identified people and companies. Install a tracking pixel on any site you own (one per client, for agencies) and get verified emails, titles, LinkedIn profiles, firmographics, page-visit activity, lead scores, and real-time webhooks. Credits are charged per identified person or company, never for setup or reads","externalDocs":{"url":"https://coldiq.com/marketplace","description":"ColdIQ Marketplace"},"x-logo":"https://www.google.com/s2/favicons?domain=coldiq.com&sz=64"},{"name":"ColdIQ Mailbox","description":"ColdIQ Mailbox — managed cold-email sending infrastructure with your API key: price and buy sending domains and Google or Microsoft inboxes, read their status, reveal credentials and connect inboxes to your sending tool (Instantly, Smartlead, Lemlist and more). Purchases return a hosted payment link plus the dashboard order page; provisioning starts once payment is confirmed. Mailboxes are billed as subscriptions, never in credits — every route here costs 0 credits. Credentials responses are live secrets: keep them out of chat transcripts and shared channels","externalDocs":{"url":"https://coldiq.com/marketplace","description":"ColdIQ Marketplace"},"x-logo":"https://www.google.com/s2/favicons?domain=coldiq.com&sz=64"}],"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer"}},"schemas":{"CreditsResponse":{"type":"object","properties":{"balance":{"type":"number","description":"Current credit balance","example":250},"usedThisMonth":{"type":"number","description":"Credits consumed so far this calendar month","example":47},"usd_per_credit":{"type":"number","description":"Retail USD price of one ColdIQ credit. Multiply a credit cost by this to get dollars — do NOT assume a round number. Uniform across accounts: a subscription changes how many credits you are granted, never what one costs.","example":0.014285714285714287},"credit_rate_plan":{"type":"string","description":"Identifier of the RATE SCHEDULE `usd_per_credit` comes from — not the account's subscription tier. The rate is uniform across accounts, so this never varies by customer; its value changes when the rate itself changes, letting a client detect that a cached rate expired.","example":"coldiq-standard-v1"},"billing_scope":{"type":"string","enum":["personal","team"],"description":"Whose credit pool `balance` and `usedThisMonth` describe. `team` = the team workspace pool, owned by the team owner, that pays for every call made in this team context; `personal` = the caller's own account.","example":"personal"}},"required":["balance","usedThisMonth","usd_per_credit","credit_rate_plan","billing_scope"]},"FeedbackResponse":{"type":"object","properties":{"id":{"type":"number","description":"The stored report, for referring back to it.","example":42},"received":{"type":"boolean","enum":[true],"description":"The report is committed. Always true on a 201."}},"required":["id","received"]},"Error":{"type":"object","properties":{"error":{"type":"string"},"retryable":{"type":"boolean","description":"Whether repeating the same request could plausibly succeed. `true` for transient infrastructure and capacity (429, any 5xx, 408); `false` for anything you must change first — a malformed body, a bad key, a missing resource — and for 402, because a retry without topping up credits fails identically. Present on every error this API emits. A response that carries NO `error` key did not come from the API at all (a Cloudflare edge error page, e.g. `error code: 1102`) — treat those as retryable infrastructure.","example":false},"details":{"nullable":true,"description":"Structured upstream provider response body (when available), surfaced verbatim to help debug validation failures. Never present for 401/402 upstreams (those are masked as internal infrastructure errors)."}},"required":["error"]},"ExaSearchResponse":{"nullable":true},"InsufficientCreditsError":{"type":"object","properties":{"error":{"type":"string","description":"User-facing message explaining the request was blocked and how to top up credits.","example":"You don't have enough credits to run this request — it costs 5 credits and your balance is 0. Top up your account at https://coldiq.com/marketplace/billing to continue."},"billingUrl":{"type":"string","format":"uri","description":"URL where the user can buy more credits.","example":"https://coldiq.com/marketplace/billing"},"needed":{"type":"number","description":"Credits required to run this request.","example":5},"balance":{"type":"number","description":"The user's current credit balance at the time of the request.","example":0}},"required":["error","billingUrl","needed","balance"]},"ExaContentsResponse":{"nullable":true},"ExaAnswerResponse":{"nullable":true},"ExaAgentResponse":{"nullable":true},"ExaAgentListResponse":{"nullable":true},"ExaAgentEventsResponse":{"nullable":true},"BulkEnrichResponse":{"type":"object","properties":{"enrichment_id":{"type":"string","format":"uuid","example":"2db5ea61-1752-42cf-8ea1-ab1da060cd0a","description":"Use this ID to poll enrichment status or retrieve results via GET"}},"required":["enrichment_id"]},"BulkEnrichRequest":{"type":"object","properties":{"name":{"type":"string","minLength":1,"example":"Sales prospects Q1","description":"A readable name for this enrichment (visible in your FullEnrich dashboard)"},"webhook_url":{"type":"string","format":"uri","example":"https://webhook.site/your-unique-id"},"webhook_events":{"type":"object","properties":{"contact_finished":{"type":"string","format":"uri","description":"Receives a POST each time a single contact finishes enrichment"}}},"data":{"type":"array","items":{"$ref":"#/components/schemas/ContactData"},"minItems":1,"maxItems":50,"description":"List of contacts to enrich. Max 50 per call."}},"required":["name","data"],"example":{"name":"Sales prospects Q1","data":[{"first_name":"Michel","last_name":"Lieben","domain":"coldiq.com","enrich_fields":["contact.emails"]}]}},"ContactData":{"type":"object","properties":{"first_name":{"type":"string","example":"Michel"},"last_name":{"type":"string","example":"Lieben"},"domain":{"type":"string","example":"coldiq.com"},"company_name":{"type":"string","example":"ColdIQ"},"linkedin_url":{"type":"string","format":"uri","example":"https://www.linkedin.com/michel-lieben"},"enrich_fields":{"type":"array","items":{"type":"string","enum":["contact.emails","contact.phones","contact.personal_emails"]},"minItems":1,"example":["contact.emails","contact.phones"],"description":"Fields to retrieve. Credit costs per contact: contact.emails=4, contact.personal_emails=10, contact.phones=34"},"custom":{"type":"object","additionalProperties":{"type":"string","maxLength":100},"example":{"user_id":"12345"}}},"required":["enrich_fields"],"example":{"first_name":"Michel","last_name":"Lieben","domain":"coldiq.com","enrich_fields":["contact.emails"]}},"BulkEnrichResult":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"name":{"type":"string"},"status":{"type":"string"},"cost":{"type":"object","properties":{"credits":{"type":"number","minimum":0}},"required":["credits"]},"data":{"type":"array","items":{"nullable":true}}},"required":["id","name","status","cost","data"]},"BulkReverseEmailResponse":{"type":"object","properties":{"enrichment_id":{"type":"string","format":"uuid","example":"2db5ea61-1752-42cf-8ea1-ab1da060cd0a","description":"Use this ID to retrieve results via GET or receive them via webhook"}},"required":["enrichment_id"]},"BulkReverseEmailRequest":{"type":"object","properties":{"name":{"type":"string","minLength":1,"example":"Reverse email lookup Q1","description":"A readable name for this lookup batch (visible in your FullEnrich dashboard)"},"webhook_url":{"type":"string","format":"uri","example":"https://webhook.site/your-unique-id"},"webhook_events":{"type":"object","properties":{"contact_finished":{"type":"string","format":"uri","description":"Receives a POST each time a single email reverse lookup finishes"}}},"data":{"type":"array","items":{"$ref":"#/components/schemas/ReverseEmailContactData"},"minItems":1,"maxItems":100,"description":"List of emails to reverse-lookup. Max 100 per call. Costs 1 credit per email."}},"required":["name","data"],"example":{"name":"Reverse email lookup Q1","data":[{"email":"michel@coldiq.com"}]}},"ReverseEmailContactData":{"type":"object","properties":{"email":{"type":"string","format":"email","example":"michel@coldiq.com"},"custom":{"type":"object","additionalProperties":{"type":"string","maxLength":100},"example":{"user_id":"12345"}}},"required":["email"]},"BulkReverseEmailResult":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"name":{"type":"string"},"status":{"type":"string"},"cost":{"type":"object","properties":{"credits":{"type":"number","minimum":0}},"required":["credits"]},"data":{"type":"array","items":{"nullable":true}}},"required":["id","name","status","cost","data"]},"PeopleSearchResponse":{"type":"object","properties":{"people":{"type":"array","items":{"nullable":true}},"metadata":{"type":"object","properties":{"total":{"type":"integer","nullable":true},"credits":{"type":"number","minimum":0},"offset":{"type":"integer"},"search_after":{"type":"string"}},"required":["credits"]}},"required":["people","metadata"]},"PeopleSearchRequest":{"type":"object","properties":{"offset":{"type":"integer","minimum":0,"maximum":10000},"limit":{"type":"integer","minimum":1,"maximum":100},"search_after":{"type":"string"},"current_company_names":{"type":"array","items":{"type":"object","properties":{"value":{"type":"string"},"exclude":{"type":"boolean"},"exact_match":{"type":"boolean"}},"required":["value"]}},"current_company_domains":{"type":"array","items":{"type":"object","properties":{"value":{"type":"string"},"exclude":{"type":"boolean"},"exact_match":{"type":"boolean"}},"required":["value"]}},"current_company_linkedin_urls":{"type":"array","items":{"type":"object","properties":{"value":{"type":"string"},"exclude":{"type":"boolean"},"exact_match":{"type":"boolean"}},"required":["value"]}},"current_company_specialties":{"type":"array","items":{"type":"object","properties":{"value":{"type":"string"},"exclude":{"type":"boolean"},"exact_match":{"type":"boolean"}},"required":["value"]}},"current_company_industries":{"type":"array","items":{"type":"object","properties":{"value":{"type":"string"},"exclude":{"type":"boolean"},"exact_match":{"type":"boolean"}},"required":["value"]}},"current_company_types":{"type":"array","items":{"type":"object","properties":{"value":{"type":"string"},"exclude":{"type":"boolean"},"exact_match":{"type":"boolean"}},"required":["value"]}},"current_company_headquarters":{"type":"array","items":{"type":"object","properties":{"value":{"type":"string"},"exclude":{"type":"boolean"},"exact_match":{"type":"boolean"}},"required":["value"]}},"past_company_names":{"type":"array","items":{"type":"object","properties":{"value":{"type":"string"},"exclude":{"type":"boolean"},"exact_match":{"type":"boolean"}},"required":["value"]}},"past_company_domains":{"type":"array","items":{"type":"object","properties":{"value":{"type":"string"},"exclude":{"type":"boolean"},"exact_match":{"type":"boolean"}},"required":["value"]}},"person_ids":{"type":"array","items":{"type":"object","properties":{"value":{"type":"string"},"exclude":{"type":"boolean"},"exact_match":{"type":"boolean"}},"required":["value"]}},"person_names":{"type":"array","items":{"type":"object","properties":{"value":{"type":"string"},"exclude":{"type":"boolean"},"exact_match":{"type":"boolean"}},"required":["value"]}},"person_linkedin_urls":{"type":"array","items":{"type":"object","properties":{"value":{"type":"string"},"exclude":{"type":"boolean"},"exact_match":{"type":"boolean"}},"required":["value"]}},"person_locations":{"type":"array","items":{"type":"object","properties":{"value":{"type":"string"},"exclude":{"type":"boolean"},"exact_match":{"type":"boolean"}},"required":["value"]}},"person_skills":{"type":"array","items":{"type":"object","properties":{"value":{"type":"string"},"exclude":{"type":"boolean"},"exact_match":{"type":"boolean"}},"required":["value"]}},"current_position_seniority_level":{"type":"array","items":{"type":"object","properties":{"value":{"type":"string"},"exclude":{"type":"boolean"},"exact_match":{"type":"boolean"}},"required":["value"]}},"current_position_titles":{"type":"array","items":{"type":"object","properties":{"value":{"type":"string"},"exclude":{"type":"boolean"},"exact_match":{"type":"boolean"}},"required":["value"]}},"past_position_titles":{"type":"array","items":{"type":"object","properties":{"value":{"type":"string"},"exclude":{"type":"boolean"},"exact_match":{"type":"boolean"}},"required":["value"]}},"person_universities":{"type":"array","items":{"type":"object","properties":{"value":{"type":"string"},"exclude":{"type":"boolean"},"exact_match":{"type":"boolean"}},"required":["value"]}},"current_company_ids":{"type":"array","items":{"type":"object","properties":{"value":{"type":"string"},"exclude":{"type":"boolean"},"exact_match":{"type":"boolean"}},"required":["value"]}},"current_company_headcounts":{"type":"array","items":{"type":"object","properties":{"min":{"type":"integer"},"max":{"type":"integer"}}}},"current_company_founded_years":{"type":"array","items":{"type":"object","properties":{"min":{"type":"integer"},"max":{"type":"integer"}}}},"current_position_years_in":{"type":"array","items":{"type":"object","properties":{"min":{"type":"integer"},"max":{"type":"integer"}}}},"current_company_years_at":{"type":"array","items":{"type":"object","properties":{"min":{"type":"integer"},"max":{"type":"integer"}}}},"current_company_days_since_last_job_change":{"type":"array","items":{"type":"object","properties":{"min":{"type":"integer"},"max":{"type":"integer"}}}}},"example":{"current_company_domains":[{"value":"coldiq.com"}],"current_position_titles":[{"value":"CEO"}],"limit":10}},"CompanySearchResponse":{"type":"object","properties":{"companies":{"type":"array","items":{"nullable":true}},"metadata":{"type":"object","properties":{"total":{"type":"integer","nullable":true},"credits":{"type":"number","minimum":0},"offset":{"type":"integer"},"search_after":{"type":"string"}},"required":["credits"]}},"required":["companies","metadata"]},"CompanySearchRequest":{"type":"object","properties":{"offset":{"type":"integer","minimum":0,"maximum":10000},"limit":{"type":"integer","minimum":1,"maximum":100},"search_after":{"type":"string"},"names":{"type":"array","items":{"type":"object","properties":{"value":{"type":"string"},"exclude":{"type":"boolean"},"exact_match":{"type":"boolean"}},"required":["value"]}},"domains":{"type":"array","items":{"type":"object","properties":{"value":{"type":"string"},"exclude":{"type":"boolean"},"exact_match":{"type":"boolean"}},"required":["value"]}},"linkedin_urls":{"type":"array","items":{"type":"object","properties":{"value":{"type":"string"},"exclude":{"type":"boolean"},"exact_match":{"type":"boolean"}},"required":["value"]}},"keywords":{"type":"array","items":{"type":"object","properties":{"value":{"type":"string"},"exclude":{"type":"boolean"},"exact_match":{"type":"boolean"}},"required":["value"]}},"specialties":{"type":"array","items":{"type":"object","properties":{"value":{"type":"string"},"exclude":{"type":"boolean"},"exact_match":{"type":"boolean"}},"required":["value"]}},"industries":{"type":"array","items":{"type":"object","properties":{"value":{"type":"string"},"exclude":{"type":"boolean"},"exact_match":{"type":"boolean"}},"required":["value"]}},"types":{"type":"array","items":{"type":"object","properties":{"value":{"type":"string"},"exclude":{"type":"boolean"},"exact_match":{"type":"boolean"}},"required":["value"]}},"headquarters_locations":{"type":"array","items":{"type":"object","properties":{"value":{"type":"string"},"exclude":{"type":"boolean"},"exact_match":{"type":"boolean"}},"required":["value"]}},"company_ids":{"type":"array","items":{"type":"object","properties":{"value":{"type":"string"},"exclude":{"type":"boolean"},"exact_match":{"type":"boolean"}},"required":["value"]}},"founded_years":{"type":"array","items":{"type":"object","properties":{"min":{"type":"integer"},"max":{"type":"integer"}}}},"headcounts":{"type":"array","items":{"type":"object","properties":{"min":{"type":"integer"},"max":{"type":"integer"}}}}},"example":{"domains":[{"value":"coldiq.com"}],"limit":10}},"PredictLeadsResponse":{"nullable":true},"FindymailVerifyResponse":{"nullable":true},"FindymailFindFromNameResponse":{"nullable":true},"FindymailFindFromDomainResponse":{"nullable":true},"FindymailFindFromProfileResponse":{"nullable":true},"FindymailReverseEmailResponse":{"nullable":true},"FindymailCompanyInfoResponse":{"nullable":true},"FindymailFindEmployeesResponse":{"nullable":true},"FindymailFindPhoneResponse":{"nullable":true},"FindymailListsResponse":{"nullable":true},"FindymailListResponse":{"nullable":true},"FindymailContactsResponse":{"nullable":true},"FindymailIntellimatchSearchResponse":{"nullable":true},"FindymailIntellimatchStatusResponse":{"nullable":true},"FindymailIntellimatchDataResponse":{"nullable":true},"FindymailExclusionListsResponse":{"nullable":true},"FindymailExclusionListResponse":{"nullable":true},"FindymailExcludedDomainsResponse":{"nullable":true},"FindymailSignalsResponse":{"nullable":true},"FindymailMonitorsResponse":{"nullable":true},"FindymailMonitorResponse":{"nullable":true},"FindymailIcpFilters":{"type":"object","properties":{"industries":{"type":"array","items":{"type":"string"},"description":"Industries to filter by. Must use LinkedIn Industry Codes V2 (e.g. \"4\", \"96\")."},"employee_count_ranges":{"type":"array","items":{"type":"string"},"description":"Company size ranges (e.g. \"11-50\", \"51-200\")."},"countries":{"type":"array","items":{"type":"string"},"description":"Countries to filter by (ISO 3166-1 alpha-2, e.g. \"US\", \"GB\")."},"job_title_keywords":{"type":"array","items":{"type":"string"},"description":"Keywords to match in job titles."},"seniority_levels":{"type":"array","items":{"type":"integer"},"description":"Seniority levels as integers (1=IC, 2=Manager, 3=Director, 4=VP, 5=C-Suite)."}},"description":"Ideal Customer Profile filters."},"FindymailLookalikeSearchResponse":{"nullable":true},"FindymailTechnologiesResponse":{"nullable":true},"FindymailSignalResponse":{"nullable":true},"IcypeasResponse":{"nullable":true},"ApolloResponse":{"nullable":true},"DiscoLikeResponse":{"nullable":true},"RateLimitError":{"type":"object","properties":{"error":{"type":"string"},"retryable":{"type":"boolean","description":"Always `true` for a 429 — the same request succeeds once the window clears.","example":true},"code":{"type":"string","enum":["rate_limit_exceeded"],"description":"Stable machine-readable discriminator for rate-limit rejections."},"retry_after_seconds":{"type":"number","description":"Seconds to wait before retrying, derived from the limit that actually rejected this call (the provider plan budget, or the upstream `Retry-After` when the provider sent one). Mirrors the `Retry-After` response header.","example":6},"limit":{"type":"number","description":"Calls allowed per `window_seconds` for this endpoint class, when known.","example":10},"window_seconds":{"type":"number","description":"Length of the window `limit` applies to, when known.","example":60}},"required":["error"]},"LimaDataResponse":{"nullable":true},"LimaDataDatabaseAutocompleteResponse":{"type":"array","items":{"type":"string"}},"StartIndividualRevealResponse":{"type":"object","properties":{"status":{"type":"object","properties":{"code":{"type":"number"},"message":{"type":"string","nullable":true}},"required":["code"]},"type":{"type":"string"},"data":{"type":"object","properties":{"id":{"type":"number"},"status":{"type":"string"},"is_complete":{"type":"boolean"}},"required":["id","status","is_complete"],"additionalProperties":{"nullable":true}}},"required":["status","type","data"]},"StartIndividualRevealRequest":{"type":"object","properties":{"individual_reveal":{"$ref":"#/components/schemas/WizaIndividualRevealInput"},"enrichment_level":{"type":"string","enum":["none","partial","phone","full"],"example":"partial","description":"Enrichment depth: none (LinkedIn only), partial (email), phone (email+phone), full (email+phone)"},"email_options":{"type":"object","properties":{"accept_work":{"type":"boolean"},"accept_personal":{"type":"boolean"}},"example":{"accept_work":true,"accept_personal":false}},"callback_url":{"type":"string","format":"uri","example":"https://webhook.site/your-unique-id","description":"Webhook URL for result delivery"}},"required":["individual_reveal","enrichment_level"],"example":{"individual_reveal":{"profile_url":"https://www.linkedin.com/in/michel-lieben"},"enrichment_level":"partial"}},"WizaIndividualRevealInput":{"type":"object","properties":{"profile_url":{"type":"string","format":"uri","example":"https://www.linkedin.com/in/michel-lieben"},"full_name":{"type":"string","example":"Michel Lieben"},"domain":{"type":"string","example":"coldiq.com"},"company":{"type":"string","example":"ColdIQ"},"email":{"type":"string","format":"email","example":"michel@coldiq.com"}}},"GetIndividualRevealResponse":{"type":"object","properties":{"status":{"type":"object","properties":{"code":{"type":"number"},"message":{"type":"string","nullable":true}},"required":["code"]},"type":{"type":"string"},"data":{"type":"object","nullable":true,"properties":{"id":{"type":"number"},"status":{"type":"string"},"is_complete":{"type":"boolean"},"email":{"type":"string","nullable":true},"email_type":{"type":"string","nullable":true},"email_status":{"type":"string","nullable":true},"phone":{"type":"string","nullable":true},"full_name":{"type":"string","nullable":true},"title":{"type":"string","nullable":true},"linkedin_url":{"type":"string","nullable":true},"company":{"nullable":true},"location":{"nullable":true},"credits":{"type":"object","nullable":true,"properties":{"email_credits":{"anyOf":[{"type":"number","minimum":0},{"type":"string","enum":["unlimited"]}]},"phone_credits":{"anyOf":[{"type":"number","minimum":0},{"type":"string","enum":["unlimited"]}]},"linkedin_credits":{"type":"number","minimum":0},"api_credits":{"nullable":true}},"additionalProperties":{"nullable":true}}},"additionalProperties":{"nullable":true}}},"required":["status"],"additionalProperties":{"nullable":true}},"ListResponse":{"type":"object","properties":{"status":{"type":"object","properties":{"code":{"type":"number"},"message":{"type":"string","nullable":true}},"required":["code"]},"type":{"type":"string"},"data":{"type":"object","properties":{"id":{"type":"number"},"name":{"type":"string"},"status":{"type":"string"},"stats":{"type":"object","properties":{"people":{"type":"number"},"credits":{"type":"object","properties":{"email_credits":{"type":"number","minimum":0},"phone_credits":{"type":"number","minimum":0},"export_credits":{"type":"number","minimum":0}},"additionalProperties":{"nullable":true}}},"additionalProperties":{"nullable":true}},"enrichment_level":{"type":"string"},"created_at":{"type":"string"},"finished_at":{"type":"string"}},"required":["id","status"],"additionalProperties":{"nullable":true}}},"required":["status","type","data"]},"CreateListRequest":{"type":"object","properties":{"list":{"type":"object","properties":{"name":{"type":"string","example":"ColdIQ prospects batch"},"enrichment_level":{"type":"string","enum":["none","partial","phone","full"],"example":"partial"},"email_options":{"type":"object","properties":{"accept_work":{"type":"boolean","example":true},"accept_personal":{"type":"boolean","example":false},"accept_generic":{"type":"boolean","example":false}},"required":["accept_work","accept_personal","accept_generic"]},"items":{"type":"array","items":{"$ref":"#/components/schemas/WizaListItem"},"minItems":1,"maxItems":500,"description":"Up to 500 contacts per list"},"callback_url":{"type":"string","format":"uri","example":"https://webhook.site/your-unique-id","description":"Webhook URL for list completion"}},"required":["name","enrichment_level","email_options","items"]}},"required":["list"],"example":{"list":{"name":"ColdIQ prospects batch","enrichment_level":"partial","email_options":{"accept_work":true,"accept_personal":false,"accept_generic":false},"items":[{"profile_url":"https://www.linkedin.com/in/michel-lieben"}]}}},"WizaListItem":{"type":"object","properties":{"profile_url":{"type":"string","format":"uri"},"full_name":{"type":"string"},"domain":{"type":"string"},"company":{"type":"string"},"email":{"type":"string","format":"email"}}},"GetListContactsResponse":{"type":"object","properties":{"status":{"type":"object","properties":{"code":{"type":"number"},"message":{"type":"string","nullable":true}},"required":["code"]},"data":{"type":"array","items":{"nullable":true}}},"required":["data"],"additionalProperties":{"nullable":true}},"ProspectSearchResponse":{"type":"object","properties":{"status":{"type":"object","properties":{"code":{"type":"number"},"message":{"type":"string","nullable":true}},"required":["code"]},"data":{"type":"object","properties":{"total":{"type":"number"},"profiles":{"type":"array","items":{"nullable":true}}},"additionalProperties":{"nullable":true}}},"additionalProperties":{"nullable":true}},"ProspectSearchRequest":{"type":"object","properties":{"filters":{"$ref":"#/components/schemas/ProspectFilters"},"size":{"type":"integer","minimum":0,"maximum":30,"example":0,"description":"Number of preview profiles to return (default 0, max 30)"}},"required":["filters"],"example":{"filters":{"job_company":[{"v":"ColdIQ"}],"job_title":[{"v":"CEO"}]},"size":5}},"ProspectFilters":{"type":"object","properties":{"first_name":{"type":"array","items":{"type":"object","properties":{"v":{"type":"string"}},"required":["v"]}},"last_name":{"type":"array","items":{"type":"object","properties":{"v":{"type":"string"}},"required":["v"]}},"linkedin_slug":{"type":"array","items":{"type":"object","properties":{"v":{"type":"string"}},"required":["v"]}},"job_title":{"type":"array","items":{"type":"object","properties":{"v":{"type":"string"}},"required":["v"]}},"job_title_level":{"type":"array","items":{"type":"object","properties":{"v":{"type":"string"}},"required":["v"]}},"job_role":{"type":"array","items":{"type":"object","properties":{"v":{"type":"string"}},"required":["v"]}},"job_sub_role":{"type":"array","items":{"type":"object","properties":{"v":{"type":"string"}},"required":["v"]}},"skill":{"type":"array","items":{"type":"object","properties":{"v":{"type":"string"}},"required":["v"]}},"school":{"type":"array","items":{"type":"object","properties":{"v":{"type":"string"}},"required":["v"]}},"major":{"type":"array","items":{"type":"object","properties":{"v":{"type":"string"}},"required":["v"]}},"job_company":{"type":"array","items":{"type":"object","properties":{"v":{"type":"string"}},"required":["v"]}},"past_company":{"type":"array","items":{"type":"object","properties":{"v":{"type":"string"}},"required":["v"]}},"company_location":{"type":"array","items":{"type":"object","properties":{"v":{"type":"string"}},"required":["v"]}},"company_industry":{"type":"array","items":{"type":"object","properties":{"v":{"type":"string"}},"required":["v"]}},"company_size":{"type":"array","items":{"type":"object","properties":{"v":{"type":"string"}},"required":["v"]}},"company_type":{"type":"array","items":{"type":"object","properties":{"v":{"type":"string"}},"required":["v"]}},"year_founded_start":{"type":"array","items":{"type":"object","properties":{"v":{"type":"string"}},"required":["v"]}},"year_founded_end":{"type":"array","items":{"type":"object","properties":{"v":{"type":"string"}},"required":["v"]}},"revenue":{"type":"array","items":{"type":"object","properties":{"v":{"type":"string"}},"required":["v"]}},"funding_date":{"type":"array","items":{"type":"object","properties":{"v":{"type":"string"}},"required":["v"]}},"last_funding_min":{"type":"array","items":{"type":"object","properties":{"v":{"type":"string"}},"required":["v"]}},"last_funding_max":{"type":"array","items":{"type":"object","properties":{"v":{"type":"string"}},"required":["v"]}},"funding_min":{"type":"array","items":{"type":"object","properties":{"v":{"type":"string"}},"required":["v"]}},"funding_max":{"type":"array","items":{"type":"object","properties":{"v":{"type":"string"}},"required":["v"]}},"funding_stage":{"type":"array","items":{"type":"object","properties":{"v":{"type":"string"}},"required":["v"]}},"funding_type":{"type":"array","items":{"type":"object","properties":{"v":{"type":"string"}},"required":["v"]}},"company_annual_growth":{"type":"array","items":{"type":"object","properties":{"v":{"type":"string"}},"required":["v"]}},"location":{"type":"array","items":{"type":"object","properties":{"v":{"type":"string"}},"required":["v"]}},"department_size":{"type":"array","items":{"type":"object","properties":{"v":{"type":"string"}},"required":["v"]}},"company_summary":{"type":"array","items":{"type":"object","properties":{"v":{"type":"string"}},"required":["v"]}}},"additionalProperties":{"nullable":true}},"CreateProspectListRequest":{"type":"object","properties":{"list":{"type":"object","properties":{"name":{"type":"string","example":"ColdIQ CEO prospects"},"max_profiles":{"type":"integer","minimum":1,"maximum":500,"example":100}},"required":["name","max_profiles"]},"filters":{"$ref":"#/components/schemas/ProspectFilters"},"enrichment_level":{"type":"string","enum":["none","partial","phone","full"],"example":"partial","description":"Default: partial"},"email_options":{"type":"object","properties":{"accept_work":{"type":"boolean"},"accept_personal":{"type":"boolean"},"accept_generic":{"type":"boolean"}}},"skip_duplicates":{"type":"boolean","example":true},"callback_url":{"type":"string","format":"uri","example":"https://webhook.site/your-unique-id"}},"required":["list","filters"],"example":{"list":{"name":"ColdIQ CEO prospects","max_profiles":100},"filters":{"job_company":[{"v":"ColdIQ"}],"job_title":[{"v":"CEO"}]},"enrichment_level":"partial"}},"ContinueProspectSearchRequest":{"type":"object","properties":{"id":{"type":"integer","example":12345,"description":"ID of the list to continue searching"},"max_profiles":{"type":"integer","minimum":1,"maximum":500,"example":100},"enrichment_level":{"type":"string","enum":["none","partial","phone","full"],"example":"partial","description":"Enrichment depth for cost calculation. Defaults to partial if omitted."},"callback_url":{"type":"string","format":"uri","example":"https://webhook.site/your-unique-id"}},"required":["id"],"example":{"id":12345,"max_profiles":100}},"CompanyEnrichmentResponse":{"type":"object","properties":{"status":{"type":"object","properties":{"code":{"type":"number"},"message":{"type":"string","nullable":true}},"required":["code"]},"data":{"type":"object","properties":{"industry":{"type":"string"},"size":{"type":"string"},"revenue":{"type":"string"},"founded_year":{"type":"number"},"description":{"type":"string"},"domain":{"type":"string"},"linkedin_url":{"type":"string"},"type":{"type":"string"},"location":{"nullable":true},"twitter_url":{"type":"string"},"facebook_url":{"type":"string"},"ticker":{"type":"string"}},"additionalProperties":{"nullable":true}}},"required":["data"],"additionalProperties":{"nullable":true}},"CompanyEnrichmentRequest":{"type":"object","properties":{"company_name":{"type":"string","example":"ColdIQ"},"company_domain":{"type":"string","example":"coldiq.com"},"company_linkedin_id":{"type":"string","example":"18663757"},"company_linkedin_slug":{"type":"string","example":"cold-labs"}},"example":{"company_domain":"coldiq.com"}},"WizaGetCreditsResponse":{"type":"object","properties":{"credits":{"type":"object","properties":{"email_credits":{"anyOf":[{"type":"number"},{"type":"string","enum":["unlimited"]}]},"phone_credits":{"anyOf":[{"type":"number"},{"type":"string","enum":["unlimited"]}]},"export_credits":{"type":"number"},"api_credits":{"type":"number"}},"required":["email_credits","phone_credits","export_credits","api_credits"]}},"required":["credits"]},"BatchSubmitResponse":{"type":"object","properties":{"batch_id":{"type":"string"},"status":{"type":"object","properties":{"completed":{"type":"integer"},"errored":{"type":"integer"},"processing":{"type":"integer"},"total":{"type":"integer"},"batch_ready":{"type":"boolean"}},"required":["completed","errored","processing","total","batch_ready"]},"submit_for":{"type":"string","enum":["find_people","find_tech","lookup_people","lookup_business_email"]}},"required":["batch_id","status","submit_for"]},"TaskResultResponse":{"type":"object","properties":{"task_id":{"type":"string"},"status":{"type":"string","enum":["PROCESSING","COMPLETED","ERRORED"]},"tracking_id":{"type":"string","nullable":true},"data":{"nullable":true}},"required":["task_id","status"]},"BatchStatusResponse":{"type":"object","properties":{"completed":{"type":"integer"},"errored":{"type":"integer"},"processing":{"type":"integer"},"total":{"type":"integer"},"batch_ready":{"type":"boolean"}},"required":["completed","errored","processing","total","batch_ready"]},"InstantlyResponse":{"nullable":true},"LemlistResponse":{"anyOf":[{"type":"object","additionalProperties":{"nullable":true}},{"type":"array","items":{"nullable":true}}]},"AttioResponse":{"nullable":true},"PersonValues":{"type":"object","properties":{"name":{"type":"array","items":{"type":"object","properties":{"first_name":{"type":"string"},"last_name":{"type":"string"},"full_name":{"type":"string"}}}},"email_addresses":{"type":"array","items":{"type":"object","properties":{"email_address":{"type":"string"}},"required":["email_address"]}},"phone_numbers":{"type":"array","items":{"type":"object","properties":{"original_phone_number":{"type":"string"},"country_code":{"type":"string"}},"required":["original_phone_number"]}},"job_title":{"type":"array","items":{"type":"object","properties":{"value":{"type":"string"}},"required":["value"]}},"description":{"type":"array","items":{"type":"object","properties":{"value":{"type":"string"}},"required":["value"]}},"company":{"type":"array","items":{"$ref":"#/components/schemas/RecordRef"}},"linkedin":{"type":"array","items":{"type":"object","properties":{"value":{"type":"string"}},"required":["value"]}},"twitter":{"type":"array","items":{"type":"object","properties":{"value":{"type":"string"}},"required":["value"]}},"primary_location":{"type":"array","items":{"$ref":"#/components/schemas/Location"}}}},"RecordRef":{"type":"object","properties":{"target_object":{"type":"string","description":"The object slug or ID (e.g. 'people', 'companies')."},"target_record_id":{"type":"string","format":"uuid","description":"The record UUID."}},"required":["target_object","target_record_id"]},"Location":{"type":"object","properties":{"line_1":{"type":"string","nullable":true},"line_2":{"type":"string","nullable":true},"line_3":{"type":"string","nullable":true},"line_4":{"type":"string","nullable":true},"locality":{"type":"string","nullable":true},"region":{"type":"string","nullable":true},"postcode":{"type":"string","nullable":true},"country_code":{"type":"string","nullable":true,"description":"ISO 3166-1 alpha-2 country code."},"latitude":{"type":"string","nullable":true},"longitude":{"type":"string","nullable":true}}},"CompanyValues":{"type":"object","properties":{"name":{"type":"array","items":{"type":"object","properties":{"value":{"type":"string"}},"required":["value"]}},"domains":{"type":"array","items":{"type":"object","properties":{"domain":{"type":"string"}},"required":["domain"]}},"description":{"type":"array","items":{"type":"object","properties":{"value":{"type":"string"}},"required":["value"]}},"linkedin":{"type":"array","items":{"type":"object","properties":{"value":{"type":"string"}},"required":["value"]}},"twitter":{"type":"array","items":{"type":"object","properties":{"value":{"type":"string"}},"required":["value"]}},"primary_location":{"type":"array","items":{"$ref":"#/components/schemas/Location"}},"categories":{"type":"array","items":{"type":"object","properties":{"option":{"type":"string"}},"required":["option"]},"description":"Category select options (UUID or title)."},"employee_range":{"type":"array","items":{"type":"object","properties":{"option":{"type":"string"}},"required":["option"]},"description":"Employee range select option (UUID or title)."},"estimated_arr_usd":{"type":"array","items":{"type":"object","properties":{"option":{"type":"string"}},"required":["option"]},"description":"Estimated ARR range select option (UUID or title)."},"foundation_date":{"type":"array","items":{"type":"object","properties":{"value":{"type":"string"}},"required":["value"]},"description":"ISO 8601 date."}}},"Assignee":{"type":"object","properties":{"referenced_actor_type":{"type":"string","enum":["workspace-member"]},"referenced_actor_id":{"type":"string","format":"uuid"},"workspace_member_email_address":{"type":"string","format":"email"}}},"JinaResponse":{"nullable":true},"DeepSearchMessage":{"type":"object","properties":{"role":{"type":"string","enum":["user","assistant"],"description":"Message author role."},"content":{"type":"string","description":"Message text."}},"required":["role","content"]},"TweetScraperSubmitResponse":{"type":"object","properties":{"jobId":{"type":"integer","description":"Poll this ID via GET /twitter/tweet-scraper/scrape/{jobId} to retrieve results."},"status":{"type":"string","enum":["processing"]}},"required":["jobId","status"]},"TweetScraperPollResponse":{"type":"object","properties":{"jobId":{"type":"integer"},"status":{"type":"string","enum":["processing","done","failed","timed_out"]},"tweets":{"type":"array","items":{"nullable":true},"description":"Present only when status is \"done\"."},"error":{"type":"string","description":"Present only when status is \"failed\" or \"timed_out\"."}},"required":["jobId","status"]},"GoogleMapsReviewsSubmitResponse":{"type":"object","properties":{"jobId":{"type":"integer","description":"Poll this ID via GET /google-maps/reviews/{jobId} to retrieve results."},"status":{"type":"string","enum":["processing"]}},"required":["jobId","status"]},"GoogleMapsStartUrl":{"type":"object","properties":{"url":{"type":"string","format":"uri","description":"Google Maps place URL (must contain /maps/place, /maps/search, or /maps/reviews)."}},"required":["url"]},"GoogleMapsPersonalDataOptions":{"type":"object","properties":{"scrapeReviewerName":{"type":"boolean","description":"Include the reviewer display name in results (default true)."},"scrapeReviewerUrl":{"type":"boolean","description":"Include the reviewer profile URL in results (default true)."},"scrapeReviewId":{"type":"boolean","description":"Include the unique review ID in results (default true)."},"scrapeReviewUrl":{"type":"boolean","description":"Include the direct URL to each review in results (default true)."},"scrapeResponseFromOwnerText":{"type":"boolean","description":"Include the owner's response text in results (default true)."}},"description":"Control which personal data fields are included in each review record."},"GoogleMapsReviewsPollResponse":{"type":"object","properties":{"jobId":{"type":"integer"},"status":{"type":"string","enum":["processing","done","failed","timed_out"]},"reviews":{"type":"array","items":{"nullable":true},"description":"Present only when status is \"done\"."},"error":{"type":"string","description":"Present only when status is \"failed\" or \"timed_out\"."}},"required":["jobId","status"]},"GoogleMapsScraperSubmitResponse":{"type":"object","properties":{"jobId":{"type":"integer","description":"Poll this ID via GET /google-maps/scraper/{jobId} to retrieve results."},"status":{"type":"string","enum":["processing"]}},"required":["jobId","status"]},"GoogleMapsScraperPollResponse":{"type":"object","properties":{"jobId":{"type":"integer"},"status":{"type":"string","enum":["processing","done","failed","timed_out"]},"places":{"type":"array","items":{"nullable":true},"description":"Present only when status is \"done\"."},"error":{"type":"string","description":"Present only when status is \"failed\" or \"timed_out\"."}},"required":["jobId","status"]},"MetaAdsSubmitResponse":{"type":"object","properties":{"jobId":{"type":"integer","description":"Poll this ID via GET /meta-ads/search/{jobId} to retrieve results."},"status":{"type":"string","enum":["processing"]}},"required":["jobId","status"]},"MetaAdsPollResponse":{"type":"object","properties":{"jobId":{"type":"integer"},"status":{"type":"string","enum":["processing","done","failed","timed_out"]},"ads":{"type":"array","items":{"nullable":true},"description":"Present only when status is \"done\"."},"error":{"type":"string","description":"Present only when status is \"failed\" or \"timed_out\"."}},"required":["jobId","status"]},"TwitterAdsSubmitResponse":{"type":"object","properties":{"jobId":{"type":"integer","description":"Poll this ID via GET /twitter-ads-scraper/search/{jobId} to retrieve results."},"status":{"type":"string","enum":["processing"]}},"required":["jobId","status"]},"TwitterAdsPollResponse":{"type":"object","properties":{"jobId":{"type":"integer"},"status":{"type":"string","enum":["processing","done","failed","timed_out"]},"ads":{"type":"array","items":{"nullable":true},"description":"Present only when status is \"done\"."},"error":{"type":"string","description":"Present only when status is \"failed\" or \"timed_out\"."}},"required":["jobId","status"]},"LinkedInAdLibrarySubmitResponse":{"type":"object","properties":{"jobId":{"type":"integer","description":"Poll this ID via GET /linkedin-ad-library/search/{jobId} to retrieve results."},"status":{"type":"string","enum":["processing"]}},"required":["jobId","status"]},"LinkedInAdLibraryPollResponse":{"type":"object","properties":{"jobId":{"type":"integer"},"status":{"type":"string","enum":["processing","done","failed","timed_out"]},"ads":{"type":"array","items":{"nullable":true},"description":"Present only when status is \"done\"."},"error":{"type":"string","description":"Present only when status is \"failed\" or \"timed_out\"."}},"required":["jobId","status"]},"GoogleAdsSubmitResponse":{"type":"object","properties":{"jobId":{"type":"integer","description":"Poll this ID via GET /google-ads/search/{jobId} to retrieve results."},"status":{"type":"string","enum":["processing"]}},"required":["jobId","status"]},"GoogleAdsPollResponse":{"type":"object","properties":{"jobId":{"type":"integer"},"status":{"type":"string","enum":["processing","done","failed","timed_out"]},"ads":{"type":"array","items":{"nullable":true},"description":"Present only when status is \"done\"."},"error":{"type":"string","description":"Present only when status is \"failed\" or \"timed_out\"."}},"required":["jobId","status"]},"RedditSubmitResponse":{"type":"object","properties":{"jobId":{"type":"integer","description":"Poll this ID via GET /reddit/scrape/{jobId} to retrieve results."},"status":{"type":"string","enum":["processing"]}},"required":["jobId","status"]},"RedditStartUrl":{"type":"object","properties":{"url":{"type":"string","format":"uri","description":"A Reddit URL (subreddit, post, or search page)."}},"required":["url"]},"RedditPollResponse":{"type":"object","properties":{"jobId":{"type":"integer"},"status":{"type":"string","enum":["processing","done","failed","timed_out"]},"items":{"type":"array","items":{"nullable":true},"description":"Present only when status is \"done\"."},"error":{"type":"string","description":"Present only when status is \"failed\" or \"timed_out\"."}},"required":["jobId","status"]},"BuiltWithResponse":{"type":"object","properties":{"Results":{"type":"array","items":{"type":"object","properties":{"Lookup":{"type":"string","nullable":true,"description":"Domain that was looked up."},"Result":{"type":"object","nullable":true,"properties":{"IsDB":{"type":"string","nullable":true},"Spend":{"type":"number","nullable":true},"Paths":{"type":"array","nullable":true,"items":{"type":"object","properties":{"Domain":{"type":"string","nullable":true},"Url":{"type":"string","nullable":true},"SubDomain":{"type":"string","nullable":true},"FirstIndexed":{"type":"number","nullable":true},"LastIndexed":{"type":"number","nullable":true},"Technologies":{"type":"array","nullable":true,"items":{"type":"object","properties":{"Name":{"type":"string","nullable":true,"description":"Technology name."},"Description":{"type":"string","nullable":true,"description":"Short description of the technology."},"Link":{"type":"string","nullable":true,"description":"Technology vendor URL."},"Tag":{"type":"string","nullable":true,"description":"Category tag (e.g. \"analytics\", \"crm\")."},"Categories":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Technology categories."},"FirstDetected":{"type":"number","nullable":true,"description":"Unix timestamp (ms) of first detection."},"LastDetected":{"type":"number","nullable":true,"description":"Unix timestamp (ms) of most recent detection."},"IsPremium":{"type":"string","nullable":true,"description":"\"yes\" if this technology is a premium data point."}},"additionalProperties":{"nullable":true}}}},"additionalProperties":{"nullable":true}}}},"additionalProperties":{"nullable":true}},"Meta":{"type":"object","nullable":true,"additionalProperties":{"nullable":true},"description":"Company metadata (name, vertical, location, social links)."},"Attributes":{"type":"object","nullable":true,"additionalProperties":{"nullable":true}},"FirstIndexed":{"type":"number","nullable":true,"description":"Unix timestamp (ms) the domain was first indexed."},"LastIndexed":{"type":"number","nullable":true,"description":"Unix timestamp (ms) the domain was last indexed."},"SalesRevenue":{"type":"number","nullable":true},"Errors":{"type":"array","nullable":true,"items":{"anyOf":[{"type":"string"},{"type":"object","properties":{"Lookup":{"type":"string","nullable":true,"description":"Lookup the error applies to."},"Message":{"type":"string","nullable":true,"description":"Provider error message."},"Code":{"type":"number","nullable":true,"description":"Provider error code (e.g. -8 = invalid domain)."}},"additionalProperties":{"nullable":true}}]}}},"additionalProperties":{"nullable":true}}},"Errors":{"type":"array","nullable":true,"items":{"anyOf":[{"type":"string"},{"type":"object","properties":{"Lookup":{"type":"string","nullable":true,"description":"Lookup the error applies to."},"Message":{"type":"string","nullable":true,"description":"Provider error message."},"Code":{"type":"number","nullable":true,"description":"Provider error code (e.g. -8 = invalid domain)."}},"additionalProperties":{"nullable":true}}]}},"Trust":{"nullable":true}},"required":["Results"],"additionalProperties":{"nullable":true}},"BuiltWithListsResponse":{"type":"object","properties":{"NextOffset":{"type":"string","nullable":true,"description":"Pass as offset to fetch the next page. \"END\" means there are no more results."},"Results":{"type":"array","items":{"type":"object","properties":{"D":{"type":"string","nullable":true,"description":"Domain."},"LOS":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Locations where the technology was detected."},"FD":{"type":"number","nullable":true,"description":"First detected (Unix epoch seconds)."},"LD":{"type":"number","nullable":true,"description":"Last detected (Unix epoch seconds)."},"S":{"type":"number","nullable":true,"description":"Estimated monthly technology spend (USD)."},"SKU":{"type":"number","nullable":true,"description":"Number of products sold."},"R":{"type":"number","nullable":true,"description":"Estimated annual revenue (USD)."},"F":{"type":"number","nullable":true,"description":"Social media followers."},"E":{"type":"number","nullable":true,"description":"Employee count."},"A":{"type":"number","nullable":true,"description":"Page rank."},"Q":{"type":"number","nullable":true,"description":"Tranco rank."},"M":{"type":"number","nullable":true,"description":"Majestic rank."},"U":{"type":"number","nullable":true,"description":"Umbrella rank."},"META":{"type":"object","nullable":true,"properties":{"CompanyName":{"type":"string","nullable":true},"City":{"type":"string","nullable":true},"Postcode":{"type":"string","nullable":true},"State":{"type":"string","nullable":true},"Country":{"type":"string","nullable":true},"Vertical":{"type":"string","nullable":true},"Telephones":{"type":"array","nullable":true,"items":{"type":"string"}},"Emails":{"type":"array","nullable":true,"items":{"type":"string"}},"Social":{"type":"array","nullable":true,"items":{"type":"string"}},"Titles":{"type":"array","nullable":true,"items":{"type":"string"}}},"additionalProperties":{"nullable":true},"description":"Company metadata; present only when include_meta is true."}},"additionalProperties":{"nullable":true}}},"Errors":{"type":"array","nullable":true,"items":{"anyOf":[{"type":"string"},{"type":"object","properties":{"Lookup":{"type":"string","nullable":true,"description":"Lookup the error applies to."},"Message":{"type":"string","nullable":true,"description":"Provider error message."},"Code":{"type":"number","nullable":true,"description":"Provider error code (e.g. -8 = invalid domain)."}},"additionalProperties":{"nullable":true}}]}}},"required":["Results"],"additionalProperties":{"nullable":true}},"BuiltWithRelationshipsResponse":{"type":"object","properties":{"Relationships":{"type":"array","nullable":true,"items":{"type":"object","properties":{"Domain":{"type":"string","nullable":true,"description":"Domain that was looked up."},"Identifiers":{"type":"array","nullable":true,"items":{"type":"object","properties":{"Type":{"type":"string","nullable":true,"description":"Identifier type (e.g. analytics ID, ad-network tag, IP)."},"Value":{"type":"string","nullable":true,"description":"Identifier value."},"First":{"type":"number","nullable":true,"description":"First seen on the looked-up domain (Unix epoch ms)."},"Last":{"type":"number","nullable":true,"description":"Last seen on the looked-up domain (Unix epoch ms)."},"Matches":{"type":"array","nullable":true,"items":{"type":"object","properties":{"Domain":{"type":"string","nullable":true,"description":"Related domain sharing this identifier."},"First":{"type":"number","nullable":true,"description":"First seen on the related domain (Unix epoch ms)."},"Last":{"type":"number","nullable":true,"description":"Last seen on the related domain (Unix epoch ms)."},"Overlap":{"type":"boolean","nullable":true,"description":"True when the identifier was live on both domains at the same time."}},"additionalProperties":{"nullable":true}},"description":"Other domains that share this identifier."}},"additionalProperties":{"nullable":true}}}},"additionalProperties":{"nullable":true}}},"results":{"type":"number","nullable":true,"description":"Total number of relationships found."},"max_per_page":{"type":"number","nullable":true,"description":"Page size (500)."},"next_skip":{"type":"number","nullable":true,"description":"Pass as offset to fetch the next page."},"more_results":{"type":"boolean","nullable":true,"description":"True when another page is available."},"Errors":{"type":"array","nullable":true,"items":{"anyOf":[{"type":"string"},{"type":"object","properties":{"Lookup":{"type":"string","nullable":true,"description":"Lookup the error applies to."},"Message":{"type":"string","nullable":true,"description":"Provider error message."},"Code":{"type":"number","nullable":true,"description":"Provider error code (e.g. -8 = invalid domain)."}},"additionalProperties":{"nullable":true}}]}}},"additionalProperties":{"nullable":true}},"ProspeoEnrichPersonResponse":{"nullable":true},"ProspeoBulkEnrichPersonResponse":{"nullable":true},"ProspeoSearchPersonResponse":{"nullable":true},"ProspeoEnrichCompanyResponse":{"nullable":true},"ProspeoBulkEnrichCompanyResponse":{"nullable":true},"ProspeoSearchCompanyResponse":{"nullable":true},"DfsYouTubeLocationsResponse":{"nullable":true},"DfsYouTubeOrganicResponse":{"nullable":true},"DfsYouTubeVideoInfoResponse":{"nullable":true},"DfsYouTubeVideoCommentsResponse":{"nullable":true},"DfsYouTubeVideoSubtitlesResponse":{"nullable":true},"DfsSerpLocationsResponse":{"nullable":true},"DfsSerpOrganicResponse":{"nullable":true},"DfsGoogleAdsLocationsResponse":{"nullable":true},"DfsGoogleAdsSearchVolumeResponse":{"nullable":true},"DfsGoogleTrendsCategoriesResponse":{"nullable":true},"DfsGoogleTrendsExploreResponse":{"nullable":true},"DfsLabsRankedKeywordsResponse":{"nullable":true},"DfsLabsCompetitorsDomainResponse":{"nullable":true},"DfsLabsDomainRankOverviewResponse":{"nullable":true},"DfsLabsKeywordIdeasResponse":{"nullable":true},"DfsLabsRelatedKeywordsResponse":{"nullable":true},"DfsLabsKeywordSuggestionsResponse":{"nullable":true},"DfsLabsHistoricalSerpResponse":{"nullable":true},"DfsLabsSerpCompetitorsResponse":{"nullable":true},"DfsLabsBulkKeywordDifficultyResponse":{"nullable":true},"DfsLabsSubdomainsResponse":{"nullable":true},"DfsLabsKeywordOverviewResponse":{"nullable":true},"DfsLabsTopSearchesResponse":{"nullable":true},"DfsLabsSearchIntentResponse":{"nullable":true},"DfsLabsKeywordsForSiteResponse":{"nullable":true},"DfsLabsDomainIntersectionResponse":{"nullable":true},"DfsLabsHistoricalRankOverviewResponse":{"nullable":true},"DfsLabsPageIntersectionResponse":{"nullable":true},"DfsLabsBulkTrafficEstimationResponse":{"nullable":true},"DfsLabsAvailableFiltersResponse":{"nullable":true},"DfsLabsHistoricalKeywordDataResponse":{"nullable":true},"DfsLabsRelevantPagesResponse":{"nullable":true},"DfsDomainAnalyticsWhoisOverviewResponse":{"nullable":true},"DfsDomainAnalyticsWhoisAvailableFiltersResponse":{"nullable":true},"DfsDomainAnalyticsDomainTechnologiesResponse":{"nullable":true},"DfsDomainAnalyticsTechnologiesAvailableFiltersResponse":{"nullable":true},"DfsOnPageContentParsingResponse":{"nullable":true},"DfsOnPageInstantPagesResponse":{"nullable":true},"DfsOnPageLighthouseResponse":{"nullable":true},"TheirStackJobSearchResponse":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","additionalProperties":{"nullable":true}}},"metadata":{"type":"object","properties":{"total_results":{"type":"number","nullable":true},"page":{"type":"number"},"limit":{"type":"number"}},"additionalProperties":{"nullable":true}}},"required":["data"],"additionalProperties":{"nullable":true}},"TheirStackCompanySearchResponse":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","additionalProperties":{"nullable":true}}},"metadata":{"type":"object","properties":{"total_results":{"type":"number","nullable":true},"page":{"type":"number"},"limit":{"type":"number"}},"additionalProperties":{"nullable":true}}},"required":["data"],"additionalProperties":{"nullable":true}},"TheirStackTechnographicsResponse":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","additionalProperties":{"nullable":true}}},"metadata":{"type":"object","properties":{"total_results":{"type":"number","nullable":true},"page":{"type":"number"},"limit":{"type":"number"}},"additionalProperties":{"nullable":true}}},"required":["data"],"additionalProperties":{"nullable":true}},"TheirStackBuyingIntentsResponse":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","additionalProperties":{"nullable":true}}},"metadata":{"type":"object","properties":{"total_results":{"type":"number","nullable":true},"page":{"type":"number"},"limit":{"type":"number"}},"additionalProperties":{"nullable":true}}},"required":["data"],"additionalProperties":{"nullable":true}},"SumbleFindOrganizationsResponse":{"type":"object","properties":{"id":{"type":"string","description":"Transaction UUID."},"credits_used":{"type":"integer","description":"Credits consumed by this request."},"total":{"type":"integer"},"source_data_url":{"type":"string"},"organizations":{"type":"array","items":{"type":"object","properties":{"id":{"type":"integer"},"parent_id":{"type":"integer","nullable":true},"name":{"type":"string"},"url":{"type":"string"},"industry":{"type":"string","nullable":true},"total_employees":{"type":"integer","nullable":true},"matching_people_count":{"type":"integer","nullable":true},"matching_team_count":{"type":"integer","nullable":true},"matching_job_post_count":{"type":"integer","nullable":true},"headquarters_country":{"type":"string","nullable":true},"headquarters_state":{"type":"string","nullable":true},"domain":{"type":"string","nullable":true},"linkedin_organization_url":{"type":"string","nullable":true},"matching_tags":{"type":"array","nullable":true,"items":{"type":"string"}},"matching_entities":{"type":"array","nullable":true,"items":{"type":"object","properties":{"type":{"type":"string"},"term":{"type":"string"},"job_post_count":{"type":"integer"},"people_count":{"type":"integer"},"team_count":{"type":"integer"},"job_post_used_count":{"type":"integer","nullable":true},"team_count_used":{"type":"integer","nullable":true}},"required":["type","term","job_post_count","people_count","team_count"],"additionalProperties":{"nullable":true}}}},"required":["id","name","url"],"additionalProperties":{"nullable":true}}}},"required":["id","credits_used","total","organizations"],"additionalProperties":{"nullable":true}},"SumbleEnrichOrganizationResponse":{"type":"object","properties":{"id":{"type":"string","description":"Transaction UUID."},"credits_used":{"type":"integer","description":"Credits consumed by this request."},"organization":{"type":"object","properties":{"id":{"type":"integer"},"slug":{"type":"string"},"name":{"type":"string"},"domain":{"type":"string"}},"required":["id","slug","name","domain"],"additionalProperties":{"nullable":true}},"technologies_found":{"type":"string"},"technologies_count":{"type":"integer"},"source_data_url":{"type":"string"},"technologies":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"last_job_post":{"type":"string","nullable":true},"jobs_count":{"type":"integer"},"jobs_data_url":{"type":"string"},"people_count":{"type":"integer"},"people_data_url":{"type":"string"},"teams_count":{"type":"integer"},"teams_data_url":{"type":"string"}},"required":["name","jobs_count","jobs_data_url","people_count","people_data_url","teams_count","teams_data_url"],"additionalProperties":{"nullable":true}}}},"required":["id","credits_used","organization","technologies_count","technologies"],"additionalProperties":{"nullable":true}},"SumbleMatchOrganizationsResponse":{"type":"object","properties":{"id":{"type":"string","description":"Transaction UUID."},"credits_used":{"type":"integer","description":"Credits consumed by this request."},"matched_count":{"type":"integer"},"total":{"type":"integer"},"results":{"type":"array","items":{"type":"object","properties":{"input":{"type":"object","properties":{"name":{"type":"string","nullable":true},"url":{"type":"string","nullable":true},"location":{"type":"string","nullable":true}},"additionalProperties":{"nullable":true}},"match":{"type":"object","nullable":true,"properties":{"id":{"type":"integer"},"slug":{"type":"string"},"name":{"type":"string"},"domain":{"type":"string"}},"required":["id","slug","name","domain"],"additionalProperties":{"nullable":true}}},"required":["input","match"],"additionalProperties":{"nullable":true}}}},"required":["id","credits_used","matched_count","total","results"],"additionalProperties":{"nullable":true}},"SumbleFindPeopleResponse":{"type":"object","properties":{"id":{"type":"string","description":"Transaction UUID."},"credits_used":{"type":"integer","description":"Credits consumed by this request."},"organization":{"type":"object","properties":{"id":{"type":"integer"},"slug":{"type":"string"},"name":{"type":"string"},"domain":{"type":"string"}},"required":["id","slug","name","domain"],"additionalProperties":{"nullable":true}},"people_count":{"type":"integer"},"people_data_url":{"type":"string"},"people":{"type":"array","items":{"type":"object","properties":{"id":{"type":"integer"},"url":{"type":"string"},"linkedin_url":{"type":"string","nullable":true},"name":{"type":"string"},"job_title":{"type":"string","nullable":true},"job_function":{"type":"string","nullable":true},"job_level":{"type":"string","nullable":true},"location":{"type":"string","nullable":true},"country":{"type":"string","nullable":true},"start_date":{"type":"string","nullable":true},"country_code":{"type":"string","nullable":true}},"required":["id","url","name"],"additionalProperties":{"nullable":true}}}},"required":["id","credits_used","organization","people_count","people"],"additionalProperties":{"nullable":true}},"SumbleEnrichPersonResponse":{"type":"object","properties":{"id":{"type":"string","description":"Transaction UUID."},"credits_used":{"type":"integer","description":"Credits consumed by this request."},"url":{"type":"string"},"linkedin_url":{"type":"string","nullable":true},"contact_info":{"type":"object","nullable":true,"properties":{"emails":{"type":"array","items":{"type":"string"}},"phone":{"type":"string","nullable":true}},"required":["emails","phone"],"additionalProperties":{"nullable":true}},"cached":{"type":"boolean"}},"required":["id","credits_used","url","contact_info","cached"],"additionalProperties":{"nullable":true}},"SumbleFindJobsResponse":{"type":"object","properties":{"id":{"type":"string","description":"Transaction UUID."},"credits_used":{"type":"integer","description":"Credits consumed by this request."},"total":{"type":"integer"},"source_data_url":{"type":"string"},"jobs":{"type":"array","items":{"type":"object","properties":{"id":{"type":"integer"},"organization_id":{"type":"integer"},"organization_name":{"type":"string"},"organization_domain":{"type":"string","nullable":true},"job_title":{"type":"string"},"datetime_pulled":{"type":"string"},"primary_job_function":{"type":"string","nullable":true},"location":{"type":"string"},"teams":{"type":"string"},"matched_projects":{"type":"string","nullable":true},"projects_description":{"type":"string","nullable":true},"matched_technologies":{"type":"string","nullable":true},"matched_job_functions":{"type":"string","nullable":true},"projects":{"type":"string","nullable":true},"description":{"type":"string","nullable":true},"url":{"type":"string"}},"required":["id","organization_id","organization_name","job_title","datetime_pulled","location","teams","url"],"additionalProperties":{"nullable":true}}}},"required":["id","credits_used","total","jobs"],"additionalProperties":{"nullable":true}},"UnipileResponse":{"nullable":true},"LinkupApiResponse":{"nullable":true},"LinkupProfileEnrichRequest":{"type":"object","properties":{"first_name":{"type":"string","example":"Michel","description":"Person's first name"},"last_name":{"type":"string","example":"Lieben","description":"Person's last name"},"company_name":{"type":"string","example":"ColdIQ","description":"Current company name"}},"required":["first_name","last_name","company_name"],"example":{"first_name":"Michel","last_name":"Lieben","company_name":"ColdIQ"}},"LinkupSearchProfilesRequest":{"type":"object","properties":{"keyword":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}],"example":"SDR","description":"Names, positions, or skills to search"},"job_title":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}],"example":"Sales Development Representative","description":"Job title(s) to filter by"},"industry":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}],"example":"technology","description":"Industry sector (e.g. \"technology\", \"finance\")"},"school":{"type":"string","example":"MIT","description":"University or school name"},"location":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}],"example":"United States","description":"City or country filter"},"current_company":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}],"example":["Microsoft","Google"],"description":"Current employer name(s)"},"total_results":{"type":"integer","minimum":1,"maximum":1000,"example":10,"description":"Number of results to return (1–1,000, default: 10). Billed at 1 credit per 10 results."}},"example":{"job_title":"Sales Development Representative","location":"United States","current_company":["Microsoft","Google"],"total_results":10}},"LinkupCompanyInfoRequest":{"type":"object","properties":{"company_url":{"type":"string","format":"uri","example":"https://www.linkedin.com/company/coldiq/","description":"LinkedIn company URL (e.g. https://www.linkedin.com/company/stripe/)"}},"required":["company_url"],"example":{"company_url":"https://www.linkedin.com/company/coldiq/"}},"LinkupCompanyInfoByDomainRequest":{"type":"object","properties":{"domain":{"type":"string","example":"coldiq.com","description":"Company domain name (e.g. stripe.com)"}},"required":["domain"],"example":{"domain":"coldiq.com"}},"LinkupSearchCompaniesRequest":{"type":"object","properties":{"keyword":{"type":"string","example":"AI sales","description":"Search term (company name, industry, etc.)"},"industry":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}],"example":"technology","description":"Sector filter (e.g. \"technology\", \"healthcare\")"},"location":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}],"example":"United States","description":"Geographic filter"},"employee_range":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}],"example":"51-200","description":"Workforce size filter (e.g. \"51-200\", \"201-500\")"},"founding_company":{"type":"boolean","example":false,"description":"Filter by startup/founding status"},"total_results":{"type":"integer","minimum":1,"maximum":1000,"example":10,"description":"Number of results to return (1–1,000, default: 10). Billed at 1 credit per 10 results."}},"example":{"keyword":"AI sales","industry":"technology","location":"United States","total_results":10}},"LinkupEmailFinderRequest":{"type":"object","properties":{"linkedin_url":{"type":"string","format":"uri","example":"https://www.linkedin.com/in/michel-lieben","description":"Person's LinkedIn profile URL"},"first_name":{"type":"string","example":"Michel","description":"Person's first name (use with last_name when no linkedin_url)"},"last_name":{"type":"string","example":"Lieben","description":"Person's last name (use with first_name when no linkedin_url)"},"company_domain":{"type":"string","example":"coldiq.com","description":"Company domain (preferred over company_name for accuracy)"},"company_name":{"type":"string","example":"ColdIQ","description":"Company name (less accurate than company_domain)"}},"example":{"linkedin_url":"https://www.linkedin.com/in/michel-lieben","company_domain":"coldiq.com"}},"LinkupEmailReverseRequest":{"type":"object","properties":{"email":{"type":"string","format":"email","example":"michel@coldiq.com","description":"Email address to reverse lookup"}},"required":["email"],"example":{"email":"michel@coldiq.com"}},"LinkupEmailValidateRequest":{"type":"object","properties":{"email":{"type":"string","format":"email","example":"michel@coldiq.com","description":"Email address to validate"}},"required":["email"],"example":{"email":"michel@coldiq.com"}},"LinkupFundraisingCompaniesRequest":{"type":"object","properties":{"keyword":{"type":"string","example":"AI","description":"Keyword filter on company name or industry (required by the provider)"},"funding_stage":{"type":"string","enum":["Seed","Series A","Series B","Series C","Series D+"],"example":"Series B","description":"Funding stage filter"},"min_funding_amount":{"type":"integer","example":10000000,"description":"Minimum funding amount in USD (e.g. 1000000, 5000000, 10000000)"},"max_funding_amount":{"type":"integer","example":100000000,"description":"Maximum funding amount in USD"},"industry":{"type":"string","example":"Software","description":"Industry filter (e.g. Software, Healthcare, FinTech)"},"location":{"type":"string","example":"United States","description":"Geographic filter (e.g. \"United States\", \"Europe\", \"San Francisco CA\")"},"date_range":{"type":"string","enum":["last_30_days","last_3_months","last_6_months","last_year"],"example":"last_6_months","description":"Funding announcement date range"},"investor_name":{"type":"string","example":"Sequoia Capital","description":"Specific investor name to filter by"},"employee_range":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}],"example":"51-200","description":"Workforce size filter"},"enrich":{"type":"boolean","example":false,"description":"Retrieve detailed company data for each result (adds 1 credit per company)"},"total_results":{"type":"integer","minimum":1,"maximum":500,"example":50,"description":"Number of results to return (50, 100, or 500). Billed at 1 credit per 10 results."}},"required":["keyword"],"example":{"keyword":"AI","funding_stage":"Series B","min_funding_amount":10000000,"industry":"Software","location":"United States","date_range":"last_6_months","total_results":50}},"LinkupHiringCompaniesRequest":{"type":"object","properties":{"job_title":{"type":"string","example":"Sales Director","description":"Target job position to filter hiring companies by"},"industry":{"type":"string","example":"Software","description":"Company industry classification"},"location":{"type":"string","example":"United States","description":"Geographic filter"},"employee_range":{"type":"string","example":"51-200","description":"Company size filter (e.g. \"51-200\", \"201-500\")"},"min_active_jobs":{"type":"integer","minimum":1,"example":5,"description":"Minimum number of active job postings"},"total_results":{"type":"integer","minimum":1,"maximum":500,"example":50,"description":"Number of results to return (max 500). Billed at 1 credit per 10 companies."}},"example":{"job_title":"Sales Director","industry":"Software","location":"United States","employee_range":"51-200","total_results":50}},"AiArkCompanySearchResponse":{"type":"object","properties":{"content":{"type":"array","items":{"type":"object","properties":{},"additionalProperties":{"nullable":true}}},"unmatched_filters":{"type":"array","items":{"$ref":"#/components/schemas/AiArkUnmatchedFilter"},"description":"Filter values that did not match the taxonomies ColdIQ documents. Present only when at least one value failed to match. The request was still forwarded to AI Ark in full and is never rejected on account of this list — AI Ark’s taxonomies are larger than the lists we publish, so a flagged value may still be valid upstream. Treat it as: an empty result set with no `unmatched_filters` is a genuinely empty niche; an empty result set WITH `unmatched_filters` is most likely a spelling problem."},"totalElements":{"type":"integer"},"totalPages":{"type":"integer"},"number":{"type":"integer"},"size":{"type":"integer"},"first":{"type":"boolean"},"last":{"type":"boolean"},"empty":{"type":"boolean"},"numberOfElements":{"type":"integer"}},"required":["content","totalElements","totalPages","number","size"]},"AiArkUnmatchedFilter":{"type":"object","properties":{"key":{"type":"string","description":"Dotted request path of the filter that carried the value.","example":"contact.seniority"},"value":{"type":"string","description":"The value exactly as you submitted it.","example":"c-suite"},"reason":{"type":"string","enum":["not_in_documented_values","unexpected_value_format"],"description":"`not_in_documented_values`: well-formed, but absent from the list ColdIQ documents for this filter. `unexpected_value_format`: not shaped like an AI Ark taxonomy token at all (spaces, mixed case, punctuation), so it cannot match upstream.","example":"not_in_documented_values"},"did_you_mean":{"type":"string","description":"Closest documented value, when the submitted one looks like a typo of it.","example":"c_suite"},"documented_values":{"type":"array","items":{"type":"string"},"description":"Every value ColdIQ documents for this filter. Present only for closed taxonomies, so one retry is enough to self-heal."}},"required":["key","value","reason"]},"AiArkCompanySearchRequest":{"type":"object","properties":{"lookalikeDomains":{"type":"array","items":{"type":"string"},"maxItems":5,"description":"Up to 5 LinkedIn company URLs or domains to find similar companies"},"account":{"type":"object","additionalProperties":{"nullable":true},"description":"Company-level filters (nested DSL). Wrappers: enum/string keys use {\"any\":{\"include\":[...],\"exclude\":[...]}} (\"all\" instead of \"any\" requires every value); text keys use {\"any\":{\"include\":{\"mode\":\"WORD\",\"content\":[...]}}} (mode: WORD|SMART|STRICT); numeric keys use {\"type\":\"RANGE\",\"range\":[{\"start\":n,\"end\":n}]}. Keys — text: industries, technologies, name, url, productAndServices; enum: location, type, domain, linkedin, socialMedia, naics; range: employeeSize, revenue, foundedYear; object: funding, keyword, metric, geoLocation. type values: PUBLIC_COMPANY, PRIVATELY_HELD, SELF_EMPLOYED, SELF_OWNED, PARTNERSHIP, GOVERNMENT_AGENCY, NON_PROFIT, EDUCATIONAL. funding.type values: PRE_SEED, SEED, SERIES_A, SERIES_B, SERIES_C, SERIES_D, SERIES_E, SERIES_F, SERIES_G, SERIES_H, SERIES_I, SERIES_J, VENTURE_ROUND, ANGEL, PRIVATE_EQUITY, DEBT_FINANCING, CONVERTIBLE_NOTE, GRANT, CORPORATE_ROUND, EQUITY_CROWDFUNDING, PRODUCT_CROWDFUNDING, SECONDARY_MARKET, POST_IPO_EQUITY, POST_IPO_DEBT, POST_IPO_SECONDARY, NON_EQUITY_ASSISTANCE, INITIAL_COIN_OFFERING, UNDISCLOSED, SERIES_UNKNOWN, FUNDING_ROUND. Unknown enum values are NOT rejected by AI Ark — they silently return 0 results, so a wrong spelling is indistinguishable from an empty niche. ColdIQ validates every value in this filter against the lists documented here and echoes anything that does not match as `unmatched_filters` on the 200 response (the request is still forwarded in full). That list is OUR documentation, not AI Ark’s full taxonomy: a value flagged as unmatched may still be valid upstream, and an unflagged value is not guaranteed to be. Exclusions match only the field they are written on: an `industries` exclude filters the industry label, NOT the company NAME, so excluding \"robotics\" still returns a company called \"Nordic Robotics AS\" whose industry is something else — exclude on `name` as well when you mean both. e.g. {\"industries\":{\"any\":{\"include\":{\"mode\":\"WORD\",\"content\":[\"software development\"]}}},\"location\":{\"any\":{\"include\":[\"United States\"]}},\"employeeSize\":{\"type\":\"RANGE\",\"range\":[{\"start\":10,\"end\":50}]}}"},"lists":{"type":"object","additionalProperties":{"nullable":true},"description":"Exclusion lists created with POST /ai-ark/lists. `{\"company_id\":{\"exclude\":[\"<list id>\"]}}` on Company Search or `{\"people_id\":{\"exclude\":[\"<list id>\"]}}` on People Search removes every id in those lists from the results. Up to 10 lists per request; lists expire 24 hours after creation."},"page":{"type":"integer","minimum":0,"default":0,"description":"Page number, zero-based. The offset is computed as page * size, so `size` must stay CONSTANT across a paged pull: reducing `size` on a later page moves the offset BACKWARDS into rows you already received and paid for, and bills you for them a second time. To shrink the page length, restart the pull from page 0.","example":0},"size":{"type":"integer","minimum":1,"maximum":100,"default":10,"description":"Number of results per page (1-100). Do not change this between pages of the same pull — the offset is page * size, so a smaller `size` on a later page re-requests and re-bills rows already returned.","example":10}},"example":{"account":{"employeeSize":{"type":"RANGE","range":[{"start":10,"end":50}]},"industries":{"any":{"include":{"mode":"WORD","content":["software development"]}}},"location":{"any":{"include":["United States"]}}},"page":0,"size":10}},"AiArkListSaveResponse":{"type":"object","properties":{"id":{"type":"string"},"workspace":{"type":"string"},"type":{"type":"string"},"values":{"type":"array","items":{"type":"string"}},"created":{"type":"number"}},"required":["id","type","values"],"additionalProperties":{"nullable":true}},"AiArkListSaveRequest":{"type":"object","properties":{"id":{"type":"string","format":"uuid","description":"Existing list id to update. Omit to create a new list."},"type":{"type":"string","enum":["company_id","people_id"],"description":"Required when creating a list: `company_id` for Company Search ids, `people_id` for People Search ids.","example":"company_id"},"values":{"type":"array","items":{"type":"string","minLength":1},"minItems":1,"maxItems":10000,"description":"AI Ark record ids to store. At most 10,000 per list."},"mode":{"type":"string","enum":["APPEND","REPLACE"],"description":"APPEND (default) merges into an existing list; REPLACE overwrites it."}},"required":["values"],"example":{"type":"company_id","values":["bf9667e0-58e5-4381-a825-dcb462c2a6ac"]}},"AiArkPeopleSearchResponse":{"type":"object","properties":{"content":{"type":"array","items":{"type":"object","properties":{},"additionalProperties":{"nullable":true},"description":"An AI Ark person record. NOTE: `headline` is NOT part of this response. AI Ark returns it empty on every row, so ColdIQ removes the empty key rather than let callers build a qualification step on a field that never carries data — there is no enrichment hop behind it. The `contact.keyword` filter with `source: \"HEADLINE\"` still works as an INPUT filter and is passed upstream unchanged; it simply cannot be verified from the response, so treat it as an unobservable filter. Use `experience.latest.title` when you need a role string you can read back."}},"trackId":{"type":"string","format":"uuid","description":"Pass this single-use trackId to Email Finder within 6 hours to get emails for these results. It covers the rows AI Ark returned, including any removed by max_per_account."},"max_per_account_applied":{"type":"object","properties":{"cap":{"type":"integer"},"returned_by_provider":{"type":"integer"},"delivered":{"type":"integer"},"discarded":{"type":"integer"},"unattributed":{"type":"integer"}},"required":["cap","returned_by_provider","delivered","discarded","unattributed"],"description":"Present only when max_per_account was set. `returned_by_provider` is what AI Ark returned and billed for, `delivered` what you received, `discarded` the billed rows the cap removed, and `unattributed` the delivered rows kept uncapped because no employer could be read from them."},"unmatched_filters":{"type":"array","items":{"$ref":"#/components/schemas/AiArkUnmatchedFilter"},"description":"Filter values that did not match the taxonomies ColdIQ documents. Present only when at least one value failed to match. The request was still forwarded to AI Ark in full and is never rejected on account of this list — AI Ark’s taxonomies are larger than the lists we publish, so a flagged value may still be valid upstream. Treat it as: an empty result set with no `unmatched_filters` is a genuinely empty niche; an empty result set WITH `unmatched_filters` is most likely a spelling problem."},"totalElements":{"type":"integer"},"totalPages":{"type":"integer"},"number":{"type":"integer"},"size":{"type":"integer"},"first":{"type":"boolean"},"last":{"type":"boolean"},"empty":{"type":"boolean"},"numberOfElements":{"type":"integer"}},"required":["content","totalElements","totalPages","number","size"]},"AiArkPeopleSearchRequest":{"type":"object","properties":{"account":{"type":"object","additionalProperties":{"nullable":true},"description":"Company-level filters (nested DSL). Wrappers: enum/string keys use {\"any\":{\"include\":[...],\"exclude\":[...]}} (\"all\" instead of \"any\" requires every value); text keys use {\"any\":{\"include\":{\"mode\":\"WORD\",\"content\":[...]}}} (mode: WORD|SMART|STRICT); numeric keys use {\"type\":\"RANGE\",\"range\":[{\"start\":n,\"end\":n}]}. Keys — text: industries, technologies, name, url, productAndServices; enum: location, type, domain, linkedin, socialMedia, naics; range: employeeSize, revenue, foundedYear; object: funding, keyword, metric, geoLocation. type values: PUBLIC_COMPANY, PRIVATELY_HELD, SELF_EMPLOYED, SELF_OWNED, PARTNERSHIP, GOVERNMENT_AGENCY, NON_PROFIT, EDUCATIONAL. funding.type values: PRE_SEED, SEED, SERIES_A, SERIES_B, SERIES_C, SERIES_D, SERIES_E, SERIES_F, SERIES_G, SERIES_H, SERIES_I, SERIES_J, VENTURE_ROUND, ANGEL, PRIVATE_EQUITY, DEBT_FINANCING, CONVERTIBLE_NOTE, GRANT, CORPORATE_ROUND, EQUITY_CROWDFUNDING, PRODUCT_CROWDFUNDING, SECONDARY_MARKET, POST_IPO_EQUITY, POST_IPO_DEBT, POST_IPO_SECONDARY, NON_EQUITY_ASSISTANCE, INITIAL_COIN_OFFERING, UNDISCLOSED, SERIES_UNKNOWN, FUNDING_ROUND. Unknown enum values are NOT rejected by AI Ark — they silently return 0 results, so a wrong spelling is indistinguishable from an empty niche. ColdIQ validates every value in this filter against the lists documented here and echoes anything that does not match as `unmatched_filters` on the 200 response (the request is still forwarded in full). That list is OUR documentation, not AI Ark’s full taxonomy: a value flagged as unmatched may still be valid upstream, and an unflagged value is not guaranteed to be. Exclusions match only the field they are written on: an `industries` exclude filters the industry label, NOT the company NAME, so excluding \"robotics\" still returns a company called \"Nordic Robotics AS\" whose industry is something else — exclude on `name` as well when you mean both. e.g. {\"industries\":{\"any\":{\"include\":{\"mode\":\"WORD\",\"content\":[\"software development\"]}}},\"location\":{\"any\":{\"include\":[\"United States\"]}},\"employeeSize\":{\"type\":\"RANGE\",\"range\":[{\"start\":10,\"end\":50}]}} (Applied to the person's current employer.)"},"contact":{"type":"object","additionalProperties":{"nullable":true},"description":"Individual-level filters (same nested DSL as account — see the account filter for the wrapper shapes). Keys — enum: seniority, departmentAndFunction, location, socialMedia, profileBadge; text: fullName, skill, certification; object: education, experience, company, keyword. Put current job titles in experience.latest.title. Put profile terms in keyword; each source is an object such as {\"mode\":\"SMART\",\"source\":\"HEADLINE\"}. seniority values: founder, owner, partner, c_suite, vp, director, head, manager, senior, mid-level, entry, intern. Seniority is classified from the English job title, so non-English titles are downgraded: Nordic \"head of\" titles (Salgschef, Säljchef, Salgssjef, Myyntipäällikkö) classify as `manager`, not `head` — a {c_suite,vp,director,head} filter silently drops the real decision-maker at a Nordic SMB. Include `manager` when prospecting non-English-speaking markets. In the RESPONSE, seniority for a person is at `person.department.seniority` — it is NOT inside `position_groups[].profile_positions[]`, where most callers look first and find nothing. departmentAndFunction accepts AI Ark department, sub-department, and function values from its published departments-and-functions list, which is larger than the sample ColdIQ documents; examples include software_development, demand_generation, recruiting_talent_acquisition, financial_planning_analysis. Unknown enum values are NOT rejected by AI Ark — they silently return 0 results, so a wrong spelling is indistinguishable from an empty niche. ColdIQ validates every value in this filter against the lists documented here and echoes anything that does not match as `unmatched_filters` on the 200 response (the request is still forwarded in full). That list is OUR documentation, not AI Ark’s full taxonomy: a value flagged as unmatched may still be valid upstream, and an unflagged value is not guaranteed to be. e.g. {\"seniority\":{\"any\":{\"include\":[\"c_suite\",\"director\"],\"exclude\":[\"intern\"]}},\"experience\":{\"latest\":{\"title\":{\"any\":{\"include\":{\"mode\":\"SMART\",\"content\":[\"VP Sales\"]}}}}},\"keyword\":{\"any\":{\"include\":{\"sources\":[{\"mode\":\"SMART\",\"source\":\"HEADLINE\"},{\"mode\":\"SMART\",\"source\":\"SUMMARY\"}],\"content\":[\"B2B SaaS\"]}}}}"},"lists":{"type":"object","additionalProperties":{"nullable":true},"description":"Exclusion lists created with POST /ai-ark/lists. `{\"company_id\":{\"exclude\":[\"<list id>\"]}}` on Company Search or `{\"people_id\":{\"exclude\":[\"<list id>\"]}}` on People Search removes every id in those lists from the results. Up to 10 lists per request; lists expire 24 hours after creation."},"page":{"type":"integer","minimum":0,"default":0,"description":"Page number, zero-based. The offset is computed as page * size, so `size` must stay CONSTANT across a paged pull: reducing `size` on a later page moves the offset BACKWARDS into rows you already received and paid for, and bills you for them a second time. To shrink the page length, restart the pull from page 0.","example":0},"size":{"type":"integer","minimum":1,"maximum":100,"default":10,"description":"Number of results per page (1-100). Do not change this between pages of the same pull — the offset is page * size, so a smaller `size` on a later page re-requests and re-bills rows already returned.","example":10},"max_per_account":{"type":"integer","minimum":1,"description":"ColdIQ-only: keep at most this many people per company, in the order AI Ark returned them. AI Ark has no such parameter, so ColdIQ applies the cap server-side AFTER the provider has returned the page — which is the point: batch many domains in one call and enforce a 2-3-per-account outbound rule without issuing one request per company. BILLING, stated plainly: AI Ark charges per RETURNED row and has already returned (and billed for) the whole page by the time the cap runs, so you are still charged for the rows the cap removes. The cap saves round trips and rate-limit budget, NOT credits — lower `size` to spend less. `discarded` in `max_per_account_applied` tells you exactly how many billed rows were dropped. A row whose employer cannot be read from the response is never dropped. The `trackId` still refers to the untrimmed AI Ark result set, and the pagination fields (`totalElements`, `totalPages`, `size`) still describe the AI Ark page, not the trimmed one — page with `page`/`size` as usual and read `max_per_account_applied` for what the cap removed.","example":2}},"example":{"contact":{"seniority":{"any":{"include":["founder"]}},"location":{"any":{"include":["United States"]}},"departmentAndFunction":{"any":{"include":["product_management"]}}},"account":{"employeeSize":{"type":"RANGE","range":[{"start":10,"end":200}]}},"page":0,"size":10}},"AiArkReverseLookupResponse":{"type":"object","properties":{},"additionalProperties":{"nullable":true}},"AiArkReverseLookupRequest":{"type":"object","properties":{"search":{"type":"string","minLength":1,"description":"Email address or phone number to look up","example":"michel@coldiq.com"}},"required":["search"],"example":{"search":"michel@coldiq.com"}},"AiArkMobilePhoneFinderResponse":{"type":"object","properties":{"id":{"type":"string"},"linkedin":{"type":"string","format":"uri"},"data":{"type":"array","items":{"type":"array","items":{"type":"string"}}}},"required":["data"]},"AiArkMobilePhoneFinderRequest":{"type":"object","properties":{"linkedin":{"type":"string","format":"uri","description":"LinkedIn profile URL. Provide this OR both domain + name.","example":"https://www.linkedin.com/in/michel-lieben"},"domain":{"type":"string","description":"Company domain. Must be paired with name.","example":"coldiq.com"},"name":{"type":"string","description":"Person's full name. Must be paired with domain.","example":"Michel Lieben"}},"example":{"linkedin":"https://www.linkedin.com/in/michel-lieben"}},"AiArkExportSinglePersonResponse":{"type":"object","properties":{},"additionalProperties":{"nullable":true}},"AiArkExportSinglePersonRequest":{"type":"object","properties":{"id":{"type":"string","format":"uuid","description":"The person's AI Ark ID from a People Search result. Provide this or url.","example":"592439b8-13c7-e31c-296e-b6e2f7339aeb"},"url":{"type":"string","format":"uri","description":"The person's LinkedIn profile URL. Provide this or id.","example":"https://www.linkedin.com/in/michel-lieben"}},"example":{"url":"https://www.linkedin.com/in/michel-lieben"}},"AiArkPeoplePreviewResponse":{"type":"object","properties":{"content":{"type":"array","items":{"type":"object","properties":{},"additionalProperties":{"nullable":true},"description":"A preview person record: real AI Ark `id` (usable by Export Single Person), first name, MASKED last name, title, company, location, department, position history, and `has_*` availability flags. No email, phone, or trackId."}},"trackId":{"type":"string","nullable":true,"format":"uuid","description":"Always null for a preview. Run People Search with the same filters to obtain a trackId for Email Finder."},"unmatched_filters":{"type":"array","items":{"$ref":"#/components/schemas/AiArkUnmatchedFilter"},"description":"Filter values that did not match the taxonomies ColdIQ documents. Present only when at least one value failed to match. The request was still forwarded to AI Ark in full and is never rejected on account of this list — AI Ark’s taxonomies are larger than the lists we publish, so a flagged value may still be valid upstream. Treat it as: an empty result set with no `unmatched_filters` is a genuinely empty niche; an empty result set WITH `unmatched_filters` is most likely a spelling problem."},"totalElements":{"type":"integer"},"totalPages":{"type":"integer"},"number":{"type":"integer"},"size":{"type":"integer"},"first":{"type":"boolean"},"last":{"type":"boolean"},"empty":{"type":"boolean"},"numberOfElements":{"type":"integer"}},"required":["content","totalElements","totalPages","number","size"]},"AiArkPeoplePreviewRequest":{"type":"object","properties":{"account":{"type":"object","additionalProperties":{"nullable":true},"description":"Company-level filters (nested DSL). Wrappers: enum/string keys use {\"any\":{\"include\":[...],\"exclude\":[...]}} (\"all\" instead of \"any\" requires every value); text keys use {\"any\":{\"include\":{\"mode\":\"WORD\",\"content\":[...]}}} (mode: WORD|SMART|STRICT); numeric keys use {\"type\":\"RANGE\",\"range\":[{\"start\":n,\"end\":n}]}. Keys — text: industries, technologies, name, url, productAndServices; enum: location, type, domain, linkedin, socialMedia, naics; range: employeeSize, revenue, foundedYear; object: funding, keyword, metric, geoLocation. type values: PUBLIC_COMPANY, PRIVATELY_HELD, SELF_EMPLOYED, SELF_OWNED, PARTNERSHIP, GOVERNMENT_AGENCY, NON_PROFIT, EDUCATIONAL. funding.type values: PRE_SEED, SEED, SERIES_A, SERIES_B, SERIES_C, SERIES_D, SERIES_E, SERIES_F, SERIES_G, SERIES_H, SERIES_I, SERIES_J, VENTURE_ROUND, ANGEL, PRIVATE_EQUITY, DEBT_FINANCING, CONVERTIBLE_NOTE, GRANT, CORPORATE_ROUND, EQUITY_CROWDFUNDING, PRODUCT_CROWDFUNDING, SECONDARY_MARKET, POST_IPO_EQUITY, POST_IPO_DEBT, POST_IPO_SECONDARY, NON_EQUITY_ASSISTANCE, INITIAL_COIN_OFFERING, UNDISCLOSED, SERIES_UNKNOWN, FUNDING_ROUND. Unknown enum values are NOT rejected by AI Ark — they silently return 0 results, so a wrong spelling is indistinguishable from an empty niche. ColdIQ validates every value in this filter against the lists documented here and echoes anything that does not match as `unmatched_filters` on the 200 response (the request is still forwarded in full). That list is OUR documentation, not AI Ark’s full taxonomy: a value flagged as unmatched may still be valid upstream, and an unflagged value is not guaranteed to be. Exclusions match only the field they are written on: an `industries` exclude filters the industry label, NOT the company NAME, so excluding \"robotics\" still returns a company called \"Nordic Robotics AS\" whose industry is something else — exclude on `name` as well when you mean both. e.g. {\"industries\":{\"any\":{\"include\":{\"mode\":\"WORD\",\"content\":[\"software development\"]}}},\"location\":{\"any\":{\"include\":[\"United States\"]}},\"employeeSize\":{\"type\":\"RANGE\",\"range\":[{\"start\":10,\"end\":50}]}} (Applied to the person's current employer.)"},"contact":{"type":"object","additionalProperties":{"nullable":true},"description":"Individual-level filters (same nested DSL as account — see the account filter for the wrapper shapes). Keys — enum: seniority, departmentAndFunction, location, socialMedia, profileBadge; text: fullName, skill, certification; object: education, experience, company, keyword. Put current job titles in experience.latest.title. Put profile terms in keyword; each source is an object such as {\"mode\":\"SMART\",\"source\":\"HEADLINE\"}. seniority values: founder, owner, partner, c_suite, vp, director, head, manager, senior, mid-level, entry, intern. Seniority is classified from the English job title, so non-English titles are downgraded: Nordic \"head of\" titles (Salgschef, Säljchef, Salgssjef, Myyntipäällikkö) classify as `manager`, not `head` — a {c_suite,vp,director,head} filter silently drops the real decision-maker at a Nordic SMB. Include `manager` when prospecting non-English-speaking markets. In the RESPONSE, seniority for a person is at `person.department.seniority` — it is NOT inside `position_groups[].profile_positions[]`, where most callers look first and find nothing. departmentAndFunction accepts AI Ark department, sub-department, and function values from its published departments-and-functions list, which is larger than the sample ColdIQ documents; examples include software_development, demand_generation, recruiting_talent_acquisition, financial_planning_analysis. Unknown enum values are NOT rejected by AI Ark — they silently return 0 results, so a wrong spelling is indistinguishable from an empty niche. ColdIQ validates every value in this filter against the lists documented here and echoes anything that does not match as `unmatched_filters` on the 200 response (the request is still forwarded in full). That list is OUR documentation, not AI Ark’s full taxonomy: a value flagged as unmatched may still be valid upstream, and an unflagged value is not guaranteed to be. e.g. {\"seniority\":{\"any\":{\"include\":[\"c_suite\",\"director\"],\"exclude\":[\"intern\"]}},\"experience\":{\"latest\":{\"title\":{\"any\":{\"include\":{\"mode\":\"SMART\",\"content\":[\"VP Sales\"]}}}}},\"keyword\":{\"any\":{\"include\":{\"sources\":[{\"mode\":\"SMART\",\"source\":\"HEADLINE\"},{\"mode\":\"SMART\",\"source\":\"SUMMARY\"}],\"content\":[\"B2B SaaS\"]}}}}"},"lists":{"type":"object","additionalProperties":{"nullable":true},"description":"Exclusion lists created with POST /ai-ark/lists. `{\"company_id\":{\"exclude\":[\"<list id>\"]}}` on Company Search or `{\"people_id\":{\"exclude\":[\"<list id>\"]}}` on People Search removes every id in those lists from the results. Up to 10 lists per request; lists expire 24 hours after creation."},"page":{"type":"integer","minimum":0,"default":0,"description":"Page number, zero-based. The offset is computed as page * size, so `size` must stay CONSTANT across a paged pull: reducing `size` on a later page moves the offset BACKWARDS into rows you already received and paid for, and bills you for them a second time. To shrink the page length, restart the pull from page 0.","example":0},"size":{"type":"integer","minimum":1,"maximum":100,"default":25,"description":"Number of preview rows per page (1-100). The page costs the same flat rate whatever the size.","example":25}},"example":{"contact":{"seniority":{"any":{"include":["c_suite"]}},"location":{"any":{"include":["United States"]}}},"account":{"domain":{"any":{"include":["coldiq.com"]}}},"page":0,"size":25}},"AiArkPersonalityAnalysisResponse":{"type":"object","properties":{"model":{"type":"string"},"source":{"type":"object","additionalProperties":{"nullable":true}},"score":{"nullable":true},"assessments":{"nullable":true},"archetype":{"nullable":true},"selling":{"nullable":true},"hiring":{"nullable":true}},"additionalProperties":{"nullable":true},"description":"DISC and OCEAN personality assessments with an archetype and selling/hiring outreach guidance (email field advice, what to say, what to avoid, decision traits)."},"AiArkPersonalityAnalysisRequest":{"type":"object","properties":{"url":{"type":"string","format":"uri","description":"The person's full LinkedIn profile URL. Provide this or id.","example":"https://www.linkedin.com/in/michel-lieben"},"id":{"type":"string","description":"The person's AI Ark id from a People Search or Preview result. Provide this or url.","example":"592439b8-13c7-e31c-296e-b6e2f7339aeb"}},"example":{"url":"https://www.linkedin.com/in/michel-lieben"}},"AiArkCreditsResponse":{"type":"object","properties":{"source":{"type":"string","enum":["user","coldiq"],"description":"`user`: the balance of the connected AI Ark account (Data BYOK). `coldiq`: the managed key is in use; AI Ark credits are not exposed and ColdIQ credits apply instead."},"total":{"type":"number","nullable":true,"description":"Remaining AI Ark credits of the connected account, or null on the managed key."},"coldiq_credit_balance":{"type":"number","nullable":true,"description":"The ColdIQ credit balance that pays managed AI Ark calls, or null on a user key."}},"required":["source","total","coldiq_credit_balance"]},"AiArkSubmissionsResponse":{"type":"object","properties":{"content":{"type":"array","items":{"type":"object","properties":{"trackId":{"type":"string"},"service":{"type":"string"},"requestSize":{"type":"number"},"state":{"type":"string"},"fullyRefunded":{"type":"boolean"},"refundReason":{"type":"string","nullable":true}},"required":["trackId"],"additionalProperties":{"nullable":true}}},"totalElements":{"type":"integer"},"totalPages":{"type":"integer"}},"required":["content"],"additionalProperties":{"nullable":true},"description":"Your submission history for this job type. On the managed key only submissions made by your ColdIQ account are listed."},"AiArkJobStatistics":{"type":"object","properties":{"trackId":{"type":"string"},"state":{"type":"string","description":"PENDING, DONE, or a refund state: STUCK_HARD_REFUND, STUCK_SOFT_REFUND, SEARCH_NO_RESULTS, NO_EMAILS_FOUND."},"statistics":{"type":"object","properties":{"total":{"type":"integer","minimum":0},"found":{"type":"integer","minimum":0},"success":{"type":"integer","minimum":0},"failed":{"type":"integer","minimum":0}},"required":["total","found"]},"webhook":{"type":"object","nullable":true,"properties":{"state":{"type":"string","nullable":true},"retry":{"anyOf":[{"type":"string"},{"type":"number"},{"type":"boolean"},{"nullable":true}]}}},"description":{"type":"string","nullable":true}},"required":["trackId","state","statistics"],"additionalProperties":{"nullable":true}},"AiArkWebhookDeliveryResult":{"type":"object","properties":{"trackId":{"type":"string"},"delivered":{"type":"boolean","description":"Whether the completion webhook was accepted (HTTP 2xx) on re-delivery."},"fault":{"type":"string","nullable":true,"enum":["WEBHOOK","SERVICE",null]},"message":{"type":"string","nullable":true},"webhook":{"type":"object","nullable":true,"properties":{"status":{"type":"number"},"body":{"nullable":true}}}},"required":["trackId","delivered"],"additionalProperties":{"nullable":true}},"AiArkExportPeopleResponse":{"allOf":[{"$ref":"#/components/schemas/AiArkPendingResponse"},{"type":"object","properties":{"unmatched_filters":{"type":"array","items":{"$ref":"#/components/schemas/AiArkUnmatchedFilter"},"description":"Filter values that did not match the taxonomies ColdIQ documents. Present only when at least one value failed to match. The request was still forwarded to AI Ark in full and is never rejected on account of this list — AI Ark’s taxonomies are larger than the lists we publish, so a flagged value may still be valid upstream. Treat it as: an empty result set with no `unmatched_filters` is a genuinely empty niche; an empty result set WITH `unmatched_filters` is most likely a spelling problem."}}}],"example":{"trackId":"87dad120-e371-44e0-b896-cf90b2f84170","state":"PENDING","statistics":{"total":25,"found":0},"description":null}},"AiArkPendingResponse":{"type":"object","properties":{"trackId":{"type":"string","format":"uuid"},"state":{"type":"string"},"statistics":{"type":"object","properties":{"total":{"type":"integer","minimum":0},"found":{"type":"integer","minimum":0},"success":{"type":"integer","minimum":0},"failed":{"type":"integer","minimum":0}},"required":["total","found"]},"webhook":{"type":"object","nullable":true,"properties":{"state":{"type":"string"},"retry":{"anyOf":[{"type":"string"},{"type":"number"},{"type":"boolean"},{"nullable":true}]}},"required":["state","retry"]},"description":{"type":"string","nullable":true}},"required":["trackId","state","statistics","description"],"example":{"trackId":"87dad120-e371-44e0-b896-cf90b2f84170","state":"PENDING","statistics":{"total":25,"found":0},"description":null}},"AiArkExportPeopleRequest":{"type":"object","properties":{"account":{"type":"object","additionalProperties":{"nullable":true},"description":"Company-level filters (nested DSL). Wrappers: enum/string keys use {\"any\":{\"include\":[...],\"exclude\":[...]}} (\"all\" instead of \"any\" requires every value); text keys use {\"any\":{\"include\":{\"mode\":\"WORD\",\"content\":[...]}}} (mode: WORD|SMART|STRICT); numeric keys use {\"type\":\"RANGE\",\"range\":[{\"start\":n,\"end\":n}]}. Keys — text: industries, technologies, name, url, productAndServices; enum: location, type, domain, linkedin, socialMedia, naics; range: employeeSize, revenue, foundedYear; object: funding, keyword, metric, geoLocation. type values: PUBLIC_COMPANY, PRIVATELY_HELD, SELF_EMPLOYED, SELF_OWNED, PARTNERSHIP, GOVERNMENT_AGENCY, NON_PROFIT, EDUCATIONAL. funding.type values: PRE_SEED, SEED, SERIES_A, SERIES_B, SERIES_C, SERIES_D, SERIES_E, SERIES_F, SERIES_G, SERIES_H, SERIES_I, SERIES_J, VENTURE_ROUND, ANGEL, PRIVATE_EQUITY, DEBT_FINANCING, CONVERTIBLE_NOTE, GRANT, CORPORATE_ROUND, EQUITY_CROWDFUNDING, PRODUCT_CROWDFUNDING, SECONDARY_MARKET, POST_IPO_EQUITY, POST_IPO_DEBT, POST_IPO_SECONDARY, NON_EQUITY_ASSISTANCE, INITIAL_COIN_OFFERING, UNDISCLOSED, SERIES_UNKNOWN, FUNDING_ROUND. Unknown enum values are NOT rejected by AI Ark — they silently return 0 results, so a wrong spelling is indistinguishable from an empty niche. ColdIQ validates every value in this filter against the lists documented here and echoes anything that does not match as `unmatched_filters` on the 200 response (the request is still forwarded in full). That list is OUR documentation, not AI Ark’s full taxonomy: a value flagged as unmatched may still be valid upstream, and an unflagged value is not guaranteed to be. Exclusions match only the field they are written on: an `industries` exclude filters the industry label, NOT the company NAME, so excluding \"robotics\" still returns a company called \"Nordic Robotics AS\" whose industry is something else — exclude on `name` as well when you mean both. e.g. {\"industries\":{\"any\":{\"include\":{\"mode\":\"WORD\",\"content\":[\"software development\"]}}},\"location\":{\"any\":{\"include\":[\"United States\"]}},\"employeeSize\":{\"type\":\"RANGE\",\"range\":[{\"start\":10,\"end\":50}]}}"},"contact":{"type":"object","additionalProperties":{"nullable":true},"description":"Individual-level filters (same nested DSL as account — see the account filter for the wrapper shapes). Keys — enum: seniority, departmentAndFunction, location, socialMedia, profileBadge; text: fullName, skill, certification; object: education, experience, company, keyword. Put current job titles in experience.latest.title. Put profile terms in keyword; each source is an object such as {\"mode\":\"SMART\",\"source\":\"HEADLINE\"}. seniority values: founder, owner, partner, c_suite, vp, director, head, manager, senior, mid-level, entry, intern. Seniority is classified from the English job title, so non-English titles are downgraded: Nordic \"head of\" titles (Salgschef, Säljchef, Salgssjef, Myyntipäällikkö) classify as `manager`, not `head` — a {c_suite,vp,director,head} filter silently drops the real decision-maker at a Nordic SMB. Include `manager` when prospecting non-English-speaking markets. In the RESPONSE, seniority for a person is at `person.department.seniority` — it is NOT inside `position_groups[].profile_positions[]`, where most callers look first and find nothing. departmentAndFunction accepts AI Ark department, sub-department, and function values from its published departments-and-functions list, which is larger than the sample ColdIQ documents; examples include software_development, demand_generation, recruiting_talent_acquisition, financial_planning_analysis. Unknown enum values are NOT rejected by AI Ark — they silently return 0 results, so a wrong spelling is indistinguishable from an empty niche. ColdIQ validates every value in this filter against the lists documented here and echoes anything that does not match as `unmatched_filters` on the 200 response (the request is still forwarded in full). That list is OUR documentation, not AI Ark’s full taxonomy: a value flagged as unmatched may still be valid upstream, and an unflagged value is not guaranteed to be. e.g. {\"seniority\":{\"any\":{\"include\":[\"c_suite\",\"director\"],\"exclude\":[\"intern\"]}},\"experience\":{\"latest\":{\"title\":{\"any\":{\"include\":{\"mode\":\"SMART\",\"content\":[\"VP Sales\"]}}}}},\"keyword\":{\"any\":{\"include\":{\"sources\":[{\"mode\":\"SMART\",\"source\":\"HEADLINE\"},{\"mode\":\"SMART\",\"source\":\"SUMMARY\"}],\"content\":[\"B2B SaaS\"]}}}}"},"page":{"type":"integer","minimum":0,"default":0,"description":"Page offset (zero-based)","example":0},"size":{"type":"integer","minimum":1,"maximum":500,"description":"Number of people to export with emails (max 500)","example":25},"webhook":{"type":"string","format":"uri","description":"HTTPS URL to receive the completed results. If omitted, poll via GET.","example":"https://webhook.site/your-unique-id"}},"required":["size"],"example":{"account":{"employeeSize":{"type":"RANGE","range":[{"start":10,"end":50}]}},"contact":{"seniority":{"any":{"include":["c_suite","director"]}},"departmentAndFunction":{"any":{"include":["sales"]}}},"page":0,"size":25,"webhook":"https://webhook.site/your-unique-id"}},"AiArkEmailFinderResponse":{"type":"object","properties":{"trackId":{"type":"string","format":"uuid"},"state":{"type":"string"},"statistics":{"type":"object","properties":{"total":{"type":"integer","minimum":0},"found":{"type":"integer","minimum":0},"success":{"type":"integer","minimum":0},"failed":{"type":"integer","minimum":0}},"required":["total","found"]},"webhook":{"type":"object","nullable":true,"properties":{"state":{"type":"string"},"retry":{"anyOf":[{"type":"string"},{"type":"number"},{"type":"boolean"},{"nullable":true}]}},"required":["state","retry"]},"description":{"type":"string","nullable":true}},"required":["trackId","state","statistics","description"],"example":{"trackId":"87dad120-e371-44e0-b896-cf90b2f84170","state":"PENDING","statistics":{"total":25,"found":0},"description":null}},"AiArkEmailFinderRequest":{"type":"object","properties":{"trackId":{"type":"string","format":"uuid","description":"The trackId from a People Search response. Can be used once; expires after 6 hours.","example":"719aba5a-876f-4690-bb57-5157153836b4"},"webhook":{"type":"string","format":"uri","description":"HTTPS URL to receive the completed results. If omitted, poll via GET.","example":"https://webhook.site/your-unique-id"}},"required":["trackId"],"example":{"trackId":"719aba5a-876f-4690-bb57-5157153836b4","webhook":"https://webhook.site/your-unique-id"}},"AiArkAsyncResult":{"type":"object","properties":{"trackId":{"type":"string"},"state":{"type":"string"},"statistics":{"type":"object","properties":{"total":{"type":"integer","minimum":0},"found":{"type":"integer","minimum":0},"success":{"type":"integer","minimum":0},"failed":{"type":"integer","minimum":0}},"required":["total","found"]},"description":{"type":"string","nullable":true},"data":{"type":"array","items":{"type":"object","properties":{},"additionalProperties":{"nullable":true}}}},"required":["trackId","state","statistics","description","data"]},"LinkedInJobsApiListResponse":{"type":"object","properties":{"jobs":{"type":"array","items":{"type":"object","properties":{"jobId":{"type":"integer"},"status":{"type":"string","enum":["pending","processing","done","failed","timed_out"]},"createdAt":{"type":"string","format":"date-time"},"expiresAt":{"type":"string","nullable":true,"format":"date-time"},"creditsReserved":{"type":"number","nullable":true},"creditsCharged":{"type":"number","nullable":true}},"required":["jobId","status","createdAt","expiresAt","creditsReserved","creditsCharged"]}}},"required":["jobs"]},"LinkedInJobsApiSubmitResponse":{"type":"object","properties":{"jobId":{"type":"integer","description":"Poll this ID via GET /linkedin-jobs-api/search/{jobId} to retrieve results."},"status":{"type":"string","enum":["processing"]}},"required":["jobId","status"]},"LinkedInJobsApiPollResponse":{"type":"object","properties":{"jobId":{"type":"integer"},"status":{"type":"string","enum":["processing","done","failed","timed_out"]},"jobs":{"type":"array","items":{"nullable":true},"description":"Present only when status is \"done\"."},"error":{"type":"string","description":"Present only when status is \"failed\" or \"timed_out\"."}},"required":["jobId","status"]},"JunglerCreateWorkbookResponse":{"type":"object","properties":{"task_id":{"type":"string","description":"ID to poll for status (equals workbook_id)"},"status":{"type":"string","enum":["pending","started","success","failure"],"description":"Initial status"},"workbook_id":{"type":"string","description":"Workbook ID for fetching contacts once complete"}},"required":["task_id","status"]},"JunglerTaskStatusResponse":{"type":"object","properties":{"task_id":{"type":"string"},"status":{"type":"string","enum":["pending","started","success","failure"]},"workbook_id":{"type":"string","description":"Workbook ID — present when status is success"},"credits_exhausted":{"type":"boolean","description":"True when the extraction stopped early because the upstream provider account ran out of credits. Results are partial or empty and this request has been refunded — retry later or use another source."},"items_collected":{"type":"number","description":"Engagements collected by this run"},"items_available":{"type":"number","description":"Engagements the post had available to collect"}},"required":["task_id","status"]},"JunglerListSearchesResponse":{"type":"array","items":{"$ref":"#/components/schemas/JunglerSearch"}},"JunglerSearch":{"type":"object","properties":{"_id":{"type":"string"},"name":{"type":"string"},"query":{"nullable":true},"frequency":{"type":"integer","description":"Run frequency in hours (default 24)"},"is_activated":{"type":"boolean"},"prompt":{"type":"string","nullable":true},"query_type":{"type":"string","enum":["search_keyword","user_profile","company_profile"]},"query_identifier":{"type":"string","nullable":true},"track_engagement":{"type":"boolean","description":"Whether engagers are captured for this signal"},"webhook_url":{"type":"string"},"created_at":{"type":"string"},"updated_at":{"type":"string"}},"required":["_id","name","frequency","is_activated","query_type","created_at","updated_at"]},"JunglerGetSearchResponse":{"type":"object","properties":{"_id":{"type":"string"},"name":{"type":"string"},"query":{"nullable":true},"frequency":{"type":"integer","description":"Run frequency in hours (default 24)"},"is_activated":{"type":"boolean"},"prompt":{"type":"string","nullable":true},"query_type":{"type":"string","enum":["search_keyword","user_profile","company_profile"]},"query_identifier":{"type":"string","nullable":true},"track_engagement":{"type":"boolean","description":"Whether engagers are captured for this signal"},"webhook_url":{"type":"string"},"created_at":{"type":"string"},"updated_at":{"type":"string"}},"required":["_id","name","frequency","is_activated","query_type","created_at","updated_at"]},"VisitorIdWebsiteList":{"type":"object","properties":{"websites":{"type":"array","items":{"type":"object","properties":{"id":{"type":"number"},"domain":{"type":"string"},"name":{"type":"string"},"status":{"type":"string","description":"'active' | 'paused_insufficient_credits' | 'deactivated'"},"identifying":{"type":"boolean","description":"Whether visitors are being identified right now. False when the site is off, when its monthly limit is reached, or when its funded window is spent and the balance cannot extend it"},"monthly_limit":{"type":"object","properties":{"credits":{"type":"number","description":"The ceiling for one billing period, in credits"},"companies":{"type":"number","description":"The same ceiling read as companies (1 credit each)"},"people":{"type":"number","description":"The same ceiling read as people (6 credits each)"},"used_credits":{"type":"number","description":"Credits already spent inside the current billing period"}},"required":["credits","companies","people","used_credits"],"description":"One ceiling, reported in every unit it means something in — not separate budgets"},"script_url":{"type":"string"},"created_at":{"type":"string"}},"required":["id","domain","name","status","identifying","monthly_limit","script_url","created_at"]}}},"required":["websites"]},"VisitorIdWebsite":{"type":"object","properties":{"id":{"type":"number"},"domain":{"type":"string"},"name":{"type":"string"},"status":{"type":"string","description":"'active' | 'paused_insufficient_credits' | 'deactivated'"},"identifying":{"type":"boolean","description":"Whether visitors are being identified right now. False when the site is off, when its monthly limit is reached, or when its funded window is spent and the balance cannot extend it"},"monthly_limit":{"type":"object","properties":{"credits":{"type":"number","description":"The ceiling for one billing period, in credits"},"companies":{"type":"number","description":"The same ceiling read as companies (1 credit each)"},"people":{"type":"number","description":"The same ceiling read as people (6 credits each)"},"used_credits":{"type":"number","description":"Credits already spent inside the current billing period"}},"required":["credits","companies","people","used_credits"],"description":"One ceiling, reported in every unit it means something in — not separate budgets"},"script_url":{"type":"string"},"created_at":{"type":"string"},"embed_html":{"type":"string","description":"Ready-to-paste <script> tag for the site <head>"},"install_prompt":{"type":"string","description":"The same install, written to forward to a developer or a coding agent that owns the site code"},"install":{"type":"object","nullable":true,"properties":{"is_installed":{"type":"boolean"},"visitor_count_last_7_days":{"type":"number"},"last_visit_at":{"type":"string","nullable":true}},"required":["is_installed","visitor_count_last_7_days"],"description":"Pixel installation status (null when the check is unavailable)"},"credits_to_start":{"type":"number","nullable":true,"description":"Credits to add before a site paused for credits can identify anyone. 0 when the balance already covers it: identification then resumes on the next automatic check, usually within 15 minutes. Null when credits are not what stops it"}},"required":["id","domain","name","status","identifying","monthly_limit","script_url","created_at","embed_html","install_prompt","install","credits_to_start"]},"VisitorIdUsage":{"type":"object","properties":{"identified_people":{"type":"number","description":"Unique people identified this period"},"identified_companies":{"type":"number","description":"Unique companies identified this period"},"credits_spent":{"type":"number","description":"Credits charged for this site this period"},"window_remaining":{"type":"number","description":"Credits this site can still spend before it needs to draw more from the balance"},"identifying":{"type":"boolean"},"credits_per_person":{"type":"number","description":"Credits charged for each person identified"},"credits_per_company":{"type":"number","description":"Credits charged for each company identified"},"period_start":{"type":"string","nullable":true},"period_end":{"type":"string","nullable":true}},"required":["identified_people","identified_companies","credits_spent","window_remaining","identifying","credits_per_person","credits_per_company","period_start","period_end"]},"VisitorIdResponse":{"type":"object","properties":{},"additionalProperties":{"nullable":true}},"VisitorIdWebhookSubscription":{"type":"object","properties":{"url":{"type":"string","nullable":true},"events":{"type":"array","nullable":true,"items":{"type":"string"}}},"required":["url","events"]},"VisitorIdSlackAlerts":{"type":"object","properties":{"slack_team_id":{"type":"string","nullable":true},"channel_id":{"type":"string","nullable":true}},"required":["slack_team_id","channel_id"]},"MailboxCatalog":{"type":"object","properties":{"providers":{"type":"array","items":{"type":"object","properties":{"provider":{"type":"string","enum":["google","microsoft"]},"displayName":{"type":"string"},"description":{"type":"string"},"mailboxPrice":{"type":"object","properties":{"priceId":{"type":"string"},"amount":{"type":"integer","description":"USD cents"},"currency":{"type":"string"},"interval":{"type":"string","enum":["month","year"]},"label":{"type":"string"}},"required":["priceId","amount","currency","interval"]},"domainPrices":{"type":"array","items":{"type":"object","properties":{"priceId":{"type":"string"},"amount":{"type":"integer","description":"USD cents"},"currency":{"type":"string"},"interval":{"type":"string","enum":["month","year"]},"label":{"type":"string"}},"required":["priceId","amount","currency","interval"]}},"limits":{"type":"object","properties":{"minimumMailboxes":{"type":"integer"},"maximumMailboxes":{"type":"integer"},"maximumMailboxesPerDomain":{"type":"integer"},"maximumDomains":{"type":"integer"},"fixedBatchSize":{"type":"integer","nullable":true}},"required":["minimumMailboxes","maximumMailboxes","maximumMailboxesPerDomain","maximumDomains","fixedBatchSize"]},"capabilities":{"type":"object","properties":{"activeDomains":{"type":"boolean"},"multipleDomains":{"type":"boolean"},"automaticGeneration":{"type":"boolean"},"csvUpload":{"type":"boolean"}},"required":["activeDomains","multipleDomains","automaticGeneration","csvUpload"]}},"required":["provider","displayName","description","mailboxPrice","domainPrices","limits","capabilities"]}},"tlds":{"type":"array","items":{"type":"string"}},"purchasingEnabled":{"type":"boolean"},"stripePublishableKey":{"type":"string","nullable":true}},"required":["providers","tlds","purchasingEnabled","stripePublishableKey"]},"MailboxError":{"type":"object","properties":{"error":{"type":"string"}},"required":["error"]},"MailboxDomainAvailability":{"type":"object","properties":{"domain":{"type":"string"},"available":{"type":"boolean"}},"required":["domain","available"]},"BulkMailboxDomainAvailabilityBody":{"type":"object","properties":{"domains":{"type":"array","items":{"type":"string","minLength":4,"maxLength":253},"minItems":1,"maxItems":24}},"required":["domains"],"example":{"domains":["coldiq-outreach.com","getcoldiq-outreach.com","coldiq-outreach.co"]}},"MailboxQuote":{"type":"object","properties":{"id":{"type":"string"},"expiresAt":{"type":"string"},"provider":{"type":"string","enum":["google","microsoft"]},"dueToday":{"type":"object","properties":{"amount":{"type":"integer"},"currency":{"type":"string"}},"required":["amount","currency"]},"lines":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"label":{"type":"string"},"quantity":{"type":"integer"},"unitAmount":{"type":"integer"},"amount":{"type":"integer"},"currency":{"type":"string"},"interval":{"type":"string","enum":["month","year"]}},"required":["key","label","quantity","unitAmount","amount","currency","interval"]}}},"required":["id","expiresAt","provider","dueToday","lines"]},"MailboxQuoteBody":{"oneOf":[{"type":"object","properties":{"provider":{"type":"string","enum":["google"]},"domainMode":{"type":"string","enum":["new","active"]},"domains":{"type":"array","items":{"type":"string","minLength":4,"maxLength":253},"maxItems":3,"default":[]},"domainIds":{"type":"array","items":{"type":"integer","minimum":0,"exclusiveMinimum":true},"maxItems":3,"default":[]},"identities":{"type":"array","items":{"type":"object","properties":{"firstName":{"type":"string","minLength":1,"maxLength":60},"lastName":{"type":"string","minLength":1,"maxLength":60},"localPart":{"type":"string","minLength":1,"maxLength":64}},"required":["firstName","lastName","localPart"]},"minItems":1,"maxItems":50}},"required":["provider","domainMode","identities"]},{"type":"object","properties":{"provider":{"type":"string","enum":["microsoft"]},"domainMode":{"type":"string","enum":["new"]},"domains":{"type":"array","items":{"type":"string","minLength":4,"maxLength":253}},"generationMode":{"type":"string","enum":["automatic","csv"]},"senderNames":{"type":"array","items":{"type":"string","maxLength":120},"maxItems":100,"default":[]},"mailboxes":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":120},"email":{"type":"string","format":"email"},"password":{"type":"string","minLength":8,"maxLength":24}},"required":["name","email","password"]},"maxItems":100,"default":[]}},"required":["provider","domainMode","domains","generationMode"]}],"example":{"provider":"google","domainMode":"new","domains":["coldiq-outreach.com"],"domainIds":[],"identities":[{"firstName":"Michel","lastName":"Lieben","localPart":"michel.lieben"}]}},"MailboxPurchaseCreated":{"type":"object","properties":{"purchaseId":{"type":"string"},"clientSecret":{"type":"string","description":"Stripe Embedded Checkout client secret — empty for a hosted session or when no payment step is pending"},"checkoutUrl":{"type":"string","description":"Hosted Stripe Checkout URL — empty when the purchase was started in the dashboard's embedded checkout or is no longer awaiting payment"},"dashboardUrl":{"type":"string","description":"The dashboard order page for this purchase — track and connect it from the ColdIQ dashboard. A purchase started through the API can also be paid from this page","example":"https://coldiq.com/marketplace/mailboxes/orders/purchase_0f3a1c8b2d4e5f6a7b8c9d0e"},"purchase":{"$ref":"#/components/schemas/MailboxPurchase"}},"required":["purchaseId","clientSecret","checkoutUrl","dashboardUrl","purchase"]},"MailboxPurchase":{"type":"object","properties":{"id":{"type":"string"},"cartId":{"type":"string","nullable":true,"description":"Set when this purchase is one half of a combined Azure + Gmail order"},"state":{"type":"string","enum":["awaiting_payment","provisioning","completed","partial","failed","refunded"]},"phase":{"type":"string","enum":["payment","domain","dns","inboxes","credentials"]},"expectedReadyAt":{"type":"string","nullable":true,"description":"Microsoft only, while provisioning: when the inboxes are expected (vendor quote counted from the order submit)"},"progressPercent":{"type":"integer","nullable":true,"description":"Microsoft only, while provisioning: the provider-reported completion percentage when available"},"provider":{"type":"string","enum":["google","microsoft"]},"mailboxCount":{"type":"integer"},"domains":{"type":"array","items":{"type":"string"}},"createdAt":{"type":"string"},"updatedAt":{"type":"string"},"completedAt":{"type":"string","nullable":true},"quote":{"allOf":[{"$ref":"#/components/schemas/MailboxQuote"},{"nullable":true}]},"timeline":{"type":"array","items":{"type":"object","properties":{"phase":{"type":"string","enum":["payment","domain","dns","inboxes","credentials"]},"state":{"type":"string","enum":["waiting","current","completed","failed"]},"label":{"type":"string"},"detail":{"type":"string","nullable":true},"completedAt":{"type":"string","nullable":true}},"required":["phase","state","label","detail","completedAt"]}},"lines":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","enum":["domain","mailbox"]},"label":{"type":"string"},"quantity":{"type":"integer"},"status":{"type":"string","enum":["pending","provisioning","completed","failed","refunded"]},"error":{"type":"string","nullable":true}},"required":["id","type","label","quantity","status","error"]}},"mailboxes":{"type":"array","items":{"type":"object","properties":{"id":{"type":"number"},"email":{"type":"string"},"displayName":{"type":"string","nullable":true},"providerType":{"type":"string","enum":["google","microsoft"]},"status":{"type":"string","enum":["pending","active","failed","deleted"]},"domainId":{"type":"number","nullable":true},"domain":{"type":"string"},"purchaseId":{"type":"string"},"credentialStatus":{"type":"string","enum":["preparing","ready","unavailable"]},"sequencer":{"type":"string","nullable":true,"description":"Sending tool this inbox is linked to, when linked"},"sequencerStatus":{"type":"string"},"sequencerConnectionId":{"type":"string","nullable":true},"sequencerConnectionName":{"type":"string","nullable":true},"sequencerAccountId":{"type":"string","nullable":true},"sequencerError":{"type":"string","nullable":true},"createdAt":{"type":"string"},"updatedAt":{"type":"string"}},"required":["id","email","displayName","providerType","status","domainId","domain","purchaseId","credentialStatus","sequencer","sequencerStatus","sequencerConnectionId","sequencerConnectionName","sequencerAccountId","sequencerError","createdAt","updatedAt"]}},"report":{"type":"object","nullable":true,"properties":{"completed":{"type":"integer"},"failed":{"type":"integer"},"refunded":{"type":"integer"},"message":{"type":"string","nullable":true}},"required":["completed","failed","refunded","message"]}},"required":["id","cartId","state","phase","expectedReadyAt","progressPercent","provider","mailboxCount","domains","createdAt","updatedAt","completedAt","quote","timeline","lines","mailboxes","report"]},"CreateMailboxPurchaseBody":{"type":"object","properties":{"quoteId":{"type":"string","minLength":1},"idempotencyKey":{"type":"string","minLength":1,"maxLength":200,"description":"Unique key for THIS purchase intent (1–200 characters) — the body form of the Idempotency-Key header, for callers that cannot send headers. The header wins when both are present. Replaying the same key returns the same purchase and never mints a second payment session.","example":"4f1c2a7e-9b3d-4c8e-a1f0-6d2b8e5c3a91"}},"required":["quoteId"],"example":{"quoteId":"quote_2f7c1a9e","idempotencyKey":"4f1c2a7e-9b3d-4c8e-a1f0-6d2b8e5c3a91"}},"MailboxCartCreated":{"type":"object","properties":{"cartId":{"type":"string"},"purchases":{"type":"array","items":{"type":"object","properties":{"purchaseId":{"type":"string"},"provider":{"type":"string","enum":["google","microsoft"]},"clientSecret":{"type":"string","description":"Stripe Embedded Checkout client secret for THIS purchase — empty for a hosted session"},"checkoutUrl":{"type":"string","description":"Hosted Stripe Checkout URL — empty when the purchase was started in the dashboard's embedded checkout or is no longer awaiting payment"},"dashboardUrl":{"type":"string","description":"The dashboard order page for this purchase — track and connect it from the ColdIQ dashboard. A purchase started through the API can also be paid from this page","example":"https://coldiq.com/marketplace/mailboxes/orders/purchase_0f3a1c8b2d4e5f6a7b8c9d0e"},"purchase":{"$ref":"#/components/schemas/MailboxPurchase"}},"required":["purchaseId","provider","clientSecret","checkoutUrl","dashboardUrl","purchase"]},"description":"In payment order — Google first, since its inboxes provision fastest"}},"required":["cartId","purchases"]},"CreateMailboxCartBody":{"type":"object","properties":{"quoteIds":{"type":"array","items":{"type":"string","minLength":1},"minItems":2,"maxItems":2},"idempotencyKey":{"type":"string","minLength":1,"maxLength":200,"description":"Unique key for THIS purchase intent (1–200 characters) — the body form of the Idempotency-Key header, for callers that cannot send headers. The header wins when both are present. Replaying the same key returns the same purchase and never mints a second payment session.","example":"4f1c2a7e-9b3d-4c8e-a1f0-6d2b8e5c3a91"}},"required":["quoteIds"],"example":{"quoteIds":["quote_0f3a1c8b2d4e5f6a7b8c9d0e","quote_1a2b3c4d5e6f7a8b9c0d1e2f"],"idempotencyKey":"4f1c2a7e-9b3d-4c8e-a1f0-6d2b8e5c3a91"}},"MailboxPurchaseListItem":{"type":"object","properties":{"id":{"type":"string"},"cartId":{"type":"string","nullable":true,"description":"Set when this purchase is one half of a combined Azure + Gmail order"},"state":{"type":"string","enum":["awaiting_payment","provisioning","completed","partial","failed","refunded"]},"phase":{"type":"string","enum":["payment","domain","dns","inboxes","credentials"]},"expectedReadyAt":{"type":"string","nullable":true,"description":"Microsoft only, while provisioning: when the inboxes are expected (vendor quote counted from the order submit)"},"progressPercent":{"type":"integer","nullable":true,"description":"Microsoft only, while provisioning: the provider-reported completion percentage when available"},"provider":{"type":"string","enum":["google","microsoft"]},"mailboxCount":{"type":"integer"},"domains":{"type":"array","items":{"type":"string"}},"createdAt":{"type":"string"},"updatedAt":{"type":"string"},"completedAt":{"type":"string","nullable":true},"quote":{"allOf":[{"$ref":"#/components/schemas/MailboxQuote"},{"nullable":true}]},"timeline":{"type":"array","items":{"type":"object","properties":{"phase":{"type":"string","enum":["payment","domain","dns","inboxes","credentials"]},"state":{"type":"string","enum":["waiting","current","completed","failed"]},"label":{"type":"string"},"detail":{"type":"string","nullable":true},"completedAt":{"type":"string","nullable":true}},"required":["phase","state","label","detail","completedAt"]}},"lines":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","enum":["domain","mailbox"]},"label":{"type":"string"},"quantity":{"type":"integer"},"status":{"type":"string","enum":["pending","provisioning","completed","failed","refunded"]},"error":{"type":"string","nullable":true}},"required":["id","type","label","quantity","status","error"]}},"mailboxes":{"type":"array","items":{"type":"object","properties":{"id":{"type":"number"},"email":{"type":"string"},"displayName":{"type":"string","nullable":true},"providerType":{"type":"string","enum":["google","microsoft"]},"status":{"type":"string","enum":["pending","active","failed","deleted"]},"domainId":{"type":"number","nullable":true},"domain":{"type":"string"},"purchaseId":{"type":"string"},"credentialStatus":{"type":"string","enum":["preparing","ready","unavailable"]},"sequencer":{"type":"string","nullable":true,"description":"Sending tool this inbox is linked to, when linked"},"sequencerStatus":{"type":"string"},"sequencerConnectionId":{"type":"string","nullable":true},"sequencerConnectionName":{"type":"string","nullable":true},"sequencerAccountId":{"type":"string","nullable":true},"sequencerError":{"type":"string","nullable":true},"createdAt":{"type":"string"},"updatedAt":{"type":"string"}},"required":["id","email","displayName","providerType","status","domainId","domain","purchaseId","credentialStatus","sequencer","sequencerStatus","sequencerConnectionId","sequencerConnectionName","sequencerAccountId","sequencerError","createdAt","updatedAt"]}},"report":{"type":"object","nullable":true,"properties":{"completed":{"type":"integer"},"failed":{"type":"integer"},"refunded":{"type":"integer"},"message":{"type":"string","nullable":true}},"required":["completed","failed","refunded","message"]},"dashboardUrl":{"type":"string","description":"The dashboard order page for this purchase — track and connect it from the ColdIQ dashboard. A purchase started through the API can also be paid from this page","example":"https://coldiq.com/marketplace/mailboxes/orders/purchase_0f3a1c8b2d4e5f6a7b8c9d0e"}},"required":["id","cartId","state","phase","expectedReadyAt","progressPercent","provider","mailboxCount","domains","createdAt","updatedAt","completedAt","quote","timeline","lines","mailboxes","report","dashboardUrl"]},"MailboxPurchaseDetail":{"type":"object","properties":{"id":{"type":"string"},"cartId":{"type":"string","nullable":true,"description":"Set when this purchase is one half of a combined Azure + Gmail order"},"state":{"type":"string","enum":["awaiting_payment","provisioning","completed","partial","failed","refunded"]},"phase":{"type":"string","enum":["payment","domain","dns","inboxes","credentials"]},"expectedReadyAt":{"type":"string","nullable":true,"description":"Microsoft only, while provisioning: when the inboxes are expected (vendor quote counted from the order submit)"},"progressPercent":{"type":"integer","nullable":true,"description":"Microsoft only, while provisioning: the provider-reported completion percentage when available"},"provider":{"type":"string","enum":["google","microsoft"]},"mailboxCount":{"type":"integer"},"domains":{"type":"array","items":{"type":"string"}},"createdAt":{"type":"string"},"updatedAt":{"type":"string"},"completedAt":{"type":"string","nullable":true},"quote":{"allOf":[{"$ref":"#/components/schemas/MailboxQuote"},{"nullable":true}]},"timeline":{"type":"array","items":{"type":"object","properties":{"phase":{"type":"string","enum":["payment","domain","dns","inboxes","credentials"]},"state":{"type":"string","enum":["waiting","current","completed","failed"]},"label":{"type":"string"},"detail":{"type":"string","nullable":true},"completedAt":{"type":"string","nullable":true}},"required":["phase","state","label","detail","completedAt"]}},"lines":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","enum":["domain","mailbox"]},"label":{"type":"string"},"quantity":{"type":"integer"},"status":{"type":"string","enum":["pending","provisioning","completed","failed","refunded"]},"error":{"type":"string","nullable":true}},"required":["id","type","label","quantity","status","error"]}},"mailboxes":{"type":"array","items":{"type":"object","properties":{"id":{"type":"number"},"email":{"type":"string"},"displayName":{"type":"string","nullable":true},"providerType":{"type":"string","enum":["google","microsoft"]},"status":{"type":"string","enum":["pending","active","failed","deleted"]},"domainId":{"type":"number","nullable":true},"domain":{"type":"string"},"purchaseId":{"type":"string"},"credentialStatus":{"type":"string","enum":["preparing","ready","unavailable"]},"sequencer":{"type":"string","nullable":true,"description":"Sending tool this inbox is linked to, when linked"},"sequencerStatus":{"type":"string"},"sequencerConnectionId":{"type":"string","nullable":true},"sequencerConnectionName":{"type":"string","nullable":true},"sequencerAccountId":{"type":"string","nullable":true},"sequencerError":{"type":"string","nullable":true},"createdAt":{"type":"string"},"updatedAt":{"type":"string"}},"required":["id","email","displayName","providerType","status","domainId","domain","purchaseId","credentialStatus","sequencer","sequencerStatus","sequencerConnectionId","sequencerConnectionName","sequencerAccountId","sequencerError","createdAt","updatedAt"]}},"report":{"type":"object","nullable":true,"properties":{"completed":{"type":"integer"},"failed":{"type":"integer"},"refunded":{"type":"integer"},"message":{"type":"string","nullable":true}},"required":["completed","failed","refunded","message"]},"checkoutUrl":{"type":"string","description":"Hosted Stripe Checkout URL — empty when the purchase was started in the dashboard's embedded checkout or is no longer awaiting payment"},"dashboardUrl":{"type":"string","description":"The dashboard order page for this purchase — track and connect it from the ColdIQ dashboard. A purchase started through the API can also be paid from this page","example":"https://coldiq.com/marketplace/mailboxes/orders/purchase_0f3a1c8b2d4e5f6a7b8c9d0e"}},"required":["id","cartId","state","phase","expectedReadyAt","progressPercent","provider","mailboxCount","domains","createdAt","updatedAt","completedAt","quote","timeline","lines","mailboxes","report","checkoutUrl","dashboardUrl"]},"MailboxDomain":{"type":"object","properties":{"id":{"type":"number"},"name":{"type":"string"},"providerType":{"type":"string","enum":["google","microsoft"]},"status":{"type":"string","enum":["pending","active","deleted"]},"orderId":{"type":"number","nullable":true},"registryExpiresAt":{"type":"string","nullable":true,"description":"Registry (RDAP) expiry of the domain registration — NOT a billing date. Null until the daily verification job has read it (always null on staging: crons disabled)."},"stripeSubscriptionId":{"type":"string","nullable":true,"description":"The Stripe subscription billing this domain's inboxes; shared across all domains of a multi-domain purchase. Null once billing stopped or for legacy rows."},"createdAt":{"type":"string"},"updatedAt":{"type":"string"}},"required":["id","name","providerType","status","orderId","registryExpiresAt","stripeSubscriptionId","createdAt","updatedAt"]},"MailboxSequencer":{"type":"object","properties":{"key":{"type":"string"},"displayName":{"type":"string"},"kind":{"type":"string","enum":["direct","delegated"]},"supportedProviderTypes":{"type":"array","items":{"type":"string","enum":["google","microsoft"]}},"fields":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"label":{"type":"string"},"secret":{"type":"boolean"},"required":{"type":"boolean"},"placeholder":{"type":"string","nullable":true},"help":{"type":"string","nullable":true}},"required":["name","label","secret","required","placeholder","help"]}}},"required":["key","displayName","kind","supportedProviderTypes","fields"]},"MailboxSequencerConnection":{"type":"object","properties":{"id":{"type":"string"},"sequencer":{"type":"string"},"name":{"type":"string"},"status":{"type":"string","enum":["valid","invalid","unchecked"]},"externalWorkspaceId":{"type":"string","nullable":true},"keyHint":{"type":"string","nullable":true},"inboxCount":{"type":"integer"},"isDefault":{"type":"boolean"},"lastValidatedAt":{"type":"string","nullable":true},"createdAt":{"type":"string"},"updatedAt":{"type":"string"}},"required":["id","sequencer","name","status","externalWorkspaceId","keyHint","inboxCount","isDefault","lastValidatedAt","createdAt","updatedAt"]},"MailboxSequencerConnectionPreview":{"type":"object","properties":{"setupToken":{"type":"string"},"suggestedName":{"type":"string"},"externalWorkspaceId":{"type":"string"},"keyHint":{"type":"string"},"accountCount":{"type":"integer","nullable":true,"description":"Existing sending accounts in the workspace, or null when the tool exposes no way to count them"}},"required":["setupToken","suggestedName","externalWorkspaceId","keyHint","accountCount"]},"ValidateSequencerConnectionBody":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":120},"credentials":{"type":"object","additionalProperties":{"type":"string","minLength":1,"maxLength":500}}},"required":["name","credentials"],"example":{"name":"Growth team","credentials":{"api_key":"your-smartlead-api-key"}}},"CreateSequencerConnectionBody":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":120},"setupToken":{"type":"string","minLength":10}},"required":["name","setupToken"],"example":{"name":"Growth team","setupToken":"token-from-validate"}},"MailboxSequencerBatchResult":{"type":"object","properties":{"connection":{"$ref":"#/components/schemas/MailboxSequencerConnection"},"results":{"type":"array","items":{"type":"object","properties":{"mailboxId":{"type":"integer"},"status":{"type":"string","enum":["not_connected","connecting","setup_pending","connected","failed"]},"connectionId":{"type":"string"},"connectionName":{"type":"string"},"accountId":{"type":"string","nullable":true},"error":{"type":"string","nullable":true}},"required":["mailboxId","status","connectionId","connectionName","accountId","error"]}},"connected":{"type":"integer"},"pending":{"type":"integer"},"failed":{"type":"integer"}},"required":["connection","results","connected","pending","failed"]},"ConnectMailboxesToSequencerBody":{"type":"object","properties":{"mailboxIds":{"type":"array","items":{"type":"integer","minimum":0,"exclusiveMinimum":true},"minItems":1,"maxItems":50},"connectionId":{"type":"string","minLength":1}},"required":["mailboxIds","connectionId"],"example":{"mailboxIds":[1,2],"connectionId":"1"}},"MailboxSubscription":{"type":"object","properties":{"domainId":{"type":"number"},"domainName":{"type":"string"},"providerType":{"type":"string","enum":["google","microsoft"]},"stripeSubscriptionId":{"type":"string"},"status":{"type":"string","description":"Live Stripe subscription status: 'active' | 'past_due' | 'canceled' | 'trialing' | … ('unknown' when billing is not configured)"},"unitAmount":{"type":"integer","nullable":true,"description":"Unit price in cents, live from the subscription item"},"currency":{"type":"string","nullable":true},"interval":{"type":"string","nullable":true,"enum":["month","year",null]},"billedQuantity":{"type":"integer","description":"Stripe item quantity — the WHOLE subscription's billed units, duplicated on every row of a shared subscription (Microsoft: 1 pack)"},"inboxCount":{"type":"integer","description":"Live mailbox count for THIS domain only"},"currentPeriodEnd":{"type":"string","nullable":true,"description":"Next charge (or stop) date, ISO — read from the subscription item"},"cancelAtPeriodEnd":{"type":"boolean"},"siblingDomainIds":{"type":"array","items":{"type":"number"},"description":"Other live domains billed by the same subscription"}},"required":["domainId","domainName","providerType","stripeSubscriptionId","status","unitAmount","currency","interval","billedQuantity","inboxCount","currentPeriodEnd","cancelAtPeriodEnd","siblingDomainIds"]},"MailboxOrder":{"type":"object","properties":{"id":{"type":"number"},"kind":{"type":"string","enum":["domain_purchase","mailbox_creation","microsoft_order","sequencer_export"]},"providerType":{"type":"string","enum":["google","microsoft"]},"status":{"type":"string","enum":["submitted","processing","completed","partial","failed","timed_out"]},"requestPayload":{"type":"object","additionalProperties":{"nullable":true}},"report":{"type":"object","nullable":true,"additionalProperties":{"nullable":true}},"createdAt":{"type":"string"},"completedAt":{"type":"string","nullable":true}},"required":["id","kind","providerType","status","requestPayload","report","createdAt","completedAt"]},"MicrosoftOrderNameservers":{"type":"object","properties":{"nameservers":{"type":"array","items":{"type":"string"}}},"required":["nameservers"]},"MailboxOrderAccepted":{"type":"object","properties":{"orderId":{"type":"number"},"status":{"type":"string"}},"required":["orderId","status"]},"ExportMailboxesBody":{"type":"object","properties":{"mailbox_ids":{"type":"array","items":{"type":"integer","minimum":0,"exclusiveMinimum":true},"minItems":1,"maxItems":500},"sequencer":{"type":"string","enum":["instantly","smartlead","reachinbox","emailbison"]},"api_key":{"type":"string"},"username":{"type":"string"},"password":{"type":"string"},"app_workspace_name":{"type":"string"},"client_id":{"type":"string"},"url":{"type":"string"}},"required":["mailbox_ids","sequencer"],"example":{"mailbox_ids":[1,2],"sequencer":"smartlead","username":"michel@coldiq.com","password":"your-sequencer-password"}},"Mailbox":{"type":"object","properties":{"id":{"type":"number"},"email":{"type":"string"},"displayName":{"type":"string","nullable":true},"providerType":{"type":"string","enum":["google","microsoft"]},"status":{"type":"string","enum":["pending","active","deleted"]},"domainId":{"type":"number","nullable":true},"orderId":{"type":"number","nullable":true},"createdAt":{"type":"string"},"updatedAt":{"type":"string"}},"required":["id","email","displayName","providerType","status","domainId","orderId","createdAt","updatedAt"]},"MailboxCredentials":{"type":"object","properties":{"email":{"type":"string"},"providerType":{"type":"string","enum":["google","microsoft"]},"password":{"type":"string","nullable":true},"appPassword":{"type":"string","nullable":true,"description":"Google app password, for connecting the mailbox to a sequencer (Google mailboxes only)"},"totp":{"type":"string","nullable":true,"description":"One-time login code, returned when requested with ?totp=1 (Google only)"}},"required":["email","providerType","password","appPassword","totp"]},"CareerSiteJobsListResponse":{"type":"object","properties":{"jobs":{"type":"array","items":{"type":"object","properties":{"jobId":{"type":"integer"},"status":{"type":"string","enum":["pending","processing","done","failed","timed_out"]},"createdAt":{"type":"string","format":"date-time"},"expiresAt":{"type":"string","nullable":true,"format":"date-time"},"creditsReserved":{"type":"number","nullable":true},"creditsCharged":{"type":"number","nullable":true}},"required":["jobId","status","createdAt","expiresAt","creditsReserved","creditsCharged"]}}},"required":["jobs"]},"CareerSiteJobsSubmitResponse":{"type":"object","properties":{"jobId":{"type":"integer","description":"Poll this ID via GET /career-site-jobs/search/{jobId} to retrieve results."},"status":{"type":"string","enum":["processing"]}},"required":["jobId","status"]},"CareerSiteJobsPollResponse":{"type":"object","properties":{"jobId":{"type":"integer"},"status":{"type":"string","enum":["processing","done","failed","timed_out"]},"jobs":{"type":"array","items":{"nullable":true},"description":"Present only when status is \"done\"."},"error":{"type":"string","description":"Present only when status is \"failed\" or \"timed_out\"."}},"required":["jobId","status"]},"SerperResponse":{"nullable":true},"SerperSearchRequest":{"type":"object","properties":{"q":{"type":"string","minLength":1,"example":"ColdIQ site:linkedin.com","description":"Search query. Supports Google search operators (site:, filetype:, intitle:, -keyword, OR, etc.)"},"num":{"type":"integer","minimum":1,"maximum":100,"example":10,"description":"Number of results to return (default: 10, max: 100). Requests over 10 results cost 2 credits."},"page":{"type":"integer","minimum":1,"example":1,"description":"Page number for pagination (default: 1)"},"gl":{"type":"string","example":"us","description":"Country code for geo-targeting (e.g. \"us\", \"gb\", \"fr\")"},"hl":{"type":"string","example":"en","description":"Language code for results (e.g. \"en\", \"es\", \"fr\")"},"location":{"type":"string","example":"New York, New York, United States","description":"Specific location for results (city-level precision recommended)"},"tbs":{"type":"string","example":"qdr:w","description":"Time-based filter: qdr:h (hour), qdr:d (day), qdr:w (week), qdr:m (month), qdr:y (year)"},"autocorrect":{"type":"boolean","example":false,"description":"Enable Google's autocorrection (default: true)"}},"required":["q"],"example":{"q":"ColdIQ site:linkedin.com","num":10,"gl":"us","hl":"en"}},"SerperNewsRequest":{"type":"object","properties":{"q":{"type":"string","minLength":1,"example":"ColdIQ site:linkedin.com","description":"Search query. Supports Google search operators (site:, filetype:, intitle:, -keyword, OR, etc.)"},"num":{"type":"integer","minimum":1,"maximum":100,"example":10,"description":"Number of results to return (default: 10, max: 100). Requests over 10 results cost 2 credits."},"page":{"type":"integer","minimum":1,"example":1,"description":"Page number for pagination (default: 1)"},"gl":{"type":"string","example":"us","description":"Country code for geo-targeting (e.g. \"us\", \"gb\", \"fr\")"},"hl":{"type":"string","example":"en","description":"Language code for results (e.g. \"en\", \"es\", \"fr\")"},"location":{"type":"string","example":"New York, New York, United States","description":"Specific location for results (city-level precision recommended)"},"tbs":{"type":"string","example":"qdr:w","description":"Time-based filter: qdr:h (hour), qdr:d (day), qdr:w (week), qdr:m (month), qdr:y (year)"},"autocorrect":{"type":"boolean","example":false,"description":"Enable Google's autocorrection (default: true)"}},"required":["q"],"example":{"q":"ColdIQ funding","num":10,"tbs":"qdr:m","gl":"us"}},"SerperImagesRequest":{"type":"object","properties":{"q":{"type":"string","minLength":1,"example":"ColdIQ site:linkedin.com","description":"Search query. Supports Google search operators (site:, filetype:, intitle:, -keyword, OR, etc.)"},"num":{"type":"integer","minimum":1,"maximum":100,"example":10,"description":"Number of results to return (default: 10, max: 100). Requests over 10 results cost 2 credits."},"page":{"type":"integer","minimum":1,"example":1,"description":"Page number for pagination (default: 1)"},"gl":{"type":"string","example":"us","description":"Country code for geo-targeting (e.g. \"us\", \"gb\", \"fr\")"},"hl":{"type":"string","example":"en","description":"Language code for results (e.g. \"en\", \"es\", \"fr\")"},"location":{"type":"string","example":"New York, New York, United States","description":"Specific location for results (city-level precision recommended)"},"tbs":{"type":"string","example":"qdr:w","description":"Time-based filter: qdr:h (hour), qdr:d (day), qdr:w (week), qdr:m (month), qdr:y (year)"},"autocorrect":{"type":"boolean","example":false,"description":"Enable Google's autocorrection (default: true)"}},"required":["q"],"example":{"q":"Michel Lieben ColdIQ","num":10,"gl":"us"}},"SerperVideosRequest":{"type":"object","properties":{"q":{"type":"string","minLength":1,"example":"ColdIQ site:linkedin.com","description":"Search query. Supports Google search operators (site:, filetype:, intitle:, -keyword, OR, etc.)"},"num":{"type":"integer","minimum":1,"maximum":100,"example":10,"description":"Number of results to return (default: 10, max: 100). Requests over 10 results cost 2 credits."},"page":{"type":"integer","minimum":1,"example":1,"description":"Page number for pagination (default: 1)"},"gl":{"type":"string","example":"us","description":"Country code for geo-targeting (e.g. \"us\", \"gb\", \"fr\")"},"hl":{"type":"string","example":"en","description":"Language code for results (e.g. \"en\", \"es\", \"fr\")"},"location":{"type":"string","example":"New York, New York, United States","description":"Specific location for results (city-level precision recommended)"},"tbs":{"type":"string","example":"qdr:w","description":"Time-based filter: qdr:h (hour), qdr:d (day), qdr:w (week), qdr:m (month), qdr:y (year)"},"autocorrect":{"type":"boolean","example":false,"description":"Enable Google's autocorrection (default: true)"}},"required":["q"],"example":{"q":"cold email outbound sales tutorial","num":10,"gl":"us"}},"SerperPlacesRequest":{"type":"object","properties":{"q":{"type":"string","minLength":1,"example":"ColdIQ site:linkedin.com","description":"Search query. Supports Google search operators (site:, filetype:, intitle:, -keyword, OR, etc.)"},"num":{"type":"integer","minimum":1,"maximum":100,"example":10,"description":"Number of results to return (default: 10, max: 100). Requests over 10 results cost 2 credits."},"page":{"type":"integer","minimum":1,"example":1,"description":"Page number for pagination (default: 1)"},"gl":{"type":"string","example":"us","description":"Country code for geo-targeting (e.g. \"us\", \"gb\", \"fr\")"},"hl":{"type":"string","example":"en","description":"Language code for results (e.g. \"en\", \"es\", \"fr\")"},"location":{"type":"string","example":"New York, New York, United States","description":"Specific location for results (city-level precision recommended)"},"tbs":{"type":"string","example":"qdr:w","description":"Time-based filter: qdr:h (hour), qdr:d (day), qdr:w (week), qdr:m (month), qdr:y (year)"},"autocorrect":{"type":"boolean","example":false,"description":"Enable Google's autocorrection (default: true)"}},"required":["q"],"example":{"q":"B2B SaaS companies Brussels","gl":"be","hl":"en"}},"SerperShoppingRequest":{"type":"object","properties":{"q":{"type":"string","minLength":1,"example":"ColdIQ site:linkedin.com","description":"Search query. Supports Google search operators (site:, filetype:, intitle:, -keyword, OR, etc.)"},"num":{"type":"integer","minimum":1,"maximum":100,"example":10,"description":"Number of results to return (default: 10, max: 100). Requests over 10 results cost 2 credits."},"page":{"type":"integer","minimum":1,"example":1,"description":"Page number for pagination (default: 1)"},"gl":{"type":"string","example":"us","description":"Country code for geo-targeting (e.g. \"us\", \"gb\", \"fr\")"},"hl":{"type":"string","example":"en","description":"Language code for results (e.g. \"en\", \"es\", \"fr\")"},"location":{"type":"string","example":"New York, New York, United States","description":"Specific location for results (city-level precision recommended)"},"tbs":{"type":"string","example":"qdr:w","description":"Time-based filter: qdr:h (hour), qdr:d (day), qdr:w (week), qdr:m (month), qdr:y (year)"},"autocorrect":{"type":"boolean","example":false,"description":"Enable Google's autocorrection (default: true)"}},"required":["q"],"example":{"q":"sales intelligence software","num":10,"gl":"us"}},"SerperScholarRequest":{"type":"object","properties":{"q":{"type":"string","minLength":1,"example":"ColdIQ site:linkedin.com","description":"Search query. Supports Google search operators (site:, filetype:, intitle:, -keyword, OR, etc.)"},"num":{"type":"integer","minimum":1,"maximum":100,"example":10,"description":"Number of results to return (default: 10, max: 100). Requests over 10 results cost 2 credits."},"page":{"type":"integer","minimum":1,"example":1,"description":"Page number for pagination (default: 1)"},"gl":{"type":"string","example":"us","description":"Country code for geo-targeting (e.g. \"us\", \"gb\", \"fr\")"},"hl":{"type":"string","example":"en","description":"Language code for results (e.g. \"en\", \"es\", \"fr\")"},"location":{"type":"string","example":"New York, New York, United States","description":"Specific location for results (city-level precision recommended)"},"tbs":{"type":"string","example":"qdr:w","description":"Time-based filter: qdr:h (hour), qdr:d (day), qdr:w (week), qdr:m (month), qdr:y (year)"},"autocorrect":{"type":"boolean","example":false,"description":"Enable Google's autocorrection (default: true)"}},"required":["q"],"example":{"q":"cold email response rates B2B","num":10}},"SerperPatentsRequest":{"type":"object","properties":{"q":{"type":"string","minLength":1,"example":"ColdIQ site:linkedin.com","description":"Search query. Supports Google search operators (site:, filetype:, intitle:, -keyword, OR, etc.)"},"num":{"type":"integer","minimum":1,"maximum":100,"example":10,"description":"Number of results to return (default: 10, max: 100). Requests over 10 results cost 2 credits."},"page":{"type":"integer","minimum":1,"example":1,"description":"Page number for pagination (default: 1)"},"gl":{"type":"string","example":"us","description":"Country code for geo-targeting (e.g. \"us\", \"gb\", \"fr\")"},"hl":{"type":"string","example":"en","description":"Language code for results (e.g. \"en\", \"es\", \"fr\")"},"location":{"type":"string","example":"New York, New York, United States","description":"Specific location for results (city-level precision recommended)"},"tbs":{"type":"string","example":"qdr:w","description":"Time-based filter: qdr:h (hour), qdr:d (day), qdr:w (week), qdr:m (month), qdr:y (year)"},"autocorrect":{"type":"boolean","example":false,"description":"Enable Google's autocorrection (default: true)"}},"required":["q"],"example":{"q":"email deliverability scoring algorithm","num":10,"gl":"us"}},"SerperAutocompleteRequest":{"type":"object","properties":{"q":{"type":"string","minLength":1,"example":"cold email","description":"Partial query to get Google autocomplete suggestions for"},"gl":{"type":"string","example":"us","description":"Country code (e.g. \"us\", \"gb\")"},"hl":{"type":"string","example":"en","description":"Language code (e.g. \"en\", \"fr\")"}},"required":["q"],"example":{"q":"cold email","gl":"us","hl":"en"}},"InfluencersClubResponse":{"nullable":true},"InfluencersClubEnrichByEmailRequest":{"type":"object","properties":{"email":{"type":"string","format":"email","example":"michel@coldiq.com","description":"Creator's email address to look up"}},"required":["email"],"example":{"email":"michel@coldiq.com"}},"InfluencersClubEnrichByHandleFullRequest":{"type":"object","properties":{"handle":{"type":"string","example":"garyvee","description":"Creator's handle / username on the platform (without @)"},"platform":{"type":"string","enum":["instagram","youtube","tiktok","twitch","twitter","onlyfans"],"example":"instagram","description":"Social media platform"},"include_lookalikes":{"type":"boolean","example":false,"description":"Include similar creators in the response"},"email_required":{"type":"string","enum":["preferred","must_have"],"example":"preferred","description":"Email availability requirement: \"preferred\" returns the creator regardless, \"must_have\" only returns if an email is found"}},"required":["handle","platform"],"example":{"handle":"garyvee","platform":"instagram","email_required":"preferred"}},"InfluencersClubEnrichByHandleRawRequest":{"type":"object","properties":{"handle":{"type":"string","example":"garyvee","description":"Creator's handle / username on the platform (without @)"},"platform":{"type":"string","enum":["instagram","youtube","tiktok","twitch","twitter","onlyfans"],"example":"instagram","description":"Social media platform"},"email_required":{"type":"string","enum":["preferred","must_have"],"example":"preferred","description":"Email availability requirement (same values as the full enrichment endpoint)"}},"required":["handle","platform"],"example":{"handle":"garyvee","platform":"instagram"}},"InfluencersClubDiscoveryRequest":{"type":"object","properties":{"platform":{"type":"string","enum":["instagram","youtube","tiktok","twitch","twitter","onlyfans"],"example":"instagram","description":"Platform to search on"},"paging":{"type":"object","properties":{"limit":{"type":"integer","minimum":1,"maximum":100,"example":10,"description":"Number of creators to return (max 100)"},"page":{"type":"integer","minimum":1,"example":1,"description":"Page number (1-based)"}},"required":["limit","page"]},"sort":{"type":"object","properties":{"sort_by":{"type":"string","enum":["relevancy","number_of_followers","engagement_rate"],"example":"number_of_followers","description":"Field to sort results by"},"sort_order":{"type":"string","enum":["asc","desc"],"example":"desc","description":"Sort direction"}},"required":["sort_by","sort_order"]},"filters":{"type":"object","properties":{"ai_search":{"type":"string","example":"fitness influencers in New York","description":"Natural language AI search query"},"location":{"type":"array","items":{"type":"string"},"example":["United States"],"description":"Creator location filter (country or city)"},"gender":{"type":"string","enum":["male","female"],"description":"Gender filter"},"type":{"type":"string","enum":["creator","business"],"description":"Account type filter"}},"additionalProperties":{"nullable":true}}},"required":["platform","paging"],"example":{"platform":"instagram","paging":{"limit":10,"page":1},"filters":{"ai_search":"fitness influencers","location":["United States"]}}},"InfluencersClubFindSimilarCreatorsRequest":{"type":"object","properties":{"handle":{"type":"string","example":"garyvee","description":"Creator handle to find lookalikes for"},"platform":{"type":"string","enum":["instagram","youtube","tiktok","twitch","twitter","onlyfans"],"example":"instagram","description":"Social media platform"},"paging":{"type":"object","properties":{"limit":{"type":"integer","minimum":1,"maximum":100,"example":10,"description":"Number of creators to return (max 100)"},"page":{"type":"integer","minimum":1,"example":1,"description":"Page number (1-based)"}},"required":["limit","page"]},"filters":{"type":"object","additionalProperties":{"nullable":true},"description":"Optional platform-specific filters (same filter keys as the discovery endpoint)"}},"required":["handle","platform","paging"],"example":{"handle":"garyvee","platform":"instagram","paging":{"limit":10,"page":1}}},"SignalbaseResponse":{"nullable":true},"LeadsFactoryCreateSearchResponse":{"type":"object","properties":{"id":{"type":"string","nullable":true,"description":"Internal MongoDB ObjectId — use this to poll for status"},"search_id":{"type":"string","description":"Short search identifier"},"status":{"type":"string","nullable":true,"enum":["RUNNING","PAUSED","SUCCESSFUL","FAILED","INVALID_URL",null]},"nb_jobs_total":{"type":"integer"},"nb_jobs_complete":{"type":"integer","nullable":true},"nb_jobs_failed":{"type":"integer","nullable":true},"progress_percentage":{"type":"number"},"credits_deducted":{"type":"integer"},"created_at":{"type":"string","nullable":true}},"required":["search_id","nb_jobs_total","progress_percentage"],"additionalProperties":{"nullable":true}},"LeadsFactorySearch":{"type":"object","properties":{"max_persona_results":{"type":"integer","minimum":0,"exclusiveMinimum":true,"example":3},"personas":{"type":"array","items":{"$ref":"#/components/schemas/LeadsFactoryPersona"},"minItems":1,"maxItems":20},"country_codes":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string","example":"US"},"name":{"type":"string","example":"United States"}},"required":["code","name"]}},"exact_job_titles_only":{"type":"boolean"}},"required":["max_persona_results","personas"]},"LeadsFactoryPersona":{"type":"object","properties":{"job_title":{"type":"string","example":"Head of Sales"},"seniority":{"anyOf":[{"type":"string","enum":["Owner","Partner","C-suite","VP","Director","Head","Manager","Senior","Entry","Assistant","Intern","Trainee"]},{"type":"array","items":{"type":"string","enum":["Owner","Partner","C-suite","VP","Director","Head","Manager","Senior","Entry","Assistant","Intern","Trainee"]}}],"example":["Director","VP","C-suite"]},"max_contacts":{"type":"integer","minimum":0,"exclusiveMinimum":true,"example":3},"excluded_keywords":{"type":"array","items":{"type":"string"}},"ai_job_title_expansion":{"nullable":true}},"required":["job_title"]},"LeadsFactoryGetSearchResponse":{"type":"object","properties":{"id":{"type":"string"},"search_id":{"type":"string"},"name":{"type":"string","nullable":true},"status":{"type":"string","nullable":true,"enum":["RUNNING","PAUSED","SUCCESSFUL","FAILED","INVALID_URL",null]},"error":{"type":"string","nullable":true},"companies_personas":{"type":"array","items":{"nullable":true},"description":"Matched contacts grouped by company and persona"},"csv_result_file_url":{"type":"string","nullable":true},"nb_jobs_total":{"type":"integer"},"nb_jobs_complete":{"type":"integer","nullable":true},"nb_jobs_failed":{"type":"integer","nullable":true},"nb_jobs_running":{"type":"integer","nullable":true},"progress_percentage":{"type":"number"},"search_type":{"type":"string","nullable":true},"credits_deducted":{"type":"integer"},"created_at":{"type":"string","nullable":true},"delivered_contacts":{"type":"array","items":{"nullable":true},"description":"One page of delivered contacts, oldest first, exactly as LeadsFactory delivered them."},"delivered_contacts_count":{"type":"integer","description":"How many contacts are in this page of `delivered_contacts`."},"delivered_contacts_next_cursor":{"type":"integer","nullable":true,"description":"Pass back as `contacts_after` for the next page. Null when the last page was returned."}},"required":["id","search_id","nb_jobs_total"],"additionalProperties":{"nullable":true}},"LeadsFactoryStartScrapeResponse":{"type":"object","properties":{"job_id":{"type":"string","description":"Use this ID to poll for job status"},"status":{"type":"string"}},"required":["job_id","status"]},"LeadsFactoryGetJobResponse":{"type":"object","properties":{"id":{"type":"string"},"search_name":{"type":"string"},"sales_nav_url":{"type":"string"},"status":{"type":"string"},"profiles_scraped":{"type":"integer"},"progress_percent":{"type":"integer"},"total_available":{"type":"integer","nullable":true},"google_sheets_url":{"type":"string","nullable":true},"profiles":{"type":"array","items":{"nullable":true}},"created_at":{"type":"string","nullable":true},"completed_at":{"type":"string","nullable":true}},"required":["id","search_name","sales_nav_url","status","profiles_scraped"],"additionalProperties":{"nullable":true}},"LeadMagicResponse":{"nullable":true},"AdyntelResponse":{"nullable":true},"BounceBanVerifyResponse":{"nullable":true},"BounceBanBulkCreateResponse":{"nullable":true},"BounceBanBulkStatusResponse":{"nullable":true},"BounceBanBulkResultsResponse":{"nullable":true},"BounceBanBulkDumpResponse":{"nullable":true},"HarvestApiItemResponse":{"type":"object","properties":{"element":{"type":"object","nullable":true,"additionalProperties":{"nullable":true}}},"required":["element"]},"HarvestApiListResponse":{"type":"object","properties":{"elements":{"type":"array","items":{"type":"object","additionalProperties":{"nullable":true}}},"pagination":{"$ref":"#/components/schemas/HarvestApiPagination"}},"required":["elements","pagination"]},"HarvestApiPagination":{"type":"object","nullable":true,"properties":{"totalElements":{"type":"number","nullable":true},"totalPages":{"type":"number","nullable":true},"pageNumber":{"type":"number","nullable":true},"previousElements":{"type":"number","nullable":true},"pageSize":{"type":"number","nullable":true},"totalResultCount":{"type":"number","nullable":true},"paginationToken":{"type":"string","nullable":true}},"additionalProperties":{"nullable":true}},"VerbResponse":{"type":"object","properties":{"data":{"nullable":true,"description":"Normalized, provider-agnostic result (single calls)."},"_meta":{"nullable":true,"description":"Provenance: which provider answered, credits charged, latency, and `attempts` — the per-attempt receipt. Each entry is `{provider, provider_name, capability, result, charged, latency_ms}`, in waterfall order, and the `charged` column sums to `credits_charged`, so the total is verifiable rather than assumed. `result` is hit | miss | error | rejected (a `rejected` entry carries a `reason`). A losing attempt in the main waterfall reports `charged: 0` with its refunded gross in `refunded` — charge-on-success means you never pay for it. A provider that exceeds its time limit is cancelled and its hold refunded before the response is built. If it has not settled by then, its entry carries `settlement: \"pending\"` and the response carries `X-ColdIQ-Credits-Settlement: pending`: the provider still holds credits, they are refunded in full when it finishes, and `X-ColdIQ-Credits-Charged` already excludes them. A `capability: \"verify_email\"` entry on a find_email response is the verify-on-hit hop: that check was performed, so its fee is kept and it is why `credits_charged` can exceed the winning finder’s list price. On an auto-routed miss the provider names are anonymized, exactly as `providers_tried` is."},"results":{"type":"array","items":{"nullable":true},"description":"Per-input results (bulk calls)."}}},"PersonIdentity":{"type":"object","properties":{"id":{"type":"string","description":"Your correlation id for a bulk row. Not sent to providers; `results[]` stays index-aligned with `inputs[]`."},"first_name":{"type":"string","description":"First name of the person."},"last_name":{"type":"string","description":"Last name of the person."},"full_name":{"type":"string","description":"Full name — alternative to first_name + last_name. Passed as-is to providers that accept a full name; never split automatically."},"domain":{"type":"string","description":"Company domain, e.g. \"coldiq.com\"."},"company_name":{"type":"string","description":"Company name — alternative to domain."},"linkedin_url":{"type":"string","description":"LinkedIn profile URL — alternative to name + domain."}},"additionalProperties":false,"description":"Single input — synchronous."},"EmailIdentity":{"type":"object","properties":{"email":{"type":"string","description":"The email address to verify."}},"required":["email"],"additionalProperties":false,"description":"Single input — synchronous."},"EnrichPersonIdentity":{"type":"object","properties":{"email":{"type":"string","description":"Work email — strongest identifier."},"linkedin_url":{"type":"string","description":"LinkedIn profile URL."},"first_name":{"type":"string"},"last_name":{"type":"string"},"full_name":{"type":"string","description":"Full name — alternative to first_name + last_name where the provider accepts it."},"company_name":{"type":"string"},"domain":{"type":"string"},"phone":{"type":"string","description":"Phone number for reverse phone lookup."}},"additionalProperties":false,"description":"Single input — synchronous."},"CompanyIdentity":{"type":"object","properties":{"domain":{"type":"string","description":"Company domain, e.g. \"coldiq.com\"."},"name":{"type":"string","description":"Company name, e.g. \"ColdIQ\" — alternative to domain."},"company_name":{"type":"string","description":"Alias for `name` (accepted for compatibility)."},"linkedin_url":{"type":"string","description":"Company LinkedIn URL — alternative to domain."}},"additionalProperties":false,"description":"Single input — synchronous."},"FindPeopleInput":{"type":"object","properties":{"job_titles":{"type":"array","items":{"type":"string"},"maxItems":300,"description":"Job titles, for example \"VP Engineering\". Pass the title family the user named; do not add variants before the first call."},"title_mode":{"type":"string","enum":["SMART","WORD","STRICT"],"default":"SMART","description":"Match mode for job_titles. SMART matches related concepts (broadest), WORD requires the phrase with extra words allowed, STRICT requires the exact phrase. Use STRICT for an exact role title."},"title_scope":{"type":"string","enum":["latest","current","previous"],"default":"latest","description":"Which position the title must match: latest (default), any current position, or a previous position."},"exclude_job_titles":{"type":"array","items":{"type":"string"},"maxItems":300,"description":"Titles that disqualify a person, for example \"Assistant\" or \"Intern\"."},"seniorities":{"type":"array","items":{"type":"string"},"maxItems":300,"description":"Seniority levels: founder, owner, partner, c_suite, vp, director, head, manager, senior, mid-level, entry, intern."},"exclude_seniorities":{"type":"array","items":{"type":"string"},"maxItems":300,"description":"Seniority levels to leave out."},"departments":{"type":"array","items":{"type":"string"},"maxItems":300,"description":"AI Ark department or function tokens, for example \"design\" or \"software_development\"."},"skills":{"type":"array","items":{"type":"string"},"maxItems":300,"description":"Listed skills, for example \"Figma\"."},"keywords":{"type":"array","items":{"type":"string"},"maxItems":300,"description":"Phrases about the person profile, not the current company."},"keyword_mode":{"type":"string","enum":["SMART","WORD","STRICT"],"default":"SMART","description":"Match mode for keywords. SMART matches related concepts (broadest), WORD requires the phrase with extra words allowed, STRICT requires the exact phrase."},"keyword_sources":{"type":"array","items":{"type":"string","enum":["HEADLINE","SUMMARY","SKILL","CERTIFICATION","COURSE","PROJECTS","PUBLICATION","PATENT","AWARD","ORGANIZATION","VOLUNTEERING","TEST_SCORE","WORK_HISTORY_DESCRIPTION","EDUCATION_DESCRIPTION","LANGUAGE_SKILL"]},"maxItems":5,"description":"Profile fields to search, at most five: HEADLINE, SUMMARY, SKILL, CERTIFICATION, COURSE, PROJECTS, PUBLICATION, PATENT, AWARD, ORGANIZATION, VOLUNTEERING, TEST_SCORE, WORK_HISTORY_DESCRIPTION, EDUCATION_DESCRIPTION, LANGUAGE_SKILL. Default HEADLINE and SUMMARY."},"exclude_keywords":{"type":"array","items":{"type":"string"},"maxItems":300,"description":"Profile phrases that disqualify a person."},"locations":{"type":"array","items":{"type":"string"},"maxItems":300,"description":"Person locations as ISO-2 codes or free text, for example \"FR\" or \"Paris\"."},"exclude_locations":{"type":"array","items":{"type":"string"},"maxItems":300,"description":"Person locations to leave out."},"exclude_list_ids":{"type":"array","items":{"type":"string"},"maxItems":10,"description":"AI Ark exclusion list ids from POST /ai-ark/lists; their person ids are never returned or billed."},"company_ids":{"type":"array","items":{"type":"string"},"maxItems":300,"description":"AI Ark company ids from a company search, matched on the current company. Reuse them instead of resolving the same companies again."},"company_keywords":{"type":"array","items":{"type":"string"},"maxItems":300,"description":"Phrases about the current company product or business, for example \"fintech\"."},"company_keyword_match":{"type":"string","enum":["any","all"],"default":"any","description":"Current company: any: one phrase is enough (OR). all: every phrase must match (AND)."},"company_keyword_mode":{"type":"string","enum":["SMART","WORD","STRICT"],"default":"SMART","description":"Current company: match mode for keywords. SMART matches related concepts (broadest), WORD requires the phrase with extra words allowed, STRICT requires the exact phrase. Use WORD for specific product phrases; SMART returns large unrelated service firms first."},"company_keyword_sources":{"type":"array","items":{"type":"string","enum":["NAME","KEYWORD","SEO","DESCRIPTION","INDUSTRY"]},"description":"Current company: company text fields to search: NAME, KEYWORD (tags), SEO (site meta), DESCRIPTION, INDUSTRY. Default NAME, KEYWORD, DESCRIPTION, SEO. Prefer DESCRIPTION and SEO for product phrases."},"company_exclude_keywords":{"type":"array","items":{"type":"string"},"maxItems":300,"description":"Current company: phrases that disqualify a company when found in the same sources, for example \"consulting\" or \"agency\"."},"company_products_services":{"type":"array","items":{"type":"string"},"maxItems":300,"description":"Current company: product or service names from public positioning data, for example \"AI presentation software\". An alternative discovery method to keywords; results still need product evidence."},"company_exclude_products_services":{"type":"array","items":{"type":"string"},"maxItems":300,"description":"Current company: products or services that disqualify a company."},"company_products_services_mode":{"type":"string","enum":["SMART","WORD","STRICT"],"default":"SMART","description":"Current company: match mode for products_services. SMART matches related concepts (broadest), WORD requires the phrase with extra words allowed, STRICT requires the exact phrase."},"company_industries":{"type":"array","items":{"type":"string"},"maxItems":300,"description":"Current-company industry labels. Never added automatically."},"company_industries_mode":{"type":"string","enum":["SMART","WORD","STRICT"],"default":"WORD","description":"Current company: match mode for industries. SMART matches related concepts (broadest), WORD requires the phrase with extra words allowed, STRICT requires the exact phrase."},"company_exclude_industries":{"type":"array","items":{"type":"string"},"maxItems":300,"description":"Current company: industry labels that disqualify a company."},"company_technologies":{"type":"array","items":{"type":"string"},"maxItems":300,"description":"Technology-stack tags the current company USES. Only when the user asks for a technology in use."},"company_technologies_mode":{"type":"string","enum":["SMART","WORD","STRICT"],"default":"WORD","description":"Current company: match mode for technologies. SMART matches related concepts (broadest), WORD requires the phrase with extra words allowed, STRICT requires the exact phrase."},"company_exclude_technologies":{"type":"array","items":{"type":"string"},"maxItems":300,"description":"Current company: technology tags that disqualify a company."},"company_types":{"type":"array","items":{"type":"string","enum":["PUBLIC_COMPANY","PRIVATELY_HELD","SELF_EMPLOYED","SELF_OWNED","PARTNERSHIP","GOVERNMENT_AGENCY","NON_PROFIT","EDUCATIONAL"]},"description":"Current company: legal structure, for example PRIVATELY_HELD or PUBLIC_COMPANY."},"company_naics_codes":{"type":"array","items":{"type":"string"},"maxItems":300,"description":"Current company: nAICS industry codes as strings, for example \"541511\"."},"company_domains":{"type":"array","items":{"type":"string"},"maxItems":300,"description":"Current-company domains."},"company_linkedin_urls":{"type":"array","items":{"type":"string"},"maxItems":300,"description":"Current-company LinkedIn URLs."},"company_exclude_domains":{"type":"array","items":{"type":"string"},"maxItems":300,"description":"Current company: company domains to leave out."},"company_countries":{"type":"array","items":{"type":"string"},"maxItems":300,"description":"Current-company ISO-2 country codes, separate from the person location."},"company_locations":{"type":"array","items":{"type":"string"},"maxItems":300,"description":"Current-company office locations, separate from the person location."},"company_exclude_countries":{"type":"array","items":{"type":"string"},"maxItems":300,"description":"Current company: iSO-2 country codes to leave out."},"company_exclude_locations":{"type":"array","items":{"type":"string"},"maxItems":300,"description":"Current company: free-text locations to leave out."},"company_min_employees":{"type":"integer","minimum":0,"description":"Minimum current-company headcount."},"company_max_employees":{"type":"integer","minimum":0,"description":"Maximum current-company headcount."},"company_min_founded_year":{"type":"integer","minimum":1800,"maximum":2200,"description":"Current company: earliest founding year."},"company_max_founded_year":{"type":"integer","minimum":1800,"maximum":2200,"description":"Current company: latest founding year."},"company_min_revenue":{"type":"number","minimum":0,"description":"Current company: minimum estimated annual revenue in USD."},"company_max_revenue":{"type":"number","minimum":0,"description":"Current company: maximum estimated annual revenue in USD."},"company_funding_stages":{"type":"array","items":{"type":"string"},"maxItems":300,"description":"Current company: funding stages, for example \"seed\" or \"series_a\"; normalized to the AI Ark funding taxonomy."},"company_min_funding_amount":{"type":"number","minimum":0,"description":"Current company: minimum total funding raised in USD."},"company_max_funding_amount":{"type":"number","minimum":0,"description":"Current company: maximum total funding raised in USD."},"company_min_funding_year":{"type":"integer","minimum":1800,"maximum":2200,"description":"Current company: earliest year of the last funding round."},"company_max_funding_year":{"type":"integer","minimum":1800,"maximum":2200,"description":"Current company: latest year of the last funding round."},"company_min_workforce_growth_pct":{"type":"number","description":"Current company: minimum company headcount growth in percent over workforce_growth_months (default 12). One of the strongest intent signals AI Ark documents."},"company_workforce_growth_months":{"type":"integer","description":"Current company: time frame for min_workforce_growth_pct: 1, 3, 6, 12, or 24 months. Default 12."},"company_names":{"type":"array","items":{"type":"string"},"maxItems":300,"description":"Current company: company names to match, for example \"Recraft\"."},"company_names_mode":{"type":"string","enum":["SMART","WORD","STRICT"],"default":"SMART","description":"Current company: match mode for company_names. SMART matches related concepts (broadest), WORD requires the phrase with extra words allowed, STRICT requires the exact phrase."},"company_urls":{"type":"array","items":{"type":"string"},"maxItems":300,"description":"Current company: tolerant company identifiers: a domain, a www host, a full URL, or a LinkedIn company URL."},"company_social_media_links":{"type":"array","items":{"type":"string"},"maxItems":300,"description":"Current company: full company social profile URLs, for example a Facebook or X page."},"company_phone_numbers":{"type":"array","items":{"type":"string"},"maxItems":300,"description":"Current company: company phone numbers in E.164 form, for example \"+18885335659\"."},"company_social_media":{"type":"array","items":{"type":"string","enum":["FACEBOOK","INSTAGRAM","TWITTER","LINKEDIN"]},"description":"Current company: networks the company must have a presence on: FACEBOOK, INSTAGRAM, TWITTER, LINKEDIN."},"company_min_retail_locations":{"type":"integer","minimum":0,"description":"Current company: minimum number of physical locations worldwide."},"company_max_retail_locations":{"type":"integer","minimum":0,"description":"Current company: maximum number of physical locations worldwide."},"company_languages":{"type":"array","items":{"type":"string"},"maxItems":300,"description":"Current company: operating languages in lowercase English names, for example \"french\"."},"company_exclude_languages":{"type":"array","items":{"type":"string"},"maxItems":300,"description":"Current company: operating languages to leave out."},"company_min_languages":{"type":"integer","minimum":0,"description":"Current company: minimum number of operating languages."},"company_max_languages":{"type":"integer","minimum":0,"description":"Current company: maximum number of operating languages."},"company_geo_latitude":{"type":"number","description":"Current company: latitude of the search center; needs geo_longitude and geo_radius."},"company_geo_longitude":{"type":"number","description":"Current company: longitude of the search center; needs geo_latitude and geo_radius."},"company_geo_radius":{"type":"number","minimum":0,"description":"Current company: radius around the search center; needs geo_latitude and geo_longitude."},"company_geo_radius_unit":{"type":"string","enum":["km","mi"],"default":"km","description":"Current company: unit of geo_radius: km (default) or mi."},"company_department_headcount_functions":{"type":"array","items":{"type":"string","enum":["program_and_project_management","education","purchasing","accounting","sales","research","operations","customer_success_and_support","legal","product_management","media_and_communication","real_estate","quality_assurance","consulting","arts_and_design","healthcare_services","entrepreneurship","engineering","community_and_social_services","marketing","information_technology","business_development","administrative","military_and_protective_services","finance","human_resources","support"]},"description":"Current company: departments whose headcount min_/max_department_headcount bounds, for example engineering or sales."},"company_min_department_headcount":{"type":"integer","minimum":0,"description":"Current company: minimum headcount in department_headcount_functions."},"company_max_department_headcount":{"type":"integer","minimum":0,"description":"Current company: maximum headcount in department_headcount_functions."},"company_workforce_growth_departments":{"type":"array","items":{"type":"string","enum":["program_and_project_management","education","purchasing","accounting","sales","research","operations","customer_success_and_support","legal","product_management","media_and_communication","real_estate","quality_assurance","consulting","arts_and_design","healthcare_services","entrepreneurship","engineering","community_and_social_services","marketing","information_technology","business_development","administrative","military_and_protective_services","finance","human_resources","support"]},"description":"Current company: departments whose growth min_workforce_growth_pct measures. Empty means the whole company."},"max_per_company":{"type":"integer","minimum":1,"description":"Keep at most this many people per company. AI Ark bills every returned row before the cap runs."},"full_names":{"type":"array","items":{"type":"string"},"maxItems":300,"description":"Person names to match, for example \"Michel Lieben\"."},"full_names_mode":{"type":"string","enum":["SMART","WORD","STRICT"],"default":"SMART","description":"Match mode for full_names. SMART matches related concepts (broadest), WORD requires the phrase with extra words allowed, STRICT requires the exact phrase."},"social_media_links":{"type":"array","items":{"type":"string"},"maxItems":300,"description":"Full personal social profile URLs."},"social_media":{"type":"array","items":{"type":"string","enum":["FACEBOOK","INSTAGRAM","TWITTER","LINKEDIN"]},"description":"Networks the person must have a profile on: FACEBOOK, INSTAGRAM, TWITTER, LINKEDIN."},"certifications":{"type":"array","items":{"type":"string"},"maxItems":300,"description":"Certifications, for example \"Scrum Master Certification (CSM)\"."},"languages":{"type":"array","items":{"type":"string"},"maxItems":300,"description":"Spoken languages in lowercase English names, for example \"english\"."},"min_language_proficiency":{"type":"integer","minimum":1,"maximum":5,"description":"Minimum proficiency (1-5) for languages."},"max_language_proficiency":{"type":"integer","minimum":1,"maximum":5,"description":"Maximum proficiency (1-5) for languages."},"school_ids":{"type":"array","items":{"type":"string"},"maxItems":300,"description":"AI Ark school ids from a person record education entry."},"degrees":{"type":"array","items":{"type":"string"},"maxItems":300,"description":"Degree names, for example \"MBA\"."},"fields_of_study":{"type":"array","items":{"type":"string"},"maxItems":300,"description":"Fields of study, for example \"computer science\"."},"min_graduation_year":{"type":"integer","minimum":1900,"maximum":2200,"description":"Earliest graduation year."},"max_graduation_year":{"type":"integer","minimum":1900,"maximum":2200,"description":"Latest graduation year."},"profile_badges":{"type":"array","items":{"type":"string","enum":["VERIFIED","HIRING"]},"description":"LinkedIn badges the profile must carry: VERIFIED, or HIRING for an active hiring manager."},"min_linkedin_followers":{"type":"integer","minimum":0,"description":"Minimum LinkedIn followers."},"max_linkedin_followers":{"type":"integer","minimum":0,"description":"Maximum LinkedIn followers."},"min_linkedin_connections":{"type":"integer","minimum":0,"description":"Minimum LinkedIn connections."},"max_linkedin_connections":{"type":"integer","minimum":0,"description":"Maximum LinkedIn connections."},"min_months_in_role":{"type":"integer","minimum":0,"description":"Minimum months in the current job."},"max_months_in_role":{"type":"integer","minimum":0,"description":"Maximum months in the current job; 6 or less is a new-in-role signal."},"min_months_at_company":{"type":"integer","minimum":0,"description":"Minimum months at the current company."},"max_months_at_company":{"type":"integer","minimum":0,"description":"Maximum months at the current company."},"min_years_experience":{"type":"integer","minimum":0,"description":"Minimum total years of experience."},"max_years_experience":{"type":"integer","minimum":0,"description":"Maximum total years of experience."},"limit":{"type":"number","minimum":1,"maximum":500,"default":25},"page":{"type":"integer","minimum":0,"description":"Zero-based provider page. Keep limit constant across pages of one search."}},"description":"Single input — synchronous."},"SearchCompaniesInput":{"type":"object","properties":{"keywords":{"type":"array","items":{"type":"string"},"maxItems":300,"description":"Phrases describing the product or business as companies write about themselves, for example \"AI image generator\". Product phrases find products; a technology filter does not."},"keyword_match":{"type":"string","enum":["any","all"],"default":"any","description":"any: one phrase is enough (OR). all: every phrase must match (AND)."},"keyword_mode":{"type":"string","enum":["SMART","WORD","STRICT"],"default":"SMART","description":"Match mode for keywords. SMART matches related concepts (broadest), WORD requires the phrase with extra words allowed, STRICT requires the exact phrase. Use WORD for specific product phrases; SMART returns large unrelated service firms first."},"keyword_sources":{"type":"array","items":{"type":"string","enum":["NAME","KEYWORD","SEO","DESCRIPTION","INDUSTRY"]},"description":"Company text fields to search: NAME, KEYWORD (tags), SEO (site meta), DESCRIPTION, INDUSTRY. Default NAME, KEYWORD, DESCRIPTION, SEO. Prefer DESCRIPTION and SEO for product phrases."},"exclude_keywords":{"type":"array","items":{"type":"string"},"maxItems":300,"description":"Phrases that disqualify a company when found in the same sources, for example \"consulting\" or \"agency\"."},"products_services":{"type":"array","items":{"type":"string"},"maxItems":300,"description":"Product or service names from public positioning data, for example \"AI presentation software\". An alternative discovery method to keywords; results still need product evidence."},"exclude_products_services":{"type":"array","items":{"type":"string"},"maxItems":300,"description":"Products or services that disqualify a company."},"products_services_mode":{"type":"string","enum":["SMART","WORD","STRICT"],"default":"SMART","description":"Match mode for products_services. SMART matches related concepts (broadest), WORD requires the phrase with extra words allowed, STRICT requires the exact phrase."},"industries":{"type":"array","items":{"type":"string"},"maxItems":300,"description":"AI Ark industry labels, for example \"software development\". Labels are not product definitions: do not force one to make a list look cleaner."},"industries_mode":{"type":"string","enum":["SMART","WORD","STRICT"],"default":"WORD","description":"Match mode for industries. SMART matches related concepts (broadest), WORD requires the phrase with extra words allowed, STRICT requires the exact phrase."},"exclude_industries":{"type":"array","items":{"type":"string"},"maxItems":300,"description":"Industry labels that disqualify a company."},"technologies":{"type":"array","items":{"type":"string"},"maxItems":300,"description":"Technology-stack tags the company USES (for example \"HubSpot\", \"Shopify\"). Only when the user asks for a technology in use. It does not identify what a company sells: \"AI\" as a technology excludes real AI products."},"technologies_mode":{"type":"string","enum":["SMART","WORD","STRICT"],"default":"WORD","description":"Match mode for technologies. SMART matches related concepts (broadest), WORD requires the phrase with extra words allowed, STRICT requires the exact phrase."},"exclude_technologies":{"type":"array","items":{"type":"string"},"maxItems":300,"description":"Technology tags that disqualify a company."},"company_types":{"type":"array","items":{"type":"string","enum":["PUBLIC_COMPANY","PRIVATELY_HELD","SELF_EMPLOYED","SELF_OWNED","PARTNERSHIP","GOVERNMENT_AGENCY","NON_PROFIT","EDUCATIONAL"]},"description":"Legal structure, for example PRIVATELY_HELD or PUBLIC_COMPANY."},"naics_codes":{"type":"array","items":{"type":"string"},"maxItems":300,"description":"NAICS industry codes as strings, for example \"541511\"."},"domains":{"type":"array","items":{"type":"string"},"maxItems":300,"description":"Restrict to these company domains (bare form, for example \"recraft.ai\")."},"linkedin_urls":{"type":"array","items":{"type":"string"},"maxItems":300,"description":"Restrict to these full company LinkedIn URLs."},"exclude_domains":{"type":"array","items":{"type":"string"},"maxItems":300,"description":"Company domains to leave out."},"similar_to_domains":{"type":"array","items":{"type":"string"},"maxItems":10,"description":"Seed company domains to find lookalikes of (up to 10). Up to five seeds run on AI Ark; more route to DiscoLike's lookalike discovery over 70M companies. Combine with keywords / industries / countries / employee range to narrow."},"exclude_list_ids":{"type":"array","items":{"type":"string"},"maxItems":10,"description":"AI Ark exclusion list ids from POST /ai-ark/lists; their company ids are never returned or billed. Lists expire after 24 hours."},"countries":{"type":"array","items":{"type":"string"},"maxItems":300,"description":"ISO-2 country codes, for example \"US\". AI Ark matches any office location, so headquarters must be checked as a criterion when it matters."},"locations":{"type":"array","items":{"type":"string"},"maxItems":300,"description":"Countries, states, cities, or regions as free text, for example \"Austin, Texas\"."},"exclude_countries":{"type":"array","items":{"type":"string"},"maxItems":300,"description":"ISO-2 country codes to leave out."},"exclude_locations":{"type":"array","items":{"type":"string"},"maxItems":300,"description":"Free-text locations to leave out."},"min_employees":{"type":"integer","minimum":0,"description":"Minimum headcount."},"max_employees":{"type":"integer","minimum":0,"description":"Maximum headcount."},"min_founded_year":{"type":"integer","minimum":1800,"maximum":2200,"description":"Earliest founding year."},"max_founded_year":{"type":"integer","minimum":1800,"maximum":2200,"description":"Latest founding year."},"min_revenue":{"type":"number","minimum":0,"description":"Minimum estimated annual revenue in USD."},"max_revenue":{"type":"number","minimum":0,"description":"Maximum estimated annual revenue in USD."},"funding_stages":{"type":"array","items":{"type":"string"},"maxItems":300,"description":"Funding stages, for example \"seed\" or \"series_a\"; normalized to the AI Ark funding taxonomy."},"min_funding_amount":{"type":"number","minimum":0,"description":"Minimum total funding raised in USD."},"max_funding_amount":{"type":"number","minimum":0,"description":"Maximum total funding raised in USD."},"min_funding_year":{"type":"integer","minimum":1800,"maximum":2200,"description":"Earliest year of the last funding round."},"max_funding_year":{"type":"integer","minimum":1800,"maximum":2200,"description":"Latest year of the last funding round."},"min_workforce_growth_pct":{"type":"number","description":"Minimum company headcount growth in percent over workforce_growth_months (default 12). One of the strongest intent signals AI Ark documents."},"workforce_growth_months":{"type":"integer","description":"Time frame for min_workforce_growth_pct: 1, 3, 6, 12, or 24 months. Default 12."},"employee_titles":{"type":"array","items":{"type":"string"},"maxItems":300,"description":"Companies that employ someone with this title, for example \"Head of Design\". Company Search only."},"employee_seniorities":{"type":"array","items":{"type":"string","enum":["founder","owner","partner","c_suite","vp","director","head","manager","senior","mid-level","entry","intern"]},"description":"Companies that employ someone at this seniority, for example c_suite or vp."},"employee_departments":{"type":"array","items":{"type":"string"},"maxItems":300,"description":"Companies that employ someone in this department or function token, for example \"software_development\"."},"company_names":{"type":"array","items":{"type":"string"},"maxItems":300,"description":"Company names to match, for example \"Recraft\"."},"company_names_mode":{"type":"string","enum":["SMART","WORD","STRICT"],"default":"SMART","description":"Match mode for company_names. SMART matches related concepts (broadest), WORD requires the phrase with extra words allowed, STRICT requires the exact phrase."},"urls":{"type":"array","items":{"type":"string"},"maxItems":300,"description":"Tolerant company identifiers: a domain, a www host, a full URL, or a LinkedIn company URL."},"social_media_links":{"type":"array","items":{"type":"string"},"maxItems":300,"description":"Full company social profile URLs, for example a Facebook or X page."},"phone_numbers":{"type":"array","items":{"type":"string"},"maxItems":300,"description":"Company phone numbers in E.164 form, for example \"+18885335659\"."},"social_media":{"type":"array","items":{"type":"string","enum":["FACEBOOK","INSTAGRAM","TWITTER","LINKEDIN"]},"description":"Networks the company must have a presence on: FACEBOOK, INSTAGRAM, TWITTER, LINKEDIN."},"min_retail_locations":{"type":"integer","minimum":0,"description":"Minimum number of physical locations worldwide."},"max_retail_locations":{"type":"integer","minimum":0,"description":"Maximum number of physical locations worldwide."},"languages":{"type":"array","items":{"type":"string"},"maxItems":300,"description":"Operating languages in lowercase English names, for example \"french\"."},"exclude_languages":{"type":"array","items":{"type":"string"},"maxItems":300,"description":"Operating languages to leave out."},"min_languages":{"type":"integer","minimum":0,"description":"Minimum number of operating languages."},"max_languages":{"type":"integer","minimum":0,"description":"Maximum number of operating languages."},"geo_latitude":{"type":"number","description":"Latitude of the search center; needs geo_longitude and geo_radius."},"geo_longitude":{"type":"number","description":"Longitude of the search center; needs geo_latitude and geo_radius."},"geo_radius":{"type":"number","minimum":0,"description":"Radius around the search center; needs geo_latitude and geo_longitude."},"geo_radius_unit":{"type":"string","enum":["km","mi"],"default":"km","description":"Unit of geo_radius: km (default) or mi."},"department_headcount_functions":{"type":"array","items":{"type":"string","enum":["program_and_project_management","education","purchasing","accounting","sales","research","operations","customer_success_and_support","legal","product_management","media_and_communication","real_estate","quality_assurance","consulting","arts_and_design","healthcare_services","entrepreneurship","engineering","community_and_social_services","marketing","information_technology","business_development","administrative","military_and_protective_services","finance","human_resources","support"]},"description":"Departments whose headcount min_/max_department_headcount bounds, for example engineering or sales."},"min_department_headcount":{"type":"integer","minimum":0,"description":"Minimum headcount in department_headcount_functions."},"max_department_headcount":{"type":"integer","minimum":0,"description":"Maximum headcount in department_headcount_functions."},"workforce_growth_departments":{"type":"array","items":{"type":"string","enum":["program_and_project_management","education","purchasing","accounting","sales","research","operations","customer_success_and_support","legal","product_management","media_and_communication","real_estate","quality_assurance","consulting","arts_and_design","healthcare_services","entrepreneurship","engineering","community_and_social_services","marketing","information_technology","business_development","administrative","military_and_protective_services","finance","human_resources","support"]},"description":"Departments whose growth min_workforce_growth_pct measures. Empty means the whole company."},"is_hiring":{"type":"boolean"},"linkedin_search_url":{"type":"string"},"limit":{"type":"number","minimum":1,"maximum":500,"default":25},"page":{"type":"integer","minimum":0,"description":"Zero-based provider page. Keep limit constant across pages of one search."}},"description":"Single input — synchronous."},"FindSignalsInput":{"type":"object","properties":{"signal_type":{"type":"string","enum":["funding","acquisition","hiring","job_change","news","intent","startup_post"],"description":"Signal type. Company-targeted: funding, acquisition, hiring, job_change, intent. Feed-style: news, startup_post."},"companies":{"type":"array","items":{"type":"string"}},"domains":{"type":"array","items":{"type":"string"}},"since":{"type":"string","description":"ISO date, e.g. \"2026-01-01\"."},"industries":{"type":"array","items":{"type":"string"}},"countries":{"type":"array","items":{"type":"string"}},"round_type":{"type":"array","items":{"type":"string"},"description":"Funding round filter (signal_type=funding)."},"topics":{"type":"array","items":{"type":"string"},"description":"Intent topic slugs (signal_type=intent)."},"limit":{"type":"integer","minimum":1,"maximum":100,"default":25}},"required":["signal_type"],"additionalProperties":false,"description":"Single input — synchronous."},"SearchAdsInput":{"type":"object","properties":{"query":{"type":"string","description":"Advertiser/company name or keyword."},"domains":{"type":"array","items":{"type":"string"},"description":"Company domains. Google Ads only."},"advertiser_ids":{"type":"array","items":{"type":"string"},"description":"Google Ads Transparency advertiser IDs."},"search_urls":{"type":"array","items":{"type":"string"},"description":"Pre-built LinkedIn Ad Library URLs."},"country":{"type":"string"},"max_results":{"type":"integer","minimum":1,"maximum":200,"default":25},"ad_type":{"type":"string","enum":["ALL","POLITICAL_AND_ISSUE_ADS"],"description":"Meta only."},"start_date":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$","description":"Twitter only."},"end_date":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$","description":"Twitter only."},"platform":{"type":"string","enum":["google","linkedin","meta","twitter"],"description":"Pin to one ad platform."}},"additionalProperties":false,"description":"Single input — synchronous."},"SearchWebInput":{"type":"object","properties":{"query":{"type":"string","description":"Search query."},"num_results":{"type":"number","minimum":1,"maximum":100,"default":10},"country":{"type":"string","description":"Country code for geo-targeting, e.g. \"us\"."},"search_type":{"type":"string","enum":["general","neural","deep","deep-reasoning"],"default":"general","description":"\"general\" uses the normal web-search waterfall. \"neural\" is a compatibility alias for Exa auto. Deep modes use Exa."}},"required":["query"],"description":"Single input — synchronous."},"FetchPageInput":{"type":"object","properties":{"urls":{"type":"array","items":{"type":"string","format":"uri"},"minItems":1,"maxItems":10,"description":"URLs to fetch (1–10)."},"include_text":{"type":"boolean","default":true},"include_summary":{"type":"boolean","default":false}},"required":["urls"],"description":"Single input — synchronous."},"SearchJobsInput":{"type":"object","properties":{"title_keywords":{"type":"array","items":{"type":"string"}},"exclude_title_keywords":{"type":"array","items":{"type":"string"}},"locations":{"type":"array","items":{"type":"string"},"description":"\"City, State/Region, Country\" format."},"exclude_locations":{"type":"array","items":{"type":"string"}},"description_keywords":{"type":"array","items":{"type":"string"}},"exclude_description_keywords":{"type":"array","items":{"type":"string"}},"companies":{"type":"array","items":{"type":"string"}},"exclude_companies":{"type":"array","items":{"type":"string"}},"remote":{"type":"boolean"},"exclude_agencies":{"type":"boolean"},"posted_after":{"type":"string"},"time_range":{"type":"string","enum":["1h","24h","7d","6m"],"default":"7d"},"include_description":{"type":"boolean","default":false},"employment_types":{"type":"array","items":{"type":"string","enum":["FULL_TIME","PART_TIME","CONTRACTOR","TEMPORARY","INTERN","VOLUNTEER","PER_DIEM","OTHER"]}},"work_arrangements":{"type":"array","items":{"type":"string","enum":["On-site","Hybrid","Remote OK","Remote Solely"]}},"experience_levels":{"type":"array","items":{"type":"string","enum":["0-2","2-5","5-10","10+"]}},"has_salary":{"type":"boolean"},"has_visa_sponsorship":{"type":"boolean"},"taxonomies":{"type":"array","items":{"type":"string"}},"limit":{"type":"integer","minimum":10,"maximum":500,"default":25},"ats_slugs":{"type":"array","items":{"type":"string"},"description":"Routes to career-site source."},"exclude_ats_slugs":{"type":"array","items":{"type":"string"}},"company_domains":{"type":"array","items":{"type":"string"},"description":"Routes to career-site source."},"exclude_company_domains":{"type":"array","items":{"type":"string"}},"seniority_levels":{"type":"array","items":{"type":"string","enum":["Entry level","Associate","Mid-Senior level","Director","Executive","Internship","Not Applicable"]},"description":"Routes to LinkedIn source."},"industries":{"type":"array","items":{"type":"string"},"description":"Routes to LinkedIn source."},"organization_slugs":{"type":"array","items":{"type":"string"}},"exclude_organization_slugs":{"type":"array","items":{"type":"string"}},"min_employees":{"type":"integer","minimum":1},"max_employees":{"type":"integer","minimum":1},"easy_apply_only":{"type":"boolean"},"exclude_easy_apply":{"type":"boolean"}},"additionalProperties":false,"description":"Single input — synchronous."},"SearchPlacesInput":{"type":"object","properties":{"query":{"type":"string","description":"Free-text query, e.g. \"coffee shops in Brooklyn\"."},"country":{"type":"string"},"city":{"type":"string"},"limit":{"type":"integer","minimum":1,"maximum":200,"default":25},"state":{"type":"string","description":"Openmart only."},"zip_code":{"type":"string","description":"Openmart only."},"lat":{"type":"number","description":"Openmart only."},"long":{"type":"number","description":"Openmart only."},"geo_radius":{"type":"integer","minimum":0,"exclusiveMinimum":true,"description":"Openmart only. Meters."},"tags":{"type":"array","items":{"type":"string"},"maxItems":100,"description":"Openmart only."},"min_overall_rating":{"type":"number","minimum":0,"maximum":5},"max_overall_rating":{"type":"number","minimum":0,"maximum":5},"min_total_reviews":{"type":"integer","minimum":0},"max_total_reviews":{"type":"integer","minimum":0},"ownership_type":{"type":"string","enum":["INDEPENDENT","FAMILY","FRANCHISE","CHAIN"],"description":"Openmart only."},"has_website":{"type":"boolean","description":"Openmart only."},"has_valid_website":{"type":"boolean","description":"Openmart only."},"has_contact_info":{"type":"boolean","description":"Openmart only."},"min_price_tier":{"type":"integer","description":"Openmart only."},"max_price_tier":{"type":"integer","description":"Openmart only."},"include_keywords":{"type":"array","items":{"type":"string"},"maxItems":64,"description":"Openmart only."},"exclude_keywords":{"type":"array","items":{"type":"string"},"maxItems":64,"description":"Openmart only."},"exclude_root_domains":{"type":"array","items":{"type":"string"},"maxItems":10000,"description":"Openmart only."},"start_urls":{"type":"array","items":{"type":"string","format":"uri"},"maxItems":10,"description":"Google Maps only."},"include_opening_hours":{"type":"boolean","description":"Google Maps only."},"include_additional_info":{"type":"boolean","description":"Google Maps only."},"language":{"type":"string","description":"Google Maps only."}},"additionalProperties":false,"description":"Single input — synchronous."},"PlaceReviewsInput":{"type":"object","properties":{"place_urls":{"type":"array","items":{"type":"string","format":"uri"},"minItems":1,"maxItems":10,"description":"Google Maps place URLs (1–10)."},"max_reviews":{"type":"integer","minimum":1,"maximum":300,"description":"Reviews per place (default 5). 1 credit each."},"sort":{"type":"string","enum":["mostRelevant","newest","highestRanking","lowestRanking"]},"language":{"type":"string","description":"ISO 639-1, e.g. \"en\"."}},"required":["place_urls"],"additionalProperties":false,"description":"Single input — synchronous."},"FindInfluencersInput":{"type":"object","properties":{"platform":{"type":"string","enum":["instagram","youtube","tiktok","twitch","twitter","onlyfans"],"description":"Target platform."},"limit":{"type":"integer","minimum":1,"maximum":100,"default":25},"page":{"type":"integer","minimum":1,"default":1},"sort_by":{"type":"string","enum":["relevancy","number_of_followers","engagement_rate"]},"sort_order":{"type":"string","enum":["asc","desc"]},"ai_search":{"type":"string","description":"Natural-language discovery query."},"location":{"type":"array","items":{"type":"string"}},"gender":{"type":"string","enum":["male","female"]},"type":{"type":"string","enum":["creator","business"]},"handle":{"type":"string","description":"Find creators similar to this handle (lookalike). No @ prefix."}},"required":["platform"],"additionalProperties":false,"description":"Single input — synchronous."},"SearchRedditInput":{"type":"object","properties":{"start_urls":{"type":"array","items":{"type":"string","format":"uri"},"maxItems":25,"description":"Reddit URLs (subreddit, post, user, search). Up to 25."},"query":{"type":"string","description":"Keyword search. Provide this and/or start_urls."},"search_type":{"type":"string","enum":["posts","comments","communities","users"],"default":"posts"},"search_community_name":{"type":"string","description":"Restrict the query to a single community."},"sort":{"type":"string","enum":["relevance","hot","top","new","rising","comments"]},"time":{"type":"string","enum":["hour","day","week","month","year","all"]},"limit":{"type":"integer","minimum":1,"maximum":200,"default":10},"max_comments":{"type":"integer","minimum":0,"maximum":1000},"include_comments":{"type":"boolean"},"post_date_limit":{"type":"string","description":"ISO 8601."},"comment_date_limit":{"type":"string","description":"ISO 8601."}},"additionalProperties":false,"description":"Single input — synchronous."},"SearchSeoInput":{"type":"object","properties":{"category":{"type":"string","enum":["keywords","serp","backlinks","domain","labs","page"],"description":"SEO category. Required."},"target":{"type":"string","description":"Domain/URL. Required for backlinks, domain, labs."},"keyword":{"type":"string","description":"Single keyword. Required for serp."},"keywords":{"type":"array","items":{"type":"string"},"description":"Keyword list. Required for keywords, labs/keyword-ideas."},"location":{"type":"string"},"language":{"type":"string"},"limit":{"type":"integer","minimum":1,"maximum":700,"default":10},"date_from":{"type":"string"},"date_to":{"type":"string"},"time_range":{"type":"string"},"engine":{"type":"string","enum":["google","bing","youtube"],"default":"google"},"device":{"type":"string","enum":["desktop","mobile"]},"action":{"type":"string","enum":["technologies","whois"],"description":"domain category."},"lab_action":{"type":"string","enum":["ranked-keywords","competitors","keyword-ideas","rank-overview"]},"url":{"type":"string","format":"uri","description":"Required for page category."},"page_action":{"type":"string","enum":["lighthouse","content"],"default":"lighthouse"},"enable_javascript":{"type":"boolean"},"full_data":{"type":"boolean"}},"required":["category"],"additionalProperties":false,"description":"Single input — synchronous."},"EnrichPersonBulkItem":{"type":"object","properties":{"email":{"type":"string","description":"Work email — strongest identifier."},"linkedin_url":{"type":"string","description":"LinkedIn profile URL."},"first_name":{"type":"string"},"last_name":{"type":"string"},"company_name":{"type":"string"},"domain":{"type":"string","description":"Company domain, e.g. \"coldiq.com\"."}},"additionalProperties":false},"EnrichCompanyBulkItem":{"type":"object","properties":{"domain":{"type":"string","description":"Company domain, e.g. \"coldiq.com\"."},"name":{"type":"string","description":"Company name, e.g. \"ColdIQ\"."},"company_name":{"type":"string","description":"Alias for `name`."},"linkedin_url":{"type":"string","description":"Company LinkedIn URL."}},"additionalProperties":false},"FindPhoneBulkItem":{"type":"object","properties":{"linkedin_url":{"type":"string","description":"LinkedIn profile URL."},"first_name":{"type":"string","description":"First name (with last_name + company_domain/name)."},"last_name":{"type":"string"},"company_domain":{"type":"string","description":"Company domain, e.g. \"coldiq.com\"."},"company_name":{"type":"string","description":"Company name — alternative to company_domain."}},"additionalProperties":false},"CreditProduct":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"description":{"type":"string","nullable":true},"credits":{"type":"number"},"type":{"type":"string","enum":["one_time","recurring"],"description":"one_time = credit pack, recurring = subscription plan"},"interval":{"type":"string","nullable":true,"enum":["month","quarter","year",null],"description":"Billing interval (null for one-time). `quarter` is charged once every 3 months and grants the whole quarter's credits upfront."},"price":{"type":"object","properties":{"id":{"type":"string"},"unitAmount":{"type":"number","description":"Price in smallest currency unit (e.g. cents)"},"currency":{"type":"string"}},"required":["id","unitAmount","currency"]},"oncePerUser":{"type":"boolean","description":"This pack can be purchased once per account, ever. A second checkout is rejected with 409 `already_redeemed`."},"subscriptionRequired":{"type":"boolean","description":"Checkout requires a live subscription for THIS product; rejected with 403 `subscription_required` otherwise. Always false for subscription plans themselves, and for one-time packs that opt out. On the authenticated dashboard listing this also reflects any per-user exemption, so trust this flag rather than re-deriving eligibility from subscription status — the cached public listing cannot account for per-user exemptions and always reports the un-exempted value."},"surface":{"type":"string","enum":["marketplace","lite"],"description":"Which product surface this plan sells into. `marketplace` is the full GTM product (catalog, API keys, MCP). `lite` is the Find Anything surface, sold only from its own unlisted landing page and deliberately without API keys, MCP or bulk. A storefront MUST decide which surfaces it renders: showing a `lite` plan beside the GTM tiers undercuts them with a product that cannot do the GTM job."},"lookupUnits":{"type":"object","nullable":true,"properties":{"creditsPerEmail":{"type":"number"},"creditsPerPhone":{"type":"number"}},"required":["creditsPerEmail","creditsPerPhone"],"description":"What one lookup costs, on `lite` products only (null otherwise). Global constants derived from the pricing table, carried here so a landing page can turn `credits` into its \"N emails or M phones\" promise from this one response. They are alternatives out of one shared pool, so render them joined by \"or\", never \"and\", and never as a sum. Each is the cost on the LEAD provider of its waterfall, which is the typical case and NOT a ceiling: a lookup that falls through to a dearer provider costs more, and the phone waterfall has the wider spread. Render the resulting counts with \"approximately\". These are rounded UP to a whole credit, so the count they yield is slightly lower than the in-app quota, which divides by the exact rate."},"alreadyClaimed":{"type":"boolean","description":"Dashboard listing only (per-user, so it is absent from the cached public listing): this account has already claimed this `oncePerUser` pack, so checkout would return 409."}},"required":["id","name","description","credits","type","interval","price","oncePerUser","subscriptionRequired","surface","lookupUnits"]},"CheckoutResponse":{"type":"object","properties":{"url":{"type":"string","description":"Stripe Checkout URL — redirect the user here"}},"required":["url"]},"CheckoutBody":{"type":"object","properties":{"priceId":{"type":"string","description":"Stripe Price ID from the products list"},"successUrl":{"type":"string","format":"uri","description":"URL to redirect to after successful payment"},"cancelUrl":{"type":"string","format":"uri","description":"URL to redirect to if payment is cancelled"}},"required":["priceId","successUrl","cancelUrl"]},"TopUpPreviewResponse":{"type":"object","properties":{"credits":{"type":"integer","minimum":0,"exclusiveMinimum":true},"amount":{"type":"integer","minimum":0,"exclusiveMinimum":true,"description":"Amount due in the smallest currency unit"},"currency":{"type":"string"},"paymentMethod":{"$ref":"#/components/schemas/SavedCard"},"stripePublishableKey":{"type":"string"}},"required":["credits","amount","currency","paymentMethod","stripePublishableKey"]},"SavedCard":{"type":"object","properties":{"brand":{"type":"string"},"last4":{"type":"string","minLength":4,"maxLength":4},"expMonth":{"type":"integer","minimum":1,"maximum":12},"expYear":{"type":"integer"}},"required":["brand","last4","expMonth","expYear"]},"TopUpBody":{"type":"object","properties":{"priceId":{"type":"string","description":"One-time Stripe Price ID from the products list"}},"required":["priceId"],"example":{"priceId":"price_1TopUp"}},"TopUpPaymentIntentResponse":{"type":"object","properties":{"clientSecret":{"type":"string"}},"required":["clientSecret"]},"TopUpPaymentIntentBody":{"allOf":[{"$ref":"#/components/schemas/TopUpBody"},{"type":"object","properties":{"amount":{"type":"integer","minimum":0,"exclusiveMinimum":true,"description":"Exact smallest-currency-unit amount shown in the current preview"},"credits":{"type":"integer","minimum":0,"exclusiveMinimum":true,"description":"Exact credit amount shown in the current preview"},"idempotencyKey":{"type":"string","format":"uuid","description":"Stable client-generated UUID for this payment attempt"}},"required":["amount","credits","idempotencyKey"]}],"example":{"priceId":"price_1TopUp","amount":10000,"credits":6000,"idempotencyKey":"5c5fe57b-19de-4b1e-a597-404534046dd6"}},"PlanChangePreviewResponse":{"type":"object","properties":{"currentPlan":{"type":"object","properties":{"priceId":{"type":"string"},"name":{"type":"string"},"credits":{"type":"integer","minimum":0,"exclusiveMinimum":true},"interval":{"type":"string","enum":["month","quarter","year"]},"amount":{"type":"integer","minimum":0,"exclusiveMinimum":true},"currency":{"type":"string"}},"required":["priceId","name","credits","interval","amount","currency"]},"targetPlan":{"type":"object","properties":{"priceId":{"type":"string"},"name":{"type":"string"},"credits":{"type":"integer","minimum":0,"exclusiveMinimum":true},"interval":{"type":"string","enum":["month","quarter","year"]},"amount":{"type":"integer","minimum":0,"exclusiveMinimum":true},"currency":{"type":"string"}},"required":["priceId","name","credits","interval","amount","currency"]},"timing":{"type":"string","enum":["immediate","period_end"]},"amountDue":{"type":"integer","minimum":0},"creditsAdded":{"type":"integer","minimum":0},"effectiveAt":{"type":"string","format":"date-time"},"nextBillingAt":{"type":"string","format":"date-time"},"paymentMethod":{"$ref":"#/components/schemas/SavedCard"},"prorationDate":{"type":"integer","minimum":0,"exclusiveMinimum":true}},"required":["currentPlan","targetPlan","timing","amountDue","creditsAdded","effectiveAt","nextBillingAt","paymentMethod","prorationDate"]},"PlanChangeBody":{"type":"object","properties":{"priceId":{"type":"string","description":"Listed recurring Stripe Price ID"}},"required":["priceId"],"example":{"priceId":"price_1ProfessionalMonthly"}},"ConfirmPlanChangeResponse":{"type":"object","properties":{"status":{"type":"string","enum":["applied","scheduled"]},"effectiveAt":{"type":"string","format":"date-time"},"creditsAdded":{"type":"integer","minimum":0}},"required":["status","effectiveAt","creditsAdded"]},"ConfirmPlanChangeBody":{"allOf":[{"$ref":"#/components/schemas/PlanChangeBody"},{"type":"object","properties":{"prorationDate":{"type":"integer","minimum":0,"exclusiveMinimum":true,"description":"Server-issued timestamp from the current plan-change preview"},"amountDue":{"type":"integer","minimum":0,"description":"Exact smallest-currency-unit amount shown in the current preview"},"idempotencyKey":{"type":"string","format":"uuid","description":"Stable client-generated UUID for this plan-change attempt"}},"required":["prorationDate","amountDue","idempotencyKey"]}],"example":{"priceId":"price_1ProfessionalMonthly","prorationDate":1788307200,"amountDue":2500,"idempotencyKey":"5c5fe57b-19de-4b1e-a597-404534046dd6"}},"RedeemBody":{"type":"object","properties":{"code":{"type":"string","minLength":1,"maxLength":200,"description":"The customer-facing promotion code from the redeem link","example":"WELCOME1000"},"successUrl":{"type":"string","format":"uri","description":"URL to redirect to after the offer is claimed"},"cancelUrl":{"type":"string","format":"uri","description":"URL to redirect to if the user backs out"}},"required":["code","successUrl","cancelUrl"]},"PortalResponse":{"type":"object","properties":{"url":{"type":"string","description":"Stripe Billing Portal URL — redirect the user here"}},"required":["url"]},"PortalBody":{"type":"object","properties":{"returnUrl":{"type":"string","format":"uri","description":"URL to redirect to after leaving the portal"},"flow":{"type":"string","enum":["payment_method_update"],"description":"Optional focused Customer Portal flow"}},"required":["returnUrl"]},"Subscription":{"type":"object","properties":{"id":{"type":"number"},"stripeSubscriptionId":{"type":"string"},"migratedFromSubscriptionId":{"type":"string","nullable":true,"description":"Stripe ID of the legacy subscription this one replaced during a plan migration, or null. When set, treat this subscription as the continuation of that legacy plan — e.g. don't surface the retired subscription's scheduled cancellation as if the user were losing their plan."},"stripePriceId":{"type":"string"},"status":{"type":"string"},"interval":{"type":"string","enum":["month","quarter","year"],"description":"How often the subscription is charged. `month` is charged and granted every month; `quarter` is charged once every 3 months and receives the whole quarter's credits immediately; `year` is charged once upfront for the year and receives the whole year's credits immediately."},"creditsPerPeriod":{"type":"number","description":"Credits granted per billing period: one month's worth on a monthly plan, the whole quarter's on a quarterly plan, the WHOLE YEAR's worth on an annual plan (each charged, and granted, once per period). Not a per-month figure — divide by 3 or 12 for the monthly equivalent.","example":60000},"currentPeriodEnd":{"type":"string","nullable":true},"cancelAtPeriodEnd":{"type":"boolean"},"pendingStripePriceId":{"type":"string","nullable":true},"pendingEffectiveAt":{"type":"string","nullable":true},"pausedAt":{"type":"string","nullable":true,"description":"When the plan was paused, or null when it runs normally. While paused Stripe raises no invoice and the credit expiry is frozen."},"pauseResumesAt":{"type":"string","nullable":true,"description":"When billing restarts by itself. Null when the plan is not paused."}},"required":["id","stripeSubscriptionId","migratedFromSubscriptionId","stripePriceId","status","interval","creditsPerPeriod","currentPeriodEnd","cancelAtPeriodEnd","pendingStripePriceId","pendingEffectiveAt","pausedAt","pauseResumesAt"]},"PauseSubscriptionResponse":{"type":"object","properties":{"stripeSubscriptionId":{"type":"string"},"pausedAt":{"type":"string","format":"date-time"},"resumesAt":{"type":"string","format":"date-time","description":"Stripe clears the pause by itself on this date — no action is needed to restart billing."}},"required":["stripeSubscriptionId","pausedAt","resumesAt"]},"SubscriptionPauseError":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string","enum":["no_active_subscription","pause_too_long","pause_limit_reached","already_paused","not_paused","forbidden","invalid_body"]},"nextEligibleAt":{"type":"string","nullable":true,"format":"date-time","description":"Only with `pause_limit_reached`: the first date a new pause is allowed."}},"required":["error","code"]},"PauseSubscriptionBody":{"type":"object","properties":{"resumesAt":{"type":"string","format":"date-time","description":"When billing restarts, ISO 8601. Absent takes the 6-month maximum, which is also the latest value accepted.","example":"2026-12-15T00:00:00.000Z"}},"example":{}},"ResumeSubscriptionResponse":{"type":"object","properties":{"stripeSubscriptionId":{"type":"string"},"resumedAt":{"type":"string","format":"date-time"},"nextBillingAt":{"type":"string","nullable":true,"format":"date-time","description":"End of the current period, when the next invoice is raised. Null when Stripe reports none."}},"required":["stripeSubscriptionId","resumedAt","nextBillingAt"]},"ResumeSubscriptionBody":{"type":"object","properties":{},"example":{}},"BillingInvoicePage":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/BillingInvoice"}},"hasMore":{"type":"boolean"},"nextCursor":{"type":"string","nullable":true}},"required":["data","hasMore","nextCursor"]},"BillingInvoice":{"type":"object","properties":{"id":{"type":"string"},"number":{"type":"string","nullable":true},"status":{"type":"string","nullable":true,"enum":["draft","open","paid","uncollectible","void",null]},"createdAt":{"type":"string"},"description":{"type":"string"},"total":{"type":"integer"},"currency":{"type":"string"},"hostedInvoiceUrl":{"type":"string","nullable":true,"format":"uri"},"invoicePdf":{"type":"string","nullable":true,"format":"uri"},"subscriptionId":{"type":"string","nullable":true,"description":"The subscription this invoice bills — joinable against GET /mailboxes/subscriptions rows. Null for one-time invoices."},"purpose":{"type":"string","enum":["mailbox","credits","other"],"description":"What the charge is for: 'mailbox' = mailbox infrastructure (first invoice also carries the one-time domain line), 'credits' = a credit plan, 'other' = anything else."}},"required":["id","number","status","createdAt","description","total","currency","hostedInvoiceUrl","invoicePdf","subscriptionId","purpose"]},"Team":{"type":"object","properties":{"team":{"type":"object","nullable":true,"properties":{"id":{"type":"number"},"name":{"type":"string","nullable":true},"clerkOrganizationId":{"type":"string"}},"required":["id","name","clerkOrganizationId"],"description":"Null when no team exists yet — invite someone to create one."},"role":{"type":"string","enum":["owner","admin","member"]},"members":{"type":"array","items":{"$ref":"#/components/schemas/TeamMember"}},"invitations":{"type":"array","items":{"$ref":"#/components/schemas/TeamInvitation"},"description":"Pending invitations. Empty for plain members — owners and admins manage them."}},"required":["team","role","members","invitations"]},"TeamMember":{"type":"object","properties":{"userId":{"type":"number","nullable":true,"description":"ColdIQ user id — null until they first sign in here."},"clerkUserId":{"type":"string"},"email":{"type":"string"},"name":{"type":"string","nullable":true},"role":{"type":"string","enum":["owner","admin","member"],"description":"'owner' is the billing anchor and cannot be removed or demoted; 'admin' manages members and billing; 'member' uses the workspace."},"joinedAt":{"type":"string"}},"required":["userId","clerkUserId","email","name","role","joinedAt"]},"TeamInvitation":{"type":"object","properties":{"id":{"type":"string"},"email":{"type":"string"},"role":{"type":"string","enum":["admin","member"]},"createdAt":{"type":"string"}},"required":["id","email","role","createdAt"]},"TeamError":{"type":"object","properties":{"error":{"type":"string"}},"required":["error"]},"TeamInviteBody":{"type":"object","properties":{"email":{"type":"string","format":"email"},"role":{"type":"string","enum":["admin","member"],"default":"member","description":"'admin' can manage members and billing; 'member' can only use the workspace."}},"required":["email"],"example":{"email":"michel@coldiq.com","role":"member"}},"TeamMemberRoleBody":{"type":"object","properties":{"role":{"type":"string","enum":["admin","member"]}},"required":["role"],"example":{"role":"admin"}},"TeamUsage":{"type":"object","properties":{"members":{"type":"array","items":{"type":"object","properties":{"userId":{"type":"number"},"email":{"type":"string"},"calls":{"type":"number"},"credits":{"type":"number"}},"required":["userId","email","calls","credits"]}},"totalCalls":{"type":"number"},"totalCredits":{"type":"number"}},"required":["members","totalCalls","totalCredits"]},"SlackConnection":{"type":"object","properties":{"connected":{"type":"boolean","description":"True only while a binding exists AND its Slack token is still good. A revoked binding reports false and keeps `connection`, so the panel can offer a reconnect."},"connection":{"type":"object","nullable":true,"properties":{"slackTeamId":{"type":"string","description":"Slack workspace id (the `T…` id)."},"workspaceName":{"type":"string"},"status":{"type":"string","enum":["active","revoked"]},"connectedAt":{"type":"string","description":"ISO-8601 timestamp of the install."},"connectedBy":{"$ref":"#/components/schemas/SlackConnectionInstaller"},"canDisconnect":{"type":"boolean","description":"Whether THIS caller may disconnect — true for the team owner and for the person who connected it."}},"required":["slackTeamId","workspaceName","status","connectedAt","connectedBy","canDisconnect"],"description":"Null when the team has never connected a workspace."}},"required":["connected","connection"]},"SlackConnectionInstaller":{"type":"object","nullable":true,"properties":{"userId":{"type":"number","nullable":true,"description":"ColdIQ user id of the person who ran the install."},"name":{"type":"string","nullable":true},"email":{"type":"string","nullable":true}},"required":["userId","name","email"],"description":"Null for an install made before this feature, which recorded no ColdIQ user."},"SlackConnectionError":{"type":"object","properties":{"error":{"type":"string"}},"required":["error"]},"ConnectionProviderSpec":{"type":"object","properties":{"key":{"type":"string"},"displayName":{"type":"string"},"mode":{"type":"string","enum":["integration","data"]},"fields":{"type":"array","items":{"$ref":"#/components/schemas/ConnectionProviderField"}}},"required":["key","displayName","mode","fields"]},"ConnectionProviderField":{"type":"object","properties":{"name":{"type":"string"},"label":{"type":"string"},"secret":{"type":"boolean"},"placeholder":{"type":"string"},"help":{"type":"string"}},"required":["name","label","secret"]},"Connection":{"type":"object","properties":{"provider":{"type":"string"},"displayName":{"type":"string"},"mode":{"type":"string","enum":["integration","data"]},"status":{"type":"string","enum":["valid","invalid","unchecked"]},"fallbackToColdiq":{"type":"boolean"},"lastValidatedAt":{"type":"string","nullable":true},"createdAt":{"type":"string"},"updatedAt":{"type":"string"}},"required":["provider","displayName","mode","status","fallbackToColdiq","lastValidatedAt","createdAt","updatedAt"]},"ConnectResult":{"type":"object","properties":{"provider":{"type":"string"},"status":{"type":"string","enum":["valid","invalid","unchecked"]},"detail":{"type":"string","nullable":true},"lastValidatedAt":{"type":"string","nullable":true}},"required":["provider","status","detail","lastValidatedAt"]},"ConnectionError":{"type":"object","properties":{"error":{"type":"string"}},"required":["error"]},"ConnectProviderBody":{"type":"object","properties":{"api_key":{"type":"string","minLength":1},"access_token":{"type":"string","minLength":1},"dsn":{"type":"string","minLength":1},"login":{"type":"string","minLength":1},"password":{"type":"string","minLength":1},"email":{"type":"string","minLength":1},"workspace_id":{"type":"string","minLength":1},"api_token":{"type":"string","minLength":1},"fallback_to_coldiq":{"type":"boolean"}},"example":{"api_key":"your-provider-api-key"}},"ConnectionSettingsBody":{"type":"object","properties":{"fallback_to_coldiq":{"type":"boolean"}},"required":["fallback_to_coldiq"],"example":{"fallback_to_coldiq":true}},"ChatListResponse":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/ChatConversation"}},"total":{"type":"number"},"page":{"type":"number"},"limit":{"type":"number"}},"required":["data","total","page","limit"]},"ChatConversation":{"type":"object","properties":{"id":{"type":"string"},"workspaceId":{"type":"string","nullable":true},"title":{"type":"string","nullable":true},"status":{"type":"string","enum":["active","archived"]},"modelProvider":{"type":"string","nullable":true},"model":{"type":"string","nullable":true},"lastMessageAt":{"type":"string"},"createdAt":{"type":"string"},"updatedAt":{"type":"string"}},"required":["id","workspaceId","title","status","modelProvider","model","lastMessageAt","createdAt","updatedAt"]},"ChatDetailResponse":{"allOf":[{"$ref":"#/components/schemas/ChatConversation"},{"type":"object","properties":{"messages":{"type":"array","items":{"$ref":"#/components/schemas/ChatMessage"}},"totalCreditsConsumed":{"type":"number"},"activeRun":{"type":"object","nullable":true,"properties":{"requestId":{"type":"string"},"startedAt":{"type":"string"},"lastActivityAt":{"type":"string","nullable":true}},"required":["requestId","startedAt","lastActivityAt"]}},"required":["messages","totalCreditsConsumed","activeRun"]}]},"ChatMessage":{"type":"object","properties":{"id":{"type":"number"},"clientMsgId":{"type":"string"},"role":{"type":"string","enum":["user","assistant"]},"contentText":{"type":"string"},"contentJson":{"nullable":true},"metadata":{"type":"object","properties":{"run":{"type":"object","properties":{"durationMs":{"type":"number"},"creditsConsumed":{"type":"number"},"inputTokens":{"type":"number"},"outputTokens":{"type":"number"},"cachedInputTokens":{"type":"number"},"noCacheInputTokens":{"type":"number"},"cacheWriteInputTokens":{"type":"number"},"textOutputTokens":{"type":"number"},"reasoningOutputTokens":{"type":"number"},"stepCount":{"type":"number"},"toolResultChars":{"type":"number"}},"required":["durationMs"]}},"required":["run"]},"requestId":{"type":"string","nullable":true},"finishReason":{"type":"string","nullable":true},"createdAt":{"type":"string"}},"required":["id","clientMsgId","role","contentText","requestId","finishReason","createdAt"]},"ChatError":{"type":"object","properties":{"error":{"type":"string"}},"required":["error"]},"ChatUpdateBody":{"type":"object","properties":{"title":{"type":"string","nullable":true,"maxLength":120},"status":{"type":"string","enum":["active","archived"]}},"example":{"title":"ColdIQ lead research","status":"archived"}},"Quota":{"type":"object","properties":{"credits":{"type":"number","description":"The live balance, in credits. The two counts below are this number divided by what a lookup costs."},"emailsLeft":{"type":"number","description":"Emails this balance buys at the TYPICAL rate, floored. An alternative to `phonesLeft`, not an addition to it. An estimate, not a floor: render it with \"approximately\", never as a guaranteed number of lookups."},"phonesLeft":{"type":"number","description":"Phone numbers this balance buys at the TYPICAL rate, floored. An alternative to `emailsLeft`, not an addition to it. An estimate, not a floor, and the wider one of the two: the phone waterfall runs 11, 21, 35, 35 and 119 credits, so a run of lookups that falls through to the dearest provider exhausts the balance well before this count. Render it with \"approximately\", never as a guaranteed number of lookups."},"creditsPerEmail":{"type":"number","description":"What one email lookup costs on the LEAD provider of its waterfall, the one a request reaches first and therefore pays on a typical find. Not a ceiling: a request that falls through to a dearer provider costs more. Resolved against the LIVE endpoint rates, unrounded, so this is the rate the reservation will actually take."},"creditsPerPhone":{"type":"number","description":"What one phone lookup costs on the LEAD provider of its waterfall, on the same terms as `creditsPerEmail`. The phone waterfall has the wider spread of the two, so the gap between this rate and a fall-through is larger. Resolved against the LIVE endpoint rates, unrounded, so this is the rate the reservation will actually take."},"renewsAt":{"type":"string","nullable":true,"description":"When the pool refills, ISO 8601. Null when nothing will refill it: no live subscription, one set to cancel at period end, whose period end is when the plan STOPS rather than when credits return, or a PAUSED plan, which raises no invoice and therefore grants no credits. The balance is then all there is."},"pausedUntil":{"type":"string","nullable":true,"description":"When a paused plan restarts by itself, ISO 8601. Null when the plan is not paused (and also when it is paused with no end date, which we never produce). While this is set, `renewsAt` is null, the balance stays usable, and the credit expiry is frozen."},"stripePriceId":{"type":"string","nullable":true,"description":"The live plan, or null. The plan NAME is deliberately absent: it lives on Stripe, the client already holds it from `GET /dashboard/billing/products`, and fetching it here would add a Stripe round trip to an endpoint the chat polls after every run."}},"required":["credits","emailsLeft","phonesLeft","creditsPerEmail","creditsPerPhone","renewsAt","pausedUntil","stripePriceId"]},"BuyMailboxDomainsBody":{"type":"object","properties":{"domains":{"type":"array","items":{"type":"string","minLength":4,"maxLength":253},"minItems":1,"maxItems":20}},"required":["domains"],"example":{"domains":["coldiq-outreach.com"]}},"CreateMailboxesBody":{"type":"object","properties":{"domain_id":{"type":"integer","minimum":0,"exclusiveMinimum":true},"mailboxes":{"type":"array","items":{"type":"object","properties":{"username":{"type":"string","minLength":1,"maxLength":120,"description":"Local part or full address on the chosen domain (e.g. \"michel\" or \"michel@coldiq-outreach.com\")"},"first_name":{"type":"string","minLength":1,"maxLength":60},"last_name":{"type":"string","minLength":1,"maxLength":60}},"required":["username","first_name","last_name"]},"minItems":1,"maxItems":50}},"required":["domain_id","mailboxes"],"example":{"domain_id":1,"mailboxes":[{"username":"michel","first_name":"Michel","last_name":"Lieben"}]}},"MicrosoftMailboxOrderBody":{"type":"object","properties":{"domain":{"type":"string","minLength":4,"maxLength":253},"is_purchase":{"type":"boolean","description":"true = buy the domain, false = transfer an existing one"},"mailbox_mode":{"type":"string","enum":["auto","manual"]},"full_name":{"type":"array","items":{"type":"string","minLength":3,"maxLength":120},"minItems":1,"maxItems":100,"description":"Names used to auto-generate the mailbox batch (mailbox_mode=auto)"},"mailboxes":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":120},"email":{"type":"string","format":"email"},"password":{"type":"string","minLength":8,"maxLength":24}},"required":["name","email","password"]},"description":"Exactly 100 mailboxes on the order domain, each with a password (mailbox_mode=manual)"},"inbox_provider_id":{"type":"integer","minimum":0,"exclusiveMinimum":true,"description":"Reuse a previously registered sequencer connection"},"sequencer_connection":{"type":"object","properties":{"sequencer":{"type":"string","enum":["instantly","smartlead","reachinbox","plusvibe","manyreach"]},"name":{"type":"string","maxLength":120},"api_key":{"type":"string"},"oauth_url":{"type":"string"},"username":{"type":"string"},"password":{"type":"string"},"workspace_id":{"type":"string"}},"required":["sequencer"],"description":"Register a new sequencer connection the mailboxes get uploaded into"}},"required":["domain","is_purchase","mailbox_mode"],"example":{"domain":"coldiq-outreach.com","is_purchase":true,"mailbox_mode":"auto","full_name":["Michel Lieben"]}},"MailboxRenewalState":{"type":"object","properties":{"cancelAtPeriodEnd":{"type":"boolean"},"currentPeriodEnd":{"type":"string","nullable":true,"description":"When billing stops (cancelAtPeriodEnd) or next renews, ISO"}},"required":["cancelAtPeriodEnd","currentPeriodEnd"]},"UserProfile":{"type":"object","properties":{"id":{"type":"number"},"email":{"type":"string"},"name":{"type":"string","nullable":true},"createdAt":{"type":"string"},"hasRedeemedOffer":{"type":"boolean","description":"Whether the user has claimed at least one once-per-user promo pack (invitation/offer code). Drives the frontend's \"Have an invitation code?\" prompts, which hide once this is true."},"freeCreditStatus":{"type":"string","enum":["pending","eligible","withheld"]},"team":{"type":"object","nullable":true,"properties":{"id":{"type":"number"},"role":{"type":"string","enum":["owner","admin","member"]},"billingUserId":{"type":"number"}},"required":["id","role","billingUserId"],"description":"The team context this session resolved to, or null in personal context. This is the backend's verdict, not the Clerk claim: an active Clerk organization the marketplace does not know as a team resolves to null (personal), and the UI must gate writes on THIS, never on the raw claim."},"clerkOrganizationId":{"type":"string","nullable":true,"description":"The Clerk organization the session had active when `team` was resolved, or null. A client compares it with its own active organization to know whether `team` still describes the current session. `team: null` with an organization here means the organization is not a marketplace team and the session runs as personal."},"impersonating":{"type":"boolean","description":"True when an admin is viewing this account read-only (Clerk actor token or ColdIQ support session). Every write is refused."},"productSurface":{"type":"string","enum":["marketplace","lite"],"description":"Which product this account bought. `marketplace` is the full product. `lite` is the Find Anything surface: the chat, its lookup history, billing and settings, and nothing else. The frontend renders the matching shell, but this is a convenience only: the server refuses the withheld routes on its own, so a lite user who types a blocked URL gets a 403, not a page."},"acquisitionChannel":{"type":"string","nullable":true,"enum":["tiktok","instagram","hugo","luckyyou",null],"description":"Where a lite buyer came from. Attribution only, kept after an upgrade. Null for every account that did not arrive through a lite landing page."}},"required":["id","email","name","createdAt","hasRedeemedOffer","freeCreditStatus","team","clerkOrganizationId","impersonating","productSurface","acquisitionChannel"]},"ApiKeyInfo":{"type":"object","properties":{"id":{"type":"number"},"prefix":{"type":"string"},"key":{"type":"string","nullable":true,"description":"Raw API key, decrypted for display. Null for legacy keys created before keys were stored recoverably."},"name":{"type":"string","nullable":true},"isActive":{"type":"boolean"},"createdAt":{"type":"string"}},"required":["id","prefix","key","name","isActive","createdAt"]},"ApiKeyCreated":{"type":"object","properties":{"id":{"type":"number"},"key":{"type":"string","description":"Raw API key — shown only once"},"prefix":{"type":"string"},"name":{"type":"string","nullable":true},"createdAt":{"type":"string"}},"required":["id","key","prefix","name","createdAt"]},"CreateApiKeyBody":{"type":"object","properties":{"name":{"type":"string","maxLength":100}}},"DashboardCredits":{"type":"object","properties":{"balance":{"type":"number"},"usedThisMonth":{"type":"number"},"context":{"type":"string","enum":["personal","team"],"description":"'team' means these are the team owner's credits, which your calls spend."},"teamId":{"type":"number","nullable":true},"freeCreditStatus":{"type":"string","enum":["pending","eligible","withheld"]}},"required":["balance","usedThisMonth","context","teamId","freeCreditStatus"]},"UsageResponse":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/UsageEntry"}},"total":{"type":"number"},"page":{"type":"number"},"limit":{"type":"number"}},"required":["data","total","page","limit"]},"UsageEntry":{"type":"object","properties":{"id":{"type":"number"},"provider":{"type":"string","nullable":true},"endpointPath":{"type":"string","nullable":true},"endpointName":{"type":"string","nullable":true},"responseStatus":{"type":"number","nullable":true},"outcome":{"type":"string","nullable":true},"creditsDeducted":{"type":"number","nullable":true},"creditsReserved":{"type":"number","nullable":true},"latencyMs":{"type":"number","nullable":true},"resultCount":{"type":"number","nullable":true},"createdAt":{"type":"string"}},"required":["id","provider","endpointPath","endpointName","responseStatus","outcome","creditsDeducted","creditsReserved","latencyMs","resultCount","createdAt"]},"UsageSummary":{"type":"object","properties":{"from":{"type":"string","description":"Start of the range (ISO 8601, inclusive)"},"to":{"type":"string","description":"End of the range (ISO 8601, inclusive)"},"totalCredits":{"type":"number"},"totalCalls":{"type":"number"},"byProvider":{"type":"array","items":{"$ref":"#/components/schemas/ProviderBreakdown"}}},"required":["from","to","totalCredits","totalCalls","byProvider"]},"ProviderBreakdown":{"type":"object","properties":{"provider":{"type":"string"},"credits":{"type":"number"},"calls":{"type":"number"},"percentage":{"type":"number","description":"Share of total credits consumed in the range (0–100, 1 decimal)"}},"required":["provider","credits","calls","percentage"]},"UsageSummaryWindows":{"type":"object","properties":{"windows":{"type":"object","properties":{"7":{"$ref":"#/components/schemas/UsageSummary"},"30":{"$ref":"#/components/schemas/UsageSummary"},"90":{"$ref":"#/components/schemas/UsageSummary"}},"required":["7","30","90"]}},"required":["windows"]},"PublicCheckoutResponse":{"type":"object","properties":{"url":{"type":"string","description":"Stripe Checkout URL — redirect the buyer here"}},"required":["url"]},"CampaignCheckoutBody":{"type":"object","properties":{"priceId":{"type":"string","minLength":1,"maxLength":255,"description":"Stripe Price ID of a campaign plan — the product must be flagged for public checkout","example":"price_1UAU7CBW4eI3Lv8tsoDNtPKs"},"utmSource":{"type":"string","maxLength":64,"description":"Where the visitor came from. Recorded as the account's acquisition channel when it matches a known channel, and ignored otherwise. It is attribution, never a permission, and an unknown value is dropped rather than stored. SELF-DECLARED: this endpoint is unauthenticated and nothing verifies the claim, so the value says what the buyer asserts, not where they came from. It must not gate a price, a grant, or a payout without being signed first.","example":"tiktok"}},"required":["priceId"],"example":{"priceId":"price_1UAU7CBW4eI3Lv8tsoDNtPKs","utmSource":"tiktok"}}},"parameters":{}},"paths":{"/v1/me/credits":{"get":{"tags":["Account"],"summary":"Get credit balance","description":"Current credit balance, month-to-date usage, and the retail USD price of one credit. Read `usd_per_credit` before you budget a campaign — it is not a round number, and an assumed rate has been wrong by more than 40%.","responses":{"200":{"description":"Current credit balance and usage for the current calendar month","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreditsResponse"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/feedback":{"post":{"tags":["Account"],"summary":"Send feedback","description":"Report a bug, a surprise, a missing capability, or anything else about this API. FREE — costs 0 credits. Written straight to ColdIQ and read by the people who maintain the endpoints; there is no read route, so a report is visible to ColdIQ and to nobody else. If you are an agent that has just finished a run, this is the moment to use it: you still hold the context on what broke, which nobody can reconstruct later.","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","minLength":1,"maxLength":8000,"description":"What happened, in your own words. Say what you expected, what you got, and what you had to do instead — the detail an issue tracker would ask for.","example":"A no-email result on /v1/email/find comes back as 404, which my spreadsheet tool paints identically to a rate limit. I had to classify 311 red cells by hand to find the 173 that were real failures."},"endpoint":{"type":"string","maxLength":200,"description":"What the report is about: a route path, a GTM verb, or an MCP tool name. Free text — name something that does not exist yet if that is the point.","example":"/v1/email/find"},"severity":{"type":"string","enum":["low","normal","high","blocker"],"description":"How much it hurt. Omit it rather than guess — no value means \"not stated\", which is not the same as \"low\".","example":"high"},"metadata":{"type":"object","additionalProperties":{"nullable":true},"description":"Any context worth keeping with the report: a run id, row counts, a request id you saw fail. Flat scalars only — nested objects and arrays are dropped, strings are truncated, and the key count is capped.","example":{"rows":416,"errored_cells":311}}},"required":["message"],"additionalProperties":false,"example":{"message":"A no-email result on /v1/email/find comes back as 404, which my spreadsheet tool paints identically to a rate limit. I had to classify 311 red cells by hand to find the 173 that were real failures.","endpoint":"/v1/email/find","severity":"high"}}}}},"responses":{"201":{"description":"Feedback stored.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FeedbackResponse"}}}},"400":{"description":"Invalid body","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"413":{"description":"Body too large","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/exa/search":{"post":{"summary":"Search","tags":["Exa"],"description":"Search the web with current Exa search modes. The charge is estimated from the requested mode, result count, and content options. Credits: flat charge per call regardless of how many rows come back. Call get_endpoint_details for the live rate. Managed alternative: `POST /v1/web/search` (Web Search) runs this provider inside a ranked waterfall with charge-on-success billing and one normalized response shape, and falls back to the other providers for this capability on a miss. Call this endpoint directly when you specifically want this provider and no fallback.","x-credits-cost":{"amount":1.05,"unit":"call","billing_shape":"per_call"},"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"query":{"type":"string","minLength":1,"description":"Search query."},"type":{"type":"string","enum":["instant","fast","auto","deep-lite","deep","deep-reasoning"],"description":"Search mode. Defaults to auto."},"category":{"type":"string","enum":["company","publication","news","personal site","financial report","people"]},"numResults":{"type":"integer","minimum":1,"maximum":100},"additionalQueries":{"type":"array","items":{"type":"string","minLength":1},"minItems":1,"maxItems":10},"includeDomains":{"type":"array","items":{"type":"string","minLength":1},"maxItems":1200},"excludeDomains":{"type":"array","items":{"type":"string","minLength":1},"maxItems":1200},"startPublishedDate":{"type":"string","format":"date-time"},"endPublishedDate":{"type":"string","format":"date-time"},"userLocation":{"type":"string","pattern":"^[A-Za-z]{2}$"},"moderation":{"type":"boolean"},"contents":{"type":"object","properties":{"text":{"anyOf":[{"type":"boolean"},{"type":"object","properties":{"maxCharacters":{"type":"integer","minimum":1,"maximum":10000},"includeHtmlTags":{"type":"boolean"},"verbosity":{"type":"string","enum":["compact","standard","full"]},"includeSections":{"type":"array","items":{"type":"string","enum":["header","navigation","banner","body","sidebar","footer","metadata"]}},"excludeSections":{"type":"array","items":{"type":"string","enum":["header","navigation","banner","body","sidebar","footer","metadata"]}}},"additionalProperties":false}]},"highlights":{"anyOf":[{"type":"boolean"},{"type":"object","properties":{"query":{"type":"string","minLength":1},"maxCharacters":{"type":"integer","minimum":1,"maximum":10000}},"additionalProperties":false}]},"summary":{"anyOf":[{"type":"boolean"},{"type":"object","properties":{"query":{"type":"string","minLength":1},"schema":{"type":"object","additionalProperties":{"nullable":true}}},"additionalProperties":false}]},"livecrawlTimeout":{"type":"integer","minimum":1,"maximum":90000},"maxAgeHours":{"type":"integer","minimum":-1,"maximum":720},"subpages":{"type":"integer","minimum":0,"maximum":100},"subpageTarget":{"anyOf":[{"type":"string","minLength":1,"maxLength":100},{"type":"array","items":{"type":"string","minLength":1,"maxLength":100},"maxItems":100}]},"extras":{"type":"object","properties":{"links":{"type":"integer","minimum":0,"maximum":1000},"imageLinks":{"type":"integer","minimum":0,"maximum":1000},"richImageLinks":{"type":"integer","minimum":0,"maximum":1000},"richLinks":{"type":"integer","minimum":0,"maximum":1000},"codeBlocks":{"type":"integer","minimum":0,"maximum":1000}},"additionalProperties":false}},"additionalProperties":false},"outputSchema":{"type":"object","additionalProperties":{"nullable":true}},"systemPrompt":{"type":"string","minLength":1},"stream":{"type":"boolean"}},"required":["query"],"additionalProperties":false,"title":"ExaSearchRequest","example":{"query":"Latest ColdIQ product updates","type":"auto","numResults":10,"contents":{"highlights":true}}}}}},"responses":{"200":{"description":"Search results","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ExaSearchResponse"}},"text/event-stream":{"schema":{"$ref":"#/components/schemas/ExaSearchResponse"}}}},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/exa/contents":{"post":{"summary":"Get Contents","tags":["Exa"],"description":"Get one or more content types for 1 to 100 Exa document IDs or URLs. Credits: bills only for returned results, per content page; reserved up-front for the requested size and settled to the actual count (see X-ColdIQ-Credits-Charged). Call get_endpoint_details for the live rate. Managed alternative: `POST /v1/web/fetch` (Fetch Page Content) runs this provider inside a ranked waterfall with charge-on-success billing and one normalized response shape, and falls back to the other providers for this capability on a miss. Call this endpoint directly when you specifically want this provider and no fallback.","x-credits-cost":{"amount":1.05,"unit":"content page","billing_shape":"per_result"},"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"text":{"anyOf":[{"type":"boolean"},{"type":"object","properties":{"maxCharacters":{"type":"integer","minimum":1,"maximum":10000},"includeHtmlTags":{"type":"boolean"},"verbosity":{"type":"string","enum":["compact","standard","full"]},"includeSections":{"type":"array","items":{"type":"string","enum":["header","navigation","banner","body","sidebar","footer","metadata"]}},"excludeSections":{"type":"array","items":{"type":"string","enum":["header","navigation","banner","body","sidebar","footer","metadata"]}}},"additionalProperties":false}]},"highlights":{"anyOf":[{"type":"boolean"},{"type":"object","properties":{"query":{"type":"string","minLength":1},"maxCharacters":{"type":"integer","minimum":1,"maximum":10000}},"additionalProperties":false}]},"summary":{"anyOf":[{"type":"boolean"},{"type":"object","properties":{"query":{"type":"string","minLength":1},"schema":{"type":"object","additionalProperties":{"nullable":true}}},"additionalProperties":false}]},"livecrawlTimeout":{"type":"integer","minimum":1,"maximum":90000},"maxAgeHours":{"type":"integer","minimum":-1,"maximum":720},"subpages":{"type":"integer","minimum":0,"maximum":100},"subpageTarget":{"anyOf":[{"type":"string","minLength":1,"maxLength":100},{"type":"array","items":{"type":"string","minLength":1,"maxLength":100},"maxItems":100}]},"extras":{"type":"object","properties":{"links":{"type":"integer","minimum":0,"maximum":1000},"imageLinks":{"type":"integer","minimum":0,"maximum":1000},"richImageLinks":{"type":"integer","minimum":0,"maximum":1000},"richLinks":{"type":"integer","minimum":0,"maximum":1000},"codeBlocks":{"type":"integer","minimum":0,"maximum":1000}},"additionalProperties":false},"ids":{"type":"array","items":{"type":"string","minLength":1},"minItems":1,"maxItems":100,"description":"Exa document IDs or URLs."},"urls":{"type":"array","items":{"type":"string","format":"uri"},"minItems":1,"maxItems":100,"description":"URLs to retrieve."}},"additionalProperties":false,"title":"ExaContentsRequest","example":{"urls":["https://coldiq.com"],"text":true}}}}},"responses":{"200":{"description":"Page contents","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ExaContentsResponse"}}}},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/exa/answer":{"post":{"summary":"Answer","tags":["Exa"],"description":"Generate a cited answer, with optional structured JSON or Server-Sent Events output. Credits: flat charge per call regardless of how many rows come back. Call get_endpoint_details for the live rate.","x-credits-cost":{"amount":10.5,"unit":"call","billing_shape":"per_call"},"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"query":{"type":"string","minLength":1,"description":"Question to answer."},"stream":{"type":"boolean"},"text":{"type":"boolean"},"outputSchema":{"type":"object","additionalProperties":{"nullable":true}}},"required":["query"],"additionalProperties":false,"title":"ExaAnswerRequest","example":{"query":"What does ColdIQ help revenue teams automate?"}}}}},"responses":{"200":{"description":"Generated answer","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ExaAnswerResponse"}},"text/event-stream":{"schema":{"$ref":"#/components/schemas/ExaAnswerResponse"}}}},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/exa/agent/runs":{"post":{"summary":"Create a run","tags":["Exa"],"description":"Create an asynchronous Exa Agent run. ColdIQ defaults to medium effort and reserves the effort limit until the run ends. Credits: flat charge per call regardless of how many rows come back. Call get_endpoint_details for the live rate.","x-credits-cost":{"amount":21,"unit":"run","billing_shape":"per_call"},"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"query":{"type":"string","minLength":1},"systemPrompt":{"type":"string","minLength":1},"input":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","additionalProperties":{"nullable":true}}},"exclusion":{"type":"array","items":{"type":"object","additionalProperties":{"nullable":true}}}},"additionalProperties":false},"outputSchema":{"type":"object","nullable":true,"additionalProperties":{"nullable":true}},"effort":{"type":"string","enum":["minimal","low","medium","high","xhigh"],"default":"medium"},"previousRunId":{"type":"string","minLength":1},"metadata":{"type":"object","additionalProperties":{"type":"string"}}},"required":["query"],"additionalProperties":false,"title":"ExaAgentCreateRequest","example":{"query":"Summarize the latest public information about ColdIQ.","effort":"medium"}}}}},"responses":{"201":{"description":"Run created","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ExaAgentResponse"}}}},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"404":{"description":"Run not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Run is active","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Agent capacity reached","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}},"get":{"summary":"List runs","tags":["Exa"],"description":"List only Exa Agent runs owned by the authenticated ColdIQ user. Credits: free.","x-credits-cost":{"amount":0,"unit":"call","billing_shape":"per_call"},"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"integer","minimum":1,"maximum":100},"required":false,"name":"limit","in":"query"},{"schema":{"type":"string","minLength":1},"required":false,"name":"cursor","in":"query"}],"responses":{"200":{"description":"Owned runs","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ExaAgentListResponse"}}}},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"404":{"description":"Run not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Run is active","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Agent capacity reached","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/exa/agent/runs/{id}":{"get":{"summary":"Get a run","tags":["Exa"],"x-credits-cost":{"amount":0,"unit":"call","billing_shape":"per_call"},"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","minLength":1},"required":true,"name":"id","in":"path"}],"responses":{"200":{"description":"Run","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ExaAgentResponse"}}}},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"404":{"description":"Run not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Run is active","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Agent capacity reached","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"description":"Credits: free.","x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}},"delete":{"summary":"Delete a run","tags":["Exa"],"x-credits-cost":{"amount":0,"unit":"call","billing_shape":"per_call"},"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","minLength":1},"required":true,"name":"id","in":"path"}],"responses":{"200":{"description":"Run deleted","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ExaAgentResponse"}}}},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"404":{"description":"Run not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Run is active","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Agent capacity reached","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"description":"Credits: free.","x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/exa/agent/runs/{id}/cancel":{"post":{"summary":"Cancel a run","tags":["Exa"],"x-credits-cost":{"amount":0,"unit":"call","billing_shape":"per_call"},"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","minLength":1},"required":true,"name":"id","in":"path"}],"responses":{"200":{"description":"Cancelled run","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ExaAgentResponse"}}}},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"404":{"description":"Run not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Run is active","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Agent capacity reached","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"description":"Credits: free.","x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/exa/agent/runs/{id}/events":{"get":{"summary":"List run events","tags":["Exa"],"description":"List stored events or request an SSE replay with Accept: text/event-stream. Credits: free.","x-credits-cost":{"amount":0,"unit":"call","billing_shape":"per_call"},"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","minLength":1},"required":true,"name":"id","in":"path"},{"schema":{"type":"integer","minimum":1,"maximum":100},"required":false,"name":"limit","in":"query"},{"schema":{"type":"string","minLength":1},"required":false,"name":"cursor","in":"query"}],"responses":{"200":{"description":"Run events","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ExaAgentEventsResponse"}},"text/event-stream":{"schema":{"$ref":"#/components/schemas/ExaAgentEventsResponse"}}}},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"404":{"description":"Run not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Run is active","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Agent capacity reached","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/fullenrich/contact/enrich/bulk":{"post":{"summary":"Enrich Contacts In Bulk","description":"Submit up to 100 contacts for enrichment. Returns an `enrichment_id` immediately — results are delivered asynchronously via webhook and stored for retrieval via GET. Credits are reserved upfront (worst-case) and the unused portion is refunded when results arrive; the rate differs per requested field (work email, personal email, phone number) — call get_endpoint_details for the live rates. Credits: variable per contact, charged by which fields you request (contact.emails, contact.phones, contact.personal_emails). Reserved up-front, settled to actual (see X-ColdIQ-Credits-Charged). Call get_endpoint_details for the live rate. Managed alternative: `POST /v1/phone/find` (Find Phone) runs this provider inside a ranked waterfall with charge-on-success billing and one normalized response shape, and falls back to the other providers for this capability on a miss. Call this endpoint directly when you specifically want this provider and no fallback.","tags":["FullEnrich"],"x-credits-cost":{"unit":"contact","rates":{"contact.emails":14,"contact.phones":119,"contact.personal_emails":35},"billing_shape":"per_result"},"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BulkEnrichRequest"}}}},"responses":{"200":{"description":"Enrichment job accepted. Credits reserved upfront; unused credits refunded when results arrive.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BulkEnrichResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/fullenrich/contact/enrich/bulk/{enrichmentId}":{"get":{"summary":"Get Bulk Enrich Results","description":"Retrieve the result of a bulk enrichment job. Returns stored results instantly for completed jobs. For in-progress jobs, proxies to FullEnrich to get current status. Credits: flat charge per call regardless of how many rows come back. Call get_endpoint_details for the live rate.","tags":["FullEnrich"],"x-credits-cost":{"amount":11.63,"unit":"call","billing_shape":"per_call"},"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","format":"uuid"},"required":true,"name":"enrichmentId","in":"path"}],"responses":{"200":{"description":"Job result","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BulkEnrichResult"}}}},"202":{"description":"Job still in progress","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BulkEnrichResult"}}}},"404":{"description":"Job not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"410":{"description":"Job expired — credits have been refunded, please resubmit","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/fullenrich/contact/reverse/email/bulk":{"post":{"summary":"Reverse Contact Lookup In Bulk","description":"Submit up to 100 emails for reverse lookup. Returns an `enrichment_id` immediately — results are delivered asynchronously via webhook and stored for retrieval via GET. Credits: bills only for returned results, per contact; reserved up-front for the requested size and settled to the actual count (see X-ColdIQ-Credits-Charged). Call get_endpoint_details for the live rate.","tags":["FullEnrich"],"x-credits-cost":{"amount":11.63,"unit":"contact","billing_shape":"per_result"},"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BulkReverseEmailRequest"}}}},"responses":{"200":{"description":"Lookup job accepted. 1 credit reserved per email; refunded for any not processed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BulkReverseEmailResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/fullenrich/contact/reverse/email/bulk/{enrichmentId}":{"get":{"summary":"Get Bulk Reverse Email Results","description":"Retrieve the result of a bulk reverse email lookup. Returns stored results instantly for completed jobs. For in-progress jobs, proxies to FullEnrich to get current status. Credits: flat charge per call regardless of how many rows come back. Call get_endpoint_details for the live rate.","tags":["FullEnrich"],"x-credits-cost":{"amount":11.63,"unit":"call","billing_shape":"per_call"},"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","format":"uuid"},"required":true,"name":"enrichmentId","in":"path"}],"responses":{"200":{"description":"Lookup result","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BulkReverseEmailResult"}}}},"202":{"description":"Job still in progress","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BulkReverseEmailResult"}}}},"404":{"description":"Job not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"410":{"description":"Job expired — credits have been refunded, please resubmit","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/fullenrich/people/search":{"post":{"summary":"Search people","description":"Synchronous people search with filter-based queries. Credits are reserved upfront based on the requested `limit` and settled immediately once the actual cost is returned by FullEnrich in `metadata.credits`. Credits: bills only for returned results, per result; reserved up-front for the requested size and settled to the actual count (see X-ColdIQ-Credits-Charged). Call get_endpoint_details for the live rate. Managed alternative: `POST /v1/people/search` (Find People) runs this provider inside a ranked waterfall with charge-on-success billing and one normalized response shape, and falls back to the other providers for this capability on a miss. Call this endpoint directly when you specifically want this provider and no fallback.","tags":["FullEnrich"],"x-credits-cost":{"amount":11.63,"unit":"result","billing_shape":"per_result"},"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PeopleSearchRequest"}}}},"responses":{"200":{"description":"Search results with actual credit cost in metadata.credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PeopleSearchResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/fullenrich/company/search":{"post":{"summary":"Search company","description":"Synchronous company search with filter-based queries. Credits are reserved upfront based on the requested `limit` and settled immediately once the actual cost is returned by FullEnrich in `metadata.credits`. Credits: bills only for returned results, per result; reserved up-front for the requested size and settled to the actual count (see X-ColdIQ-Credits-Charged). Call get_endpoint_details for the live rate. Managed alternatives: `POST /v1/company/enrich` (Enrich Company) and `POST /v1/companies/search` (Search Companies) run this provider inside a ranked waterfall with charge-on-success billing and one normalized response shape, and fall back to the other providers for this capability on a miss. Call this endpoint directly when you specifically want this provider and no fallback.","tags":["FullEnrich"],"x-credits-cost":{"amount":11.63,"unit":"result","billing_shape":"per_result"},"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CompanySearchRequest"}}}},"responses":{"200":{"description":"Search results with actual credit cost in metadata.credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CompanySearchResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/predictleads/companies/{idOrDomain}":{"get":{"summary":"Retrieve Company","description":"Retrieve a company by ID or domain. Credits: flat charge per call regardless of how many rows come back. Call get_endpoint_details for the live rate.","x-credits-cost":{"unit":"call","amount":2.51,"billing_shape":"per_call"},"tags":["PredictLeads"],"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","example":"coldiq.com","description":"Company ID (UUID) or domain (e.g. coldiq.com)"},"required":true,"description":"Company ID (UUID) or domain (e.g. coldiq.com)","name":"idOrDomain","in":"path"}],"responses":{"200":{"description":"PredictLeads API response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PredictLeadsResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/predictleads/discover/companies":{"get":{"summary":"Retrieve Companies","description":"Discover companies using optional firmographic filters. Credits: bills only for returned results, per result; reserved up-front for the requested size and settled to the actual count (see X-ColdIQ-Credits-Charged). Call get_endpoint_details for the live rate. Managed alternative: `POST /v1/companies/search` (Search Companies) runs this provider inside a ranked waterfall with charge-on-success billing and one normalized response shape, and falls back to the other providers for this capability on a miss. Call this endpoint directly when you specifically want this provider and no fallback.","x-credits-cost":{"unit":"result","amount":2.51,"billing_shape":"per_result"},"tags":["PredictLeads"],"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","example":"United States","description":"Country or region to filter companies by"},"required":false,"description":"Country or region to filter companies by","name":"location","in":"query"},{"schema":{"type":"string","example":"11-50,51-200","description":"Comma-separated company size ranges. Valid values: 1, 2-10, 11-50, 51-200, 201-500, 501-1000, 1001-5000, 5001-10000, 10001+"},"required":false,"description":"Comma-separated company size ranges. Valid values: 1, 2-10, 11-50, 51-200, 201-500, 501-1000, 1001-5000, 5001-10000, 10001+","name":"sizes","in":"query"},{"schema":{"type":"string","example":"541511,541512"},"required":false,"name":"naics_codes","in":"query"},{"schema":{"type":"string","example":"Software"},"required":false,"name":"industry","in":"query"},{"schema":{"type":"number","nullable":true,"minimum":0,"example":1000000},"required":false,"name":"revenue_range_low","in":"query"},{"schema":{"type":"number","nullable":true,"minimum":0,"example":50000000},"required":false,"name":"revenue_range_high","in":"query"},{"schema":{"type":"integer","minimum":1,"example":1},"required":false,"name":"page","in":"query"},{"schema":{"type":"integer","minimum":1,"maximum":1000,"example":100},"required":false,"name":"limit","in":"query"}],"responses":{"200":{"description":"PredictLeads API response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PredictLeadsResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/predictleads/companies/{companyIdOrDomain}/similar_companies":{"get":{"summary":"Retrieve company's Similar Companies","description":"Returns companies similar to the given company. Credits: bills only for returned results, per result; reserved up-front for the requested size and settled to the actual count (see X-ColdIQ-Credits-Charged). Call get_endpoint_details for the live rate.","x-credits-cost":{"unit":"result","amount":2.51,"billing_shape":"per_result"},"tags":["PredictLeads"],"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","example":"coldiq.com","description":"Company ID (UUID) or domain"},"required":true,"description":"Company ID (UUID) or domain","name":"companyIdOrDomain","in":"path"},{"schema":{"type":"integer","minimum":1,"maximum":50,"example":5,"description":"Max results (max: 50)"},"required":false,"description":"Max results (max: 50)","name":"limit","in":"query"}],"responses":{"200":{"description":"PredictLeads API response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PredictLeadsResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/predictleads/companies/{companyIdOrDomain}/job_openings":{"get":{"summary":"Retrieve company's Job Openings","description":"Returns job openings for the given company. Credits: flat charge per call regardless of how many rows come back. Call get_endpoint_details for the live rate.","x-credits-cost":{"unit":"call","amount":2.51,"billing_shape":"per_call"},"tags":["PredictLeads"],"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","example":"coldiq.com","description":"Company ID (UUID) or domain"},"required":true,"description":"Company ID (UUID) or domain","name":"companyIdOrDomain","in":"path"},{"schema":{"type":"boolean"},"required":false,"name":"active_only","in":"query"},{"schema":{"type":"boolean"},"required":false,"name":"not_closed","in":"query"},{"schema":{"type":"string","example":"2024-09-25"},"required":false,"name":"first_seen_at_from","in":"query"},{"schema":{"type":"string","example":"2024-09-25"},"required":false,"name":"first_seen_at_until","in":"query"},{"schema":{"type":"string","example":"2024-09-25"},"required":false,"name":"last_seen_at_from","in":"query"},{"schema":{"type":"string","example":"2024-09-25"},"required":false,"name":"last_seen_at_until","in":"query"},{"schema":{"type":"boolean"},"required":false,"name":"with_description_only","in":"query"},{"schema":{"type":"boolean"},"required":false,"name":"with_location_only","in":"query"},{"schema":{"type":"string","description":"Comma-separated job categories. Valid values: administration, consulting, data_analysis, design, directors, education, engineering, finance, healthcare_services, human_resources, information_technology, internship, legal, management, marketing, military_and_protective_services, operations, purchasing, product_management, quality_assurance, real_estate, research, sales, software_development, support, manual_work, food"},"required":false,"description":"Comma-separated job categories. Valid values: administration, consulting, data_analysis, design, directors, education, engineering, finance, healthcare_services, human_resources, information_technology, internship, legal, management, marketing, military_and_protective_services, operations, purchasing, product_management, quality_assurance, real_estate, research, sales, software_development, support, manual_work, food","name":"categories","in":"query"},{"schema":{"type":"integer","minimum":1,"example":1,"description":"Page number (default: 1)"},"required":false,"description":"Page number (default: 1)","name":"page","in":"query"},{"schema":{"type":"integer","minimum":1,"maximum":1000,"example":100,"description":"Results per page (default: 100, max: 1000)"},"required":false,"description":"Results per page (default: 100, max: 1000)","name":"limit","in":"query"}],"responses":{"200":{"description":"PredictLeads API response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PredictLeadsResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/predictleads/job_openings/{id}":{"get":{"summary":"Retrieve a single Job Opening by ID","description":"Retrieve a single job opening by UUID. Credits: flat charge per call regardless of how many rows come back. Call get_endpoint_details for the live rate.","x-credits-cost":{"unit":"call","amount":2.51,"billing_shape":"per_call"},"tags":["PredictLeads"],"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","format":"uuid","example":"a0383c53-8142-5e7c-8ca3-9980289a3ccc"},"required":true,"name":"id","in":"path"}],"responses":{"200":{"description":"PredictLeads API response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PredictLeadsResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/predictleads/discover/job_openings":{"get":{"summary":"Retrieve a list of Job Openings","description":"Discover job openings filtered by O*NET codes and/or location. Credits: bills only for returned results, per result; reserved up-front for the requested size and settled to the actual count (see X-ColdIQ-Credits-Charged). Call get_endpoint_details for the live rate.","x-credits-cost":{"unit":"result","amount":2.51,"billing_shape":"per_result"},"tags":["PredictLeads"],"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","example":"17-2071.00,15-1254.00","description":"Comma-separated O*NET codes"},"required":false,"description":"Comma-separated O*NET codes","name":"onet_codes","in":"query"},{"schema":{"type":"string","example":"United States"},"required":false,"name":"location","in":"query"},{"schema":{"type":"boolean"},"required":false,"name":"active_only","in":"query"},{"schema":{"type":"string","example":"2026-07-01"},"required":false,"name":"found_at_from","in":"query"},{"schema":{"type":"string","example":"senior,executive"},"required":false,"name":"seniority","in":"query"},{"schema":{"type":"integer","minimum":1,"example":1,"description":"Page number (default: 1)"},"required":false,"description":"Page number (default: 1)","name":"page","in":"query"},{"schema":{"type":"integer","minimum":1,"maximum":1000,"example":100,"description":"Results per page (default: 100, max: 1000)"},"required":false,"description":"Results per page (default: 100, max: 1000)","name":"limit","in":"query"}],"responses":{"200":{"description":"PredictLeads API response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PredictLeadsResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/predictleads/companies/{companyIdOrDomain}/technology_detections":{"get":{"summary":"Retrieve Technologies used by specific Company","description":"Returns technologies detected on the company website. Credits: flat charge per call regardless of how many rows come back. Call get_endpoint_details for the live rate.","x-credits-cost":{"unit":"call","amount":2.51,"billing_shape":"per_call"},"tags":["PredictLeads"],"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","example":"coldiq.com","description":"Company ID (UUID) or domain"},"required":true,"description":"Company ID (UUID) or domain","name":"companyIdOrDomain","in":"path"},{"schema":{"type":"string","example":"2024-09-25"},"required":false,"name":"first_seen_at_from","in":"query"},{"schema":{"type":"string","example":"2024-09-25"},"required":false,"name":"first_seen_at_until","in":"query"},{"schema":{"type":"string","example":"2024-09-25"},"required":false,"name":"last_seen_at_from","in":"query"},{"schema":{"type":"string","example":"2024-09-25"},"required":false,"name":"last_seen_at_until","in":"query"},{"schema":{"type":"integer","minimum":1,"example":1,"description":"Page number (default: 1)"},"required":false,"description":"Page number (default: 1)","name":"page","in":"query"},{"schema":{"type":"integer","minimum":1,"maximum":1000,"example":100,"description":"Results per page (default: 100, max: 1000)"},"required":false,"description":"Results per page (default: 100, max: 1000)","name":"limit","in":"query"}],"responses":{"200":{"description":"PredictLeads API response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PredictLeadsResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/predictleads/discover/technologies/{technologyIdOrFuzzyName}/technology_detections":{"get":{"summary":"Retrieve Companies using specific Technology ID or fuzzy name","description":"Returns companies detected using the given technology. Credits: bills only for returned results, per result; reserved up-front for the requested size and settled to the actual count (see X-ColdIQ-Credits-Charged). Call get_endpoint_details for the live rate.","x-credits-cost":{"unit":"result","amount":2.51,"billing_shape":"per_result"},"tags":["PredictLeads"],"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","example":"react","description":"Technology ID (UUID) or fuzzy name"},"required":true,"description":"Technology ID (UUID) or fuzzy name","name":"technologyIdOrFuzzyName","in":"path"},{"schema":{"type":"string","example":"2024-09-25"},"required":false,"name":"first_seen_at_from","in":"query"},{"schema":{"type":"string","example":"2024-09-25"},"required":false,"name":"first_seen_at_until","in":"query"},{"schema":{"type":"string","example":"2024-09-25"},"required":false,"name":"last_seen_at_from","in":"query"},{"schema":{"type":"string","example":"2024-09-25"},"required":false,"name":"last_seen_at_until","in":"query"},{"schema":{"type":"integer","minimum":1,"example":1,"description":"Page number (default: 1)"},"required":false,"description":"Page number (default: 1)","name":"page","in":"query"},{"schema":{"type":"integer","minimum":1,"maximum":1000,"example":100,"description":"Results per page (default: 100, max: 1000)"},"required":false,"description":"Results per page (default: 100, max: 1000)","name":"limit","in":"query"}],"responses":{"200":{"description":"PredictLeads API response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PredictLeadsResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/predictleads/extended_technology_detections/{id}":{"get":{"summary":"Retrieve a single Extended Technology Detection by ID","description":"Retrieve one extended technology detection. Credits: flat charge per call regardless of how many rows come back. Call get_endpoint_details for the live rate.","x-credits-cost":{"unit":"call","amount":2.51,"billing_shape":"per_call"},"tags":["PredictLeads"],"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","format":"uuid","example":"a0383c53-8142-5e7c-8ca3-9980289a3ccc"},"required":true,"name":"id","in":"path"}],"responses":{"200":{"description":"PredictLeads API response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PredictLeadsResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/predictleads/technologies":{"get":{"summary":"Retrieve all tracked Technologies","description":"Returns tracked technologies, optionally filtered by fuzzy name. Credits: bills only for returned results, per result; reserved up-front for the requested size and settled to the actual count (see X-ColdIQ-Credits-Charged). Call get_endpoint_details for the live rate.","x-credits-cost":{"unit":"result","amount":7.53,"billing_shape":"per_result"},"tags":["PredictLeads"],"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string"},"required":false,"name":"fuzzy_name","in":"query"},{"schema":{"type":"string","enum":["created_at_asc","created_at_desc","fuzzy_score_desc"],"description":"Order results. Valid values: created_at_asc, created_at_desc, fuzzy_score_desc. fuzzy_score_desc requires fuzzy_name."},"required":false,"description":"Order results. Valid values: created_at_asc, created_at_desc, fuzzy_score_desc. fuzzy_score_desc requires fuzzy_name.","name":"order_by","in":"query"},{"schema":{"type":"integer","minimum":1,"example":1,"description":"Page number (default: 1)"},"required":false,"description":"Page number (default: 1)","name":"page","in":"query"},{"schema":{"type":"integer","minimum":1,"maximum":1000,"example":100,"description":"Results per page (default: 100, max: 1000)"},"required":false,"description":"Results per page (default: 100, max: 1000)","name":"limit","in":"query"}],"responses":{"200":{"description":"PredictLeads API response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PredictLeadsResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/predictleads/technologies/{idOrFuzzyName}":{"get":{"summary":"Retrieve a single Technology by ID or fuzzy name","description":"Retrieve a single technology by ID or fuzzy name. Credits: flat charge per call regardless of how many rows come back. Call get_endpoint_details for the live rate.","x-credits-cost":{"unit":"call","amount":2.51,"billing_shape":"per_call"},"tags":["PredictLeads"],"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","example":"react","description":"Technology ID (UUID) or fuzzy name (e.g. react)"},"required":true,"description":"Technology ID (UUID) or fuzzy name (e.g. react)","name":"idOrFuzzyName","in":"path"}],"responses":{"200":{"description":"PredictLeads API response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PredictLeadsResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/predictleads/companies/{companyIdOrDomain}/news_events":{"get":{"summary":"Retrieve company's News Events","description":"Returns news events for the given company. Credits: flat charge per call regardless of how many rows come back. Call get_endpoint_details for the live rate.","x-credits-cost":{"unit":"call","amount":2.51,"billing_shape":"per_call"},"tags":["PredictLeads"],"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","example":"coldiq.com","description":"Company ID (UUID) or domain"},"required":true,"description":"Company ID (UUID) or domain","name":"companyIdOrDomain","in":"path"},{"schema":{"type":"string","example":"2024-09-25"},"required":false,"name":"found_at_from","in":"query"},{"schema":{"type":"string","example":"2024-09-25"},"required":false,"name":"found_at_until","in":"query"},{"schema":{"type":"string","description":"Comma-separated news event categories. Valid values: acquires, merges_with, sells_assets_to, signs_new_client, files_suit_against, has_issues_with, closes_offices_in, decreases_headcount_by, attends_event, expands_facilities, expands_offices_in, expands_offices_to, increases_headcount_by, opens_new_location, goes_public, invests_into, invests_into_assets, receives_financing, hires, leaves, promotes, retires_from, integrates_with, is_developing, launches, partners_with, receives_award, recognized_as, identified_as_competitor_of"},"required":false,"description":"Comma-separated news event categories. Valid values: acquires, merges_with, sells_assets_to, signs_new_client, files_suit_against, has_issues_with, closes_offices_in, decreases_headcount_by, attends_event, expands_facilities, expands_offices_in, expands_offices_to, increases_headcount_by, opens_new_location, goes_public, invests_into, invests_into_assets, receives_financing, hires, leaves, promotes, retires_from, integrates_with, is_developing, launches, partners_with, receives_award, recognized_as, identified_as_competitor_of","name":"categories","in":"query"},{"schema":{"type":"integer","minimum":1,"example":1,"description":"Page number (default: 1)"},"required":false,"description":"Page number (default: 1)","name":"page","in":"query"},{"schema":{"type":"integer","minimum":1,"maximum":1000,"example":100,"description":"Results per page (default: 100, max: 1000)"},"required":false,"description":"Results per page (default: 100, max: 1000)","name":"limit","in":"query"}],"responses":{"200":{"description":"PredictLeads API response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PredictLeadsResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/predictleads/news_events/{id}":{"get":{"summary":"Retrieve a single News Event by ID","description":"Retrieve a single news event by UUID. Credits: flat charge per call regardless of how many rows come back. Call get_endpoint_details for the live rate.","x-credits-cost":{"unit":"call","amount":2.51,"billing_shape":"per_call"},"tags":["PredictLeads"],"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","format":"uuid","example":"a0383c53-8142-5e7c-8ca3-9980289a3ccc"},"required":true,"name":"id","in":"path"}],"responses":{"200":{"description":"PredictLeads API response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PredictLeadsResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/predictleads/discover/news_events":{"get":{"summary":"Retrieve News Events","description":"Discover news events filtered by category and/or company location. Credits: bills only for returned results, per result; reserved up-front for the requested size and settled to the actual count (see X-ColdIQ-Credits-Charged). Call get_endpoint_details for the live rate. Managed alternative: `POST /v1/signals/find` (Find Signals) runs this provider inside a ranked waterfall with charge-on-success billing and one normalized response shape, and falls back to the other providers for this capability on a miss. Call this endpoint directly when you specifically want this provider and no fallback.","x-credits-cost":{"unit":"result","amount":2.51,"billing_shape":"per_result"},"tags":["PredictLeads"],"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","description":"Comma-separated news event categories. Valid values: acquires, merges_with, sells_assets_to, signs_new_client, files_suit_against, has_issues_with, closes_offices_in, decreases_headcount_by, attends_event, expands_facilities, expands_offices_in, expands_offices_to, increases_headcount_by, opens_new_location, goes_public, invests_into, invests_into_assets, receives_financing, hires, leaves, promotes, retires_from, integrates_with, is_developing, launches, partners_with, receives_award, recognized_as, identified_as_competitor_of"},"required":false,"description":"Comma-separated news event categories. Valid values: acquires, merges_with, sells_assets_to, signs_new_client, files_suit_against, has_issues_with, closes_offices_in, decreases_headcount_by, attends_event, expands_facilities, expands_offices_in, expands_offices_to, increases_headcount_by, opens_new_location, goes_public, invests_into, invests_into_assets, receives_financing, hires, leaves, promotes, retires_from, integrates_with, is_developing, launches, partners_with, receives_award, recognized_as, identified_as_competitor_of","name":"categories","in":"query"},{"schema":{"type":"string","example":"United States"},"required":false,"name":"company_location","in":"query"},{"schema":{"type":"string","example":"11-50,51-200"},"required":false,"name":"company_sizes","in":"query"},{"schema":{"type":"integer","minimum":1,"example":1,"description":"Page number (default: 1)"},"required":false,"description":"Page number (default: 1)","name":"page","in":"query"},{"schema":{"type":"integer","minimum":1,"maximum":1000,"example":100,"description":"Results per page (default: 100, max: 1000)"},"required":false,"description":"Results per page (default: 100, max: 1000)","name":"limit","in":"query"}],"responses":{"200":{"description":"PredictLeads API response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PredictLeadsResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/predictleads/companies/{companyIdOrDomain}/financing_events":{"get":{"summary":"Retrieve company's Financing Events","description":"Returns financing events for the given company. Credits: flat charge per call regardless of how many rows come back. Call get_endpoint_details for the live rate.","x-credits-cost":{"unit":"call","amount":2.51,"billing_shape":"per_call"},"tags":["PredictLeads"],"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","example":"coldiq.com","description":"Company ID (UUID) or domain"},"required":true,"description":"Company ID (UUID) or domain","name":"companyIdOrDomain","in":"path"},{"schema":{"type":"string","example":"2024-09-25"},"required":false,"name":"first_seen_at_from","in":"query"},{"schema":{"type":"string","example":"2024-09-25"},"required":false,"name":"first_seen_at_until","in":"query"},{"schema":{"type":"integer","minimum":1,"example":1,"description":"Page number (default: 1)"},"required":false,"description":"Page number (default: 1)","name":"page","in":"query"},{"schema":{"type":"integer","minimum":1,"maximum":1000,"example":100,"description":"Results per page (default: 100, max: 1000)"},"required":false,"description":"Results per page (default: 100, max: 1000)","name":"limit","in":"query"}],"responses":{"200":{"description":"PredictLeads API response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PredictLeadsResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/predictleads/discover/financing_events":{"get":{"summary":"Retrieve Financing Events","description":"Discover financing events filtered by type and/or company location. Credits: bills only for returned results, per result; reserved up-front for the requested size and settled to the actual count (see X-ColdIQ-Credits-Charged). Call get_endpoint_details for the live rate. Managed alternative: `POST /v1/signals/find` (Find Signals) runs this provider inside a ranked waterfall with charge-on-success billing and one normalized response shape, and falls back to the other providers for this capability on a miss. Call this endpoint directly when you specifically want this provider and no fallback.","x-credits-cost":{"unit":"result","amount":2.51,"billing_shape":"per_result"},"tags":["PredictLeads"],"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","description":"Comma-separated financing types. Valid values: pre_angel, angel_plus, angel_plus_plus, angel, angel_1, angel_2, angel_3, pre_seed, seed_plus, seed_plus_plus, seed, seed_1, seed_2, seed_3, pre_series_a, series_a_plus, series_a_plus_plus, series_a, series_a1, series_a2, series_a3, pre_series_b, series_b_plus, series_b_plus_plus, series_b, series_b1, series_b2, series_b3, pre_series_c, series_c_plus, series_c_plus_plus, series_c, series_c1, series_c2, series_c3, pre_series_d, series_d_plus, series_d_plus_plus, series_d, series_d1, series_d2, series_d3, pre_series_e, series_e_plus, series_e_plus_plus, series_e, series_e1, series_e2, series_e3, pre_series_f, series_f_plus, series_f_plus_plus, series_f, series_f1, series_f2, series_f3, pre_series_g, series_g_plus, series_g_plus_plus, series_g, series_g1, series_g2, series_g3, pre_series_h, series_h_plus, series_h_plus_plus, series_h, series_h1, series_h2, series_h3, pre_series_i, series_i_plus, series_i_plus_plus, series_i, series_i1, series_i2, series_i3, pre_series_j, series_j_plus, series_j_plus_plus, series_j, series_j1, series_j2, series_j3, pre_angel_bridge, angel_plus_bridge, angel_plus_plus_bridge, angel_bridge, angel_1_bridge, angel_2_bridge, angel_3_bridge, pre_seed_bridge, seed_plus_bridge, seed_plus_plus_bridge, seed_bridge, seed_1_bridge, seed_2_bridge, seed_3_bridge, pre_series_a_bridge, series_a_plus_bridge, series_a_plus_plus_bridge, series_a_bridge, series_a1_bridge, series_a2_bridge, series_a3_bridge, pre_series_b_bridge, series_b_plus_bridge, series_b_plus_plus_bridge, series_b_bridge, series_b1_bridge, series_b2_bridge, series_b3_bridge, pre_series_c_bridge, series_c_plus_bridge, series_c_plus_plus_bridge, series_c_bridge, series_c1_bridge, series_c2_bridge, series_c3_bridge, pre_series_d_bridge, series_d_plus_bridge, series_d_plus_plus_bridge, series_d_bridge, series_d1_bridge, series_d2_bridge, series_d3_bridge, pre_series_e_bridge, series_e_plus_bridge, series_e_plus_plus_bridge, series_e_bridge, series_e1_bridge, series_e2_bridge, series_e3_bridge"},"required":false,"description":"Comma-separated financing types. Valid values: pre_angel, angel_plus, angel_plus_plus, angel, angel_1, angel_2, angel_3, pre_seed, seed_plus, seed_plus_plus, seed, seed_1, seed_2, seed_3, pre_series_a, series_a_plus, series_a_plus_plus, series_a, series_a1, series_a2, series_a3, pre_series_b, series_b_plus, series_b_plus_plus, series_b, series_b1, series_b2, series_b3, pre_series_c, series_c_plus, series_c_plus_plus, series_c, series_c1, series_c2, series_c3, pre_series_d, series_d_plus, series_d_plus_plus, series_d, series_d1, series_d2, series_d3, pre_series_e, series_e_plus, series_e_plus_plus, series_e, series_e1, series_e2, series_e3, pre_series_f, series_f_plus, series_f_plus_plus, series_f, series_f1, series_f2, series_f3, pre_series_g, series_g_plus, series_g_plus_plus, series_g, series_g1, series_g2, series_g3, pre_series_h, series_h_plus, series_h_plus_plus, series_h, series_h1, series_h2, series_h3, pre_series_i, series_i_plus, series_i_plus_plus, series_i, series_i1, series_i2, series_i3, pre_series_j, series_j_plus, series_j_plus_plus, series_j, series_j1, series_j2, series_j3, pre_angel_bridge, angel_plus_bridge, angel_plus_plus_bridge, angel_bridge, angel_1_bridge, angel_2_bridge, angel_3_bridge, pre_seed_bridge, seed_plus_bridge, seed_plus_plus_bridge, seed_bridge, seed_1_bridge, seed_2_bridge, seed_3_bridge, pre_series_a_bridge, series_a_plus_bridge, series_a_plus_plus_bridge, series_a_bridge, series_a1_bridge, series_a2_bridge, series_a3_bridge, pre_series_b_bridge, series_b_plus_bridge, series_b_plus_plus_bridge, series_b_bridge, series_b1_bridge, series_b2_bridge, series_b3_bridge, pre_series_c_bridge, series_c_plus_bridge, series_c_plus_plus_bridge, series_c_bridge, series_c1_bridge, series_c2_bridge, series_c3_bridge, pre_series_d_bridge, series_d_plus_bridge, series_d_plus_plus_bridge, series_d_bridge, series_d1_bridge, series_d2_bridge, series_d3_bridge, pre_series_e_bridge, series_e_plus_bridge, series_e_plus_plus_bridge, series_e_bridge, series_e1_bridge, series_e2_bridge, series_e3_bridge","name":"financing_types_normalized","in":"query"},{"schema":{"type":"string","example":"United States"},"required":false,"name":"company_location","in":"query"},{"schema":{"type":"integer","minimum":1,"example":1,"description":"Page number (default: 1)"},"required":false,"description":"Page number (default: 1)","name":"page","in":"query"},{"schema":{"type":"integer","minimum":1,"maximum":1000,"example":100,"description":"Results per page (default: 100, max: 1000)"},"required":false,"description":"Results per page (default: 100, max: 1000)","name":"limit","in":"query"}],"responses":{"200":{"description":"PredictLeads API response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PredictLeadsResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/predictleads/companies/{companyIdOrDomain}/sec_filings":{"get":{"summary":"Retrieve company's SEC Filings","description":"Retrieve SEC filings for a company. Credits: flat charge per call regardless of how many rows come back. Call get_endpoint_details for the live rate.","x-credits-cost":{"unit":"call","amount":2.51,"billing_shape":"per_call"},"tags":["PredictLeads"],"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","example":"coldiq.com","description":"Company ID (UUID) or domain"},"required":true,"description":"Company ID (UUID) or domain","name":"companyIdOrDomain","in":"path"},{"schema":{"type":"string","example":"10-K,10-Q"},"required":false,"name":"form_types","in":"query"},{"schema":{"type":"string","example":"2026-01-01"},"required":false,"name":"filed_at_from","in":"query"},{"schema":{"type":"string","example":"2026-07-31"},"required":false,"name":"filed_at_until","in":"query"},{"schema":{"type":"integer","minimum":1,"example":1,"description":"Page number (default: 1)"},"required":false,"description":"Page number (default: 1)","name":"page","in":"query"},{"schema":{"type":"integer","minimum":1,"maximum":50,"example":10},"required":false,"name":"limit","in":"query"}],"responses":{"200":{"description":"PredictLeads API response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PredictLeadsResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/predictleads/sec_filings/{id}":{"get":{"summary":"Retrieve a single SEC Filing by ID","description":"Retrieve one SEC filing. Credits: flat charge per call regardless of how many rows come back. Call get_endpoint_details for the live rate.","x-credits-cost":{"unit":"call","amount":2.51,"billing_shape":"per_call"},"tags":["PredictLeads"],"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","format":"uuid","example":"a0383c53-8142-5e7c-8ca3-9980289a3ccc"},"required":true,"name":"id","in":"path"}],"responses":{"200":{"description":"PredictLeads API response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PredictLeadsResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/predictleads/companies/{companyIdOrDomain}/connections":{"get":{"summary":"Retrieve company's Connections","description":"Returns connections (partnerships, integrations, etc.) for the given company. Credits: flat charge per call regardless of how many rows come back. Call get_endpoint_details for the live rate.","x-credits-cost":{"unit":"call","amount":2.51,"billing_shape":"per_call"},"tags":["PredictLeads"],"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","example":"coldiq.com","description":"Company ID (UUID) or domain"},"required":true,"description":"Company ID (UUID) or domain","name":"companyIdOrDomain","in":"path"},{"schema":{"type":"string","example":"2024-09-25"},"required":false,"name":"first_seen_at_from","in":"query"},{"schema":{"type":"string","example":"2024-09-25"},"required":false,"name":"first_seen_at_until","in":"query"},{"schema":{"type":"string","description":"Comma-separated connection categories. Valid values: partner, vendor, integration, investor, parent, rebranding, published_in, badge, other"},"required":false,"description":"Comma-separated connection categories. Valid values: partner, vendor, integration, investor, parent, rebranding, published_in, badge, other","name":"categories","in":"query"},{"schema":{"type":"integer","minimum":1,"example":1,"description":"Page number (default: 1)"},"required":false,"description":"Page number (default: 1)","name":"page","in":"query"},{"schema":{"type":"integer","minimum":1,"maximum":1000,"example":100,"description":"Results per page (default: 100, max: 1000)"},"required":false,"description":"Results per page (default: 100, max: 1000)","name":"limit","in":"query"}],"responses":{"200":{"description":"PredictLeads API response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PredictLeadsResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/predictleads/discover/portfolio_companies/connections":{"get":{"summary":"Retrieve Portfolio Companies","description":"Returns portfolio-company connections. Credits: bills only for returned results, per result; reserved up-front for the requested size and settled to the actual count (see X-ColdIQ-Credits-Charged). Call get_endpoint_details for the live rate.","x-credits-cost":{"unit":"result","amount":2.51,"billing_shape":"per_result"},"tags":["PredictLeads"],"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","example":"2024-09-25"},"required":false,"name":"first_seen_at_from","in":"query"},{"schema":{"type":"string","example":"2024-09-25"},"required":false,"name":"first_seen_at_until","in":"query"},{"schema":{"type":"string","example":"2024-09-25"},"required":false,"name":"last_seen_at_from","in":"query"},{"schema":{"type":"string","example":"2024-09-25"},"required":false,"name":"last_seen_at_until","in":"query"},{"schema":{"type":"integer","minimum":1,"example":1,"description":"Page number (default: 1)"},"required":false,"description":"Page number (default: 1)","name":"page","in":"query"},{"schema":{"type":"integer","minimum":1,"maximum":1000,"example":100,"description":"Results per page (default: 100, max: 1000)"},"required":false,"description":"Results per page (default: 100, max: 1000)","name":"limit","in":"query"}],"responses":{"200":{"description":"PredictLeads API response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PredictLeadsResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/predictleads/companies/{companyIdOrDomain}/website_evolution":{"get":{"summary":"Retrieve company's Website Evolution","description":"Returns website content changes over time for the given company. Credits: flat charge per call regardless of how many rows come back. Call get_endpoint_details for the live rate.","x-credits-cost":{"unit":"call","amount":2.51,"billing_shape":"per_call"},"tags":["PredictLeads"],"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","example":"coldiq.com","description":"Company ID (UUID) or domain"},"required":true,"description":"Company ID (UUID) or domain","name":"companyIdOrDomain","in":"path"},{"schema":{"type":"string","example":"2024-09-25"},"required":false,"name":"first_seen_at_from","in":"query"},{"schema":{"type":"string","example":"2024-09-25"},"required":false,"name":"first_seen_at_until","in":"query"},{"schema":{"type":"integer","minimum":1,"example":1,"description":"Page number (default: 1)"},"required":false,"description":"Page number (default: 1)","name":"page","in":"query"},{"schema":{"type":"integer","minimum":1,"maximum":1000,"example":100,"description":"Results per page (default: 100, max: 1000)"},"required":false,"description":"Results per page (default: 100, max: 1000)","name":"limit","in":"query"}],"responses":{"200":{"description":"PredictLeads API response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PredictLeadsResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/predictleads/companies/{companyIdOrDomain}/github_repositories":{"get":{"summary":"Retrieve company's Github Repositories","description":"Returns GitHub repositories linked to the given company. Credits: flat charge per call regardless of how many rows come back. Call get_endpoint_details for the live rate.","x-credits-cost":{"unit":"call","amount":2.51,"billing_shape":"per_call"},"tags":["PredictLeads"],"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","example":"coldiq.com","description":"Company ID (UUID) or domain"},"required":true,"description":"Company ID (UUID) or domain","name":"companyIdOrDomain","in":"path"},{"schema":{"type":"string","example":"2024-09-25"},"required":false,"name":"first_seen_at_from","in":"query"},{"schema":{"type":"string","example":"2024-09-25"},"required":false,"name":"first_seen_at_until","in":"query"},{"schema":{"type":"integer","minimum":1,"example":1,"description":"Page number (default: 1)"},"required":false,"description":"Page number (default: 1)","name":"page","in":"query"},{"schema":{"type":"integer","minimum":1,"maximum":1000,"example":100,"description":"Results per page (default: 100, max: 1000)"},"required":false,"description":"Results per page (default: 100, max: 1000)","name":"limit","in":"query"}],"responses":{"200":{"description":"PredictLeads API response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PredictLeadsResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/predictleads/companies/{companyIdOrDomain}/products":{"get":{"summary":"Retrieve company's Products","description":"Returns products detected for the given company. Credits: flat charge per call regardless of how many rows come back. Call get_endpoint_details for the live rate.","x-credits-cost":{"unit":"call","amount":2.51,"billing_shape":"per_call"},"tags":["PredictLeads"],"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","example":"coldiq.com","description":"Company ID (UUID) or domain"},"required":true,"description":"Company ID (UUID) or domain","name":"companyIdOrDomain","in":"path"},{"schema":{"type":"string","description":"Comma-separated product categories. Valid values: product, service, solution, unclassified"},"required":false,"description":"Comma-separated product categories. Valid values: product, service, solution, unclassified","name":"categories","in":"query"},{"schema":{"type":"string","description":"Comma-separated product subcategories. Valid values: industry, use_case, pricing_tier, unclassified"},"required":false,"description":"Comma-separated product subcategories. Valid values: industry, use_case, pricing_tier, unclassified","name":"subcategories","in":"query"},{"schema":{"type":"integer","minimum":1,"example":1,"description":"Page number (default: 1)"},"required":false,"description":"Page number (default: 1)","name":"page","in":"query"},{"schema":{"type":"integer","minimum":1,"maximum":1000,"example":100,"description":"Results per page (default: 100, max: 1000)"},"required":false,"description":"Results per page (default: 100, max: 1000)","name":"limit","in":"query"}],"responses":{"200":{"description":"PredictLeads API response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PredictLeadsResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/predictleads/products/{id}":{"get":{"summary":"Retrieve a single Product by ID","description":"Retrieve a single product by UUID. Credits: flat charge per call regardless of how many rows come back. Call get_endpoint_details for the live rate.","x-credits-cost":{"unit":"call","amount":2.51,"billing_shape":"per_call"},"tags":["PredictLeads"],"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","format":"uuid","example":"a0383c53-8142-5e7c-8ca3-9980289a3ccc"},"required":true,"name":"id","in":"path"}],"responses":{"200":{"description":"PredictLeads API response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PredictLeadsResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/predictleads/discover/products":{"get":{"summary":"Retrieve a list of Products","description":"Discover products filtered by category. Credits: bills only for returned results, per result; reserved up-front for the requested size and settled to the actual count (see X-ColdIQ-Credits-Charged). Call get_endpoint_details for the live rate.","x-credits-cost":{"unit":"result","amount":2.51,"billing_shape":"per_result"},"tags":["PredictLeads"],"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","description":"Comma-separated product categories. Valid values: product, service, solution, unclassified"},"required":false,"description":"Comma-separated product categories. Valid values: product, service, solution, unclassified","name":"categories","in":"query"},{"schema":{"type":"string","description":"Comma-separated product subcategories. Valid values: industry, use_case, pricing_tier, unclassified"},"required":false,"description":"Comma-separated product subcategories. Valid values: industry, use_case, pricing_tier, unclassified","name":"subcategories","in":"query"},{"schema":{"type":"integer","minimum":1,"example":1,"description":"Page number (default: 1)"},"required":false,"description":"Page number (default: 1)","name":"page","in":"query"},{"schema":{"type":"integer","minimum":1,"maximum":1000,"example":100,"description":"Results per page (default: 100, max: 1000)"},"required":false,"description":"Results per page (default: 100, max: 1000)","name":"limit","in":"query"}],"responses":{"200":{"description":"PredictLeads API response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PredictLeadsResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/predictleads/discover/startup_platform_posts":{"get":{"summary":"Retrieve latest posts","description":"Discover recent Hacker News posts from startups. Credits: bills only for returned results, per result; reserved up-front for the requested size and settled to the actual count (see X-ColdIQ-Credits-Charged). Call get_endpoint_details for the live rate. Managed alternative: `POST /v1/signals/find` (Find Signals) runs this provider inside a ranked waterfall with charge-on-success billing and one normalized response shape, and falls back to the other providers for this capability on a miss. Call this endpoint directly when you specifically want this provider and no fallback.","x-credits-cost":{"unit":"result","amount":2.51,"billing_shape":"per_result"},"tags":["PredictLeads"],"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","example":"2024-09-25"},"required":false,"name":"published_at_from","in":"query"},{"schema":{"type":"string","example":"2024-09-25"},"required":false,"name":"published_at_until","in":"query"},{"schema":{"type":"string","description":"Comma-separated post types. Valid values: show_hn, job_hn"},"required":false,"description":"Comma-separated post types. Valid values: show_hn, job_hn","name":"post_types","in":"query"},{"schema":{"type":"integer","minimum":1,"example":1,"description":"Page number (default: 1)"},"required":false,"description":"Page number (default: 1)","name":"page","in":"query"},{"schema":{"type":"integer","minimum":1,"maximum":1000,"example":100,"description":"Results per page (default: 100, max: 1000)"},"required":false,"description":"Results per page (default: 100, max: 1000)","name":"limit","in":"query"}],"responses":{"200":{"description":"PredictLeads API response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PredictLeadsResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/findymail/verify":{"post":{"summary":"Verify an email for potential bounce","description":"Verify whether an email address is deliverable. Credits: flat charge per call regardless of how many rows come back. Call get_endpoint_details for the live rate. Managed alternative: `POST /v1/email/verify` (Verify Email) runs this provider inside a ranked waterfall with charge-on-success billing and one normalized response shape, and falls back to the other providers for this capability on a miss. Call this endpoint directly when you specifically want this provider and no fallback.","tags":["Findymail"],"x-credits-cost":{"amount":3.57,"unit":"call","billing_shape":"per_call"},"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"email":{"type":"string","format":"email","description":"Email address to verify."}},"required":["email"],"title":"FindymailVerifyRequest","example":{"email":"michel@coldiq.com"}}}}},"responses":{"200":{"description":"Verification result","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FindymailVerifyResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"504":{"description":"Provider timed out","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/findymail/search/name":{"post":{"summary":"Find from name","description":"Find an email address using a person's name and company domain. Credits: flat charge per call regardless of how many rows come back. Call get_endpoint_details for the live rate. Managed alternative: `POST /v1/email/find` (Find Email) runs this provider inside a ranked waterfall with charge-on-success billing and one normalized response shape, and falls back to the other providers for this capability on a miss. Call this endpoint directly when you specifically want this provider and no fallback.","tags":["Findymail"],"x-credits-cost":{"amount":3.57,"unit":"call","billing_shape":"per_call"},"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","minLength":1,"description":"Person's full name."},"domain":{"type":"string","minLength":1,"description":"Company domain or name."},"webhook_url":{"type":"string","format":"uri","description":"Webhook URL to receive the result asynchronously."}},"required":["name","domain"],"title":"FindymailFindFromNameRequest","example":{"name":"Michel Lieben","domain":"coldiq.com"}}}}},"responses":{"200":{"description":"Search result","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FindymailFindFromNameResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"504":{"description":"Provider timed out","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/findymail/search/domain":{"post":{"summary":"Find from domain","description":"Find email addresses for specific roles at a company domain. Credits: flat charge per call regardless of how many rows come back. Call get_endpoint_details for the live rate.","tags":["Findymail"],"x-credits-cost":{"amount":3.57,"unit":"call","billing_shape":"per_call"},"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"domain":{"type":"string","minLength":1,"description":"Company domain to search."},"roles":{"type":"array","items":{"type":"string","minLength":1},"minItems":1,"maxItems":3,"description":"Job roles to search for (e.g. [\"ceo\", \"cto\"]). Max 3. Credits are charged per contact found."},"webhook_url":{"type":"string","format":"uri","description":"Webhook URL to receive the result asynchronously."}},"required":["domain","roles"],"title":"FindymailFindFromDomainRequest","example":{"domain":"coldiq.com","roles":["ceo","cto"]}}}}},"responses":{"200":{"description":"Search results","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FindymailFindFromDomainResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"504":{"description":"Provider timed out","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/findymail/search/business-profile":{"post":{"summary":"Find from business profile","description":"Find an email address from a LinkedIn profile URL. Credits: flat charge per call regardless of how many rows come back. Call get_endpoint_details for the live rate. Managed alternative: `POST /v1/person/enrich` (Enrich Person) runs this provider inside a ranked waterfall with charge-on-success billing and one normalized response shape, and falls back to the other providers for this capability on a miss. Call this endpoint directly when you specifically want this provider and no fallback.","tags":["Findymail"],"x-credits-cost":{"amount":3.57,"unit":"call","billing_shape":"per_call"},"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"linkedin_url":{"type":"string","format":"uri","description":"LinkedIn profile URL."},"webhook_url":{"type":"string","format":"uri","description":"Webhook URL to receive the result asynchronously."}},"required":["linkedin_url"],"title":"FindymailFindFromProfileRequest","example":{"linkedin_url":"https://www.linkedin.com/in/michel-lieben"}}}}},"responses":{"200":{"description":"Search result","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FindymailFindFromProfileResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"504":{"description":"Provider timed out","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/findymail/search/reverse-email":{"post":{"summary":"Reverse email lookup","description":"Look up a person by email address. Credits: charged once per call, at a rate that depends on which fields you request (default, with_profile) — it is NOT flat. Reserved up-front, settled to actual (see X-ColdIQ-Credits-Charged). Call get_endpoint_details for the live rate. Managed alternative: `POST /v1/person/enrich` (Enrich Person) runs this provider inside a ranked waterfall with charge-on-success billing and one normalized response shape, and falls back to the other providers for this capability on a miss. Call this endpoint directly when you specifically want this provider and no fallback.","tags":["Findymail"],"x-credits-cost":{"unit":"call","rates":{"default":3.57,"with_profile":7.13},"billing_shape":"per_call_variable"},"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"email":{"type":"string","format":"email","description":"Email address to look up."},"with_profile":{"type":"boolean","description":"When true, returns full profile enrichment, which costs more than the plain lookup — call get_endpoint_details for the live rates rather than relying on a number written here."}},"required":["email"],"title":"FindymailReverseEmailRequest","example":{"email":"michel@coldiq.com"}}}}},"responses":{"200":{"description":"Reverse lookup result","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FindymailReverseEmailResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"504":{"description":"Provider timed out","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/findymail/search/company":{"post":{"summary":"Get company information","description":"Get information about a company by domain. Credits: flat charge per call regardless of how many rows come back. Call get_endpoint_details for the live rate. Managed alternative: `POST /v1/company/enrich` (Enrich Company) runs this provider inside a ranked waterfall with charge-on-success billing and one normalized response shape, and falls back to the other providers for this capability on a miss. Call this endpoint directly when you specifically want this provider and no fallback.","tags":["Findymail"],"x-credits-cost":{"amount":3.57,"unit":"call","billing_shape":"per_call"},"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"domain":{"type":"string","minLength":1,"description":"Company domain to look up."},"linkedin_url":{"type":"string","format":"uri","description":"Company LinkedIn URL."},"name":{"type":"string","minLength":1,"description":"Company name."}},"title":"FindymailCompanyInfoRequest","example":{"domain":"coldiq.com"}}}}},"responses":{"200":{"description":"Company information","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FindymailCompanyInfoResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"504":{"description":"Provider timed out","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/findymail/search/employees":{"post":{"summary":"Find employees","description":"Find employees at a company by job titles. Credits: bills only for returned results, per result; reserved up-front for the requested size and settled to the actual count (see X-ColdIQ-Credits-Charged). Call get_endpoint_details for the live rate. Managed alternative: `POST /v1/people/search` (Find People) runs this provider inside a ranked waterfall with charge-on-success billing and one normalized response shape, and falls back to the other providers for this capability on a miss. Call this endpoint directly when you specifically want this provider and no fallback.","tags":["Findymail"],"x-credits-cost":{"amount":3.57,"unit":"result","billing_shape":"per_result"},"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"website":{"type":"string","minLength":1,"description":"Company website domain."},"job_titles":{"type":"array","items":{"type":"string","minLength":1},"minItems":1,"maxItems":10,"description":"Job titles to search for. Max 10."},"count":{"type":"integer","minimum":1,"maximum":5,"description":"Max number of employees to return (max 5). Credits charged per contact found."}},"required":["website","job_titles"],"title":"FindymailFindEmployeesRequest","example":{"website":"coldiq.com","job_titles":["CEO","CTO"]}}}}},"responses":{"200":{"description":"Employee results","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FindymailFindEmployeesResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"504":{"description":"Provider timed out","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/findymail/search/phone":{"post":{"summary":"Find phone","description":"Find a phone number from a LinkedIn profile URL. Credits: flat charge per call regardless of how many rows come back. Call get_endpoint_details for the live rate.","tags":["Findymail"],"x-credits-cost":{"amount":3.57,"unit":"call","billing_shape":"per_call"},"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"linkedin_url":{"type":"string","format":"uri","description":"LinkedIn profile URL to find phone number for."}},"required":["linkedin_url"],"title":"FindymailFindPhoneRequest","example":{"linkedin_url":"https://www.linkedin.com/michel-lieben"}}}}},"responses":{"200":{"description":"Phone result","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FindymailFindPhoneResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"504":{"description":"Provider timed out","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/findymail/lists":{"get":{"summary":"Get the list of contact lists","description":"Get all contact lists. No credit cost. Credits: flat charge per call regardless of how many rows come back. Call get_endpoint_details for the live rate.","tags":["Findymail"],"x-credits-cost":{"amount":3.57,"unit":"call","billing_shape":"per_call"},"security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Contact lists","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FindymailListsResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"504":{"description":"Provider timed out","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}},"post":{"summary":"Create a new list","description":"Create a new contact list. No credit cost. Credits: flat charge per call regardless of how many rows come back. Call get_endpoint_details for the live rate.","tags":["Findymail"],"x-credits-cost":{"amount":3.57,"unit":"call","billing_shape":"per_call"},"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","minLength":1,"description":"Name of the new contact list."}},"required":["name"],"title":"FindymailCreateListRequest","example":{"name":"My Leads"}}}}},"responses":{"200":{"description":"Created list","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FindymailListResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"504":{"description":"Provider timed out","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/findymail/lists/{id}":{"put":{"summary":"Update a contact list","description":"Update a contact list by ID. No credit cost. Credits: flat charge per call regardless of how many rows come back. Call get_endpoint_details for the live rate.","tags":["Findymail"],"x-credits-cost":{"amount":3.57,"unit":"call","billing_shape":"per_call"},"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"integer","minimum":1,"description":"List ID."},"required":true,"description":"List ID.","name":"id","in":"path"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","minLength":1,"description":"Updated list name."},"isShared":{"type":"boolean","description":"Whether the list is shared with the team."}},"required":["name","isShared"],"title":"FindymailUpdateListRequest","example":{"name":"Renamed List","isShared":false}}}}},"responses":{"200":{"description":"Updated list","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FindymailListResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"504":{"description":"Provider timed out","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}},"delete":{"summary":"Delete a given list","description":"Delete a contact list by ID. No credit cost. Credits: flat charge per call regardless of how many rows come back. Call get_endpoint_details for the live rate.","tags":["Findymail"],"x-credits-cost":{"amount":3.57,"unit":"call","billing_shape":"per_call"},"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"integer","minimum":1,"description":"List ID."},"required":true,"description":"List ID.","name":"id","in":"path"}],"responses":{"200":{"description":"Deletion result","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FindymailListResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"504":{"description":"Provider timed out","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/findymail/contacts/{id}":{"get":{"summary":"Get contacts saved","description":"Get contacts saved in a list. No credit cost. Credits: flat charge per call regardless of how many rows come back. Call get_endpoint_details for the live rate.","tags":["Findymail"],"x-credits-cost":{"amount":3.57,"unit":"call","billing_shape":"per_call"},"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"integer","minimum":1,"description":"List ID."},"required":true,"description":"List ID.","name":"id","in":"path"}],"responses":{"200":{"description":"Contacts","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FindymailContactsResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"504":{"description":"Provider timed out","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/findymail/intellimatch/search":{"post":{"summary":"Search leads","description":"Initiate an Intellimatch lead search. Returns a hash to poll status and retrieve results. No credit cost for initiation. Credits: flat charge per call regardless of how many rows come back. Call get_endpoint_details for the live rate.","tags":["Findymail"],"x-credits-cost":{"amount":3.57,"unit":"call","billing_shape":"per_call"},"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"query":{"type":"string","minLength":1,"description":"Natural language search query describing the leads you want to find."},"limit":{"type":"integer","minimum":1,"maximum":5000,"description":"Maximum number of results (max 5000)."},"config":{"type":"object","properties":{"find_contact":{"type":"boolean","description":"Whether to find contact information."},"find_email":{"type":"boolean","description":"Whether to find email addresses."},"find_phone":{"type":"boolean","description":"Whether to find phone numbers."},"target_job_titles":{"type":"array","items":{"type":"string"},"description":"Filter results to specific job titles."},"lead_list_id":{"type":"integer","description":"Save matched leads to this contact list ID."},"mode":{"type":"string","description":"Search mode."},"require_email":{"type":"boolean","description":"Only return leads for which an email was found."},"add_to_exclusion_list":{"type":"boolean","description":"Add matched leads to an exclusion list."},"exclusion_list_id":{"type":"integer","description":"Exclusion list ID to add leads to."},"exclusion_filter_list_ids":{"type":"array","items":{"type":"integer"},"description":"Exclusion list IDs to filter out leads."}},"description":"Search configuration options."}},"required":["query"],"title":"FindymailIntellimatchSearchRequest","example":{"query":"SaaS companies in San Francisco with 50-200 employees"}}}}},"responses":{"200":{"description":"Search initiated","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FindymailIntellimatchSearchResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"504":{"description":"Provider timed out","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/findymail/intellimatch/status":{"get":{"summary":"Get export status","description":"Check the status of an Intellimatch search job. No credit cost. Credits: flat charge per call regardless of how many rows come back. Call get_endpoint_details for the live rate.","tags":["Findymail"],"x-credits-cost":{"amount":3.57,"unit":"call","billing_shape":"per_call"},"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","minLength":1,"description":"Search job identifier returned from the search endpoint."},"required":true,"description":"Search job identifier returned from the search endpoint.","name":"hash","in":"query"}],"responses":{"200":{"description":"Export status","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FindymailIntellimatchStatusResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"504":{"description":"Provider timed out","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/findymail/intellimatch/data":{"get":{"summary":"Get results","description":"Retrieve Intellimatch search results. Credits: bills only for returned results, per result; reserved up-front for the requested size and settled to the actual count (see X-ColdIQ-Credits-Charged). Call get_endpoint_details for the live rate.","tags":["Findymail"],"x-credits-cost":{"amount":3.57,"unit":"result","billing_shape":"per_result"},"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","minLength":1,"description":"Search job identifier."},"required":true,"description":"Search job identifier.","name":"hash","in":"query"},{"schema":{"type":"integer","minimum":1,"description":"Page number (default 1)."},"required":false,"description":"Page number (default 1).","name":"page","in":"query"},{"schema":{"type":"integer","minimum":1,"maximum":100,"description":"Results per page (default 100, max 100). Credits charged per result row."},"required":false,"description":"Results per page (default 100, max 100). Credits charged per result row.","name":"per_page","in":"query"}],"responses":{"200":{"description":"Search results","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FindymailIntellimatchDataResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"504":{"description":"Provider timed out","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/findymail/intellimatch/exclusion-lists":{"get":{"summary":"Get all exclusion lists","description":"Get all exclusion lists. No credit cost. Credits: flat charge per call regardless of how many rows come back. Call get_endpoint_details for the live rate.","tags":["Findymail"],"x-credits-cost":{"amount":3.57,"unit":"call","billing_shape":"per_call"},"security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Exclusion lists","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FindymailExclusionListsResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"504":{"description":"Provider timed out","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}},"post":{"summary":"Create a new exclusion list","description":"Create a new exclusion list. No credit cost. Credits: flat charge per call regardless of how many rows come back. Call get_endpoint_details for the live rate.","tags":["Findymail"],"x-credits-cost":{"amount":3.57,"unit":"call","billing_shape":"per_call"},"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","minLength":1,"description":"Name of the new exclusion list."},"is_shared":{"type":"boolean","description":"Whether the exclusion list is shared with the team."}},"required":["name"],"title":"FindymailCreateExclusionListRequest","example":{"name":"Competitors"}}}}},"responses":{"200":{"description":"Created exclusion list","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FindymailExclusionListResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"504":{"description":"Provider timed out","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/findymail/intellimatch/exclusion-lists/{id}":{"get":{"summary":"Get exclusion list details","description":"Get details of an exclusion list by ID. No credit cost. Credits: flat charge per call regardless of how many rows come back. Call get_endpoint_details for the live rate.","tags":["Findymail"],"x-credits-cost":{"amount":3.57,"unit":"call","billing_shape":"per_call"},"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"integer","minimum":1,"description":"Exclusion list ID."},"required":true,"description":"Exclusion list ID.","name":"id","in":"path"}],"responses":{"200":{"description":"Exclusion list details","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FindymailExclusionListResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"504":{"description":"Provider timed out","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}},"put":{"summary":"Update an exclusion list","description":"Update an exclusion list by ID. No credit cost. Credits: flat charge per call regardless of how many rows come back. Call get_endpoint_details for the live rate.","tags":["Findymail"],"x-credits-cost":{"amount":3.57,"unit":"call","billing_shape":"per_call"},"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"integer","minimum":1,"description":"Exclusion list ID."},"required":true,"description":"Exclusion list ID.","name":"id","in":"path"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","minLength":1,"description":"Updated exclusion list name."},"is_shared":{"type":"boolean","description":"Whether the exclusion list is shared with the team."}},"required":["name"],"title":"FindymailUpdateExclusionListRequest","example":{"name":"Updated Competitors"}}}}},"responses":{"200":{"description":"Updated exclusion list","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FindymailExclusionListResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"504":{"description":"Provider timed out","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}},"delete":{"summary":"Delete an exclusion list","description":"Delete an exclusion list by ID. No credit cost. Credits: flat charge per call regardless of how many rows come back. Call get_endpoint_details for the live rate.","tags":["Findymail"],"x-credits-cost":{"amount":3.57,"unit":"call","billing_shape":"per_call"},"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"integer","minimum":1,"description":"Exclusion list ID."},"required":true,"description":"Exclusion list ID.","name":"id","in":"path"}],"responses":{"200":{"description":"Deletion result","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FindymailExclusionListResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"504":{"description":"Provider timed out","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/findymail/intellimatch/domains":{"get":{"summary":"Get excluded domains","description":"Get all excluded domains. No credit cost. Credits: flat charge per call regardless of how many rows come back. Call get_endpoint_details for the live rate.","tags":["Findymail"],"x-credits-cost":{"amount":3.57,"unit":"call","billing_shape":"per_call"},"security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Excluded domains","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FindymailExcludedDomainsResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"504":{"description":"Provider timed out","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}},"post":{"summary":"Add excluded domains","description":"Add domains to an exclusion list. No credit cost. Credits: flat charge per call regardless of how many rows come back. Call get_endpoint_details for the live rate.","tags":["Findymail"],"x-credits-cost":{"amount":3.57,"unit":"call","billing_shape":"per_call"},"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"domains":{"type":"array","items":{"type":"string","minLength":1},"minItems":1,"description":"Domain names to add to the exclusion list."},"list_id":{"type":"integer","description":"Exclusion list ID. Uses default list if omitted."}},"required":["domains"],"title":"FindymailAddExcludedDomainsRequest","example":{"domains":["competitor.com","blocked.com"]}}}}},"responses":{"200":{"description":"Added domains","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FindymailExcludedDomainsResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"504":{"description":"Provider timed out","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}},"delete":{"summary":"Remove excluded domains","description":"Remove excluded domains by ID. No credit cost. Credits: flat charge per call regardless of how many rows come back. Call get_endpoint_details for the live rate.","tags":["Findymail"],"x-credits-cost":{"amount":3.57,"unit":"call","billing_shape":"per_call"},"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"ids":{"type":"array","items":{"type":"integer"},"minItems":1,"description":"IDs of excluded domains to remove."}},"required":["ids"],"title":"FindymailRemoveExcludedDomainsRequest","example":{"ids":[1,2,3]}}}}},"responses":{"200":{"description":"Removal result","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FindymailExcludedDomainsResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"504":{"description":"Provider timed out","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/findymail/signals":{"get":{"summary":"List signals","description":"List all signals (job changes, promotions, etc.). No credit cost. Credits: flat charge per call regardless of how many rows come back. Call get_endpoint_details for the live rate.","tags":["Findymail"],"x-credits-cost":{"amount":3.57,"unit":"call","billing_shape":"per_call"},"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"integer","minimum":1,"description":"Page number."},"required":false,"description":"Page number.","name":"page","in":"query"},{"schema":{"type":"integer","minimum":1,"maximum":100,"description":"Results per page (max 100)."},"required":false,"description":"Results per page (max 100).","name":"per_page","in":"query"},{"schema":{"type":"string","enum":["keyword_mention","new_hire","job_change","post_engagement"],"description":"Filter by signal type."},"required":false,"description":"Filter by signal type.","name":"signal_type","in":"query"},{"schema":{"type":"integer","minimum":1,"description":"Filter by monitor ID."},"required":false,"description":"Filter by monitor ID.","name":"monitor_id","in":"query"},{"schema":{"type":"string","description":"Filter signals from this date (YYYY-MM-DD)."},"required":false,"description":"Filter signals from this date (YYYY-MM-DD).","name":"date_from","in":"query"},{"schema":{"type":"string","description":"Filter signals up to this date (YYYY-MM-DD)."},"required":false,"description":"Filter signals up to this date (YYYY-MM-DD).","name":"date_to","in":"query"}],"responses":{"200":{"description":"Signals list","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FindymailSignalsResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"504":{"description":"Provider timed out","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/findymail/signals/monitors":{"get":{"summary":"List monitors","description":"List all signal monitors. No credit cost. Credits: flat charge per call regardless of how many rows come back. Call get_endpoint_details for the live rate.","tags":["Findymail"],"x-credits-cost":{"amount":3.57,"unit":"call","billing_shape":"per_call"},"security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Monitors list","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FindymailMonitorsResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"504":{"description":"Provider timed out","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}},"post":{"summary":"Create a monitor","description":"Create a new signal monitor with ICP filters and engagement type triggers. No credit cost. Credits: flat charge per call regardless of how many rows come back. Call get_endpoint_details for the live rate.","tags":["Findymail"],"x-credits-cost":{"amount":3.57,"unit":"call","billing_shape":"per_call"},"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","minLength":1,"description":"Monitor name."},"signal_type":{"type":"string","enum":["keyword_mention","new_hire","job_change","post_engagement"],"description":"Type of signal to monitor."},"keywords":{"type":"array","items":{"type":"string","minLength":1},"maxItems":5,"description":"Keywords to monitor (max 5). Required for keyword_mention signal type."},"webhook_url":{"type":"string","format":"uri","description":"Webhook URL to receive signal notifications."},"post_url":{"type":"string","format":"uri","description":"LinkedIn post URL to monitor for engagement (for post_engagement signal type)."},"engagement_types":{"type":"array","items":{"type":"string"},"description":"Types of engagement to monitor (e.g. \"job_change\", \"new_hire\", \"like\", \"comment\")."},"enrichment_level":{"type":"string","enum":["email","email_phone"],"description":"Level of contact enrichment to apply to matched signals."},"lead_list_id":{"type":"integer","description":"Contact list ID to save matched leads into."},"icp_filters":{"$ref":"#/components/schemas/FindymailIcpFilters"}},"required":["name","signal_type"],"title":"FindymailCreateMonitorRequest","example":{"name":"VP+ job changes in SaaS","signal_type":"job_change","enrichment_level":"email","icp_filters":{"seniority_levels":[4,5],"industries":["saas"]}}}}}},"responses":{"200":{"description":"Created monitor","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FindymailMonitorResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"504":{"description":"Provider timed out","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/findymail/signals/monitors/{id}":{"patch":{"summary":"Update a monitor","description":"Update a signal monitor by ID. No credit cost. Credits: flat charge per call regardless of how many rows come back. Call get_endpoint_details for the live rate.","tags":["Findymail"],"x-credits-cost":{"amount":3.57,"unit":"call","billing_shape":"per_call"},"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"integer","minimum":1,"description":"Monitor ID."},"required":true,"description":"Monitor ID.","name":"id","in":"path"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","minLength":1,"description":"Updated monitor name."},"keywords":{"type":"array","items":{"type":"string","minLength":1},"maxItems":5,"description":"Updated keywords (max 5)."},"webhook_url":{"type":"string","format":"uri","description":"Updated webhook URL."},"post_url":{"type":"string","format":"uri","description":"Updated LinkedIn post URL."},"engagement_types":{"type":"array","items":{"type":"string"},"description":"Updated engagement types (e.g. \"job_change\", \"new_hire\", \"like\", \"comment\")."},"enrichment_level":{"type":"string","enum":["email","email_phone"],"description":"Updated enrichment level."},"lead_list_id":{"type":"integer","description":"Updated contact list ID."},"icp_filters":{"allOf":[{"$ref":"#/components/schemas/FindymailIcpFilters"},{"description":"Updated ICP filters."}]}},"required":["name"],"title":"FindymailUpdateMonitorRequest","example":{"name":"Updated monitor name"}}}}},"responses":{"200":{"description":"Updated monitor","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FindymailMonitorResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"504":{"description":"Provider timed out","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}},"delete":{"summary":"Delete a monitor","description":"Delete a signal monitor by ID. No credit cost. Credits: flat charge per call regardless of how many rows come back. Call get_endpoint_details for the live rate.","tags":["Findymail"],"x-credits-cost":{"amount":3.57,"unit":"call","billing_shape":"per_call"},"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"integer","minimum":1,"description":"Monitor ID."},"required":true,"description":"Monitor ID.","name":"id","in":"path"}],"responses":{"200":{"description":"Deletion result","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FindymailMonitorResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"504":{"description":"Provider timed out","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/findymail/lookalike/search":{"post":{"summary":"Search for lookalike companies","description":"Find companies similar to a given domain. Credits: bills only for returned results, per result; reserved up-front for the requested size and settled to the actual count (see X-ColdIQ-Credits-Charged). Call get_endpoint_details for the live rate.","tags":["Findymail"],"x-credits-cost":{"amount":0.36,"unit":"result","billing_shape":"per_result"},"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"seed":{"type":"string","minLength":1,"description":"Company domain to find lookalike companies for."},"limit":{"type":"integer","minimum":1,"maximum":1000,"description":"Maximum number of lookalike results to return (max 1,000). Costs 1 credit per 10 results."}},"required":["seed"],"title":"FindymailLookalikeSearchRequest","example":{"seed":"coldiq.com","limit":10}}}}},"responses":{"200":{"description":"Lookalike companies","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FindymailLookalikeSearchResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"504":{"description":"Provider timed out","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/findymail/technologies/search":{"get":{"summary":"Search available technologies","description":"Search for technology names available in the Findymail database. No credit cost. Credits: free.","tags":["Findymail"],"x-credits-cost":{"amount":0,"unit":"call","billing_shape":"per_call"},"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","minLength":1,"description":"Technology name to search for."},"required":true,"description":"Technology name to search for.","name":"q","in":"query"}],"responses":{"200":{"description":"Matching technologies","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FindymailTechnologiesResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"504":{"description":"Provider timed out","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/findymail/technologies":{"post":{"summary":"Look up technologies by domain","description":"Check which technologies are used by a company domain. Credits: bills only for returned results, per result; reserved up-front for the requested size and settled to the actual count (see X-ColdIQ-Credits-Charged). Call get_endpoint_details for the live rate.","tags":["Findymail"],"x-credits-cost":{"amount":3.57,"unit":"result","billing_shape":"per_result"},"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"domain":{"type":"string","minLength":1,"description":"Company domain to check for technology usage. Credits charged if a match is found."},"technologies":{"type":"array","items":{"type":"string","minLength":1},"minItems":1,"description":"Technology names to look up."}},"required":["domain","technologies"],"title":"FindymailTechnologiesLookupRequest","example":{"domain":"coldiq.com","technologies":["HubSpot","Salesforce"]}}}}},"responses":{"200":{"description":"Technology lookup results","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FindymailTechnologiesResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"504":{"description":"Provider timed out","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/findymail/signals/{id}":{"get":{"summary":"Get a signal","description":"Get a specific signal by ID. No credit cost. Credits: flat charge per call regardless of how many rows come back. Call get_endpoint_details for the live rate.","tags":["Findymail"],"x-credits-cost":{"amount":3.57,"unit":"call","billing_shape":"per_call"},"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"integer","minimum":1,"description":"Signal ID."},"required":true,"description":"Signal ID.","name":"id","in":"path"}],"responses":{"200":{"description":"Signal details","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FindymailSignalResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"504":{"description":"Provider timed out","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/icypeas/email-search":{"post":{"summary":"Single Search: Email Discovery","description":"Find an email address using firstname, lastname, and a company domain. Async — returns an _id to poll via the search results endpoint. Credits: flat charge per call regardless of how many rows come back. Call get_endpoint_details for the live rate. Managed alternative: `POST /v1/email/find` (Find Email) runs this provider inside a ranked waterfall with charge-on-success billing and one normalized response shape, and falls back to the other providers for this capability on a miss. Call this endpoint directly when you specifically want this provider and no fallback.","tags":["Icypeas"],"x-credits-cost":{"amount":1.05,"unit":"call","billing_shape":"per_call"},"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"firstname":{"type":"string","description":"Person's first name (at least one of firstname/lastname required)"},"lastname":{"type":"string","description":"Person's last name"},"domainOrCompany":{"type":"string","description":"Domain or company name"},"custom":{"type":"object","properties":{"webhookUrl":{"type":"string","format":"uri","description":"Custom webhook URL triggered upon search completion"},"externalId":{"type":"string","description":"Custom identifier for tracking searches"}},"description":"Optional webhook and tracking configuration"}},"required":["domainOrCompany"],"title":"IcypeasEmailSearchRequest","example":{"firstname":"Michel","lastname":"Lieben","domainOrCompany":"coldiq.com"}}}}},"responses":{"200":{"description":"Search initiated","content":{"application/json":{"schema":{"$ref":"#/components/schemas/IcypeasResponse"}}}},"400":{"description":"Bad request (upstream validation error)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"504":{"description":"Provider timed out","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/icypeas/domain-scan":{"post":{"summary":"Single Search: Domain Scan","description":"Scan a domain to discover all associated email addresses. Async — returns an _id to poll. Credits: flat charge per call regardless of how many rows come back. Call get_endpoint_details for the live rate.","tags":["Icypeas"],"x-credits-cost":{"amount":1.05,"unit":"call","billing_shape":"per_call"},"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"domainOrCompany":{"type":"string","description":"Domain or company name to scan"},"custom":{"type":"object","properties":{"webhookUrl":{"type":"string","format":"uri","description":"Custom webhook URL triggered upon search completion"},"externalId":{"type":"string","description":"Custom identifier for tracking searches"}},"description":"Optional webhook and tracking configuration"}},"required":["domainOrCompany"],"title":"IcypeasDomainScanRequest","example":{"domainOrCompany":"coldiq.com"}}}}},"responses":{"200":{"description":"Scan initiated","content":{"application/json":{"schema":{"$ref":"#/components/schemas/IcypeasResponse"}}}},"400":{"description":"Bad request (upstream validation error)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"504":{"description":"Provider timed out","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/icypeas/email-verification":{"post":{"summary":"Single Search: Email Verification","description":"Verify whether an email address is valid and deliverable. Async — returns an _id to poll. Credits: flat charge per call regardless of how many rows come back. Call get_endpoint_details for the live rate. Managed alternative: `POST /v1/email/verify` (Verify Email) runs this provider inside a ranked waterfall with charge-on-success billing and one normalized response shape, and falls back to the other providers for this capability on a miss. Call this endpoint directly when you specifically want this provider and no fallback.","tags":["Icypeas"],"x-credits-cost":{"amount":1.05,"unit":"call","billing_shape":"per_call"},"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"email":{"type":"string","format":"email","description":"Email address to verify"},"custom":{"type":"object","properties":{"webhookUrl":{"type":"string","format":"uri","description":"Custom webhook URL triggered upon search completion"},"externalId":{"type":"string","description":"Custom identifier for tracking searches"}},"description":"Optional webhook and tracking configuration"}},"required":["email"],"title":"IcypeasEmailVerificationRequest","example":{"email":"michel@coldiq.com"}}}}},"responses":{"200":{"description":"Verification initiated","content":{"application/json":{"schema":{"$ref":"#/components/schemas/IcypeasResponse"}}}},"400":{"description":"Bad request (upstream validation error)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"504":{"description":"Provider timed out","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/icypeas/bulk-search":{"post":{"summary":"Bulk search","description":"Start a new bulk search from the API. Supports email-search, domain-search, and email-verification tasks. Max 5,000 items per request. Credits: flat charge per call regardless of how many rows come back. Call get_endpoint_details for the live rate.","tags":["Icypeas"],"x-credits-cost":{"amount":1.05,"unit":"call","billing_shape":"per_call"},"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","description":"Label for identifying the bulk search"},"task":{"type":"string","enum":["domain-search","email-search","email-verification"],"description":"Operation type"},"data":{"type":"array","items":{"type":"array","items":{"type":"string"}},"minItems":1,"maxItems":500,"description":"Items to process (min 1, max 500). Format depends on task: email-search = [[\"firstname\",\"lastname\",\"domain\"]], email-verification = [[\"email\"]], domain-search = [[\"domain\"]]"},"custom":{"type":"object","properties":{"webhookUrlItem":{"type":"string","format":"uri","description":"Webhook called per processed row"},"webhookUrlBulkDone":{"type":"string","format":"uri","description":"Webhook called when bulk completes"},"externalIds":{"type":"array","items":{"type":"string"},"description":"Custom IDs matching data array length"},"includeResultsInWebhook":{"type":"boolean","description":"Include results in final webhook payload"}},"description":"Optional webhook and tracking configuration"}},"required":["name","task","data"],"title":"IcypeasBulkSearchRequest","example":{"name":"My email search","task":"email-search","data":[["Michel","Lieben","coldiq.com"]]}}}}},"responses":{"200":{"description":"Bulk search created","content":{"application/json":{"schema":{"$ref":"#/components/schemas/IcypeasResponse"}}}},"400":{"description":"Bad request (upstream validation error)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"504":{"description":"Provider timed out","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/icypeas/scrape/profile":{"post":{"summary":"Single profile scraping","description":"Scrape a LinkedIn profile by URL. Credits: flat charge per call regardless of how many rows come back. Call get_endpoint_details for the live rate. Managed alternative: `POST /v1/person/enrich` (Enrich Person) runs this provider inside a ranked waterfall with charge-on-success billing and one normalized response shape, and falls back to the other providers for this capability on a miss. Call this endpoint directly when you specifically want this provider and no fallback.","tags":["Icypeas"],"x-credits-cost":{"amount":1.05,"unit":"call","billing_shape":"per_call"},"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"url":{"type":"string","format":"uri","description":"LinkedIn profile URL to scrape"}},"required":["url"],"title":"IcypeasScrapeProfileRequest","example":{"url":"https://www.linkedin.com/in/michel-lieben"}}}}},"responses":{"200":{"description":"Profile data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/IcypeasResponse"}}}},"400":{"description":"Bad request (upstream validation error)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"504":{"description":"Provider timed out","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/icypeas/scrape/profiles":{"post":{"summary":"Bulk profiles scraping","description":"Scrape multiple LinkedIn profiles by URL. Max 50 per request. Credits: flat charge per call regardless of how many rows come back. Call get_endpoint_details for the live rate.","tags":["Icypeas"],"x-credits-cost":{"amount":1.05,"unit":"call","billing_shape":"per_call"},"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"type":"string","format":"uri"},"minItems":1,"maxItems":50,"description":"LinkedIn profile URLs to scrape (max 50)"}},"required":["data"],"title":"IcypeasScrapeProfilesBulkRequest","example":{"data":["https://www.linkedin.com/in/michel-lieben"]}}}}},"responses":{"200":{"description":"Bulk scrape initiated","content":{"application/json":{"schema":{"$ref":"#/components/schemas/IcypeasResponse"}}}},"400":{"description":"Bad request (upstream validation error)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"504":{"description":"Provider timed out","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/icypeas/scrape/company":{"post":{"summary":"Single company scraping","description":"Scrape a LinkedIn company page by URL. Credits: flat charge per call regardless of how many rows come back. Call get_endpoint_details for the live rate. Managed alternative: `POST /v1/company/enrich` (Enrich Company) runs this provider inside a ranked waterfall with charge-on-success billing and one normalized response shape, and falls back to the other providers for this capability on a miss. Call this endpoint directly when you specifically want this provider and no fallback.","tags":["Icypeas"],"x-credits-cost":{"amount":1.05,"unit":"call","billing_shape":"per_call"},"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"url":{"type":"string","format":"uri","description":"LinkedIn company URL to scrape"}},"required":["url"],"title":"IcypeasScrapeCompanyRequest","example":{"url":"https://www.linkedin.com/company/coldlabs"}}}}},"responses":{"200":{"description":"Company data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/IcypeasResponse"}}}},"400":{"description":"Bad request (upstream validation error)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"504":{"description":"Provider timed out","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/icypeas/scrape/companies":{"post":{"summary":"Bulk companies scraping","description":"Scrape multiple LinkedIn company pages by URL. Max 50 per request. Credits: flat charge per call regardless of how many rows come back. Call get_endpoint_details for the live rate.","tags":["Icypeas"],"x-credits-cost":{"amount":1.05,"unit":"call","billing_shape":"per_call"},"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"type":"string","format":"uri"},"minItems":1,"maxItems":50,"description":"LinkedIn company URLs to scrape (max 50)"}},"required":["data"],"title":"IcypeasScrapeCompaniesBulkRequest","example":{"data":["https://www.linkedin.com/company/coldlabs"]}}}}},"responses":{"200":{"description":"Bulk scrape initiated","content":{"application/json":{"schema":{"$ref":"#/components/schemas/IcypeasResponse"}}}},"400":{"description":"Bad request (upstream validation error)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"504":{"description":"Provider timed out","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/icypeas/url-search/profile":{"post":{"summary":"Search for profile page one at a time","description":"Find a LinkedIn profile URL from name and company/job title. Credits: flat charge per call regardless of how many rows come back. Call get_endpoint_details for the live rate. Managed alternative: `POST /v1/person/enrich` (Enrich Person) runs this provider inside a ranked waterfall with charge-on-success billing and one normalized response shape, and falls back to the other providers for this capability on a miss. Call this endpoint directly when you specifically want this provider and no fallback.","tags":["Icypeas"],"x-credits-cost":{"amount":1.05,"unit":"call","billing_shape":"per_call"},"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"firstname":{"type":"string","description":"First name"},"lastname":{"type":"string","description":"Last name"},"companyOrDomain":{"type":"string","description":"Company name or domain (required if jobTitle not provided)"},"jobTitle":{"type":"string","description":"Job title (required if companyOrDomain not provided)"}},"required":["firstname","lastname"],"title":"IcypeasProfileUrlSearchRequest","example":{"firstname":"Michel","lastname":"Lieben","companyOrDomain":"coldiq.com"}}}}},"responses":{"200":{"description":"Profile URL result","content":{"application/json":{"schema":{"$ref":"#/components/schemas/IcypeasResponse"}}}},"400":{"description":"Bad request (upstream validation error)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"504":{"description":"Provider timed out","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/icypeas/url-search/profiles":{"post":{"summary":"Search for profile pages in bulk","description":"Find LinkedIn profile URLs in bulk. Max 50 per request. Credits: flat charge per call regardless of how many rows come back. Call get_endpoint_details for the live rate.","tags":["Icypeas"],"x-credits-cost":{"amount":1.05,"unit":"call","billing_shape":"per_call"},"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"firstname":{"type":"string"},"lastname":{"type":"string"},"companyOrDomain":{"type":"string"},"jobTitle":{"type":"string"}},"required":["firstname","lastname"]},"minItems":1,"maxItems":50,"description":"Profile search items (max 50)"}},"required":["data"],"title":"IcypeasProfileUrlSearchBulkRequest","example":{"data":[{"firstname":"Michel","lastname":"Lieben","companyOrDomain":"coldiq.com"}]}}}}},"responses":{"200":{"description":"Bulk profile URL search initiated","content":{"application/json":{"schema":{"$ref":"#/components/schemas/IcypeasResponse"}}}},"400":{"description":"Bad request (upstream validation error)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"504":{"description":"Provider timed out","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/icypeas/url-search/company":{"post":{"summary":"Search for company page one at a time","description":"Find a LinkedIn company page URL from company name or domain. Credits: flat charge per call regardless of how many rows come back. Call get_endpoint_details for the live rate.","tags":["Icypeas"],"x-credits-cost":{"amount":1.05,"unit":"call","billing_shape":"per_call"},"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"companyOrDomain":{"type":"string","description":"Company name or domain"}},"required":["companyOrDomain"],"title":"IcypeasCompanyUrlSearchRequest","example":{"companyOrDomain":"coldiq.com"}}}}},"responses":{"200":{"description":"Company URL result","content":{"application/json":{"schema":{"$ref":"#/components/schemas/IcypeasResponse"}}}},"400":{"description":"Bad request (upstream validation error)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"504":{"description":"Provider timed out","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/icypeas/url-search/companies":{"post":{"summary":"Search for company pages in bulk","description":"Find LinkedIn company page URLs in bulk. Max 50 per request. Credits: flat charge per call regardless of how many rows come back. Call get_endpoint_details for the live rate.","tags":["Icypeas"],"x-credits-cost":{"amount":1.05,"unit":"call","billing_shape":"per_call"},"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"companyOrDomain":{"type":"string"}},"required":["companyOrDomain"]},"minItems":1,"maxItems":50,"description":"Company search items (max 50)"}},"required":["data"],"title":"IcypeasCompanyUrlSearchBulkRequest","example":{"data":[{"companyOrDomain":"coldiq.com"}]}}}}},"responses":{"200":{"description":"Bulk company URL search initiated","content":{"application/json":{"schema":{"$ref":"#/components/schemas/IcypeasResponse"}}}},"400":{"description":"Bad request (upstream validation error)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"504":{"description":"Provider timed out","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/icypeas/find-people/count":{"post":{"summary":"Count the number of people matching your query","description":"Count people matching query filters in the Icypeas lead database. Free — no credit cost. Credits: flat charge per call regardless of how many rows come back. Call get_endpoint_details for the live rate.","tags":["Icypeas"],"x-credits-cost":{"amount":1.05,"unit":"call","billing_shape":"per_call"},"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"query":{"type":"object","properties":{"firstname":{"type":"object","properties":{"include":{"type":"array","items":{"type":"string"},"maxItems":200},"exclude":{"type":"array","items":{"type":"string"},"maxItems":200}}},"lastname":{"type":"object","properties":{"include":{"type":"array","items":{"type":"string"},"maxItems":200},"exclude":{"type":"array","items":{"type":"string"},"maxItems":200}}},"currentJobTitle":{"type":"object","properties":{"include":{"type":"array","items":{"type":"string"},"maxItems":200},"exclude":{"type":"array","items":{"type":"string"},"maxItems":200}}},"pastJobTitle":{"type":"object","properties":{"include":{"type":"array","items":{"type":"string"},"maxItems":200},"exclude":{"type":"array","items":{"type":"string"},"maxItems":200}}},"currentCompanyName":{"type":"object","properties":{"include":{"type":"array","items":{"type":"string"},"maxItems":200},"exclude":{"type":"array","items":{"type":"string"},"maxItems":200}}},"pastCompanyName":{"type":"object","properties":{"include":{"type":"array","items":{"type":"string"},"maxItems":200},"exclude":{"type":"array","items":{"type":"string"},"maxItems":200}}},"currentCompanyUrn":{"type":"object","properties":{"include":{"type":"array","items":{"type":"string"},"maxItems":200},"exclude":{"type":"array","items":{"type":"string"},"maxItems":200}}},"pastCompanyUrn":{"type":"object","properties":{"include":{"type":"array","items":{"type":"string"},"maxItems":200},"exclude":{"type":"array","items":{"type":"string"},"maxItems":200}}},"currentCompanyWebsite":{"type":"object","properties":{"include":{"type":"array","items":{"type":"string"},"maxItems":200},"exclude":{"type":"array","items":{"type":"string"},"maxItems":200}}},"pastCompanyWebsite":{"type":"object","properties":{"include":{"type":"array","items":{"type":"string"},"maxItems":200},"exclude":{"type":"array","items":{"type":"string"},"maxItems":200}}},"currentCompanyId":{"type":"object","properties":{"include":{"type":"array","items":{"type":"string"},"maxItems":200},"exclude":{"type":"array","items":{"type":"string"},"maxItems":200}}},"pastCompanyId":{"type":"object","properties":{"include":{"type":"array","items":{"type":"string"},"maxItems":200},"exclude":{"type":"array","items":{"type":"string"},"maxItems":200}}},"school":{"type":"object","properties":{"include":{"type":"array","items":{"type":"string"},"maxItems":200},"exclude":{"type":"array","items":{"type":"string"},"maxItems":200}}},"languages":{"type":"object","properties":{"include":{"type":"array","items":{"type":"string"},"maxItems":200},"exclude":{"type":"array","items":{"type":"string"},"maxItems":200}}},"skills":{"type":"object","properties":{"include":{"type":"array","items":{"type":"string"},"maxItems":200},"exclude":{"type":"array","items":{"type":"string"},"maxItems":200}}},"location":{"type":"object","properties":{"include":{"type":"array","items":{"type":"string"},"maxItems":200},"exclude":{"type":"array","items":{"type":"string"},"maxItems":200}}},"keyword":{"type":"object","properties":{"include":{"type":"array","items":{"type":"string"},"maxItems":200},"exclude":{"type":"array","items":{"type":"string"},"maxItems":200}}}},"additionalProperties":{"nullable":true},"description":"Query filters for people search"}},"required":["query"],"title":"IcypeasFindPeopleCountRequest","example":{"query":{"currentJobTitle":{"include":["CEO"]},"location":{"include":["France"]}}}}}}},"responses":{"200":{"description":"People count result","content":{"application/json":{"schema":{"$ref":"#/components/schemas/IcypeasResponse"}}}},"400":{"description":"Bad request (upstream validation error)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"504":{"description":"Provider timed out","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/icypeas/find-people":{"post":{"summary":"Find people","description":"Find people matching query filters in the Icypeas lead database. Supports pagination. Credits: bills only for returned results, per result; reserved up-front for the requested size and settled to the actual count (see X-ColdIQ-Credits-Charged). Call get_endpoint_details for the live rate.","tags":["Icypeas"],"x-credits-cost":{"amount":1.05,"unit":"result","billing_shape":"per_result"},"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"query":{"type":"object","properties":{"firstname":{"type":"object","properties":{"include":{"type":"array","items":{"type":"string"},"maxItems":200},"exclude":{"type":"array","items":{"type":"string"},"maxItems":200}}},"lastname":{"type":"object","properties":{"include":{"type":"array","items":{"type":"string"},"maxItems":200},"exclude":{"type":"array","items":{"type":"string"},"maxItems":200}}},"currentJobTitle":{"type":"object","properties":{"include":{"type":"array","items":{"type":"string"},"maxItems":200},"exclude":{"type":"array","items":{"type":"string"},"maxItems":200}}},"pastJobTitle":{"type":"object","properties":{"include":{"type":"array","items":{"type":"string"},"maxItems":200},"exclude":{"type":"array","items":{"type":"string"},"maxItems":200}}},"currentCompanyName":{"type":"object","properties":{"include":{"type":"array","items":{"type":"string"},"maxItems":200},"exclude":{"type":"array","items":{"type":"string"},"maxItems":200}}},"pastCompanyName":{"type":"object","properties":{"include":{"type":"array","items":{"type":"string"},"maxItems":200},"exclude":{"type":"array","items":{"type":"string"},"maxItems":200}}},"currentCompanyUrn":{"type":"object","properties":{"include":{"type":"array","items":{"type":"string"},"maxItems":200},"exclude":{"type":"array","items":{"type":"string"},"maxItems":200}}},"pastCompanyUrn":{"type":"object","properties":{"include":{"type":"array","items":{"type":"string"},"maxItems":200},"exclude":{"type":"array","items":{"type":"string"},"maxItems":200}}},"currentCompanyWebsite":{"type":"object","properties":{"include":{"type":"array","items":{"type":"string"},"maxItems":200},"exclude":{"type":"array","items":{"type":"string"},"maxItems":200}}},"pastCompanyWebsite":{"type":"object","properties":{"include":{"type":"array","items":{"type":"string"},"maxItems":200},"exclude":{"type":"array","items":{"type":"string"},"maxItems":200}}},"currentCompanyId":{"type":"object","properties":{"include":{"type":"array","items":{"type":"string"},"maxItems":200},"exclude":{"type":"array","items":{"type":"string"},"maxItems":200}}},"pastCompanyId":{"type":"object","properties":{"include":{"type":"array","items":{"type":"string"},"maxItems":200},"exclude":{"type":"array","items":{"type":"string"},"maxItems":200}}},"school":{"type":"object","properties":{"include":{"type":"array","items":{"type":"string"},"maxItems":200},"exclude":{"type":"array","items":{"type":"string"},"maxItems":200}}},"languages":{"type":"object","properties":{"include":{"type":"array","items":{"type":"string"},"maxItems":200},"exclude":{"type":"array","items":{"type":"string"},"maxItems":200}}},"skills":{"type":"object","properties":{"include":{"type":"array","items":{"type":"string"},"maxItems":200},"exclude":{"type":"array","items":{"type":"string"},"maxItems":200}}},"location":{"type":"object","properties":{"include":{"type":"array","items":{"type":"string"},"maxItems":200},"exclude":{"type":"array","items":{"type":"string"},"maxItems":200}}},"keyword":{"type":"object","properties":{"include":{"type":"array","items":{"type":"string"},"maxItems":200},"exclude":{"type":"array","items":{"type":"string"},"maxItems":200}}}},"additionalProperties":{"nullable":true},"description":"Query filters for people search"},"pagination":{"type":"object","properties":{"token":{"type":"string","description":"Pagination token from previous response"},"size":{"type":"integer","minimum":1,"maximum":200,"description":"Results per page (1-200, default 100)"}},"description":"Pagination control"}},"required":["query"],"title":"IcypeasFindPeopleRequest","example":{"query":{"currentJobTitle":{"include":["CEO"]},"location":{"include":["France"]}},"pagination":{"size":10}}}}}},"responses":{"200":{"description":"People results","content":{"application/json":{"schema":{"$ref":"#/components/schemas/IcypeasResponse"}}}},"400":{"description":"Bad request (upstream validation error)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"504":{"description":"Provider timed out","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/icypeas/find-companies/count":{"post":{"summary":"Count the number of companies matching your query","description":"Count companies matching query filters in the Icypeas lead database. Free — no credit cost. Credits: flat charge per call regardless of how many rows come back. Call get_endpoint_details for the live rate.","tags":["Icypeas"],"x-credits-cost":{"amount":1.05,"unit":"call","billing_shape":"per_call"},"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"query":{"type":"object","properties":{"name":{"type":"object","properties":{"include":{"type":"array","items":{"type":"string"},"maxItems":200},"exclude":{"type":"array","items":{"type":"string"},"maxItems":200}}},"lid":{"type":"object","properties":{"include":{"type":"array","items":{"type":"string"},"maxItems":200},"exclude":{"type":"array","items":{"type":"string"},"maxItems":200}}},"urn":{"type":"object","properties":{"include":{"type":"array","items":{"type":"string"},"maxItems":200},"exclude":{"type":"array","items":{"type":"string"},"maxItems":200}}},"companyId":{"type":"object","properties":{"include":{"type":"array","items":{"type":"string"},"maxItems":200},"exclude":{"type":"array","items":{"type":"string"},"maxItems":200}}},"type":{"type":"object","properties":{"include":{"type":"array","items":{"type":"string"},"maxItems":200},"exclude":{"type":"array","items":{"type":"string"},"maxItems":200}}},"industry":{"type":"object","properties":{"include":{"type":"array","items":{"type":"string"},"maxItems":200},"exclude":{"type":"array","items":{"type":"string"},"maxItems":200}}},"location":{"type":"object","properties":{"include":{"type":"array","items":{"type":"string"},"maxItems":200},"exclude":{"type":"array","items":{"type":"string"},"maxItems":200}}},"headcount":{"type":"object","properties":{"include":{"type":"array","items":{"type":"string"},"maxItems":200},"exclude":{"type":"array","items":{"type":"string"},"maxItems":200}}},"keyword":{"type":"object","properties":{"include":{"type":"array","items":{"type":"string"},"maxItems":200},"exclude":{"type":"array","items":{"type":"string"},"maxItems":200}}},"domain":{"type":"object","properties":{"include":{"type":"array","items":{"type":"string"},"maxItems":200},"exclude":{"type":"array","items":{"type":"string"},"maxItems":200}}}},"additionalProperties":{"nullable":true},"description":"Query filters for company search"}},"required":["query"],"title":"IcypeasFindCompaniesCountRequest","example":{"query":{"industry":{"include":["Technology"]},"location":{"include":["France"]}}}}}}},"responses":{"200":{"description":"Companies count result","content":{"application/json":{"schema":{"$ref":"#/components/schemas/IcypeasResponse"}}}},"400":{"description":"Bad request (upstream validation error)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"504":{"description":"Provider timed out","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/icypeas/find-companies":{"post":{"summary":"Find companies","description":"Find companies matching query filters in the Icypeas lead database. Supports pagination. Credits: bills only for returned results, per result; reserved up-front for the requested size and settled to the actual count (see X-ColdIQ-Credits-Charged). Call get_endpoint_details for the live rate.","tags":["Icypeas"],"x-credits-cost":{"amount":1.05,"unit":"result","billing_shape":"per_result"},"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"query":{"type":"object","properties":{"name":{"type":"object","properties":{"include":{"type":"array","items":{"type":"string"},"maxItems":200},"exclude":{"type":"array","items":{"type":"string"},"maxItems":200}}},"lid":{"type":"object","properties":{"include":{"type":"array","items":{"type":"string"},"maxItems":200},"exclude":{"type":"array","items":{"type":"string"},"maxItems":200}}},"urn":{"type":"object","properties":{"include":{"type":"array","items":{"type":"string"},"maxItems":200},"exclude":{"type":"array","items":{"type":"string"},"maxItems":200}}},"companyId":{"type":"object","properties":{"include":{"type":"array","items":{"type":"string"},"maxItems":200},"exclude":{"type":"array","items":{"type":"string"},"maxItems":200}}},"type":{"type":"object","properties":{"include":{"type":"array","items":{"type":"string"},"maxItems":200},"exclude":{"type":"array","items":{"type":"string"},"maxItems":200}}},"industry":{"type":"object","properties":{"include":{"type":"array","items":{"type":"string"},"maxItems":200},"exclude":{"type":"array","items":{"type":"string"},"maxItems":200}}},"location":{"type":"object","properties":{"include":{"type":"array","items":{"type":"string"},"maxItems":200},"exclude":{"type":"array","items":{"type":"string"},"maxItems":200}}},"headcount":{"type":"object","properties":{"include":{"type":"array","items":{"type":"string"},"maxItems":200},"exclude":{"type":"array","items":{"type":"string"},"maxItems":200}}},"keyword":{"type":"object","properties":{"include":{"type":"array","items":{"type":"string"},"maxItems":200},"exclude":{"type":"array","items":{"type":"string"},"maxItems":200}}},"domain":{"type":"object","properties":{"include":{"type":"array","items":{"type":"string"},"maxItems":200},"exclude":{"type":"array","items":{"type":"string"},"maxItems":200}}}},"additionalProperties":{"nullable":true},"description":"Query filters for company search"},"pagination":{"type":"object","properties":{"token":{"type":"string","description":"Pagination token from previous response"},"size":{"type":"integer","minimum":1,"maximum":200,"description":"Results per page (1-200, default 100)"}},"description":"Pagination control"}},"required":["query"],"title":"IcypeasFindCompaniesRequest","example":{"query":{"industry":{"include":["Technology"]},"location":{"include":["France"]}},"pagination":{"size":10}}}}}},"responses":{"200":{"description":"Companies results","content":{"application/json":{"schema":{"$ref":"#/components/schemas/IcypeasResponse"}}}},"400":{"description":"Bad request (upstream validation error)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"504":{"description":"Provider timed out","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/icypeas/reverse-email-lookup":{"post":{"summary":"Single search : Find the profile URL behind a single email address","description":"Look up a person profile from a professional email address. Credits: flat charge per call regardless of how many rows come back. Call get_endpoint_details for the live rate. Managed alternative: `POST /v1/person/enrich` (Enrich Person) runs this provider inside a ranked waterfall with charge-on-success billing and one normalized response shape, and falls back to the other providers for this capability on a miss. Call this endpoint directly when you specifically want this provider and no fallback.","tags":["Icypeas"],"x-credits-cost":{"amount":1.05,"unit":"call","billing_shape":"per_call"},"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"email":{"type":"string","format":"email","description":"Professional email address"}},"required":["email"],"title":"IcypeasReverseEmailLookupRequest","example":{"email":"michel@coldiq.com"}}}}},"responses":{"200":{"description":"Reverse lookup result","content":{"application/json":{"schema":{"$ref":"#/components/schemas/IcypeasResponse"}}}},"400":{"description":"Bad request (upstream validation error)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"504":{"description":"Provider timed out","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/icypeas/reverse-email-lookups":{"post":{"summary":"Bulk search : Find the profile URLs behind many email addresses","description":"Reverse look up multiple email addresses. Min 2, max 50 per request. Credits: flat charge per call regardless of how many rows come back. Call get_endpoint_details for the live rate.","tags":["Icypeas"],"x-credits-cost":{"amount":1.05,"unit":"call","billing_shape":"per_call"},"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"type":"string","format":"email"},"minItems":2,"maxItems":50,"description":"Email addresses to look up (min 2, max 50)"}},"required":["data"],"title":"IcypeasReverseEmailLookupsBulkRequest","example":{"data":["michel@coldiq.com","satya@microsoft.com"]}}}}},"responses":{"200":{"description":"Bulk reverse lookup initiated","content":{"application/json":{"schema":{"$ref":"#/components/schemas/IcypeasResponse"}}}},"400":{"description":"Bad request (upstream validation error)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"504":{"description":"Provider timed out","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/icypeas/search-results":{"post":{"summary":"Retrieve your results","description":"Fetch results for a previously initiated search using its _id. Free — no credit cost. Credits: flat charge per call regardless of how many rows come back. Call get_endpoint_details for the live rate.","tags":["Icypeas"],"x-credits-cost":{"amount":1.05,"unit":"call","billing_shape":"per_call"},"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"mode":{"type":"string","enum":["bulk","single"],"description":"Result retrieval mode"},"id":{"type":"string","description":"Item _id returned by the initiation endpoint (required for mode=single)"},"file":{"type":"string","description":"File ID returned by bulk-search (required for mode=bulk)"},"limit":{"type":"integer","minimum":1,"maximum":100,"description":"Number of results (default 10, max 100)"},"next":{"type":"boolean","description":"Pagination direction (true = next, false = previous)"},"sort":{"type":"array","items":{"nullable":true},"description":"Pagination cursor from previous response"},"type":{"type":"string","description":"Filter by task type (e.g. email-search, domain-scan, email-verification)"}},"required":["mode"],"title":"IcypeasSearchResultsRequest","example":{"mode":"single","id":"507f1f77bcf86cd799439011"}}}}},"responses":{"200":{"description":"Search results","content":{"application/json":{"schema":{"$ref":"#/components/schemas/IcypeasResponse"}}}},"400":{"description":"Bad request (upstream validation error)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"504":{"description":"Provider timed out","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/icypeas/search-files":{"post":{"summary":"Fetch information and stats about your bulk searches","description":"Fetch information about bulk search files. Free — no credit cost. Credits: flat charge per call regardless of how many rows come back. Call get_endpoint_details for the live rate.","tags":["Icypeas"],"x-credits-cost":{"amount":1.05,"unit":"call","billing_shape":"per_call"},"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"file":{"type":"string","description":"File ID returned by bulk-search"},"status":{"type":"string","enum":["in_progress","done"],"description":"Filter by status"}},"required":["file"],"title":"IcypeasSearchFilesRequest","example":{"file":"507f1f77bcf86cd799439011"}}}}},"responses":{"200":{"description":"Bulk search files","content":{"application/json":{"schema":{"$ref":"#/components/schemas/IcypeasResponse"}}}},"400":{"description":"Bad request (upstream validation error)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"504":{"description":"Provider timed out","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/apollo/people/match":{"post":{"summary":"People Enrichment","description":"Enrich a person by name, email, LinkedIn URL, or company. Returns detailed profile data including employment history, social links, and contact info. Credits: flat charge per call regardless of how many rows come back. Call get_endpoint_details for the live rate. Managed alternatives: `POST /v1/email/find` (Find Email) and `POST /v1/person/enrich` (Enrich Person) run this provider inside a ranked waterfall with charge-on-success billing and one normalized response shape, and fall back to the other providers for this capability on a miss. Call this endpoint directly when you specifically want this provider and no fallback.","tags":["Apollo"],"x-credits-cost":{"amount":9.91,"unit":"call","billing_shape":"per_call"},"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"first_name":{"type":"string","description":"Person's first name"},"last_name":{"type":"string","description":"Person's last name"},"name":{"type":"string","description":"Full name (alternative to first/last)"},"email":{"type":"string","description":"Email address"},"hashed_email":{"type":"string","description":"SHA-256 hashed email"},"organization_name":{"type":"string","description":"Current company name"},"domain":{"type":"string","description":"Current company domain"},"id":{"type":"string","pattern":"^[a-f0-9]{24}$","description":"Apollo person ID"},"linkedin_url":{"type":"string","description":"LinkedIn profile URL"},"reveal_personal_emails":{"type":"boolean","description":"Include personal emails"},"reveal_phone_number":{"type":"boolean","description":"Include direct phone numbers"},"webhook_url":{"type":"string","description":"Webhook URL for waterfall enrichment results"}},"title":"ApolloPeopleEnrichmentRequest","example":{"first_name":"Michel","last_name":"Lieben","organization_name":"ColdIQ"}}}}},"responses":{"200":{"description":"Person data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApolloResponse"}}}},"400":{"description":"Bad request (upstream validation error)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/apollo/people/bulk-match":{"post":{"summary":"Bulk People Enrichment","description":"Enrich up to 10 people in a single request. Credits: bills only for returned results, per person; reserved up-front for the requested size and settled to the actual count (see X-ColdIQ-Credits-Charged). Call get_endpoint_details for the live rate.","tags":["Apollo"],"x-credits-cost":{"amount":9.91,"unit":"person","billing_shape":"per_result"},"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"details":{"type":"array","items":{"type":"object","properties":{"first_name":{"type":"string"},"last_name":{"type":"string"},"name":{"type":"string"},"email":{"type":"string"},"hashed_email":{"type":"string"},"organization_name":{"type":"string"},"domain":{"type":"string"},"id":{"type":"string","pattern":"^[a-f0-9]{24}$"},"linkedin_url":{"type":"string"}}},"minItems":1,"maxItems":10,"description":"Array of people to enrich (max 10)"},"reveal_personal_emails":{"type":"boolean","description":"Include personal emails"},"reveal_phone_number":{"type":"boolean","description":"Include direct phone numbers"},"webhook_url":{"type":"string","description":"Webhook URL for waterfall enrichment results"}},"required":["details"],"title":"ApolloBulkPeopleEnrichmentRequest","example":{"details":[{"first_name":"Michel","last_name":"Lieben","organization_name":"ColdIQ"}]}}}}},"responses":{"200":{"description":"People data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApolloResponse"}}}},"400":{"description":"Bad request (upstream validation error)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/apollo/organizations/enrich":{"post":{"summary":"Organization Enrichment","description":"Enrich an organization by domain. Returns company details, size, funding, tech stack, etc. Credits: flat charge per call regardless of how many rows come back. Call get_endpoint_details for the live rate. Managed alternative: `POST /v1/company/enrich` (Enrich Company) runs this provider inside a ranked waterfall with charge-on-success billing and one normalized response shape, and falls back to the other providers for this capability on a miss. Call this endpoint directly when you specifically want this provider and no fallback.","tags":["Apollo"],"x-credits-cost":{"amount":9.91,"unit":"call","billing_shape":"per_call"},"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"domain":{"type":"string","description":"Company domain to enrich"}},"required":["domain"],"title":"ApolloOrgEnrichmentRequest","example":{"domain":"coldiq.com"}}}}},"responses":{"200":{"description":"Organization data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApolloResponse"}}}},"400":{"description":"Bad request (upstream validation error)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/apollo/organizations/bulk-enrich":{"post":{"summary":"Bulk Organization Enrichment","description":"Enrich up to 10 organizations by domain in a single request. Credits: bills only for returned results, per org; reserved up-front for the requested size and settled to the actual count (see X-ColdIQ-Credits-Charged). Call get_endpoint_details for the live rate.","tags":["Apollo"],"x-credits-cost":{"amount":9.91,"unit":"org","billing_shape":"per_result"},"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"domains":{"type":"array","items":{"type":"string"},"minItems":1,"maxItems":10,"description":"Array of company domains to enrich (max 10). Duplicates are deduplicated."}},"required":["domains"],"title":"ApolloBulkOrgEnrichmentRequest","example":{"domains":["coldiq.com","microsoft.com"]}}}}},"responses":{"200":{"description":"Organizations data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApolloResponse"}}}},"400":{"description":"Bad request (upstream validation error)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/apollo/people/search":{"post":{"summary":"People API Search","description":"Search for people in Apollo's global database with filters like title, seniority, location, company. Credits: flat charge per call regardless of how many rows come back. Call get_endpoint_details for the live rate. Managed alternative: `POST /v1/people/search` (Find People) runs this provider inside a ranked waterfall with charge-on-success billing and one normalized response shape, and falls back to the other providers for this capability on a miss. Call this endpoint directly when you specifically want this provider and no fallback.","tags":["Apollo"],"x-credits-cost":{"amount":9.91,"unit":"call","billing_shape":"per_call"},"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"q_keywords":{"type":"string","description":"Keywords to search for"},"person_titles":{"type":"array","items":{"type":"string"},"description":"Job titles to filter by"},"person_not_titles":{"type":"array","items":{"type":"string"},"description":"Job titles to exclude"},"include_similar_titles":{"type":"boolean","description":"When true, Apollo expands the match to similar job titles"},"person_seniorities":{"type":"array","items":{"type":"string"},"description":"Seniority levels (e.g. senior, manager, director, vp, c_suite)"},"q_organization_domains":{"type":"array","items":{"type":"string"},"description":"Company domains to filter by"},"organization_ids":{"type":"array","items":{"type":"string"},"description":"Apollo organization IDs"},"organization_num_employees_ranges":{"type":"array","items":{"type":"string"},"description":"Employee count ranges (e.g. \"1,10\", \"11,50\")"},"person_locations":{"type":"array","items":{"type":"string"},"description":"Person locations to filter by"},"organization_locations":{"type":"array","items":{"type":"string"},"description":"Company locations to filter by"},"contact_email_status":{"type":"array","items":{"type":"string"},"description":"Email status filter (e.g. verified, guessed, unavailable)"},"revenue_range":{"type":"object","properties":{"min":{"type":"number"},"max":{"type":"number"}},"description":"Employer revenue range, e.g. { min: 1000000, max: 50000000 }"},"currently_using_any_of_technology_uids":{"type":"array","items":{"type":"string"},"description":"Employer uses any of these technology UIDs"},"currently_using_all_of_technology_uids":{"type":"array","items":{"type":"string"},"description":"Employer uses all of these technology UIDs"},"currently_not_using_any_of_technology_uids":{"type":"array","items":{"type":"string"},"description":"Exclude employers using any of these technology UIDs"},"q_organization_job_titles":{"type":"array","items":{"type":"string"},"description":"Job titles in employer's active job postings"},"organization_job_locations":{"type":"array","items":{"type":"string"},"description":"Locations of employer's active job postings"},"organization_num_jobs_range":{"type":"object","properties":{"min":{"type":"number"},"max":{"type":"number"}},"description":"Range of active job postings at employer"},"organization_job_posted_at_range":{"type":"object","properties":{"min":{"type":"string"},"max":{"type":"string"}},"description":"Date range for employer job postings (YYYY-MM-DD)"},"page":{"type":"integer","minimum":1,"description":"Page number (default 1)"},"per_page":{"type":"integer","minimum":1,"maximum":100,"description":"Results per page (max 100, default 25)"}},"title":"ApolloPeopleSearchRequest","example":{"person_titles":["CEO"],"person_locations":["United States"],"per_page":10,"page":1}}}}},"responses":{"200":{"description":"People search results","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApolloResponse"}}}},"400":{"description":"Bad request (upstream validation error)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/apollo/organizations/search":{"post":{"summary":"Organization Search","description":"Search for organizations in Apollo's global database with filters like industry, size, location. Credits: flat charge per call regardless of how many rows come back. Call get_endpoint_details for the live rate. Managed alternative: `POST /v1/companies/search` (Search Companies) runs this provider inside a ranked waterfall with charge-on-success billing and one normalized response shape, and falls back to the other providers for this capability on a miss. Call this endpoint directly when you specifically want this provider and no fallback.","tags":["Apollo"],"x-credits-cost":{"amount":9.91,"unit":"call","billing_shape":"per_call"},"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"q_keywords":{"type":"string","description":"Keywords to search for"},"q_organization_name":{"type":"string","description":"Full or partial company name match"},"organization_ids":{"type":"array","items":{"type":"string"},"description":"Apollo organization IDs"},"organization_num_employees_ranges":{"type":"array","items":{"type":"string"},"description":"Employee count ranges"},"organization_locations":{"type":"array","items":{"type":"string"},"description":"Company locations"},"organization_not_locations":{"type":"array","items":{"type":"string"},"description":"Locations to exclude"},"q_organization_keyword_tags":{"type":"array","items":{"type":"string"},"description":"Industry/keyword tags"},"organization_not_keyword_tags":{"type":"array","items":{"type":"string"},"description":"Industry/keyword tags to exclude"},"revenue_range":{"type":"object","properties":{"min":{"type":"number"},"max":{"type":"number"}},"description":"Annual revenue range, e.g. { min: 1000000, max: 50000000 }"},"currently_using_any_of_technology_uids":{"type":"array","items":{"type":"string"},"description":"Companies using any of these technology UIDs"},"latest_funding_amount_range":{"type":"object","properties":{"min":{"type":"number"},"max":{"type":"number"}},"description":"Latest funding round amount range"},"total_funding_range":{"type":"object","properties":{"min":{"type":"number"},"max":{"type":"number"}},"description":"Cumulative funding range"},"latest_funding_date_range":{"type":"object","properties":{"min":{"type":"string"},"max":{"type":"string"}},"description":"Date range for the latest funding round (YYYY-MM-DD)"},"q_organization_job_titles":{"type":"array","items":{"type":"string"},"description":"Job titles in the company's active postings"},"organization_job_locations":{"type":"array","items":{"type":"string"},"description":"Locations of company job postings"},"organization_num_jobs_range":{"type":"object","properties":{"min":{"type":"number"},"max":{"type":"number"}},"description":"Range of active job postings"},"organization_job_posted_at_range":{"type":"object","properties":{"min":{"type":"string"},"max":{"type":"string"}},"description":"Date range for job postings (YYYY-MM-DD)"},"page":{"type":"integer","minimum":1,"description":"Page number (default 1)"},"per_page":{"type":"integer","minimum":1,"maximum":100,"description":"Results per page (max 100, default 25)"},"limit":{"type":"integer","minimum":1,"maximum":500,"description":"Auto-paginate and return up to this many companies (max 500). Apollo serves 100 per page at 1 credit/page, so this fetches up to ceil(limit/100) pages, billing only the pages actually fetched. Use instead of page/per_page for list building."}},"title":"ApolloOrgSearchRequest","example":{"q_organization_keyword_tags":["technology"],"organization_locations":["United States"],"limit":50}}}}},"responses":{"200":{"description":"Organization search results","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApolloResponse"}}}},"400":{"description":"Bad request (upstream validation error)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/apollo/organizations/info":{"post":{"summary":"Get Complete Organization Info","description":"Get detailed information about a specific organization by its Apollo ID. Credits: flat charge per call regardless of how many rows come back. Call get_endpoint_details for the live rate.","tags":["Apollo"],"x-credits-cost":{"amount":9.91,"unit":"call","billing_shape":"per_call"},"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"organization_id":{"type":"string","pattern":"^[a-f0-9]{24}$","description":"Apollo organization ID"}},"required":["organization_id"],"title":"ApolloGetOrgInfoRequest","example":{"organization_id":"5fcd2cf3ed78c700f9383e4e"}}}}},"responses":{"200":{"description":"Organization info","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApolloResponse"}}}},"400":{"description":"Bad request (upstream validation error)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/discolike/discover":{"get":{"summary":"Discover similar businesses","description":"Find companies by lookalike domains, natural-language ICP, or structured filters across 70M+ companies. Returns full firmographic profiles with similarity scores. Credits: two-part charge — a flat query fee plus a per-record rate. Reserved up-front, settled to actual (see X-ColdIQ-Credits-Charged). Call get_endpoint_details for the live rate. Managed alternative: `POST /v1/companies/search` (Search Companies) runs this provider inside a ranked waterfall with charge-on-success billing and one normalized response shape, and falls back to the other providers for this capability on a miss. Call this endpoint directly when you specifically want this provider and no fallback.","tags":["DiscoLike"],"x-credits-cost":{"unit":"query + record","rates":{"query":37.8,"record":0.74},"billing_shape":"query_plus_record"},"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","description":"Seed domains for lookalike matching (up to 10). Comma-separated for multiple values.","example":"coldiq.com"},"required":false,"description":"Seed domains for lookalike matching (up to 10). Comma-separated for multiple values.","name":"domain","in":"query"},{"schema":{"type":"string","description":"Domains whose lookalikes should be excluded (up to 10). Comma-separated for multiple values."},"required":false,"description":"Domains whose lookalikes should be excluded (up to 10). Comma-separated for multiple values.","name":"negate_domain","in":"query"},{"schema":{"type":"string","description":"Natural-language ICP description for semantic matching.","example":"B2B sales agencies helping tech companies with outbound prospecting"},"required":false,"description":"Natural-language ICP description for semantic matching.","name":"icp_text","in":"query"},{"schema":{"type":"string","description":"Concepts to exclude from semantic matching."},"required":false,"description":"Concepts to exclude from semantic matching.","name":"negate_icp_text","in":"query"},{"schema":{"type":"string","description":"Domains to exclude from results (up to 100). NB: the Domain Exclusion feature requires DiscoLike Pro+ — on the current plan this returns a 403 \"requires the pro plan\"; omit it (lookalikes never include the seed domain anyway). Comma-separated for multiple values."},"required":false,"description":"Domains to exclude from results (up to 100). NB: the Domain Exclusion feature requires DiscoLike Pro+ — on the current plan this returns a 403 \"requires the pro plan\"; omit it (lookalikes never include the seed domain anyway). Comma-separated for multiple values.","name":"exclude_domain","in":"query"},{"schema":{"type":"string","description":"ISO-3166-1 alpha-2 country codes or region codes (e.g. US, APAC). Comma-separated for multiple values.","example":"US"},"required":false,"description":"ISO-3166-1 alpha-2 country codes or region codes (e.g. US, APAC). Comma-separated for multiple values.","name":"country","in":"query"},{"schema":{"type":"string","description":"Countries to exclude. Comma-separated for multiple values."},"required":false,"description":"Countries to exclude. Comma-separated for multiple values.","name":"negate_country","in":"query"},{"schema":{"type":"string","description":"ISO 3166-2 state codes or full names (single country per request). Comma-separated for multiple values."},"required":false,"description":"ISO 3166-2 state codes or full names (single country per request). Comma-separated for multiple values.","name":"state","in":"query"},{"schema":{"type":"string","description":"States to exclude. Comma-separated for multiple values."},"required":false,"description":"States to exclude. Comma-separated for multiple values.","name":"negate_state","in":"query"},{"schema":{"type":"string","description":"Industry categories to include. Comma-separated for multiple values."},"required":false,"description":"Industry categories to include. Comma-separated for multiple values.","name":"category","in":"query"},{"schema":{"type":"string","description":"Industries to exclude. Comma-separated for multiple values."},"required":false,"description":"Industries to exclude. Comma-separated for multiple values.","name":"negate_category","in":"query"},{"schema":{"type":"string","description":"Employee count range as \"min,max\" (e.g. 10,500)."},"required":false,"description":"Employee count range as \"min,max\" (e.g. 10,500).","name":"employee_range","in":"query"},{"schema":{"type":"string","description":"Annual revenue range as \"min,max\" in raw integers."},"required":false,"description":"Annual revenue range as \"min,max\" in raw integers.","name":"revenue_range","in":"query"},{"schema":{"type":"string","description":"Business models: B2B, B2C, B2G, G2B, G2C, D2C, C2C, C2B. Comma-separated for multiple values.","example":"B2B"},"required":false,"description":"Business models: B2B, B2C, B2G, G2B, G2C, D2C, C2C, C2B. Comma-separated for multiple values.","name":"business_model","in":"query"},{"schema":{"type":"string","description":"Business models to exclude. Comma-separated for multiple values."},"required":false,"description":"Business models to exclude. Comma-separated for multiple values.","name":"negate_business_model","in":"query"},{"schema":{"type":"string","description":"2-letter website language codes. Comma-separated for multiple values."},"required":false,"description":"2-letter website language codes. Comma-separated for multiple values.","name":"language","in":"query"},{"schema":{"type":"string","description":"Required social presence (linkedin, facebook, twitter, instagram, youtube, tiktok, …). Comma-separated for multiple values."},"required":false,"description":"Required social presence (linkedin, facebook, twitter, instagram, youtube, tiktok, …). Comma-separated for multiple values.","name":"social","in":"query"},{"schema":{"type":"string","description":"Social profiles to exclude. Comma-separated for multiple values."},"required":false,"description":"Social profiles to exclude. Comma-separated for multiple values.","name":"negate_social","in":"query"},{"schema":{"type":"integer","nullable":true,"minimum":0,"maximum":800,"description":"Minimum digital footprint score (0-800, default 50)."},"required":false,"description":"Minimum digital footprint score (0-800, default 50).","name":"min_digital_footprint","in":"query"},{"schema":{"type":"integer","nullable":true,"minimum":0,"maximum":800,"description":"Maximum digital footprint score (0-800, default 800)."},"required":false,"description":"Maximum digital footprint score (0-800, default 800).","name":"max_digital_footprint","in":"query"},{"schema":{"type":"string","description":"Company start date, YYYY-MM-DD or range."},"required":false,"description":"Company start date, YYYY-MM-DD or range.","name":"start_date","in":"query"},{"schema":{"type":"string","description":"An exact text fragment the company website must contain (up to 20 chars). Sent verbatim — may contain commas."},"required":false,"description":"An exact text fragment the company website must contain (up to 20 chars). Sent verbatim — may contain commas.","name":"phrase_match","in":"query"},{"schema":{"type":"string","description":"An exact text fragment to exclude. Sent verbatim."},"required":false,"description":"An exact text fragment to exclude. Sent verbatim.","name":"negate_phrase_match","in":"query"},{"schema":{"anyOf":[{"type":"boolean"},{"type":"string","enum":["0","1","true","false"]}],"description":"Include redirecting domains (default false)."},"required":false,"description":"Include redirecting domains (default false).","name":"redirect","in":"query"},{"schema":{"anyOf":[{"type":"boolean"},{"type":"string","enum":["0","1","true","false"]}],"description":"Exclude lead-gen sites (default true)."},"required":false,"description":"Exclude lead-gen sites (default true).","name":"exclude_leadgen","in":"query"},{"schema":{"type":"integer","minimum":5,"maximum":1000,"description":"Maximum companies to return (5-1000, default 100). Credits are reserved for this worst case and settled on the actual count.","example":25},"required":false,"description":"Maximum companies to return (5-1000, default 100). Credits are reserved for this worst case and settled on the actual count.","name":"max_records","in":"query"},{"schema":{"type":"integer","nullable":true,"minimum":0,"description":"Records to skip for pagination."},"required":false,"description":"Records to skip for pagination.","name":"offset","in":"query"},{"schema":{"type":"integer","nullable":true,"minimum":0,"maximum":99,"description":"Minimum similarity score (0-99)."},"required":false,"description":"Minimum similarity score (0-99).","name":"min_similarity","in":"query"},{"schema":{"type":"string","enum":["LOW","MID_LOW","MEDIUM","MID_HIGH","HIGH","UNRESTRICTED"],"description":"Result diversity control."},"required":false,"description":"Result diversity control.","name":"variance","in":"query"}],"responses":{"200":{"description":"Array of matching company profiles","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DiscoLikeResponse"}}}},"400":{"description":"Bad request (upstream validation error)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded — retry after `retry_after_seconds`","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RateLimitError"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/discolike/count":{"get":{"summary":"Count matching businesses","description":"Preview how many companies match a set of filters before running a full discover. Credits: flat charge per call regardless of how many rows come back. Call get_endpoint_details for the live rate.","tags":["DiscoLike"],"x-credits-cost":{"amount":38.5,"unit":"call","billing_shape":"per_call"},"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","description":"ISO-3166-1 alpha-2 country codes or region codes (e.g. US, APAC). Comma-separated for multiple values.","example":"US"},"required":false,"description":"ISO-3166-1 alpha-2 country codes or region codes (e.g. US, APAC). Comma-separated for multiple values.","name":"country","in":"query"},{"schema":{"type":"string","description":"Countries to exclude. Comma-separated for multiple values."},"required":false,"description":"Countries to exclude. Comma-separated for multiple values.","name":"negate_country","in":"query"},{"schema":{"type":"string","description":"ISO 3166-2 state codes or full names (single country per request). Comma-separated for multiple values."},"required":false,"description":"ISO 3166-2 state codes or full names (single country per request). Comma-separated for multiple values.","name":"state","in":"query"},{"schema":{"type":"string","description":"States to exclude. Comma-separated for multiple values."},"required":false,"description":"States to exclude. Comma-separated for multiple values.","name":"negate_state","in":"query"},{"schema":{"type":"string","description":"Industry categories to include. Comma-separated for multiple values."},"required":false,"description":"Industry categories to include. Comma-separated for multiple values.","name":"category","in":"query"},{"schema":{"type":"string","description":"Industries to exclude. Comma-separated for multiple values."},"required":false,"description":"Industries to exclude. Comma-separated for multiple values.","name":"negate_category","in":"query"},{"schema":{"type":"string","description":"Employee count range as \"min,max\" (e.g. 10,500)."},"required":false,"description":"Employee count range as \"min,max\" (e.g. 10,500).","name":"employee_range","in":"query"},{"schema":{"type":"string","description":"Annual revenue range as \"min,max\" in raw integers."},"required":false,"description":"Annual revenue range as \"min,max\" in raw integers.","name":"revenue_range","in":"query"},{"schema":{"type":"string","description":"Business models: B2B, B2C, B2G, G2B, G2C, D2C, C2C, C2B. Comma-separated for multiple values.","example":"B2B"},"required":false,"description":"Business models: B2B, B2C, B2G, G2B, G2C, D2C, C2C, C2B. Comma-separated for multiple values.","name":"business_model","in":"query"},{"schema":{"type":"string","description":"Business models to exclude. Comma-separated for multiple values."},"required":false,"description":"Business models to exclude. Comma-separated for multiple values.","name":"negate_business_model","in":"query"},{"schema":{"type":"string","description":"2-letter website language codes. Comma-separated for multiple values."},"required":false,"description":"2-letter website language codes. Comma-separated for multiple values.","name":"language","in":"query"},{"schema":{"type":"string","description":"Required social presence (linkedin, facebook, twitter, instagram, youtube, tiktok, …). Comma-separated for multiple values."},"required":false,"description":"Required social presence (linkedin, facebook, twitter, instagram, youtube, tiktok, …). Comma-separated for multiple values.","name":"social","in":"query"},{"schema":{"type":"string","description":"Social profiles to exclude. Comma-separated for multiple values."},"required":false,"description":"Social profiles to exclude. Comma-separated for multiple values.","name":"negate_social","in":"query"},{"schema":{"type":"integer","nullable":true,"minimum":0,"maximum":800,"description":"Minimum digital footprint score (0-800, default 50)."},"required":false,"description":"Minimum digital footprint score (0-800, default 50).","name":"min_digital_footprint","in":"query"},{"schema":{"type":"integer","nullable":true,"minimum":0,"maximum":800,"description":"Maximum digital footprint score (0-800, default 800)."},"required":false,"description":"Maximum digital footprint score (0-800, default 800).","name":"max_digital_footprint","in":"query"},{"schema":{"type":"string","description":"Company start date, YYYY-MM-DD or range."},"required":false,"description":"Company start date, YYYY-MM-DD or range.","name":"start_date","in":"query"},{"schema":{"type":"string","description":"An exact text fragment the company website must contain (up to 20 chars). Sent verbatim — may contain commas."},"required":false,"description":"An exact text fragment the company website must contain (up to 20 chars). Sent verbatim — may contain commas.","name":"phrase_match","in":"query"},{"schema":{"type":"string","description":"An exact text fragment to exclude. Sent verbatim."},"required":false,"description":"An exact text fragment to exclude. Sent verbatim.","name":"negate_phrase_match","in":"query"},{"schema":{"anyOf":[{"type":"boolean"},{"type":"string","enum":["0","1","true","false"]}],"description":"Include redirecting domains (default false)."},"required":false,"description":"Include redirecting domains (default false).","name":"redirect","in":"query"}],"responses":{"200":{"description":"Match count","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DiscoLikeResponse"}}}},"400":{"description":"Bad request (upstream validation error)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded — retry after `retry_after_seconds`","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RateLimitError"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/discolike/bizdata":{"get":{"summary":"Get business firmographic data","description":"Full firmographic profile for a domain: name, status, digital footprint score, HQ address, phones, public emails, socials, industry, employees. Credits: flat charge per call regardless of how many rows come back. Call get_endpoint_details for the live rate. Managed alternative: `POST /v1/company/enrich` (Enrich Company) runs this provider inside a ranked waterfall with charge-on-success billing and one normalized response shape, and falls back to the other providers for this capability on a miss. Call this endpoint directly when you specifically want this provider and no fallback.","tags":["DiscoLike"],"x-credits-cost":{"amount":42,"unit":"call","billing_shape":"per_call"},"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","minLength":1,"description":"Company domain to look up.","example":"coldiq.com"},"required":true,"description":"Company domain to look up.","name":"domain","in":"query"}],"responses":{"200":{"description":"Firmographic profile","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DiscoLikeResponse"}}}},"400":{"description":"Bad request (upstream validation error)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"404":{"description":"No data found for this input","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded — retry after `retry_after_seconds`","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RateLimitError"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/discolike/score":{"get":{"summary":"Get digital footprint score breakdown","description":"Composite 0-800 score for any domain reflecting company size, time in business, and technology adoption. Credits: flat charge per call regardless of how many rows come back. Call get_endpoint_details for the live rate.","tags":["DiscoLike"],"x-credits-cost":{"amount":42,"unit":"call","billing_shape":"per_call"},"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","minLength":1,"description":"Company domain to look up.","example":"coldiq.com"},"required":true,"description":"Company domain to look up.","name":"domain","in":"query"}],"responses":{"200":{"description":"Score breakdown","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DiscoLikeResponse"}}}},"400":{"description":"Bad request (upstream validation error)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"404":{"description":"No data found for this input","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded — retry after `retry_after_seconds`","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RateLimitError"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/discolike/growth":{"get":{"summary":"Get company growth metrics","description":"Quarterly growth metrics derived from a company's digital footprint — score and subdomain changes over time. Credits: flat charge per call regardless of how many rows come back. Call get_endpoint_details for the live rate.","tags":["DiscoLike"],"x-credits-cost":{"amount":42,"unit":"call","billing_shape":"per_call"},"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","minLength":1,"description":"Company domain to look up.","example":"coldiq.com"},"required":true,"description":"Company domain to look up.","name":"domain","in":"query"}],"responses":{"200":{"description":"Growth metrics","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DiscoLikeResponse"}}}},"400":{"description":"Bad request (upstream validation error)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"404":{"description":"No data found for this input","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded — retry after `retry_after_seconds`","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RateLimitError"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/discolike/contacts/discover":{"post":{"summary":"Discover contacts grouped by domain","description":"Search B2B contacts by ICP, title, seniority, or company domain — grouped by company with per-company firmographics, emails, phones, and LinkedIn URLs. Credits: two-part charge — a flat query fee plus a per-record rate. Reserved up-front, settled to actual (see X-ColdIQ-Credits-Charged). Call get_endpoint_details for the live rate.","tags":["DiscoLike"],"x-credits-cost":{"unit":"query + record","rates":{"query":37.8,"record":0.74},"billing_shape":"query_plus_record"},"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"icp_prompt":{"type":"string","description":"Natural-language ICP — auto-extracts filters and chains into company discovery."},"icp_text":{"type":"string","description":"Semantic matching text (no filter extraction)."},"domain":{"type":"array","items":{"type":"string"},"maxItems":100,"description":"Limit the search to specific company domains (max 100)."},"title":{"type":"string","description":"Job title filter."},"negate_title":{"type":"string","description":"Job titles to exclude."},"seniority":{"type":"array","items":{"type":"string"},"description":"Seniority levels (e.g. manager, director, vp, cxo)."},"department":{"type":"array","items":{"type":"string"},"description":"Departments (e.g. Sales, Marketing, Technology)."},"person_country":{"type":"array","items":{"type":"string"},"description":"Person country codes."},"filter_industry":{"type":"array","items":{"type":"string"},"description":"Company industry filter."},"filter_country":{"type":"array","items":{"type":"string"},"description":"Company country filter."},"employee_range":{"type":"string","description":"Company employee range as \"min,max\"."},"has_email":{"type":"boolean","description":"Only contacts with an email."},"email_validated":{"type":"boolean","description":"Only contacts with a validated email."},"has_phone":{"type":"boolean","description":"Only contacts with a phone number."},"has_mobile":{"type":"boolean","description":"Only contacts with a mobile number."},"has_linkedin":{"type":"boolean","description":"Only contacts with a LinkedIn profile."},"min_connections":{"type":"integer","minimum":0,"description":"Minimum LinkedIn connections."},"max_records":{"type":"integer","minimum":20,"maximum":500,"description":"Total contact cap (20-500, default 100). Mutually exclusive with max_companies. Reserved worst-case, settled on actuals."},"max_companies":{"type":"integer","minimum":1,"maximum":100,"description":"Enriched company cap (1-100). Mutually exclusive with max_records."},"results_by_company":{"type":"integer","minimum":1,"maximum":100,"description":"Contacts per domain (default 5)."},"offset":{"type":"integer","minimum":0,"description":"Pagination skip."}},"title":"ContactsDiscoverRequest","example":{"icp_prompt":"Heads of Sales at B2B SaaS companies in Europe","has_email":true,"max_companies":10,"results_by_company":3}}}}},"responses":{"200":{"description":"Contacts grouped by company domain","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DiscoLikeResponse"}}}},"400":{"description":"Bad request (upstream validation error)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded — retry after `retry_after_seconds`","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RateLimitError"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/discolike/contacts/count":{"get":{"summary":"Count Contacts","description":"Estimate the contact result-set size for a set of filters before running a full discover. Credits: flat charge per call regardless of how many rows come back. Call get_endpoint_details for the live rate.","tags":["DiscoLike"],"x-credits-cost":{"amount":38.5,"unit":"call","billing_shape":"per_call"},"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","description":"Semantic ICP matching text.","example":"B2B sales agencies"},"required":false,"description":"Semantic ICP matching text.","name":"icp_text","in":"query"},{"schema":{"type":"string","description":"Company domains to scope the count. Comma-separated for multiple values.","example":"coldiq.com"},"required":false,"description":"Company domains to scope the count. Comma-separated for multiple values.","name":"domain","in":"query"},{"schema":{"type":"string","description":"Job title filter."},"required":false,"description":"Job title filter.","name":"title","in":"query"},{"schema":{"type":"string","description":"Job titles to exclude."},"required":false,"description":"Job titles to exclude.","name":"negate_title","in":"query"},{"schema":{"type":"string","description":"Seniority levels. Comma-separated for multiple values."},"required":false,"description":"Seniority levels. Comma-separated for multiple values.","name":"seniority","in":"query"},{"schema":{"type":"string","description":"Departments. Comma-separated for multiple values."},"required":false,"description":"Departments. Comma-separated for multiple values.","name":"department","in":"query"},{"schema":{"type":"string","description":"Person country codes. Comma-separated for multiple values."},"required":false,"description":"Person country codes. Comma-separated for multiple values.","name":"person_country","in":"query"},{"schema":{"anyOf":[{"type":"boolean"},{"type":"string","enum":["0","1","true","false"]}],"description":"Only contacts with an email."},"required":false,"description":"Only contacts with an email.","name":"has_email","in":"query"},{"schema":{"anyOf":[{"type":"boolean"},{"type":"string","enum":["0","1","true","false"]}],"description":"Only contacts with a phone number."},"required":false,"description":"Only contacts with a phone number.","name":"has_phone","in":"query"},{"schema":{"anyOf":[{"type":"boolean"},{"type":"string","enum":["0","1","true","false"]}],"description":"Only contacts with a LinkedIn profile."},"required":false,"description":"Only contacts with a LinkedIn profile.","name":"has_linkedin","in":"query"}],"responses":{"200":{"description":"Contact count","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DiscoLikeResponse"}}}},"400":{"description":"Bad request (upstream validation error)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded — retry after `retry_after_seconds`","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RateLimitError"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/discolike/contacts/lookup":{"get":{"summary":"Lookup Contact","description":"Look up a single contact by DiscoLike persona ID or LinkedIn URL/username. Credits: flat charge per call regardless of how many rows come back. Call get_endpoint_details for the live rate.","tags":["DiscoLike"],"x-credits-cost":{"amount":42,"unit":"call","billing_shape":"per_call"},"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","description":"DiscoLike persona ID."},"required":false,"description":"DiscoLike persona ID.","name":"persona_id","in":"query"},{"schema":{"type":"string","description":"LinkedIn profile URL or username.","example":"https://www.linkedin.com/in/michel-lieben"},"required":false,"description":"LinkedIn profile URL or username.","name":"linkedin","in":"query"}],"responses":{"200":{"description":"Contact profile","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DiscoLikeResponse"}}}},"400":{"description":"Bad request (upstream validation error)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"404":{"description":"No data found for this input","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded — retry after `retry_after_seconds`","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RateLimitError"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/discolike/contacts/match":{"get":{"summary":"Contact Match","description":"Match a person name (optionally scoped by company or domain) to contact profiles with match scores. Credits: two-part charge — a flat query fee plus a per-record rate. Reserved up-front, settled to actual (see X-ColdIQ-Credits-Charged). Call get_endpoint_details for the live rate.","tags":["DiscoLike"],"x-credits-cost":{"unit":"query + record","rates":{"query":37.8,"record":0.74},"billing_shape":"query_plus_record"},"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","minLength":2,"description":"Person name to search for (min 2 characters).","example":"Michel Lieben"},"required":true,"description":"Person name to search for (min 2 characters).","name":"name","in":"query"},{"schema":{"type":"string","description":"Company name to narrow the search.","example":"ColdIQ"},"required":false,"description":"Company name to narrow the search.","name":"company_name","in":"query"},{"schema":{"type":"string","description":"Company domain to filter by."},"required":false,"description":"Company domain to filter by.","name":"domain","in":"query"},{"schema":{"type":"string","description":"Person's ISO-3166-1 alpha-2 country code."},"required":false,"description":"Person's ISO-3166-1 alpha-2 country code.","name":"person_country","in":"query"},{"schema":{"type":"integer","minimum":1,"maximum":20,"description":"Maximum matches to return (1-20, default 10)."},"required":false,"description":"Maximum matches to return (1-20, default 10).","name":"limit","in":"query"}],"responses":{"200":{"description":"Query echo + ranked matches","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DiscoLikeResponse"}}}},"400":{"description":"Bad request (upstream validation error)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded — retry after `retry_after_seconds`","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RateLimitError"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/limadata/enrich/person":{"post":{"summary":"Enrich Person","description":"Enrich a person's professional profile using email, LinkedIn URL, or name+company. Variable credit cost (1-5) settled from response header. Optional: include_work_email (+1 credit), include_phone (+10 credits). Credits: flat charge per call regardless of how many rows come back. Call get_endpoint_details for the live rate.","tags":["Lima Data"],"security":[{"bearerAuth":[]}],"x-credits-cost":{"amount":17.5,"unit":"call","billing_shape":"per_call"},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"email":{"type":"string","description":"Person's email address. Example: michel@coldiq.com"},"linkedin_url":{"type":"string","description":"Person's LinkedIn URL. Example: https://www.linkedin.com/in/michel-lieben"},"name":{"type":"string","description":"Person's name. Required when using company lookup. Example: Michel Lieben"},"company_name":{"type":"string","description":"Company name. Use with name for identity resolution. Example: ColdIQ"},"company_domain":{"type":"string","description":"Company domain. Use with name for identity resolution. Example: coldiq.com"},"include_work_email":{"type":"boolean","description":"Include work email in response. Adds 1 credit if found."},"include_phone":{"type":"boolean","description":"Include phone number(s) in response. Adds 10 credits if found."}},"title":"LimaDataEnrichPersonRequest","example":{"email":"michel@coldiq.com","name":"Michel Lieben"}}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LimaDataResponse"}}}},"400":{"description":"Bad request (upstream validation error)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"504":{"description":"Provider timed out","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/limadata/enrich/company":{"post":{"summary":"Enrich Company","description":"Enrich a company profile using domain or LinkedIn URL. Returns firmographics, funding, tech stack, traffic, and more. Credits: flat charge per call regardless of how many rows come back. Call get_endpoint_details for the live rate. Managed alternative: `POST /v1/company/enrich` (Enrich Company) runs this provider inside a ranked waterfall with charge-on-success billing and one normalized response shape, and falls back to the other providers for this capability on a miss. Call this endpoint directly when you specifically want this provider and no fallback.","tags":["Lima Data"],"security":[{"bearerAuth":[]}],"x-credits-cost":{"amount":3.5,"unit":"call","billing_shape":"per_call"},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"domain":{"type":"string","description":"Company domain. Example: coldiq.com"},"linkedin_url":{"type":"string","description":"Company LinkedIn URL. Example: https://linkedin.com/company/cold-labs"}},"title":"LimaDataEnrichCompanyRequest","example":{"domain":"coldiq.com"}}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LimaDataResponse"}}}},"400":{"description":"Bad request (upstream validation error)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"504":{"description":"Provider timed out","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/limadata/person":{"post":{"summary":"Person","description":"Retrieve person data by LinkedIn profile URL. Returns cached data by default (30-60 days). Set live=true for fresh data (3 credits instead of 1). Credits: charged once per call, at a rate that depends on which fields you request (cached, live) — it is NOT flat. Reserved up-front, settled to actual (see X-ColdIQ-Credits-Charged). Call get_endpoint_details for the live rate. Managed alternative: `POST /v1/person/enrich` (Enrich Person) runs this provider inside a ranked waterfall with charge-on-success billing and one normalized response shape, and falls back to the other providers for this capability on a miss. Call this endpoint directly when you specifically want this provider and no fallback.","tags":["Lima Data"],"security":[{"bearerAuth":[]}],"x-credits-cost":{"unit":"call","rates":{"cached":3.5,"live":10.5},"billing_shape":"per_call_variable"},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"url":{"type":"string","description":"Person's LinkedIn URL. Example: https://www.linkedin.com/in/michel-lieben"},"live":{"type":"boolean","description":"Force live data fetch. Costs 3 total credits."}},"required":["url"],"title":"LimaDataPersonRequest","example":{"url":"https://www.linkedin.com/in/michel-lieben"}}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LimaDataResponse"}}}},"400":{"description":"Bad request (upstream validation error)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"504":{"description":"Provider timed out","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/limadata/company":{"post":{"summary":"Company","description":"Get company data by LinkedIn profile URL. Set live=true for fresh data (3 credits instead of 1). Credits: charged once per call, at a rate that depends on which fields you request (cached, live) — it is NOT flat. Reserved up-front, settled to actual (see X-ColdIQ-Credits-Charged). Call get_endpoint_details for the live rate.","tags":["Lima Data"],"security":[{"bearerAuth":[]}],"x-credits-cost":{"unit":"call","rates":{"cached":3.5,"live":10.5},"billing_shape":"per_call_variable"},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"url":{"type":"string","description":"Company's LinkedIn URL. Example: https://linkedin.com/company/cold-labs"},"live":{"type":"boolean","description":"Force live data fetch. Costs 3 total credits."}},"required":["url"],"title":"LimaDataCompanyRequest","example":{"url":"https://www.linkedin.com/company/cold-labs"}}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LimaDataResponse"}}}},"400":{"description":"Bad request (upstream validation error)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"504":{"description":"Provider timed out","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/limadata/company/insights":{"post":{"summary":"Company Insights","description":"Get detailed company insights from Crunchbase, Semrush, IPqwery and others. Credits: flat charge per call regardless of how many rows come back. Call get_endpoint_details for the live rate.","tags":["Lima Data"],"security":[{"bearerAuth":[]}],"x-credits-cost":{"amount":17.5,"unit":"call","billing_shape":"per_call"},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"identifier":{"type":"string","description":"Crunchbase identifier. Example: \"amazon\""},"domain":{"type":"string","description":"Company domain. Example: \"amazon.com\""}},"title":"LimaDataCompanyInsightsRequest","example":{"domain":"coldiq.com"}}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LimaDataResponse"}}}},"400":{"description":"Bad request (upstream validation error)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"504":{"description":"Provider timed out","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/limadata/database/autocomplete":{"post":{"summary":"Database Autocomplete","description":"Get valid values for a database enum filter_type. Supports an optional query to narrow results. Credits: flat charge per call regardless of how many rows come back. Call get_endpoint_details for the live rate.","tags":["Lima Data"],"security":[{"bearerAuth":[]}],"x-credits-cost":{"amount":3.5,"unit":"call","billing_shape":"per_call"},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"filter_type":{"type":"string","minLength":1,"description":"Database enum field name"},"query":{"type":"string","nullable":true,"description":"Optional query to narrow results"}},"required":["filter_type"],"additionalProperties":false,"title":"LimaDataDatabaseAutocompleteRequest","example":{"filter_type":"revenue_range","query":"1"}}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LimaDataDatabaseAutocompleteResponse"}}}},"400":{"description":"Bad request (upstream validation error)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"504":{"description":"Provider timed out","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/limadata/database/search-companies":{"post":{"summary":"Database Search Companies","description":"Search the Lima Data company database using one of three modes: ai_prompt, structured filters, or filter_expression. Supports pagination and optional exact totals. Results BILLING SHAPE: per RESULT — you pay for the companies you actually get back. Sibling route: POST /limadata/prospect/companies/filter bills a flat rate per CALL regardless of how many rows it returns, which makes it far more expensive per company on the small result sets this route handles. Compare both on get_endpoint_details before you route a large pull. Credits: bills only for returned results, per result; reserved up-front for the requested size and settled to the actual count (see X-ColdIQ-Credits-Charged). Call get_endpoint_details for the live rate.","tags":["Lima Data"],"security":[{"bearerAuth":[]}],"x-credits-cost":{"amount":0.35,"unit":"result","billing_shape":"per_result"},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"filter_expression":{"type":"string","nullable":true,"description":"Advanced filter expression"},"filters":{"type":"array","nullable":true,"items":{"type":"object","properties":{"filter_type":{"type":"string","minLength":1},"includes":{"type":"array","nullable":true,"items":{"type":"string"}},"excludes":{"type":"array","nullable":true,"items":{"type":"string"}},"mode":{"type":"string","enum":["Exact","Contains","StartsWith","EndsWith"]},"includes_all":{"type":"boolean"},"min":{"type":"integer","nullable":true},"max":{"type":"integer","nullable":true}},"required":["filter_type"],"additionalProperties":false},"description":"Structured filters with include/exclude values per field"},"ai_prompt":{"type":"string","nullable":true,"description":"Natural-language prompt used to generate a filter"},"limit":{"type":"integer","minimum":1,"maximum":10000,"description":"Maximum records to return (default: 10)"},"offset":{"type":"integer","minimum":0,"maximum":10000,"description":"Records to skip (default: 0)"},"include_total":{"type":"boolean","description":"Include the exact total count (default: false)"}},"additionalProperties":false,"title":"LimaDataDatabaseSearchCompaniesRequest","example":{"filter_expression":"domain=coldiq.com","limit":10,"include_total":false}}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"total_records":{"type":"integer","nullable":true,"description":"Exact match count when include_total is true"},"filter_expression":{"type":"string","nullable":true,"description":"Resolved expression, including expressions generated from ai_prompt"},"ai_message":{"type":"string","nullable":true,"description":"Explanation of prompt clauses that could not be converted into filters"},"results":{"type":"array","nullable":true,"items":{"type":"object","properties":{},"additionalProperties":{"nullable":true}},"description":"Matched records"}},"additionalProperties":false,"title":"LimaDataDatabaseCompanySearchResponse","example":{"total_records":1,"filter_expression":"domain=coldiq.com","ai_message":null,"results":[{"name":"ColdIQ","domain":"coldiq.com","profile_url":"https://www.linkedin.com/company/cold-labs"}]}}}}},"400":{"description":"Bad request (upstream validation error)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"504":{"description":"Provider timed out","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/limadata/database/search-people":{"post":{"summary":"Database Search People","description":"Beta endpoint. Search the Lima Data people database using one of three modes: ai_prompt, structured filters, or filter_expression. Supports person and employer fields, pagination, and optional exact totals. Account access must be enabled by Lima Data. Results Credits: bills only for returned results, per result; reserved up-front for the requested size and settled to the actual count (see X-ColdIQ-Credits-Charged). Call get_endpoint_details for the live rate.","tags":["Lima Data"],"security":[{"bearerAuth":[]}],"x-credits-cost":{"amount":0.35,"unit":"result","billing_shape":"per_result"},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"filter_expression":{"type":"string","nullable":true,"description":"Advanced filter expression"},"filters":{"type":"array","nullable":true,"items":{"type":"object","properties":{"filter_type":{"type":"string","minLength":1},"includes":{"type":"array","nullable":true,"items":{"type":"string"}},"excludes":{"type":"array","nullable":true,"items":{"type":"string"}},"mode":{"type":"string","enum":["Exact","Contains","StartsWith","EndsWith"]},"includes_all":{"type":"boolean"},"min":{"type":"integer","nullable":true},"max":{"type":"integer","nullable":true}},"required":["filter_type"],"additionalProperties":false},"description":"Structured filters with include/exclude values per field"},"ai_prompt":{"type":"string","nullable":true,"description":"Natural-language prompt used to generate a filter"},"limit":{"type":"integer","minimum":1,"maximum":10000,"description":"Maximum records to return (default: 10)"},"offset":{"type":"integer","minimum":0,"maximum":10000,"description":"Records to skip (default: 0)"},"include_total":{"type":"boolean","description":"Include the exact total count (default: false)"}},"additionalProperties":false,"title":"LimaDataDatabaseSearchPeopleRequest","example":{"filter_expression":"full_name=Michel Lieben, org_domain=coldiq.com","limit":10,"include_total":false}}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"total_records":{"type":"integer","nullable":true,"description":"Exact match count when include_total is true"},"filter_expression":{"type":"string","nullable":true,"description":"Resolved expression, including expressions generated from ai_prompt"},"ai_message":{"type":"string","nullable":true,"description":"Explanation of prompt clauses that could not be converted into filters"},"results":{"type":"array","nullable":true,"items":{"type":"object","properties":{},"additionalProperties":{"nullable":true}},"description":"Matched records"}},"additionalProperties":false,"title":"LimaDataDatabasePeopleSearchResponse","example":{"total_records":1,"filter_expression":"full_name=Michel Lieben, org_domain=coldiq.com","ai_message":null,"results":[{"full_name":"Michel Lieben","headline":"Founder at ColdIQ","profile_url":"https://www.linkedin.com/in/michel-lieben"}]}}}}},"400":{"description":"Bad request (upstream validation error)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"504":{"description":"Provider timed out","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/limadata/database/search-employees":{"post":{"summary":"Database Search Employees","description":"Beta endpoint. Search employees across company domains and LinkedIn URLs (combined with OR), with optional partial-match job titles, pagination, and exact totals. Account access must be enabled by Lima Data. Results Credits: bills only for returned results, per result; reserved up-front for the requested size and settled to the actual count (see X-ColdIQ-Credits-Charged). Call get_endpoint_details for the live rate.","tags":["Lima Data"],"security":[{"bearerAuth":[]}],"x-credits-cost":{"amount":0.35,"unit":"result","billing_shape":"per_result"},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"company_domains":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Company domains to search; OR-ed with company_linkedins"},"company_linkedins":{"type":"array","nullable":true,"items":{"type":"string"},"description":"LinkedIn company URLs to search; OR-ed with company_domains"},"job_titles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Optional partial-match job titles"},"limit":{"type":"integer","minimum":1,"maximum":10000,"description":"Maximum records to return (default: 10)"},"offset":{"type":"integer","minimum":0,"maximum":10000,"description":"Records to skip (default: 0)"},"include_total":{"type":"boolean","description":"Include the exact total count (default: false)"}},"additionalProperties":false,"title":"LimaDataDatabaseSearchEmployeesRequest","example":{"company_domains":["coldiq.com"],"job_titles":["Sales"],"limit":10,"include_total":false}}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"total_records":{"type":"integer","nullable":true,"description":"Exact match count when include_total is true"},"filter_expression":{"type":"string","nullable":true,"description":"Resolved expression, including expressions generated from ai_prompt"},"ai_message":{"type":"string","nullable":true,"description":"Explanation of prompt clauses that could not be converted into filters"},"results":{"type":"array","nullable":true,"items":{"type":"object","properties":{},"additionalProperties":{"nullable":true}},"description":"Matched records"}},"additionalProperties":false,"title":"LimaDataDatabasePeopleSearchResponse","example":{"total_records":1,"filter_expression":"full_name=Michel Lieben, org_domain=coldiq.com","ai_message":null,"results":[{"full_name":"Michel Lieben","headline":"Founder at ColdIQ","profile_url":"https://www.linkedin.com/in/michel-lieben"}]}}}}},"400":{"description":"Bad request (upstream validation error)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"504":{"description":"Provider timed out","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/limadata/company/workplace-benefits":{"post":{"summary":"Workplace Benefits","description":"Get workplace benefits for a company by Glassdoor ID. Credits: flat charge per call regardless of how many rows come back. Call get_endpoint_details for the live rate.","tags":["Lima Data"],"security":[{"bearerAuth":[]}],"x-credits-cost":{"amount":10.5,"unit":"call","billing_shape":"per_call"},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"glassdoor_id":{"type":"string","description":"Glassdoor company ID"}},"required":["glassdoor_id"],"title":"LimaDataWorkplaceBenefitsRequest","example":{"glassdoor_id":"1651"}}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LimaDataResponse"}}}},"400":{"description":"Bad request (upstream validation error)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"504":{"description":"Provider timed out","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/limadata/company/workplace-ratings":{"post":{"summary":"Workplace Ratings","description":"Get workplace ratings for a company by Glassdoor ID. Credits: flat charge per call regardless of how many rows come back. Call get_endpoint_details for the live rate.","tags":["Lima Data"],"security":[{"bearerAuth":[]}],"x-credits-cost":{"amount":10.5,"unit":"call","billing_shape":"per_call"},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"glassdoor_id":{"type":"string","description":"Glassdoor company ID"}},"required":["glassdoor_id"],"title":"LimaDataWorkplaceRatingsRequest","example":{"glassdoor_id":"1651"}}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LimaDataResponse"}}}},"400":{"description":"Bad request (upstream validation error)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"504":{"description":"Provider timed out","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/limadata/find/hashed-email":{"post":{"summary":"Hashed Email","description":"Find SHA-256 hashed email addresses for ad audience targeting. Provide LinkedIn URL or work email. Credits: flat charge per call regardless of how many rows come back. Call get_endpoint_details for the live rate.","tags":["Lima Data"],"security":[{"bearerAuth":[]}],"x-credits-cost":{"amount":3.5,"unit":"call","billing_shape":"per_call"},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"linkedin_url":{"type":"string","description":"Person's LinkedIn URL"},"work_email":{"type":"string","description":"Person's work email address"}},"title":"LimaDataHashedEmailRequest","example":{"linkedin_url":"https://www.linkedin.com/in/michel-lieben"}}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LimaDataResponse"}}}},"400":{"description":"Bad request (upstream validation error)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"504":{"description":"Provider timed out","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/limadata/find/personal-email":{"post":{"summary":"Personal Email","description":"Find personal email from LinkedIn, GitHub, X, or work email. Credits: flat charge per call regardless of how many rows come back. Call get_endpoint_details for the live rate.","tags":["Lima Data"],"security":[{"bearerAuth":[]}],"x-credits-cost":{"amount":17.5,"unit":"call","billing_shape":"per_call"},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"linkedin_url":{"type":"string","description":"Person's LinkedIn URL"},"github_url":{"type":"string","description":"Person's GitHub URL"},"x_url":{"type":"string","description":"Person's X (Twitter) URL"},"work_email":{"type":"string","description":"Person's work email address"}},"title":"LimaDataPersonalEmailRequest","example":{"linkedin_url":"https://www.linkedin.com/in/michel-lieben"}}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LimaDataResponse"}}}},"400":{"description":"Bad request (upstream validation error)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"504":{"description":"Provider timed out","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/limadata/find/email-verification":{"post":{"summary":"Email Verification","description":"Verify whether an email address is deliverable. Credits: flat charge per call regardless of how many rows come back. Call get_endpoint_details for the live rate.","tags":["Lima Data"],"security":[{"bearerAuth":[]}],"x-credits-cost":{"amount":1.05,"unit":"call","billing_shape":"per_call"},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"email":{"type":"string","format":"email","description":"Email address to verify"}},"required":["email"],"additionalProperties":false,"title":"LimaDataEmailVerificationRequest","example":{"email":"michel@coldiq.com"}}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LimaDataResponse"}}}},"400":{"description":"Bad request (upstream validation error)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"504":{"description":"Provider timed out","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/limadata/find/work-email":{"post":{"summary":"Work Email","description":"Find business email from full name and company domain. Credits: flat charge per call regardless of how many rows come back. Call get_endpoint_details for the live rate. Managed alternative: `POST /v1/email/find` (Find Email) runs this provider inside a ranked waterfall with charge-on-success billing and one normalized response shape, and falls back to the other providers for this capability on a miss. Call this endpoint directly when you specifically want this provider and no fallback.","tags":["Lima Data"],"security":[{"bearerAuth":[]}],"x-credits-cost":{"amount":3.5,"unit":"call","billing_shape":"per_call"},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"full_name":{"type":"string","description":"Person's full name. Example: Michel Lieben"},"company_domain":{"type":"string","description":"Person's company domain. Example: coldiq.com"}},"required":["full_name","company_domain"],"title":"LimaDataWorkEmailRequest","example":{"full_name":"Michel Lieben","company_domain":"coldiq.com"}}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LimaDataResponse"}}}},"400":{"description":"Bad request (upstream validation error)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"504":{"description":"Provider timed out","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/limadata/find/work-email-linkedin":{"post":{"summary":"Work Email from LinkedIn","description":"Find business email from LinkedIn profile URL. Credits: flat charge per call regardless of how many rows come back. Call get_endpoint_details for the live rate.","tags":["Lima Data"],"security":[{"bearerAuth":[]}],"x-credits-cost":{"amount":10.5,"unit":"call","billing_shape":"per_call"},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"linkedin_url":{"type":"string","description":"Person's LinkedIn profile URL"}},"required":["linkedin_url"],"title":"LimaDataWorkEmailLinkedInRequest","example":{"linkedin_url":"https://www.linkedin.com/in/michel-lieben"}}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LimaDataResponse"}}}},"400":{"description":"Bad request (upstream validation error)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"504":{"description":"Provider timed out","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/limadata/find/company-linkedin":{"post":{"summary":"Company LinkedIn","description":"Find the LinkedIn page of a company from its domain. Credits: flat charge per call regardless of how many rows come back. Call get_endpoint_details for the live rate.","tags":["Lima Data"],"security":[{"bearerAuth":[]}],"x-credits-cost":{"amount":3.5,"unit":"call","billing_shape":"per_call"},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"domain":{"type":"string","description":"Company domain. Example: coldiq.com"}},"required":["domain"],"title":"LimaDataCompanyLinkedInRequest","example":{"domain":"coldiq.com"}}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LimaDataResponse"}}}},"400":{"description":"Bad request (upstream validation error)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"504":{"description":"Provider timed out","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/limadata/find/phone":{"post":{"summary":"Phone Number","description":"Find phone numbers from LinkedIn profile or name+company. Credits: flat charge per call regardless of how many rows come back. Call get_endpoint_details for the live rate. Managed alternative: `POST /v1/phone/find` (Find Phone) runs this provider inside a ranked waterfall with charge-on-success billing and one normalized response shape, and falls back to the other providers for this capability on a miss. Call this endpoint directly when you specifically want this provider and no fallback.","tags":["Lima Data"],"security":[{"bearerAuth":[]}],"x-credits-cost":{"amount":35,"unit":"call","billing_shape":"per_call"},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"linkedin_url":{"type":"string","description":"Person's LinkedIn URL"},"name":{"type":"string","description":"Person's name. Example: Michel Lieben"},"company_name":{"type":"string","description":"Company name. Example: ColdIQ"},"company_domain":{"type":"string","description":"Company domain. Example: coldiq.com"}},"title":"LimaDataPhoneNumberRequest","example":{"linkedin_url":"https://www.linkedin.com/in/michel-lieben"}}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LimaDataResponse"}}}},"400":{"description":"Bad request (upstream validation error)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"504":{"description":"Provider timed out","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/limadata/find/identity-resolution":{"post":{"summary":"Identity Resolution","description":"Find social profile URLs (LinkedIn, etc.) by name and company/domain/email. Credits: flat charge per call regardless of how many rows come back. Call get_endpoint_details for the live rate.","tags":["Lima Data"],"security":[{"bearerAuth":[]}],"x-credits-cost":{"amount":7,"unit":"call","billing_shape":"per_call"},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"full_name":{"type":"string","description":"Person's full name. Example: Michel Lieben"},"company_name":{"type":"string","description":"Company name. Example: ColdIQ"},"company_domain":{"type":"string","description":"Company domain. Example: coldiq.com"},"email":{"type":"string","description":"Person's business email"}},"required":["full_name"],"title":"LimaDataIdentityResolutionRequest","example":{"full_name":"Michel Lieben","company_domain":"coldiq.com"}}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LimaDataResponse"}}}},"400":{"description":"Bad request (upstream validation error)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"504":{"description":"Provider timed out","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/limadata/find/reverse-email-lookup":{"post":{"summary":"Reverse Email Lookup","description":"Find LinkedIn, GitHub, and X profiles from an email address. Credits: flat charge per call regardless of how many rows come back. Call get_endpoint_details for the live rate.","tags":["Lima Data"],"security":[{"bearerAuth":[]}],"x-credits-cost":{"amount":17.5,"unit":"call","billing_shape":"per_call"},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"email":{"type":"string","description":"Person's email address. Example: mcuban@gmail.com"},"require_linkedin":{"type":"boolean","description":"Require LinkedIn profile to be found, else 404."},"require_x":{"type":"boolean","description":"Require X profile to be found, else 404."}},"required":["email"],"title":"LimaDataReverseEmailLookupRequest","example":{"email":"mcuban@gmail.com"}}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LimaDataResponse"}}}},"400":{"description":"Bad request (upstream validation error)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"504":{"description":"Provider timed out","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/limadata/find/glassdoor-company":{"post":{"summary":"Company Glassdoor ID","description":"Find the Glassdoor ID for a company from its domain. Credits: flat charge per call regardless of how many rows come back. Call get_endpoint_details for the live rate.","tags":["Lima Data"],"security":[{"bearerAuth":[]}],"x-credits-cost":{"amount":3.5,"unit":"call","billing_shape":"per_call"},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"domain":{"type":"string","description":"Company domain. Example: coldiq.com"},"company_name":{"type":"string","description":"Optional company name. Example: ColdIQ"}},"required":["domain"],"title":"LimaDataGlassdoorCompanyRequest","example":{"domain":"coldiq.com"}}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LimaDataResponse"}}}},"400":{"description":"Bad request (upstream validation error)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"504":{"description":"Provider timed out","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/limadata/jobs":{"post":{"summary":"Company Jobs","description":"Get LinkedIn job listings for a company page. 20 results per page. Credits: flat charge per call regardless of how many rows come back. Call get_endpoint_details for the live rate.","tags":["Lima Data"],"security":[{"bearerAuth":[]}],"x-credits-cost":{"amount":7,"unit":"call","billing_shape":"per_call"},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"url":{"type":"string","description":"LinkedIn company profile URL. Example: https://www.linkedin.com/company/cold-labs"},"page":{"type":"integer","description":"Page number starting from 1"}},"required":["url"],"title":"LimaDataCompanyJobsRequest","example":{"url":"https://www.linkedin.com/company/cold-labs"}}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LimaDataResponse"}}}},"400":{"description":"Bad request (upstream validation error)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"504":{"description":"Provider timed out","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/limadata/jobs/details":{"post":{"summary":"Job Details","description":"Get detailed information about a LinkedIn job posting by its ID. Credits: flat charge per call regardless of how many rows come back. Call get_endpoint_details for the live rate.","tags":["Lima Data"],"security":[{"bearerAuth":[]}],"x-credits-cost":{"amount":3.5,"unit":"call","billing_shape":"per_call"},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","description":"LinkedIn Job ID. Example: 3996439038"}},"required":["id"],"title":"LimaDataJobDetailsRequest","example":{"id":"3996439038"}}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LimaDataResponse"}}}},"400":{"description":"Bad request (upstream validation error)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"504":{"description":"Provider timed out","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/limadata/posts":{"post":{"summary":"Posts","description":"Get LinkedIn posts of a person or company profile. Supports pagination. The minimum charge is 2 credits, including an empty result. Credits: bills only for returned results, per post; reserved up-front for the requested size and settled to the actual count (see X-ColdIQ-Credits-Charged). Call get_endpoint_details for the live rate.","tags":["Lima Data"],"security":[{"bearerAuth":[]}],"x-credits-cost":{"amount":7,"unit":"post","billing_shape":"per_result"},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"url":{"type":"string","description":"LinkedIn person or company profile URL"},"max_results":{"type":"integer","minimum":1,"maximum":100,"description":"Maximum posts to return (default: 10)"},"pagination_token":{"type":"string","description":"Pagination token from previous response"}},"required":["url"],"title":"LimaDataPostsRequest","example":{"url":"https://www.linkedin.com/in/michel-lieben"}}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LimaDataResponse"}}}},"400":{"description":"Bad request (upstream validation error)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"504":{"description":"Provider timed out","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/limadata/posts/comments":{"post":{"summary":"Post Comments","description":"Get comments for a LinkedIn post using its post URL. The minimum charge is 2 credits, including an empty result. Credits: bills only for returned results, per comment; reserved up-front for the requested size and settled to the actual count (see X-ColdIQ-Credits-Charged). Call get_endpoint_details for the live rate.","tags":["Lima Data"],"security":[{"bearerAuth":[]}],"x-credits-cost":{"amount":7,"unit":"comment","billing_shape":"per_result"},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"post_url":{"type":"string","description":"LinkedIn post URL"},"page":{"type":"integer","description":"Page number"},"max_results":{"type":"integer","minimum":1,"maximum":100,"description":"Maximum comments to return (default: 10)"}},"required":["post_url"],"title":"LimaDataPostCommentsRequest","example":{"post_url":"https://www.linkedin.com/feed/update/urn:li:activity:7302070253893677057"}}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LimaDataResponse"}}}},"400":{"description":"Bad request (upstream validation error)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"504":{"description":"Provider timed out","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/limadata/posts/reactions":{"post":{"summary":"Post Reactions","description":"Get reactions for a LinkedIn post using its post URL. The minimum charge is 2 credits, including an empty result. Credits: bills only for returned results, per reaction; reserved up-front for the requested size and settled to the actual count (see X-ColdIQ-Credits-Charged). Call get_endpoint_details for the live rate.","tags":["Lima Data"],"security":[{"bearerAuth":[]}],"x-credits-cost":{"amount":7,"unit":"reaction","billing_shape":"per_result"},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"post_url":{"type":"string","description":"LinkedIn post URL"},"page":{"type":"integer","description":"Page number"},"max_results":{"type":"integer","minimum":1,"maximum":100,"description":"Maximum reactions to return (default: 10)"}},"required":["post_url"],"title":"LimaDataPostReactionsRequest","example":{"post_url":"https://www.linkedin.com/feed/update/urn:li:activity:7302070253893677057"}}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LimaDataResponse"}}}},"400":{"description":"Bad request (upstream validation error)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"504":{"description":"Provider timed out","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/limadata/search/people":{"post":{"summary":"Search People","description":"Search people by keywords with optional filters for title, company, location. Best for targeted searches. Credits: flat charge per call regardless of how many rows come back. Call get_endpoint_details for the live rate.","tags":["Lima Data"],"security":[{"bearerAuth":[]}],"x-credits-cost":{"amount":7,"unit":"call","billing_shape":"per_call"},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"query":{"type":"string","description":"Search query/keywords. Example: Software Engineer"},"page":{"type":"integer","description":"Page number starting from 1"},"title":{"type":"string","description":"Filter by job title keywords"},"company":{"type":"string","description":"Filter by company name keywords"},"first_name":{"type":"string","description":"Filter by first name"},"last_name":{"type":"string","description":"Filter by last name"},"location_list":{"type":"string","description":"Comma-separated location IDs"},"current_company_list":{"type":"string","description":"Comma-separated LinkedIn company IDs"},"past_company_list":{"type":"string","description":"Comma-separated past company IDs"},"industry_list":{"type":"string","description":"Comma-separated LinkedIn industry IDs"}},"required":["query"],"title":"LimaDataSearchPeopleRequest","example":{"query":"Michel Lieben","company":"ColdIQ","title":"CEO"}}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LimaDataResponse"}}}},"400":{"description":"Bad request (upstream validation error)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"504":{"description":"Provider timed out","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/limadata/search/companies":{"post":{"summary":"Search Companies","description":"Search companies by keywords with optional filters for size, location, industry. Credits: flat charge per call regardless of how many rows come back. Call get_endpoint_details for the live rate. Managed alternative: `POST /v1/companies/search` (Search Companies) runs this provider inside a ranked waterfall with charge-on-success billing and one normalized response shape, and falls back to the other providers for this capability on a miss. Call this endpoint directly when you specifically want this provider and no fallback.","tags":["Lima Data"],"security":[{"bearerAuth":[]}],"x-credits-cost":{"amount":7,"unit":"call","billing_shape":"per_call"},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"query":{"type":"string","description":"Search query/keywords. Example: ColdIQ"},"page":{"type":"integer","description":"Page number starting from 1"},"company_size":{"type":"string","description":"Filter by company size. Comma-separated: A=1-10, B=11-50, C=51-200, D=201-500, E=501-1000, F=1001-5000, G=5001-10000, H=10001+"},"has_jobs":{"type":"boolean","description":"Filter for companies currently hiring"},"location_list":{"type":"string","description":"Comma-separated location IDs"},"industry_list":{"type":"string","description":"Comma-separated LinkedIn industry IDs"}},"required":["query"],"title":"LimaDataSearchCompaniesRequest","example":{"query":"ColdIQ"}}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LimaDataResponse"}}}},"400":{"description":"Bad request (upstream validation error)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"504":{"description":"Provider timed out","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/limadata/search/jobs":{"post":{"summary":"Search Jobs","description":"Search jobs by keywords with optional filters. Credits: flat charge per call regardless of how many rows come back. Call get_endpoint_details for the live rate.","tags":["Lima Data"],"security":[{"bearerAuth":[]}],"x-credits-cost":{"amount":7,"unit":"call","billing_shape":"per_call"},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"query":{"type":"string","description":"Search query/keywords. Example: Software Engineer"},"page":{"type":"integer","description":"Page number starting from 1"},"location_id":{"type":"string","description":"Single numeric location ID"},"easy_apply":{"type":"boolean","description":"Filter for easy apply jobs only"},"experience":{"type":"string","description":"Experience level. Comma-separated: 1=Internship, 2=Entry, 3=Associate, 4=Mid-Senior, 5=Director, 6=Executive"},"job_type":{"type":"string","description":"Job type. Comma-separated: F=Full-time, P=Part-time, C=Contract, T=Temporary, I=Internship, V=Volunteer, O=Other"},"posted_ago":{"type":"string","description":"Filter by how recently posted, in seconds. Example: 604800 for 7 days"},"workplace_type":{"type":"string","description":"Workplace type. Comma-separated: 1=On-site, 2=Remote, 3=Hybrid"},"sort_by":{"type":"string","description":"Sort criteria"},"company_ids":{"type":"string","description":"Comma-separated LinkedIn company IDs"},"industry_ids":{"type":"string","description":"Comma-separated LinkedIn industry IDs"},"function_ids":{"type":"string","description":"Comma-separated function IDs"},"title_ids":{"type":"string","description":"Comma-separated title IDs"},"location_ids":{"type":"string","description":"Comma-separated location IDs"}},"required":["query"],"title":"LimaDataSearchJobsRequest","example":{"query":"Software Engineer"}}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LimaDataResponse"}}}},"400":{"description":"Bad request (upstream validation error)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"504":{"description":"Provider timed out","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/limadata/search/posts":{"post":{"summary":"Search Posts","description":"Search LinkedIn posts by keywords with optional filters. Credits: flat charge per call regardless of how many rows come back. Call get_endpoint_details for the live rate.","tags":["Lima Data"],"security":[{"bearerAuth":[]}],"x-credits-cost":{"amount":7,"unit":"call","billing_shape":"per_call"},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"query":{"type":"string","description":"Search query/keywords"},"page":{"type":"integer","description":"Page number starting from 1"},"sort_by_latest":{"type":"boolean","description":"Sort by latest posts instead of most relevant"},"author_job_title":{"type":"string","description":"Filter by author's job title keywords"},"content_type":{"type":"string","description":"Filter by content type: photos, videos, articles, documents"},"from_member":{"type":"string","description":"Comma-separated LinkedIn member URNs"},"from_organization":{"type":"string","description":"Comma-separated LinkedIn organization URNs"},"author_company":{"type":"string","description":"Comma-separated LinkedIn company IDs for author's company"},"author_industry":{"type":"string","description":"Comma-separated LinkedIn industry IDs for author's industry"},"mentions_member":{"type":"string","description":"Comma-separated LinkedIn member URNs mentioned in post"},"mentions_organization":{"type":"string","description":"Comma-separated LinkedIn organization URNs mentioned in post"}},"required":["query"],"title":"LimaDataSearchPostsRequest","example":{"query":"AI Technology"}}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LimaDataResponse"}}}},"400":{"description":"Bad request (upstream validation error)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"504":{"description":"Provider timed out","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/limadata/search/web":{"post":{"summary":"Web Search","description":"Perform a Google web search. Credits: flat charge per call regardless of how many rows come back. Call get_endpoint_details for the live rate. Managed alternative: `POST /v1/web/search` (Web Search) runs this provider inside a ranked waterfall with charge-on-success billing and one normalized response shape, and falls back to the other providers for this capability on a miss. Call this endpoint directly when you specifically want this provider and no fallback.","tags":["Lima Data"],"security":[{"bearerAuth":[]}],"x-credits-cost":{"amount":3.5,"unit":"call","billing_shape":"per_call"},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"query":{"type":"string","description":"Search query string"},"page":{"type":"integer","description":"Page number for pagination (default: 1)"}},"required":["query"],"title":"LimaDataWebSearchRequest","example":{"query":"best CRM tools 2026"}}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LimaDataResponse"}}}},"400":{"description":"Bad request (upstream validation error)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"504":{"description":"Provider timed out","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/limadata/research/ai-search":{"post":{"summary":"AI Search","description":"AI-powered web search that retrieves and synthesizes information. Credits: flat charge per call regardless of how many rows come back. Call get_endpoint_details for the live rate.","tags":["Lima Data"],"security":[{"bearerAuth":[]}],"x-credits-cost":{"amount":3.5,"unit":"call","billing_shape":"per_call"},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"query":{"type":"string","description":"Search query string"},"output_type":{"type":"string","enum":["SearchResults","SourcedAnswer","Structured"],"description":"Type of output to return"}},"required":["query"],"title":"LimaDataAiSearchRequest","example":{"query":"What is the latest funding round for Stripe?"}}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LimaDataResponse"}}}},"400":{"description":"Bad request (upstream validation error)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"504":{"description":"Provider timed out","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/limadata/research/extract":{"post":{"summary":"Extract","description":"Extract clean markdown content from 1-10 web pages. JavaScript rendering uses the higher render_js rate. Credits: variable per URL, charged by which fields you request (standard, renderJs). Reserved up-front, settled to actual (see X-ColdIQ-Credits-Charged). Call get_endpoint_details for the live rate.","tags":["Lima Data"],"security":[{"bearerAuth":[]}],"x-credits-cost":{"unit":"URL","rates":{"standard":0.35,"renderJs":0.7},"billing_shape":"per_result"},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"urls":{"type":"array","items":{"type":"string"},"minItems":1,"maxItems":10,"description":"List of URLs to extract content from (1-10 URLs)"},"include_links":{"type":"boolean","description":"Extract link URLs from pages (default: false)"},"include_images":{"type":"boolean","description":"Extract image URLs from pages (default: false)"},"render_js":{"type":"boolean","description":"Render JavaScript before extraction. Costs 0.2 credits per URL instead of 0.1."}},"required":["urls"],"title":"LimaDataExtractRequest","example":{"urls":["https://coldiq.com"]}}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LimaDataResponse"}}}},"400":{"description":"Bad request (upstream validation error)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"504":{"description":"Provider timed out","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/limadata/references/autocomplete":{"post":{"summary":"Autocomplete","description":"Get autocomplete results for prospect filter types. Free endpoint. Credits: free.","tags":["Lima Data"],"security":[{"bearerAuth":[]}],"x-credits-cost":{"amount":0,"unit":"call","billing_shape":"per_call"},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"filter_type":{"type":"string","description":"Filter type: company_headcount, company_type, company_headquarters, function, current_title, seniority, past_title, years_in_current_company, years_in_current_position, location, industry, year_of_experience, profile_language"},"query":{"type":"string","description":"Search keyword"}},"required":["filter_type"],"title":"LimaDataAutocompleteRequest","example":{"filter_type":"current_title","query":"Software"}}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LimaDataResponse"}}}},"400":{"description":"Bad request (upstream validation error)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"504":{"description":"Provider timed out","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/limadata/prospect/people/search-url":{"post":{"summary":"Prospect People by URL","description":"Prospect people using a LinkedIn Sales Navigator search URL. Up to 25 results per page. Credits: flat charge per call regardless of how many rows come back. Call get_endpoint_details for the live rate.","tags":["Lima Data"],"security":[{"bearerAuth":[]}],"x-credits-cost":{"amount":87.5,"unit":"call","billing_shape":"per_call"},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"search_url":{"type":"string","description":"LinkedIn Sales Navigator Leads Search URL"},"page":{"type":"integer","description":"Page number starting from 1"}},"required":["search_url"],"title":"LimaDataProspectPeopleUrlRequest","example":{"search_url":"https://www.linkedin.com/sales/search/people?query=..."}}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LimaDataResponse"}}}},"400":{"description":"Bad request (upstream validation error)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"504":{"description":"Provider timed out","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/limadata/prospect/people/filter":{"post":{"summary":"Prospect People","description":"Prospect people using filter criteria. Credits: flat charge per call regardless of how many rows come back. Call get_endpoint_details for the live rate.","tags":["Lima Data"],"security":[{"bearerAuth":[]}],"x-credits-cost":{"amount":87.5,"unit":"call","billing_shape":"per_call"},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"filters":{"type":"array","items":{"type":"object","properties":{"filter_type":{"type":"string","description":"Filter type"},"operator":{"type":"string","description":"Match operator. Discrete value filters (current_title, seniority, function, location, industry, company_headcount, company_type, …) require 'in'; defaults to 'in' when omitted and `values` is provided. Range filters use `range_value` instead."},"values":{"type":"array","items":{"type":"string"},"description":"Filter values"},"range_value":{"type":"object","properties":{"sub_filter":{"type":"string"},"min":{"type":"integer"},"max":{"type":"integer"}},"required":["min"],"description":"Range filter value"}},"required":["filter_type"]},"description":"Filters to apply to people"},"page":{"type":"integer","description":"Page number (1-100)"},"settings_match_all_company_urls":{"type":"boolean","description":"Match all company URLs (default: false)"}},"required":["filters"],"title":"LimaDataProspectPeopleFilterRequest","example":{"filters":[{"filter_type":"current_title","operator":"in","values":["Head of Growth"]}]}}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LimaDataResponse"}}}},"400":{"description":"Bad request (upstream validation error)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"504":{"description":"Provider timed out","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/limadata/prospect/employees":{"post":{"summary":"Prospect Employees","description":"Prospect employees of a company with optional title, location, and seniority filters. Credits: flat charge per call regardless of how many rows come back. Call get_endpoint_details for the live rate. Managed alternative: `POST /v1/people/search` (Find People) runs this provider inside a ranked waterfall with charge-on-success billing and one normalized response shape, and falls back to the other providers for this capability on a miss. Call this endpoint directly when you specifically want this provider and no fallback.","tags":["Lima Data"],"security":[{"bearerAuth":[]}],"x-credits-cost":{"amount":87.5,"unit":"call","billing_shape":"per_call"},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"url":{"type":"string","description":"LinkedIn company profile URL"},"keyword":{"type":"string","description":"Keyword to filter people"},"titles":{"type":"array","items":{"type":"string"},"description":"Titles to filter by"},"locations":{"type":"array","items":{"type":"string"},"description":"Locations to filter by"},"seniorities":{"type":"array","items":{"type":"string"},"description":"Seniorities to filter by (label or code)"},"recently_changed_jobs":{"type":"boolean","description":"Filter by recent job changes"},"page":{"type":"integer","description":"Page number starting from 1"}},"required":["url"],"title":"LimaDataProspectEmployeesRequest","example":{"url":"https://www.linkedin.com/company/cold-labs"}}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LimaDataResponse"}}}},"400":{"description":"Bad request (upstream validation error)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"504":{"description":"Provider timed out","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/limadata/prospect/employees/batch":{"post":{"summary":"Prospect Employees (batch)","description":"Prospect employees across multiple companies in one call. Each company LinkedIn URL is searched in parallel and the results are merged, with each contact attributed to its company. Credits: bills only for returned results, per company; reserved up-front for the requested size and settled to the actual count (see X-ColdIQ-Credits-Charged). Call get_endpoint_details for the live rate. Managed alternative: `POST /v1/people/search` (Find People) runs this provider inside a ranked waterfall with charge-on-success billing and one normalized response shape, and falls back to the other providers for this capability on a miss. Call this endpoint directly when you specifically want this provider and no fallback.","tags":["Lima Data"],"security":[{"bearerAuth":[]}],"x-credits-cost":{"amount":87.5,"unit":"company","billing_shape":"per_result"},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"urls":{"type":"array","items":{"type":"string"},"minItems":1,"maxItems":25,"description":"LinkedIn company profile URLs to prospect employees for (1-25). Each is searched in parallel and the results are merged. Costs 25 credits per company that returns successfully."},"keyword":{"type":"string","description":"Keyword to filter people (applied to every company)"},"titles":{"type":"array","items":{"type":"string"},"description":"Titles to filter by (applied to every company)"},"locations":{"type":"array","items":{"type":"string"},"description":"Locations to filter by (applied to every company)"},"seniorities":{"type":"array","items":{"type":"string"},"description":"Seniorities to filter by, label or code (applied to every company)"},"recently_changed_jobs":{"type":"boolean","description":"Filter by recent job changes (applied to every company)"}},"required":["urls"],"title":"LimaDataProspectEmployeesBatchRequest","example":{"urls":["https://www.linkedin.com/company/microsoft","https://www.linkedin.com/company/google"],"titles":["Head of Sales"]}}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LimaDataResponse"}}}},"400":{"description":"Bad request (upstream validation error)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"504":{"description":"Provider timed out","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/limadata/prospect/companies/filter":{"post":{"summary":"Prospect Companies","description":"Prospect companies using filter criteria. BILLING SHAPE: flat per CALL, not per result — one call costs the same whether it returns 25 rows or 50, so the cost per company falls only as the result set grows. Sibling route: POST /limadata/database/search-companies bills per RESULT instead, which is materially cheaper per company for small or partial result sets. Price both on get_endpoint_details for your expected row count before you commit to either — do not assume this route is the only Lima company source. Credits: flat charge per call regardless of how many rows come back. Call get_endpoint_details for the live rate. Managed alternative: `POST /v1/companies/search` (Search Companies) runs this provider inside a ranked waterfall with charge-on-success billing and one normalized response shape, and falls back to the other providers for this capability on a miss. Call this endpoint directly when you specifically want this provider and no fallback.","tags":["Lima Data"],"security":[{"bearerAuth":[]}],"x-credits-cost":{"amount":87.5,"unit":"call","billing_shape":"per_call"},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"filters":{"type":"array","items":{"type":"object","properties":{"filter_type":{"type":"string","description":"Filter type"},"operator":{"type":"string","description":"Match operator. Discrete value filters (current_title, seniority, function, location, industry, company_headcount, company_type, …) require 'in'; defaults to 'in' when omitted and `values` is provided. Range filters use `range_value` instead."},"values":{"type":"array","items":{"type":"string"},"description":"Filter values"},"range_value":{"type":"object","properties":{"sub_filter":{"type":"string"},"min":{"type":"integer"},"max":{"type":"integer"}},"required":["min"],"description":"Range filter value"}},"required":["filter_type"]},"description":"Filters to apply to companies"},"page":{"type":"integer","description":"Page number (1-60)"}},"required":["filters"],"title":"LimaDataProspectCompaniesFilterRequest","example":{"filters":[{"filter_type":"company_headcount","operator":"in","values":["201-500","501-1,000"]}]}}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LimaDataResponse"}}}},"400":{"description":"Bad request (upstream validation error)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"504":{"description":"Provider timed out","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/limadata/prospect/companies/search-url":{"post":{"summary":"Prospect Companies by URL","description":"Prospect companies using a LinkedIn Sales Navigator company search URL. Credits: flat charge per call regardless of how many rows come back. Call get_endpoint_details for the live rate. Managed alternative: `POST /v1/companies/search` (Search Companies) runs this provider inside a ranked waterfall with charge-on-success billing and one normalized response shape, and falls back to the other providers for this capability on a miss. Call this endpoint directly when you specifically want this provider and no fallback.","tags":["Lima Data"],"security":[{"bearerAuth":[]}],"x-credits-cost":{"amount":87.5,"unit":"call","billing_shape":"per_call"},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"search_url":{"type":"string","description":"LinkedIn Sales Navigator Company Search URL"},"page":{"type":"integer","description":"Page number starting from 1"}},"required":["search_url"],"title":"LimaDataProspectCompaniesUrlRequest","example":{"search_url":"https://www.linkedin.com/sales/search/company?query=..."}}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LimaDataResponse"}}}},"400":{"description":"Bad request (upstream validation error)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"504":{"description":"Provider timed out","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/limadata/batch/people":{"post":{"summary":"Batch People Profiles","description":"Batch retrieve 100-100,000 LinkedIn people profiles. Credits: bills only for returned results, per URL; reserved up-front for the requested size and settled to the actual count (see X-ColdIQ-Credits-Charged). Call get_endpoint_details for the live rate.","tags":["Lima Data"],"security":[{"bearerAuth":[]}],"x-credits-cost":{"amount":87.5,"unit":"URL","billing_shape":"per_result"},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","description":"Name for the batch operation"},"urls":{"type":"array","items":{"type":"string"},"minItems":100,"maxItems":100000,"description":"List of LinkedIn profile URLs to retrieve (100-100,000 URLs)"},"notification_url":{"type":"string","description":"Webhook URL to notify when batch completes"}},"required":["urls"],"title":"LimaDataBatchPeopleRequest","example":{"urls":["https://www.linkedin.com/in/michel-lieben","https://www.linkedin.com/in/michel-lieben","https://www.linkedin.com/in/michel-lieben","https://www.linkedin.com/in/michel-lieben","https://www.linkedin.com/in/michel-lieben","https://www.linkedin.com/in/michel-lieben","https://www.linkedin.com/in/michel-lieben","https://www.linkedin.com/in/michel-lieben","https://www.linkedin.com/in/michel-lieben","https://www.linkedin.com/in/michel-lieben","https://www.linkedin.com/in/michel-lieben","https://www.linkedin.com/in/michel-lieben","https://www.linkedin.com/in/michel-lieben","https://www.linkedin.com/in/michel-lieben","https://www.linkedin.com/in/michel-lieben","https://www.linkedin.com/in/michel-lieben","https://www.linkedin.com/in/michel-lieben","https://www.linkedin.com/in/michel-lieben","https://www.linkedin.com/in/michel-lieben","https://www.linkedin.com/in/michel-lieben","https://www.linkedin.com/in/michel-lieben","https://www.linkedin.com/in/michel-lieben","https://www.linkedin.com/in/michel-lieben","https://www.linkedin.com/in/michel-lieben","https://www.linkedin.com/in/michel-lieben","https://www.linkedin.com/in/michel-lieben","https://www.linkedin.com/in/michel-lieben","https://www.linkedin.com/in/michel-lieben","https://www.linkedin.com/in/michel-lieben","https://www.linkedin.com/in/michel-lieben","https://www.linkedin.com/in/michel-lieben","https://www.linkedin.com/in/michel-lieben","https://www.linkedin.com/in/michel-lieben","https://www.linkedin.com/in/michel-lieben","https://www.linkedin.com/in/michel-lieben","https://www.linkedin.com/in/michel-lieben","https://www.linkedin.com/in/michel-lieben","https://www.linkedin.com/in/michel-lieben","https://www.linkedin.com/in/michel-lieben","https://www.linkedin.com/in/michel-lieben","https://www.linkedin.com/in/michel-lieben","https://www.linkedin.com/in/michel-lieben","https://www.linkedin.com/in/michel-lieben","https://www.linkedin.com/in/michel-lieben","https://www.linkedin.com/in/michel-lieben","https://www.linkedin.com/in/michel-lieben","https://www.linkedin.com/in/michel-lieben","https://www.linkedin.com/in/michel-lieben","https://www.linkedin.com/in/michel-lieben","https://www.linkedin.com/in/michel-lieben","https://www.linkedin.com/in/michel-lieben","https://www.linkedin.com/in/michel-lieben","https://www.linkedin.com/in/michel-lieben","https://www.linkedin.com/in/michel-lieben","https://www.linkedin.com/in/michel-lieben","https://www.linkedin.com/in/michel-lieben","https://www.linkedin.com/in/michel-lieben","https://www.linkedin.com/in/michel-lieben","https://www.linkedin.com/in/michel-lieben","https://www.linkedin.com/in/michel-lieben","https://www.linkedin.com/in/michel-lieben","https://www.linkedin.com/in/michel-lieben","https://www.linkedin.com/in/michel-lieben","https://www.linkedin.com/in/michel-lieben","https://www.linkedin.com/in/michel-lieben","https://www.linkedin.com/in/michel-lieben","https://www.linkedin.com/in/michel-lieben","https://www.linkedin.com/in/michel-lieben","https://www.linkedin.com/in/michel-lieben","https://www.linkedin.com/in/michel-lieben","https://www.linkedin.com/in/michel-lieben","https://www.linkedin.com/in/michel-lieben","https://www.linkedin.com/in/michel-lieben","https://www.linkedin.com/in/michel-lieben","https://www.linkedin.com/in/michel-lieben","https://www.linkedin.com/in/michel-lieben","https://www.linkedin.com/in/michel-lieben","https://www.linkedin.com/in/michel-lieben","https://www.linkedin.com/in/michel-lieben","https://www.linkedin.com/in/michel-lieben","https://www.linkedin.com/in/michel-lieben","https://www.linkedin.com/in/michel-lieben","https://www.linkedin.com/in/michel-lieben","https://www.linkedin.com/in/michel-lieben","https://www.linkedin.com/in/michel-lieben","https://www.linkedin.com/in/michel-lieben","https://www.linkedin.com/in/michel-lieben","https://www.linkedin.com/in/michel-lieben","https://www.linkedin.com/in/michel-lieben","https://www.linkedin.com/in/michel-lieben","https://www.linkedin.com/in/michel-lieben","https://www.linkedin.com/in/michel-lieben","https://www.linkedin.com/in/michel-lieben","https://www.linkedin.com/in/michel-lieben","https://www.linkedin.com/in/michel-lieben","https://www.linkedin.com/in/michel-lieben","https://www.linkedin.com/in/michel-lieben","https://www.linkedin.com/in/michel-lieben","https://www.linkedin.com/in/michel-lieben","https://www.linkedin.com/in/michel-lieben"]}}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LimaDataResponse"}}}},"400":{"description":"Bad request (upstream validation error)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"409":{"description":"An identical submission is already in progress","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"504":{"description":"Provider timed out","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/limadata/batch/companies":{"post":{"summary":"Batch Company Profiles","description":"Batch retrieve 100-100,000 LinkedIn company profiles. Credits: bills only for returned results, per URL; reserved up-front for the requested size and settled to the actual count (see X-ColdIQ-Credits-Charged). Call get_endpoint_details for the live rate.","tags":["Lima Data"],"security":[{"bearerAuth":[]}],"x-credits-cost":{"amount":87.5,"unit":"URL","billing_shape":"per_result"},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","description":"Name for the batch operation"},"urls":{"type":"array","items":{"type":"string"},"minItems":100,"maxItems":100000,"description":"List of LinkedIn company URLs to retrieve (100-100,000 URLs)"},"notification_url":{"type":"string","description":"Webhook URL to notify when batch completes"}},"required":["urls"],"title":"LimaDataBatchCompaniesRequest","example":{"urls":["https://www.linkedin.com/company/cold-labs","https://www.linkedin.com/company/cold-labs","https://www.linkedin.com/company/cold-labs","https://www.linkedin.com/company/cold-labs","https://www.linkedin.com/company/cold-labs","https://www.linkedin.com/company/cold-labs","https://www.linkedin.com/company/cold-labs","https://www.linkedin.com/company/cold-labs","https://www.linkedin.com/company/cold-labs","https://www.linkedin.com/company/cold-labs","https://www.linkedin.com/company/cold-labs","https://www.linkedin.com/company/cold-labs","https://www.linkedin.com/company/cold-labs","https://www.linkedin.com/company/cold-labs","https://www.linkedin.com/company/cold-labs","https://www.linkedin.com/company/cold-labs","https://www.linkedin.com/company/cold-labs","https://www.linkedin.com/company/cold-labs","https://www.linkedin.com/company/cold-labs","https://www.linkedin.com/company/cold-labs","https://www.linkedin.com/company/cold-labs","https://www.linkedin.com/company/cold-labs","https://www.linkedin.com/company/cold-labs","https://www.linkedin.com/company/cold-labs","https://www.linkedin.com/company/cold-labs","https://www.linkedin.com/company/cold-labs","https://www.linkedin.com/company/cold-labs","https://www.linkedin.com/company/cold-labs","https://www.linkedin.com/company/cold-labs","https://www.linkedin.com/company/cold-labs","https://www.linkedin.com/company/cold-labs","https://www.linkedin.com/company/cold-labs","https://www.linkedin.com/company/cold-labs","https://www.linkedin.com/company/cold-labs","https://www.linkedin.com/company/cold-labs","https://www.linkedin.com/company/cold-labs","https://www.linkedin.com/company/cold-labs","https://www.linkedin.com/company/cold-labs","https://www.linkedin.com/company/cold-labs","https://www.linkedin.com/company/cold-labs","https://www.linkedin.com/company/cold-labs","https://www.linkedin.com/company/cold-labs","https://www.linkedin.com/company/cold-labs","https://www.linkedin.com/company/cold-labs","https://www.linkedin.com/company/cold-labs","https://www.linkedin.com/company/cold-labs","https://www.linkedin.com/company/cold-labs","https://www.linkedin.com/company/cold-labs","https://www.linkedin.com/company/cold-labs","https://www.linkedin.com/company/cold-labs","https://www.linkedin.com/company/cold-labs","https://www.linkedin.com/company/cold-labs","https://www.linkedin.com/company/cold-labs","https://www.linkedin.com/company/cold-labs","https://www.linkedin.com/company/cold-labs","https://www.linkedin.com/company/cold-labs","https://www.linkedin.com/company/cold-labs","https://www.linkedin.com/company/cold-labs","https://www.linkedin.com/company/cold-labs","https://www.linkedin.com/company/cold-labs","https://www.linkedin.com/company/cold-labs","https://www.linkedin.com/company/cold-labs","https://www.linkedin.com/company/cold-labs","https://www.linkedin.com/company/cold-labs","https://www.linkedin.com/company/cold-labs","https://www.linkedin.com/company/cold-labs","https://www.linkedin.com/company/cold-labs","https://www.linkedin.com/company/cold-labs","https://www.linkedin.com/company/cold-labs","https://www.linkedin.com/company/cold-labs","https://www.linkedin.com/company/cold-labs","https://www.linkedin.com/company/cold-labs","https://www.linkedin.com/company/cold-labs","https://www.linkedin.com/company/cold-labs","https://www.linkedin.com/company/cold-labs","https://www.linkedin.com/company/cold-labs","https://www.linkedin.com/company/cold-labs","https://www.linkedin.com/company/cold-labs","https://www.linkedin.com/company/cold-labs","https://www.linkedin.com/company/cold-labs","https://www.linkedin.com/company/cold-labs","https://www.linkedin.com/company/cold-labs","https://www.linkedin.com/company/cold-labs","https://www.linkedin.com/company/cold-labs","https://www.linkedin.com/company/cold-labs","https://www.linkedin.com/company/cold-labs","https://www.linkedin.com/company/cold-labs","https://www.linkedin.com/company/cold-labs","https://www.linkedin.com/company/cold-labs","https://www.linkedin.com/company/cold-labs","https://www.linkedin.com/company/cold-labs","https://www.linkedin.com/company/cold-labs","https://www.linkedin.com/company/cold-labs","https://www.linkedin.com/company/cold-labs","https://www.linkedin.com/company/cold-labs","https://www.linkedin.com/company/cold-labs","https://www.linkedin.com/company/cold-labs","https://www.linkedin.com/company/cold-labs","https://www.linkedin.com/company/cold-labs","https://www.linkedin.com/company/cold-labs"]}}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LimaDataResponse"}}}},"400":{"description":"Bad request (upstream validation error)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"409":{"description":"An identical submission is already in progress","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"504":{"description":"Provider timed out","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/limadata/batch/prospect-people":{"post":{"summary":"Batch Prospect People","description":"Batch prospect 50-25,000 people with filters. Credits: bills only for returned results, per entity; reserved up-front for the requested size and settled to the actual count (see X-ColdIQ-Credits-Charged). Call get_endpoint_details for the live rate.","tags":["Lima Data"],"security":[{"bearerAuth":[]}],"x-credits-cost":{"amount":87.5,"unit":"entity","billing_shape":"per_result"},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","description":"Name for the batch operation"},"filters":{"type":"array","items":{"type":"object","properties":{"filter_type":{"type":"string","description":"Filter type"},"operator":{"type":"string","description":"Match operator. Discrete value filters (current_title, seniority, function, location, industry, company_headcount, company_type, …) require 'in'; defaults to 'in' when omitted and `values` is provided. Range filters use `range_value` instead."},"values":{"type":"array","items":{"type":"string"},"description":"Filter values"},"range_value":{"type":"object","properties":{"sub_filter":{"type":"string"},"min":{"type":"integer"},"max":{"type":"integer"}},"required":["min"],"description":"Range filter value"}},"required":["filter_type"]},"description":"Filters to apply to people search"},"entity_count":{"type":"integer","minimum":50,"maximum":25000,"description":"Number of people to retrieve (50-25,000; multiple of 25)"},"notification_url":{"type":"string","description":"Webhook URL to notify when batch completes"}},"required":["filters"],"title":"LimaDataBatchProspectPeopleRequest","example":{"filters":[{"filter_type":"current_title","operator":"in","values":["CEO"]}],"entity_count":100}}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LimaDataResponse"}}}},"400":{"description":"Bad request (upstream validation error)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"409":{"description":"An identical submission is already in progress","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"504":{"description":"Provider timed out","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/limadata/batch/prospect-companies":{"post":{"summary":"Batch Prospect Companies","description":"Batch prospect 50-15,000 companies with filters. Credits: bills only for returned results, per entity; reserved up-front for the requested size and settled to the actual count (see X-ColdIQ-Credits-Charged). Call get_endpoint_details for the live rate.","tags":["Lima Data"],"security":[{"bearerAuth":[]}],"x-credits-cost":{"amount":87.5,"unit":"entity","billing_shape":"per_result"},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","description":"Name for the batch operation"},"filters":{"type":"array","items":{"type":"object","properties":{"filter_type":{"type":"string","description":"Filter type"},"operator":{"type":"string","description":"Match operator. Discrete value filters (current_title, seniority, function, location, industry, company_headcount, company_type, …) require 'in'; defaults to 'in' when omitted and `values` is provided. Range filters use `range_value` instead."},"values":{"type":"array","items":{"type":"string"},"description":"Filter values"},"range_value":{"type":"object","properties":{"sub_filter":{"type":"string"},"min":{"type":"integer"},"max":{"type":"integer"}},"required":["min"],"description":"Range filter value"}},"required":["filter_type"]},"description":"Filters to apply to company search"},"entity_count":{"type":"integer","minimum":50,"maximum":15000,"description":"Number of companies to retrieve (50-15,000; multiple of 25)"},"notification_url":{"type":"string","description":"Webhook URL to notify when batch completes"}},"required":["filters"],"title":"LimaDataBatchProspectCompaniesRequest","example":{"filters":[{"filter_type":"company_headcount","operator":"in","values":["201-500"]}],"entity_count":50}}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LimaDataResponse"}}}},"400":{"description":"Bad request (upstream validation error)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"409":{"description":"An identical submission is already in progress","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"504":{"description":"Provider timed out","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/limadata/batch/post-engagements":{"post":{"summary":"Batch Post Engagements","description":"Retrieve reactors and commenters for up to 50 LinkedIn posts asynchronously. Reserves 10 credits per URL and settles to the actual engagement cost. Credits: bills only for returned results, per URL; reserved up-front for the requested size and settled to the actual count (see X-ColdIQ-Credits-Charged). Call get_endpoint_details for the live rate.","tags":["Lima Data"],"security":[{"bearerAuth":[]}],"x-credits-cost":{"amount":35,"unit":"URL","billing_shape":"per_result"},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","description":"Name for the batch operation"},"urls":{"type":"array","items":{"type":"string"},"minItems":1,"maxItems":50,"description":"LinkedIn post URLs to retrieve engagements for (1-50)"},"notification_url":{"type":"string","description":"Webhook URL to notify when the batch completes"}},"required":["urls"],"additionalProperties":false,"title":"LimaDataBatchPostEngagementsRequest","example":{"urls":["https://www.linkedin.com/feed/update/urn:li:activity:7302070253893677057"]}}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LimaDataResponse"}}}},"400":{"description":"Bad request (upstream validation error)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"409":{"description":"An identical submission is already in progress","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"504":{"description":"Provider timed out","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/limadata/batch/list":{"post":{"summary":"Batch Operations List","description":"List all batch operations. Free endpoint. Credits: free.","tags":["Lima Data"],"security":[{"bearerAuth":[]}],"x-credits-cost":{"amount":0,"unit":"call","billing_shape":"per_call"},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"page":{"type":"integer","description":"Page number"}},"title":"LimaDataBatchListRequest","example":{}}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LimaDataResponse"}}}},"400":{"description":"Bad request (upstream validation error)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"504":{"description":"Provider timed out","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/limadata/batch/results":{"post":{"summary":"Batch Operation Results","description":"Get results of a batch operation by ID. Free endpoint. Credits: free.","tags":["Lima Data"],"security":[{"bearerAuth":[]}],"x-credits-cost":{"amount":0,"unit":"call","billing_shape":"per_call"},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"batch_id":{"type":"string","description":"Batch operation ID"},"page":{"type":"integer","description":"Page number"}},"required":["batch_id"],"title":"LimaDataBatchResultsRequest","example":{"batch_id":"12345"}}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LimaDataResponse"}}}},"400":{"description":"Bad request (upstream validation error)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"504":{"description":"Provider timed out","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/limadata/watch":{"post":{"summary":"Create a Watch","description":"Create a watch subscription to monitor people or companies for changes. Types: PersonJobChanges, PersonProfileUpdates, PersonSocialPosts, CompanySocialPosts, CompanyJobPosts. Free to create; credits charged per check. Credits: free.","tags":["Lima Data"],"security":[{"bearerAuth":[]}],"x-credits-cost":{"amount":0,"unit":"call","billing_shape":"per_call"},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","description":"Name of the watch subscription"},"type":{"type":"string","enum":["PersonJobChanges","PersonProfileUpdates","PersonSocialPosts","CompanySocialPosts","CompanyJobPosts"],"description":"Watch type"},"notification_url":{"type":"string","description":"Webhook URL for notifications"},"frequency_days":{"type":"integer","minimum":1,"maximum":60,"description":"Check frequency in days (1-60)"},"settings":{"type":"object","properties":{"people_urls":{"type":"array","items":{"type":"string"},"description":"LinkedIn people URLs to monitor"},"company_urls":{"type":"array","items":{"type":"string"},"description":"LinkedIn company URLs to monitor"}},"description":"Watch settings"},"external_id":{"type":"string","description":"External identifier for integration"}},"required":["name","type","notification_url","frequency_days"],"title":"LimaDataWatchCreateRequest","example":{"name":"Monitor Sales Team Job Changes","type":"PersonJobChanges","notification_url":"https://your-app.com/webhooks/watch","frequency_days":7,"settings":{"people_urls":["https://www.linkedin.com/in/michel-lieben"]}}}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LimaDataResponse"}}}},"400":{"description":"Bad request (upstream validation error)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"504":{"description":"Provider timed out","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/limadata/watch/list":{"post":{"summary":"List Watches","description":"List all watch subscriptions. Free endpoint. Credits: free.","tags":["Lima Data"],"security":[{"bearerAuth":[]}],"x-credits-cost":{"amount":0,"unit":"call","billing_shape":"per_call"},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"page":{"type":"integer","description":"Page number (1-indexed, default: 1)"}},"title":"LimaDataWatchListRequest","example":{}}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LimaDataResponse"}}}},"400":{"description":"Bad request (upstream validation error)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"504":{"description":"Provider timed out","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/limadata/watch/get":{"post":{"summary":"Get Watch by ID","description":"Get a specific watch subscription by ID. Free endpoint. Credits: free.","tags":["Lima Data"],"security":[{"bearerAuth":[]}],"x-credits-cost":{"amount":0,"unit":"call","billing_shape":"per_call"},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"integer","description":"Watch subscription ID"}},"required":["id"],"title":"LimaDataWatchGetRequest","example":{"id":12345}}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LimaDataResponse"}}}},"400":{"description":"Bad request (upstream validation error)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"504":{"description":"Provider timed out","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/limadata/watch/update":{"post":{"summary":"Update Watch","description":"Update a watch subscription. Can modify name, notification_url, frequency_days, is_active, external_id. Free endpoint. Credits: free.","tags":["Lima Data"],"security":[{"bearerAuth":[]}],"x-credits-cost":{"amount":0,"unit":"call","billing_shape":"per_call"},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"integer","description":"Watch subscription ID"},"name":{"type":"string","description":"Name of the watch subscription"},"notification_url":{"type":"string","description":"Webhook URL for notifications"},"frequency_days":{"type":"integer","minimum":1,"maximum":60,"description":"Check frequency in days (1-60)"},"is_active":{"type":"boolean","description":"Whether the watch is active"},"external_id":{"type":"string","description":"External identifier"}},"required":["id"],"title":"LimaDataWatchUpdateRequest","example":{"id":12345,"is_active":false}}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LimaDataResponse"}}}},"400":{"description":"Bad request (upstream validation error)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"504":{"description":"Provider timed out","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/limadata/watch/mock-payload":{"post":{"summary":"Mock Webhook Payload","description":"Get sample webhook payloads for testing your integration. Free endpoint. Credits: free.","tags":["Lima Data"],"security":[{"bearerAuth":[]}],"x-credits-cost":{"amount":0,"unit":"call","billing_shape":"per_call"},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"type":{"type":"string","enum":["PersonJobChanges","PersonProfileUpdates","PersonSocialPosts","CompanySocialPosts","CompanyJobPosts"],"description":"Watch type"}},"required":["type"],"title":"LimaDataWatchMockPayloadRequest","example":{"type":"PersonJobChanges"}}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LimaDataResponse"}}}},"400":{"description":"Bad request (upstream validation error)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"504":{"description":"Provider timed out","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/wiza/individual-reveals":{"post":{"x-credits-cost":{"unit":"contact","rates":{"none":17.5,"partial":35,"phone":122.5,"full":122.5},"billing_shape":"per_result"},"summary":"Start Individual Reveal","description":"Enrich a single contact with professional data. Returns immediately with a reveal ID — results are delivered asynchronously via webhook and retrievable via GET. Processing time: 0–380 seconds depending on enrichment level. Credit costs: none=1, partial=2, phone/full=7. Credits: variable per contact, charged by which fields you request (none, partial, phone, full). Reserved up-front, settled to actual (see X-ColdIQ-Credits-Charged). Call get_endpoint_details for the live rate. Managed alternative: `POST /v1/email/find` (Find Email) runs this provider inside a ranked waterfall with charge-on-success billing and one normalized response shape, and falls back to the other providers for this capability on a miss. Call this endpoint directly when you specifically want this provider and no fallback.","tags":["Wiza"],"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/StartIndividualRevealRequest"}}}},"responses":{"200":{"description":"Reveal started — poll via GET or wait for webhook","content":{"application/json":{"schema":{"$ref":"#/components/schemas/StartIndividualRevealResponse"}}}},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/wiza/individual-reveals/{id}":{"get":{"x-credits-cost":{"amount":0,"unit":"call","billing_shape":"per_call"},"summary":"Get Individual Reveal","description":"Retrieve enriched contact data and processing status. Returns stored results instantly for completed reveals, or proxies to Wiza for in-progress ones. Credits: free.","tags":["Wiza"],"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","example":"12345"},"required":true,"name":"id","in":"path"}],"responses":{"200":{"description":"Reveal result","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetIndividualRevealResponse"}}}},"202":{"description":"Reveal still in progress","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetIndividualRevealResponse"}}}},"404":{"description":"Reveal not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"410":{"description":"Reveal expired — credits refunded, please resubmit","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/wiza/lists":{"post":{"x-credits-cost":{"unit":"contact","rates":{"none":17.5,"partial":35,"phone":122.5,"full":122.5},"billing_shape":"per_result"},"summary":"Create List","description":"Bulk enrich up to 2,500 contacts. Returns immediately with a list ID — results are delivered asynchronously via webhook. Credits reserved upfront based on item count × enrichment level cost. Credits: variable per contact, charged by which fields you request (none, partial, phone, full). Reserved up-front, settled to actual (see X-ColdIQ-Credits-Charged). Call get_endpoint_details for the live rate.","tags":["Wiza"],"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateListRequest"}}}},"responses":{"200":{"description":"List created — poll via GET or wait for webhook","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListResponse"}}}},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/wiza/lists/{id}":{"get":{"x-credits-cost":{"amount":0,"unit":"call","billing_shape":"per_call"},"summary":"Get List","description":"Retrieve list status and details by ID. Credits: free.","tags":["Wiza"],"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","example":"12345"},"required":true,"name":"id","in":"path"}],"responses":{"200":{"description":"List status","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListResponse"}}}},"202":{"description":"List still processing","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListResponse"}}}},"404":{"description":"List not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"410":{"description":"List expired — credits refunded, please resubmit","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/wiza/lists/{id}/contacts":{"get":{"x-credits-cost":{"amount":0,"unit":"call","billing_shape":"per_call"},"summary":"Get List Contacts","description":"Export enriched contacts from a completed list. Use the `segment` query parameter to filter: \"people\" (all), \"valid\" (verified emails), or \"risky\" (risky emails). Credits: free.","tags":["Wiza"],"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","example":"12345"},"required":true,"name":"id","in":"path"},{"schema":{"type":"string","enum":["people","valid","risky"],"example":"valid"},"required":true,"name":"segment","in":"query"}],"responses":{"200":{"description":"List contacts","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetListContactsResponse"}}}},"400":{"description":"Invalid segment or no contacts","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/wiza/prospects/search":{"post":{"x-credits-cost":{"amount":17.5,"unit":"profile","billing_shape":"per_result"},"summary":"Prospect Search","description":"Find prospect count matching filter criteria. This is a preview/count endpoint — no credits charged when size=0. When size>0, Credits: bills only for returned results, per profile; reserved up-front for the requested size and settled to the actual count (see X-ColdIQ-Credits-Charged). Call get_endpoint_details for the live rate.","tags":["Wiza"],"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProspectSearchRequest"}}}},"responses":{"200":{"description":"Search results with count and optional profiles","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProspectSearchResponse"}}}},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/wiza/prospects/create-prospect-list":{"post":{"x-credits-cost":{"unit":"contact","rates":{"none":17.5,"partial":35,"phone":122.5,"full":122.5},"billing_shape":"per_result"},"summary":"Create Prospect List","description":"Generate an enriched list from prospect search filters. Credits reserved upfront based on max_profiles × enrichment level cost. Unused credits refunded when processing completes. Credits: variable per contact, charged by which fields you request (none, partial, phone, full). Reserved up-front, settled to actual (see X-ColdIQ-Credits-Charged). Call get_endpoint_details for the live rate.","tags":["Wiza"],"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateProspectListRequest"}}}},"responses":{"200":{"description":"Prospect list created","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListResponse"}}}},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/wiza/prospects/continue-search":{"post":{"x-credits-cost":{"unit":"contact","rates":{"none":17.5,"partial":35,"phone":122.5,"full":122.5},"billing_shape":"per_result"},"summary":"Continue Prospect Search","description":"Continue fetching additional results from an existing prospect list. Credits reserved based on max_profiles × enrichment level cost. Credits: variable per contact, charged by which fields you request (none, partial, phone, full). Reserved up-front, settled to actual (see X-ColdIQ-Credits-Charged). Call get_endpoint_details for the live rate.","tags":["Wiza"],"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ContinueProspectSearchRequest"}}}},"responses":{"200":{"description":"Search continued","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListResponse"}}}},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/wiza/company-enrichments":{"post":{"x-credits-cost":{"amount":35,"unit":"call","billing_shape":"per_call"},"summary":"Company Enrichment","description":"Enrich company data by name, domain, or LinkedIn identifier. Rate limit: 30 requests/minute. Credits: flat charge per call regardless of how many rows come back. Call get_endpoint_details for the live rate. Managed alternative: `POST /v1/company/enrich` (Enrich Company) runs this provider inside a ranked waterfall with charge-on-success billing and one normalized response shape, and falls back to the other providers for this capability on a miss. Call this endpoint directly when you specifically want this provider and no fallback.","tags":["Wiza"],"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CompanyEnrichmentRequest"}}}},"responses":{"200":{"description":"Company data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CompanyEnrichmentResponse"}}}},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/wiza/meta/credits":{"get":{"x-credits-cost":{"amount":0,"unit":"call","billing_shape":"per_call"},"summary":"Get Credits","description":"Retrieve your Wiza account credit balance. No credits charged. Credits: free.","tags":["Wiza"],"security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Credit balance","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WizaGetCreditsResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/openmart/search":{"post":{"summary":"Search","description":"Search endpoint to retrieve leads data. Credits: bills only for returned results, per result; reserved up-front for the requested size and settled to the actual count (see X-ColdIQ-Credits-Charged). Call get_endpoint_details for the live rate. Managed alternative: `POST /v1/places/search` (Search Places) runs this provider inside a ranked waterfall with charge-on-success billing and one normalized response shape, and falls back to the other providers for this capability on a miss. Call this endpoint directly when you specifically want this provider and no fallback.","x-credits-cost":{"amount":3.13,"unit":"result","billing_shape":"per_result"},"tags":["Openmart"],"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"query":{"type":"string","nullable":true,"minLength":1,"maxLength":500,"description":"Search terms to find relevant business leads"},"tags":{"type":"array","items":{"type":"string"},"maxItems":100,"description":"Filter precisely by tags. If non-empty, query is ignored."},"location":{"anyOf":[{"type":"object","properties":{"city":{"type":"string","nullable":true},"state":{"type":"string","nullable":true},"country":{"type":"string","nullable":true,"enum":["US","CA","AU","PR","NZ",null]},"zip_code":{"type":"string","nullable":true},"long":{"type":"number","nullable":true},"lat":{"type":"number","nullable":true},"geo_radius":{"type":"integer","minimum":0,"exclusiveMinimum":true},"normalize_fields":{"type":"array","items":{"type":"string","enum":["city","state","country"]}}}},{"type":"array","items":{"type":"object","properties":{"city":{"type":"string","nullable":true},"state":{"type":"string","nullable":true},"country":{"type":"string","nullable":true,"enum":["US","CA","AU","PR","NZ",null]},"zip_code":{"type":"string","nullable":true},"long":{"type":"number","nullable":true},"lat":{"type":"number","nullable":true},"geo_radius":{"type":"integer","minimum":0,"exclusiveMinimum":true},"normalize_fields":{"type":"array","items":{"type":"string","enum":["city","state","country"]}}}}},{"nullable":true}]},"min_locations":{"type":"integer","nullable":true,"minimum":0},"max_locations":{"type":"integer","nullable":true,"minimum":0},"has_contact_info":{"type":"boolean","nullable":true},"min_total_reviews":{"type":"integer","nullable":true,"minimum":0},"max_total_reviews":{"type":"integer","nullable":true,"minimum":0},"ownership_type":{"type":"string","nullable":true,"enum":["INDEPENDENT","FAMILY","FRANCHISE","CHAIN",null]},"min_price_tier":{"type":"integer","nullable":true},"max_price_tier":{"type":"integer","nullable":true},"min_overall_rating":{"type":"number","nullable":true,"minimum":0,"maximum":5},"max_overall_rating":{"type":"number","nullable":true,"minimum":0,"maximum":5},"limit":{"type":"integer","minimum":1,"maximum":500,"description":"Maximum number of records to return"},"cursor":{"type":"array","nullable":true,"items":{"anyOf":[{"type":"number"},{"type":"string"}]},"minItems":2,"maxItems":2,"description":"Pagination cursor: [match_score, id]"},"has_website":{"type":"boolean","nullable":true},"estimate_total":{"type":"boolean","description":"If true, response includes total_count estimate (up to 150k)"},"exclude_root_domains":{"type":"array","items":{"type":"string"},"maxItems":10000},"exclude_keywords":{"type":"array","items":{"type":"string"},"maxItems":64},"include_keywords":{"type":"array","items":{"type":"string"},"maxItems":64},"has_valid_website":{"type":"boolean","nullable":true},"open_date_before":{"type":"string","nullable":true,"format":"date-time"},"open_date_after":{"type":"string","nullable":true,"format":"date-time"},"store_name":{"type":"string","nullable":true},"info_updated_before":{"type":"string","nullable":true,"format":"date-time"},"info_updated_after":{"type":"string","nullable":true,"format":"date-time"}},"title":"SearchRequest","example":{"query":"B2B SaaS","location":{"city":"San Francisco","state":"CA","country":"US"},"limit":10,"has_website":true}}}}},"responses":{"200":{"description":"Search results","content":{"application/json":{"schema":{"nullable":true}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/openmart/search/only_ids":{"post":{"summary":"Search Ids","description":"Search endpoint to retrieve leads data, return only ids. Free — returns IDs only, no credit charge. Credits: free.","x-credits-cost":{"amount":0,"unit":"call","billing_shape":"per_call"},"tags":["Openmart"],"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"query":{"type":"string","nullable":true,"minLength":1,"maxLength":500,"description":"Search terms to find relevant business leads"},"tags":{"type":"array","items":{"type":"string"},"maxItems":100,"description":"Filter precisely by tags. If non-empty, query is ignored."},"location":{"anyOf":[{"type":"object","properties":{"city":{"type":"string","nullable":true},"state":{"type":"string","nullable":true},"country":{"type":"string","nullable":true,"enum":["US","CA","AU","PR","NZ",null]},"zip_code":{"type":"string","nullable":true},"long":{"type":"number","nullable":true},"lat":{"type":"number","nullable":true},"geo_radius":{"type":"integer","minimum":0,"exclusiveMinimum":true},"normalize_fields":{"type":"array","items":{"type":"string","enum":["city","state","country"]}}}},{"type":"array","items":{"type":"object","properties":{"city":{"type":"string","nullable":true},"state":{"type":"string","nullable":true},"country":{"type":"string","nullable":true,"enum":["US","CA","AU","PR","NZ",null]},"zip_code":{"type":"string","nullable":true},"long":{"type":"number","nullable":true},"lat":{"type":"number","nullable":true},"geo_radius":{"type":"integer","minimum":0,"exclusiveMinimum":true},"normalize_fields":{"type":"array","items":{"type":"string","enum":["city","state","country"]}}}}},{"nullable":true}]},"min_locations":{"type":"integer","nullable":true,"minimum":0},"max_locations":{"type":"integer","nullable":true,"minimum":0},"has_contact_info":{"type":"boolean","nullable":true},"min_total_reviews":{"type":"integer","nullable":true,"minimum":0},"max_total_reviews":{"type":"integer","nullable":true,"minimum":0},"ownership_type":{"type":"string","nullable":true,"enum":["INDEPENDENT","FAMILY","FRANCHISE","CHAIN",null]},"min_price_tier":{"type":"integer","nullable":true},"max_price_tier":{"type":"integer","nullable":true},"min_overall_rating":{"type":"number","nullable":true,"minimum":0,"maximum":5},"max_overall_rating":{"type":"number","nullable":true,"minimum":0,"maximum":5},"limit":{"type":"integer","minimum":1,"maximum":1000},"cursor":{"type":"array","nullable":true,"items":{"anyOf":[{"type":"number"},{"type":"string"}]},"minItems":2,"maxItems":2,"description":"Pagination cursor: [match_score, id]"},"has_website":{"type":"boolean","nullable":true},"estimate_total":{"type":"boolean","description":"If true, response includes total_count estimate (up to 150k)"},"exclude_root_domains":{"type":"array","items":{"type":"string"},"maxItems":10000},"exclude_keywords":{"type":"array","items":{"type":"string"},"maxItems":64},"include_keywords":{"type":"array","items":{"type":"string"},"maxItems":64},"has_valid_website":{"type":"boolean","nullable":true},"open_date_before":{"type":"string","nullable":true,"format":"date-time"},"open_date_after":{"type":"string","nullable":true,"format":"date-time"},"store_name":{"type":"string","nullable":true},"info_updated_before":{"type":"string","nullable":true,"format":"date-time"},"info_updated_after":{"type":"string","nullable":true,"format":"date-time"}},"title":"SearchIdsRequest","example":{"query":"B2B SaaS","location":{"city":"San Francisco","state":"CA","country":"US"},"limit":20}}}}},"responses":{"200":{"description":"Search ID results","content":{"application/json":{"schema":{"nullable":true}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/openmart/business_records/list/{id_type}":{"post":{"summary":"List By Ids","description":"endpoint to retrieve leads data, by openmart_id or google_place_id (up to 100 IDs). Credits: bills only for returned results, per result; reserved up-front for the requested size and settled to the actual count (see X-ColdIQ-Credits-Charged). Call get_endpoint_details for the live rate.","x-credits-cost":{"amount":3.13,"unit":"result","billing_shape":"per_result"},"tags":["Openmart"],"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","enum":["google_place_id","openmart_id"],"description":"Type of IDs provided"},"required":true,"description":"Type of IDs provided","name":"id_type","in":"path"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"array","items":{"type":"string"},"minItems":1,"maxItems":100,"title":"BusinessRecordsRequest","description":"List of IDs (google_place_id or openmart_id) to fetch, up to 100","example":["ChIJN1t_tDeuEmsRUsoyG83frY4"]}}}},"responses":{"200":{"description":"Map of ID → business record","content":{"application/json":{"schema":{"nullable":true}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/openmart/enrich_company":{"post":{"summary":"Enrich Company","description":"Enrich company information by retrieving additional retailer details. Credits: bills only for returned results, per result; reserved up-front for the requested size and settled to the actual count (see X-ColdIQ-Credits-Charged). Call get_endpoint_details for the live rate. Managed alternative: `POST /v1/company/enrich` (Enrich Company) runs this provider inside a ranked waterfall with charge-on-success billing and one normalized response shape, and falls back to the other providers for this capability on a miss. Call this endpoint directly when you specifically want this provider and no fallback.","x-credits-cost":{"amount":3.13,"unit":"result","billing_shape":"per_result"},"tags":["Openmart"],"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"website":{"type":"string","nullable":true,"description":"Website URL of the company to enrich"},"social_media_link":{"type":"string","nullable":true,"description":"Social media link — include domain to designate platform, e.g. facebook.com/xxx"},"limit":{"type":"integer","minimum":1,"maximum":50,"description":"Maximum number of results to return"},"estimate_total":{"type":"boolean"},"location":{"type":"array","nullable":true,"items":{"type":"object","properties":{"city":{"type":"string","nullable":true},"state":{"type":"string","nullable":true},"country":{"type":"string","nullable":true,"enum":["US","CA","AU","PR","NZ",null]},"zip_code":{"type":"string","nullable":true},"long":{"type":"number","nullable":true},"lat":{"type":"number","nullable":true},"geo_radius":{"type":"integer","minimum":0,"exclusiveMinimum":true},"normalize_fields":{"type":"array","items":{"type":"string","enum":["city","state","country"]}}}}}},"title":"EnrichCompanyRequest","example":{"website":"coldiq.com","limit":10}}}}},"responses":{"200":{"description":"Enriched company data","content":{"application/json":{"schema":{"nullable":true}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/openmart/task/batch/find_people":{"post":{"summary":"Submit Batch (Find People)","description":"Submit a batch of find_people tasks (1–100 items). Credits are reserved upfront (worst-case: max_k × [10/phone + 1/email + 1/name]) and settled automatically when each task completes via webhook. Results are also available via GET /openmart/task/{task_id}. Credits: charged once per call, at a rate that depends on which fields you request (per_phone, per_email, per_name) — it is NOT flat. Reserved up-front, settled to actual (see X-ColdIQ-Credits-Charged). Call get_endpoint_details for the live rate.","x-credits-cost":{"unit":"task","rates":{"per_phone":31.29,"per_email":3.13,"per_name":3.13},"billing_shape":"per_call_variable"},"tags":["Openmart"],"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"array","items":{"type":"object","properties":{"notify_url":{"type":"string","nullable":true,"description":"Callback URL for task completion. Openmart will POST the task result here. Credits are settled automatically when the result arrives."},"tracking_id":{"type":"string","nullable":true,"description":"Custom ID echoed in the task response for your own tracking purposes."},"domain":{"type":"string","minLength":1,"description":"Domain of the company to find people for"},"company_name":{"type":"string","nullable":true},"title":{"type":"string","description":"Job title to search for"},"city":{"type":"string","nullable":true},"state":{"type":"string","nullable":true},"country":{"type":"string","nullable":true},"info_access":{"type":"array","items":{"type":"string","enum":["EMAIL","PHONE"]},"description":"Which contact data to return. Costs: 10 credits/phone, 1 credit/email, 1 credit/name"},"max_k":{"type":"integer","minimum":1,"maximum":8,"description":"Max number of people to return (1–8)"}},"required":["domain"],"title":"FindPeopleParams","example":{"domain":"coldiq.com","title":"CEO","max_k":3,"info_access":["EMAIL","PHONE"]}},"minItems":1,"maxItems":100}}}},"responses":{"200":{"description":"Batch accepted","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BatchSubmitResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/openmart/task/batch/find_tech":{"post":{"summary":"Submit Batch (Find Tech)","description":"Submit a batch of find_tech tasks (1–100 items). Credits: flat charge per call regardless of how many rows come back. Call get_endpoint_details for the live rate.","x-credits-cost":{"amount":6.26,"unit":"task","billing_shape":"per_call"},"tags":["Openmart"],"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"array","items":{"type":"object","properties":{"notify_url":{"type":"string","nullable":true,"description":"Callback URL for task completion. Openmart will POST the task result here. Credits are settled automatically when the result arrives."},"tracking_id":{"type":"string","nullable":true,"description":"Custom ID echoed in the task response for your own tracking purposes."},"domain":{"type":"string","minLength":1,"description":"Domain of the company to find technologies for"},"company_name":{"type":"string","nullable":true},"candidates":{"type":"string","nullable":true,"description":"Candidate technologies, e.g. \"Shopify, WooCommerce, Squarespace\""},"city":{"type":"string","nullable":true},"state":{"type":"string","nullable":true},"country":{"type":"string","nullable":true},"find_link_instructions":{"type":"string","nullable":true,"description":"Instructions for finding the technology link, e.g. \"Look at the contact us page\""},"tech_type":{"type":"string","minLength":1,"description":"Technology category to identify, e.g. \"Website Builder\", \"Payment Gateway\""}},"required":["domain","tech_type"],"title":"FindTechParams","example":{"domain":"coldiq.com","tech_type":"Website Builder","candidates":"Shopify, Squarespace, Wix"}},"minItems":1,"maxItems":100}}}},"responses":{"200":{"description":"Batch accepted","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BatchSubmitResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/openmart/task/batch/lookup_people":{"post":{"summary":"Submit Batch (Lookup People)","description":"Submit a batch of lookup_people tasks (1–100 items). Credits are reserved upfront (worst-case: people.length × [10/phone + 1/email + 1/name]) and settled when each task completes via webhook. Credits: variable per person, charged by which fields you request (per_phone, per_email, per_name). Reserved up-front, settled to actual (see X-ColdIQ-Credits-Charged). Call get_endpoint_details for the live rate.","x-credits-cost":{"unit":"person","rates":{"per_phone":31.29,"per_email":3.13,"per_name":3.13},"billing_shape":"per_result"},"tags":["Openmart"],"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"array","items":{"type":"object","properties":{"notify_url":{"type":"string","nullable":true,"description":"Callback URL for task completion. Openmart will POST the task result here. Credits are settled automatically when the result arrives."},"tracking_id":{"type":"string","nullable":true,"description":"Custom ID echoed in the task response for your own tracking purposes."},"domain":{"type":"string","minLength":1,"description":"Domain of the company"},"company_name":{"type":"string","nullable":true},"city":{"type":"string","nullable":true},"state":{"type":"string","nullable":true},"country":{"type":"string","nullable":true},"info_access":{"type":"array","items":{"type":"string","enum":["EMAIL","PHONE"]},"description":"Which contact data to return"},"people":{"type":"array","items":{"type":"object","properties":{"first_name":{"type":"string"},"last_name":{"type":"string"},"linkedin_url":{"type":"string","nullable":true}},"required":["first_name","last_name"]},"minItems":1,"maxItems":8,"description":"List of specific people to look up (1–8)"}},"required":["domain","people"],"title":"LookupPeopleParams","example":{"domain":"coldiq.com","people":[{"first_name":"Michel","last_name":"Lieben","linkedin_url":"https://www.linkedin.com/michel-lieben"}],"info_access":["EMAIL","PHONE"]}},"minItems":1,"maxItems":100}}}},"responses":{"200":{"description":"Batch accepted","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BatchSubmitResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/openmart/task/batch/lookup_business_email":{"post":{"summary":"Submit Batch (Lookup Business Email)","description":"Submit a batch of lookup_business_email tasks (1–100 items). Credits: flat charge per call regardless of how many rows come back. Call get_endpoint_details for the live rate.","x-credits-cost":{"amount":3.13,"unit":"task","billing_shape":"per_call"},"tags":["Openmart"],"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"array","items":{"type":"object","properties":{"notify_url":{"type":"string","nullable":true,"description":"Callback URL for task completion. Openmart will POST the task result here. Credits are settled automatically when the result arrives."},"tracking_id":{"type":"string","nullable":true,"description":"Custom ID echoed in the task response for your own tracking purposes."},"domain":{"type":"string","minLength":1,"description":"Domain of the company"},"company_name":{"type":"string","minLength":1,"description":"Name of the company (required by upstream)"},"city":{"type":"string","nullable":true},"state":{"type":"string","nullable":true},"country":{"type":"string","nullable":true}},"required":["domain","company_name"],"title":"LookupBusinessEmailParams","example":{"domain":"coldiq.com","company_name":"ColdIQ"}},"minItems":1,"maxItems":100}}}},"responses":{"200":{"description":"Batch accepted","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BatchSubmitResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/openmart/task/{task_id}":{"get":{"summary":"Get Task","description":"Retrieve the result of an async task by its task_id. Free — no credit charge. Use this to poll for task completion if you did not provide a notify_url. Credits: free.","x-credits-cost":{"amount":0,"unit":"call","billing_shape":"per_call"},"tags":["Openmart"],"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","format":"uuid"},"required":true,"name":"task_id","in":"path"}],"responses":{"200":{"description":"Task result","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TaskResultResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/openmart/task/batch/{batch_id}/status":{"get":{"summary":"Check Batch","description":"Check the status of a submitted batch. Free — no credit charge. Credits: free.","x-credits-cost":{"amount":0,"unit":"call","billing_shape":"per_call"},"tags":["Openmart"],"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","format":"uuid"},"required":true,"name":"batch_id","in":"path"}],"responses":{"200":{"description":"Batch status","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BatchStatusResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/openmart/task/batch/{batch_id}/task_ids":{"get":{"summary":"Get Task Ids","description":"Get task IDs for a batch filtered by status. Free — no credit charge. Credits: free.","x-credits-cost":{"amount":0,"unit":"call","billing_shape":"per_call"},"tags":["Openmart"],"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","format":"uuid"},"required":true,"name":"batch_id","in":"path"},{"schema":{"type":"string","enum":["PROCESSING","COMPLETED","ERRORED"],"description":"Filter task IDs by this status"},"required":true,"description":"Filter task IDs by this status","name":"status","in":"query"}],"responses":{"200":{"description":"List of task IDs with the requested status","content":{"application/json":{"schema":{"type":"array","items":{"type":"string"}}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/instantly/accounts":{"post":{"summary":"Create Account","tags":["Instantly"],"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"email":{"type":"string","format":"email","description":"Email address for the account."},"first_name":{"type":"string","description":"First name."},"last_name":{"type":"string","description":"Last name."},"provider_code":{"type":"integer","description":"Provider: 1=Custom IMAP/SMTP, 2=Google, 3=Microsoft, 4=AWS, 8=AirMail."},"imap_username":{"type":"string","description":"IMAP username."},"imap_password":{"type":"string","description":"IMAP password."},"imap_host":{"type":"string","description":"IMAP host."},"imap_port":{"type":"integer","description":"IMAP port."},"smtp_username":{"type":"string","description":"SMTP username."},"smtp_password":{"type":"string","description":"SMTP password."},"smtp_host":{"type":"string","description":"SMTP host."},"smtp_port":{"type":"integer","description":"SMTP port."},"daily_limit":{"type":"integer"},"tracking_domain_name":{"type":"string"},"enable_slow_ramp":{"type":"boolean"},"sending_gap":{"type":"integer","minimum":0,"maximum":1440,"description":"Gap between sends in minutes (0–1440)."},"warmup":{"type":"object","properties":{"limit":{"type":"integer"},"increment":{"type":"integer"},"reply_rate":{"type":"integer"}}},"api_key":{"type":"string","description":"Your Instantly API key. Optional if you have connected your Instantly account in the dashboard."}},"required":["email","first_name","last_name","provider_code","imap_username","imap_password","imap_host","imap_port","smtp_username","smtp_password","smtp_host","smtp_port"],"title":"CreateAccountRequest","example":{"email":"michel@coldiq.com","first_name":"Michel","last_name":"Lieben","provider_code":1,"imap_username":"michel@coldiq.com","imap_password":"app-password","imap_host":"imap.gmail.com","imap_port":993,"smtp_username":"michel@coldiq.com","smtp_password":"app-password","smtp_host":"smtp.gmail.com","smtp_port":587}}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InstantlyResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-credits-cost":{"unit":"call","amount":0,"billing_shape":"per_call"},"description":"Credits: free.","x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}},"get":{"summary":"List Accounts","tags":["Instantly"],"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"integer","minimum":1,"maximum":100,"description":"Number of records to return (1–100)."},"required":false,"description":"Number of records to return (1–100).","name":"limit","in":"query"},{"schema":{"type":"string","description":"Pagination cursor."},"required":false,"description":"Pagination cursor.","name":"starting_after","in":"query"},{"schema":{"type":"string"},"required":false,"name":"search","in":"query"},{"schema":{"type":"integer","nullable":true,"description":"Account status filter."},"required":false,"description":"Account status filter.","name":"status","in":"query"},{"schema":{"type":"integer","nullable":true},"required":false,"name":"provider_code","in":"query"},{"schema":{"type":"string","description":"Comma-separated tag UUIDs."},"required":false,"description":"Comma-separated tag UUIDs.","name":"tag_ids","in":"query"},{"schema":{"type":"string","description":"Your Instantly API key. Optional if you have connected your Instantly account in the dashboard."},"required":false,"description":"Your Instantly API key. Optional if you have connected your Instantly account in the dashboard.","name":"api_key","in":"query"}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InstantlyResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-credits-cost":{"unit":"call","amount":0,"billing_shape":"per_call"},"description":"Credits: free.","x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/instantly/accounts/warmup/enable":{"post":{"summary":"Enable Warmup","tags":["Instantly"],"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"emails":{"type":"array","items":{"type":"string","format":"email"}},"include_all_emails":{"type":"boolean"},"excluded_emails":{"type":"array","items":{"type":"string","format":"email"}},"api_key":{"type":"string","description":"Your Instantly API key. Optional if you have connected your Instantly account in the dashboard."}},"title":"WarmupBulkRequest","example":{"emails":["michel@coldiq.com"]}}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InstantlyResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-credits-cost":{"unit":"call","amount":0,"billing_shape":"per_call"},"description":"Credits: free.","x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/instantly/accounts/warmup/disable":{"post":{"summary":"Disable Warmup","tags":["Instantly"],"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"emails":{"type":"array","items":{"type":"string","format":"email"}},"include_all_emails":{"type":"boolean"},"excluded_emails":{"type":"array","items":{"type":"string","format":"email"}},"api_key":{"type":"string","description":"Your Instantly API key. Optional if you have connected your Instantly account in the dashboard."}},"title":"WarmupBulkRequest","example":{"emails":["michel@coldiq.com"]}}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InstantlyResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-credits-cost":{"unit":"call","amount":0,"billing_shape":"per_call"},"description":"Credits: free.","x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/instantly/accounts/ctd/status":{"get":{"summary":"Get Custom Tracking Domain Status","tags":["Instantly"],"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","description":"Custom tracking domain hostname to check."},"required":true,"description":"Custom tracking domain hostname to check.","name":"host","in":"query"},{"schema":{"type":"string","description":"Your Instantly API key. Optional if you have connected your Instantly account in the dashboard."},"required":false,"description":"Your Instantly API key. Optional if you have connected your Instantly account in the dashboard.","name":"api_key","in":"query"}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InstantlyResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-credits-cost":{"unit":"call","amount":0,"billing_shape":"per_call"},"description":"Credits: free.","x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/instantly/accounts/move":{"post":{"summary":"Move Account","tags":["Instantly"],"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"emails":{"type":"array","items":{"type":"string","format":"email"},"minItems":1,"description":"Email addresses to move."},"source_workspace_id":{"type":"string","description":"Source workspace ID."},"destination_workspace_id":{"type":"string","description":"Destination workspace ID."},"api_key":{"type":"string","description":"Your Instantly API key. Optional if you have connected your Instantly account in the dashboard."}},"required":["emails","source_workspace_id","destination_workspace_id"],"title":"MoveAccountsRequest","example":{"emails":["michel@coldiq.com"],"source_workspace_id":"00000000-0000-0000-0000-000000000001","destination_workspace_id":"00000000-0000-0000-0000-000000000002"}}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InstantlyResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-credits-cost":{"unit":"call","amount":0,"billing_shape":"per_call"},"description":"Credits: free.","x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/instantly/accounts/warmup-analytics":{"post":{"summary":"Get Warmup Analytics","tags":["Instantly"],"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"emails":{"type":"array","items":{"type":"string","format":"email"},"minItems":1,"maxItems":100,"description":"Email addresses to retrieve warmup analytics for (1–100)."},"api_key":{"type":"string","description":"Your Instantly API key. Optional if you have connected your Instantly account in the dashboard."}},"required":["emails"],"title":"GetWarmupAnalyticsRequest","example":{"emails":["michel@coldiq.com"]}}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InstantlyResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-credits-cost":{"unit":"call","amount":0,"billing_shape":"per_call"},"description":"Credits: free.","x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/instantly/accounts/analytics/daily":{"get":{"summary":"Get Daily Account Analytics","tags":["Instantly"],"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","description":"Start date (YYYY-MM-DD)."},"required":false,"description":"Start date (YYYY-MM-DD).","name":"start_date","in":"query"},{"schema":{"type":"string","description":"End date (YYYY-MM-DD)."},"required":false,"description":"End date (YYYY-MM-DD).","name":"end_date","in":"query"},{"schema":{"type":"array","items":{"type":"string"},"description":"Filter by specific email accounts."},"required":false,"description":"Filter by specific email accounts.","name":"emails","in":"query"},{"schema":{"type":"string","description":"Your Instantly API key. Optional if you have connected your Instantly account in the dashboard."},"required":false,"description":"Your Instantly API key. Optional if you have connected your Instantly account in the dashboard.","name":"api_key","in":"query"}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InstantlyResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-credits-cost":{"unit":"call","amount":0,"billing_shape":"per_call"},"description":"Credits: free.","x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/instantly/accounts/test/vitals":{"post":{"summary":"Test Account Vitals","tags":["Instantly"],"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"accounts":{"type":"array","items":{"type":"string"},"description":"Email addresses to test. Omit to test all accounts."},"api_key":{"type":"string","description":"Your Instantly API key. Optional if you have connected your Instantly account in the dashboard."}},"title":"TestAccountVitalsRequest","example":{"accounts":["michel@coldiq.com"]}}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InstantlyResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-credits-cost":{"unit":"call","amount":0,"billing_shape":"per_call"},"description":"Credits: free.","x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/instantly/accounts/{email}":{"get":{"summary":"Get Account","tags":["Instantly"],"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","description":"Email address of the account."},"required":true,"description":"Email address of the account.","name":"email","in":"path"},{"schema":{"type":"string","description":"Your Instantly API key. Optional if you have connected your Instantly account in the dashboard."},"required":false,"description":"Your Instantly API key. Optional if you have connected your Instantly account in the dashboard.","name":"api_key","in":"query"}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InstantlyResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-credits-cost":{"unit":"call","amount":0,"billing_shape":"per_call"},"description":"Credits: free.","x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}},"patch":{"summary":"Patch Account","tags":["Instantly"],"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","description":"Email address of the account."},"required":true,"description":"Email address of the account.","name":"email","in":"path"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"first_name":{"type":"string"},"last_name":{"type":"string"},"daily_limit":{"type":"integer"},"sending_gap":{"type":"integer","minimum":0,"maximum":1440},"signature":{"type":"string"},"tracking_domain_name":{"type":"string"},"enable_slow_ramp":{"type":"boolean"},"warmup":{"type":"object","properties":{"limit":{"type":"integer"},"increment":{"type":"integer"},"reply_rate":{"type":"integer"}}},"api_key":{"type":"string","description":"Your Instantly API key. Optional if you have connected your Instantly account in the dashboard."}},"title":"PatchAccountRequest","example":{"daily_limit":50,"enable_slow_ramp":true}}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InstantlyResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-credits-cost":{"unit":"call","amount":0,"billing_shape":"per_call"},"description":"Credits: free.","x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}},"delete":{"summary":"Delete Account","tags":["Instantly"],"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","description":"Email address of the account."},"required":true,"description":"Email address of the account.","name":"email","in":"path"},{"schema":{"type":"string","description":"Your Instantly API key. Optional if you have connected your Instantly account in the dashboard."},"required":false,"description":"Your Instantly API key. Optional if you have connected your Instantly account in the dashboard.","name":"api_key","in":"query"}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InstantlyResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-credits-cost":{"unit":"call","amount":0,"billing_shape":"per_call"},"description":"Credits: free.","x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/instantly/accounts/{email}/pause":{"post":{"summary":"Pause Account","tags":["Instantly"],"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","description":"Email address of the account."},"required":true,"description":"Email address of the account.","name":"email","in":"path"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"api_key":{"type":"string","description":"Your Instantly API key. Optional if you have connected your Instantly account in the dashboard."}},"title":"PauseAccountRequest","example":{}}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InstantlyResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-credits-cost":{"unit":"call","amount":0,"billing_shape":"per_call"},"description":"Credits: free.","x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/instantly/accounts/{email}/resume":{"post":{"summary":"Resume Account","tags":["Instantly"],"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","description":"Email address of the account."},"required":true,"description":"Email address of the account.","name":"email","in":"path"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"api_key":{"type":"string","description":"Your Instantly API key. Optional if you have connected your Instantly account in the dashboard."}},"title":"ResumeAccountRequest","example":{}}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InstantlyResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-credits-cost":{"unit":"call","amount":0,"billing_shape":"per_call"},"description":"Credits: free.","x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/instantly/accounts/{email}/mark-fixed":{"post":{"summary":"Mark Account Fixed","tags":["Instantly"],"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","description":"Email address of the account."},"required":true,"description":"Email address of the account.","name":"email","in":"path"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"api_key":{"type":"string","description":"Your Instantly API key. Optional if you have connected your Instantly account in the dashboard."}},"title":"MarkAccountFixedRequest","example":{}}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InstantlyResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-credits-cost":{"unit":"call","amount":0,"billing_shape":"per_call"},"description":"Credits: free.","x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/instantly/account-campaign-mappings/{email}":{"get":{"summary":"Get Account Campaign Mappings","tags":["Instantly"],"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","description":"Email address of the account."},"required":true,"description":"Email address of the account.","name":"email","in":"path"},{"schema":{"type":"integer","minimum":1,"maximum":100,"description":"Number of records to return (1–100)."},"required":false,"description":"Number of records to return (1–100).","name":"limit","in":"query"},{"schema":{"type":"string","description":"Pagination cursor."},"required":false,"description":"Pagination cursor.","name":"starting_after","in":"query"},{"schema":{"type":"string","description":"Your Instantly API key. Optional if you have connected your Instantly account in the dashboard."},"required":false,"description":"Your Instantly API key. Optional if you have connected your Instantly account in the dashboard.","name":"api_key","in":"query"}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InstantlyResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-credits-cost":{"unit":"call","amount":0,"billing_shape":"per_call"},"description":"Credits: free.","x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/instantly/campaigns":{"post":{"summary":"Create Campaign","tags":["Instantly"],"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","description":"Campaign name."},"campaign_schedule":{"type":"object","properties":{"schedules":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"timing":{"type":"object","properties":{"from":{"type":"string"},"to":{"type":"string"}},"required":["from","to"]},"days":{"type":"object","additionalProperties":{"type":"boolean"}},"timezone":{"type":"string"}},"required":["name","timing","timezone"]}}},"required":["schedules"],"description":"Sending schedule."},"email_list":{"type":"array","items":{"type":"string","format":"email"},"description":"Sending email accounts."},"email_tag_list":{"type":"array","items":{"type":"string"}},"daily_limit":{"type":"integer"},"daily_max_leads":{"type":"integer"},"stop_on_reply":{"type":"boolean"},"stop_on_auto_reply":{"type":"boolean"},"stop_for_company":{"type":"boolean"},"link_tracking":{"type":"boolean"},"open_tracking":{"type":"boolean"},"text_only":{"type":"boolean"},"sequences":{"type":"array","items":{"nullable":true},"description":"Email sequence steps."},"api_key":{"type":"string","description":"Your Instantly API key. Optional if you have connected your Instantly account in the dashboard."}},"required":["name","campaign_schedule"],"title":"CreateCampaignRequest","example":{"name":"ColdIQ Outreach Q2","campaign_schedule":{"schedules":[{"name":"Weekdays","timing":{"from":"09:00","to":"17:00"},"days":{"1":true,"2":true,"3":true,"4":true,"5":true},"timezone":"America/Chicago"}]},"email_list":["michel@coldiq.com"],"stop_on_reply":true,"open_tracking":true}}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InstantlyResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-credits-cost":{"unit":"call","amount":0,"billing_shape":"per_call"},"description":"Credits: free.","x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}},"get":{"summary":"List Campaigns","tags":["Instantly"],"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"integer","minimum":1,"maximum":100,"description":"Number of records to return (1–100)."},"required":false,"description":"Number of records to return (1–100).","name":"limit","in":"query"},{"schema":{"type":"string","description":"Pagination cursor."},"required":false,"description":"Pagination cursor.","name":"starting_after","in":"query"},{"schema":{"type":"string"},"required":false,"name":"search","in":"query"},{"schema":{"type":"string","description":"Comma-separated tag UUIDs."},"required":false,"description":"Comma-separated tag UUIDs.","name":"tag_ids","in":"query"},{"schema":{"type":"integer","nullable":true},"required":false,"name":"status","in":"query"},{"schema":{"type":"string","description":"Your Instantly API key. Optional if you have connected your Instantly account in the dashboard."},"required":false,"description":"Your Instantly API key. Optional if you have connected your Instantly account in the dashboard.","name":"api_key","in":"query"}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InstantlyResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-credits-cost":{"unit":"call","amount":0,"billing_shape":"per_call"},"description":"Credits: free.","x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/instantly/campaigns/count-launched":{"get":{"summary":"Get Launched Campaign Count","tags":["Instantly"],"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","description":"Your Instantly API key. Optional if you have connected your Instantly account in the dashboard."},"required":false,"description":"Your Instantly API key. Optional if you have connected your Instantly account in the dashboard.","name":"api_key","in":"query"}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InstantlyResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-credits-cost":{"unit":"call","amount":0,"billing_shape":"per_call"},"description":"Credits: free.","x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/instantly/campaigns/search-by-contact":{"get":{"summary":"Search Campaigns by Contact","tags":["Instantly"],"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","description":"Lead email address to search by."},"required":false,"description":"Lead email address to search by.","name":"search","in":"query"},{"schema":{"type":"string"},"required":false,"name":"sort_column","in":"query"},{"schema":{"type":"string"},"required":false,"name":"sort_order","in":"query"},{"schema":{"type":"string","description":"Your Instantly API key. Optional if you have connected your Instantly account in the dashboard."},"required":false,"description":"Your Instantly API key. Optional if you have connected your Instantly account in the dashboard.","name":"api_key","in":"query"}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InstantlyResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-credits-cost":{"unit":"call","amount":0,"billing_shape":"per_call"},"description":"Credits: free.","x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/instantly/campaigns/analytics":{"get":{"summary":"Get Campaign Analytics","tags":["Instantly"],"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","description":"Single campaign UUID."},"required":false,"description":"Single campaign UUID.","name":"id","in":"query"},{"schema":{"type":"string","description":"Start date (YYYY-MM-DD)."},"required":false,"description":"Start date (YYYY-MM-DD).","name":"start_date","in":"query"},{"schema":{"type":"string","description":"End date (YYYY-MM-DD)."},"required":false,"description":"End date (YYYY-MM-DD).","name":"end_date","in":"query"},{"schema":{"type":"boolean","nullable":true},"required":false,"name":"exclude_total_leads_count","in":"query"},{"schema":{"type":"string","description":"Your Instantly API key. Optional if you have connected your Instantly account in the dashboard."},"required":false,"description":"Your Instantly API key. Optional if you have connected your Instantly account in the dashboard.","name":"api_key","in":"query"}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InstantlyResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-credits-cost":{"unit":"call","amount":0,"billing_shape":"per_call"},"description":"Credits: free.","x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/instantly/campaigns/analytics/overview":{"get":{"summary":"Get Campaign Analytics Overview","tags":["Instantly"],"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string"},"required":false,"name":"id","in":"query"},{"schema":{"type":"string"},"required":false,"name":"start_date","in":"query"},{"schema":{"type":"string"},"required":false,"name":"end_date","in":"query"},{"schema":{"type":"integer","nullable":true},"required":false,"name":"campaign_status","in":"query"},{"schema":{"type":"string","description":"Your Instantly API key. Optional if you have connected your Instantly account in the dashboard."},"required":false,"description":"Your Instantly API key. Optional if you have connected your Instantly account in the dashboard.","name":"api_key","in":"query"}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InstantlyResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-credits-cost":{"unit":"call","amount":0,"billing_shape":"per_call"},"description":"Credits: free.","x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/instantly/campaigns/analytics/daily":{"get":{"summary":"Get Campaign Analytics Daily","tags":["Instantly"],"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string"},"required":false,"name":"campaign_id","in":"query"},{"schema":{"type":"string"},"required":false,"name":"start_date","in":"query"},{"schema":{"type":"string"},"required":false,"name":"end_date","in":"query"},{"schema":{"type":"integer","nullable":true},"required":false,"name":"campaign_status","in":"query"},{"schema":{"type":"string","description":"Your Instantly API key. Optional if you have connected your Instantly account in the dashboard."},"required":false,"description":"Your Instantly API key. Optional if you have connected your Instantly account in the dashboard.","name":"api_key","in":"query"}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InstantlyResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-credits-cost":{"unit":"call","amount":0,"billing_shape":"per_call"},"description":"Credits: free.","x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/instantly/campaigns/analytics/steps":{"get":{"summary":"Get Campaign Analytics Steps","tags":["Instantly"],"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string"},"required":false,"name":"campaign_id","in":"query"},{"schema":{"type":"string"},"required":false,"name":"start_date","in":"query"},{"schema":{"type":"string"},"required":false,"name":"end_date","in":"query"},{"schema":{"type":"boolean","nullable":true},"required":false,"name":"include_opportunities_count","in":"query"},{"schema":{"type":"string","description":"Your Instantly API key. Optional if you have connected your Instantly account in the dashboard."},"required":false,"description":"Your Instantly API key. Optional if you have connected your Instantly account in the dashboard.","name":"api_key","in":"query"}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InstantlyResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-credits-cost":{"unit":"call","amount":0,"billing_shape":"per_call"},"description":"Credits: free.","x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/instantly/campaigns/{id}":{"get":{"summary":"Get Campaign","tags":["Instantly"],"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","description":"Campaign UUID."},"required":true,"description":"Campaign UUID.","name":"id","in":"path"},{"schema":{"type":"string","description":"Your Instantly API key. Optional if you have connected your Instantly account in the dashboard."},"required":false,"description":"Your Instantly API key. Optional if you have connected your Instantly account in the dashboard.","name":"api_key","in":"query"}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InstantlyResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-credits-cost":{"unit":"call","amount":0,"billing_shape":"per_call"},"description":"Credits: free.","x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}},"patch":{"summary":"Patch Campaign","tags":["Instantly"],"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","description":"Campaign UUID."},"required":true,"description":"Campaign UUID.","name":"id","in":"path"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string"},"campaign_schedule":{"type":"object","properties":{"schedules":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"timing":{"type":"object","properties":{"from":{"type":"string"},"to":{"type":"string"}},"required":["from","to"]},"days":{"type":"object","additionalProperties":{"type":"boolean"}},"timezone":{"type":"string"}},"required":["name","timing","timezone"]}}},"required":["schedules"]},"email_list":{"type":"array","items":{"type":"string","format":"email"}},"daily_limit":{"type":"integer"},"daily_max_leads":{"type":"integer"},"stop_on_reply":{"type":"boolean"},"stop_on_auto_reply":{"type":"boolean"},"link_tracking":{"type":"boolean"},"open_tracking":{"type":"boolean"},"api_key":{"type":"string","description":"Your Instantly API key. Optional if you have connected your Instantly account in the dashboard."}},"title":"PatchCampaignRequest","example":{"name":"ColdIQ Outreach Q3","daily_limit":100}}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InstantlyResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-credits-cost":{"unit":"call","amount":0,"billing_shape":"per_call"},"description":"Credits: free.","x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}},"delete":{"summary":"Delete Campaign","tags":["Instantly"],"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","description":"Campaign UUID."},"required":true,"description":"Campaign UUID.","name":"id","in":"path"},{"schema":{"type":"string","description":"Your Instantly API key. Optional if you have connected your Instantly account in the dashboard."},"required":false,"description":"Your Instantly API key. Optional if you have connected your Instantly account in the dashboard.","name":"api_key","in":"query"}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InstantlyResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-credits-cost":{"unit":"call","amount":0,"billing_shape":"per_call"},"description":"Credits: free.","x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/instantly/campaigns/{id}/activate":{"post":{"summary":"Activate Campaign","tags":["Instantly"],"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","description":"Campaign UUID."},"required":true,"description":"Campaign UUID.","name":"id","in":"path"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"api_key":{"type":"string","description":"Your Instantly API key. Optional if you have connected your Instantly account in the dashboard."}},"title":"ActivateCampaignRequest","example":{}}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InstantlyResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-credits-cost":{"unit":"call","amount":0,"billing_shape":"per_call"},"description":"Credits: free.","x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/instantly/campaigns/{id}/pause":{"post":{"summary":"Pause Campaign","tags":["Instantly"],"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","description":"Campaign UUID."},"required":true,"description":"Campaign UUID.","name":"id","in":"path"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"api_key":{"type":"string","description":"Your Instantly API key. Optional if you have connected your Instantly account in the dashboard."}},"title":"PauseCampaignRequest","example":{}}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InstantlyResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-credits-cost":{"unit":"call","amount":0,"billing_shape":"per_call"},"description":"Credits: free.","x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/instantly/campaigns/{id}/share":{"post":{"summary":"Share Campaign","tags":["Instantly"],"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","description":"Campaign UUID."},"required":true,"description":"Campaign UUID.","name":"id","in":"path"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"api_key":{"type":"string","description":"Your Instantly API key. Optional if you have connected your Instantly account in the dashboard."}},"title":"ShareCampaignRequest","example":{}}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InstantlyResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-credits-cost":{"unit":"call","amount":0,"billing_shape":"per_call"},"description":"Credits: free.","x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/instantly/campaigns/{id}/export":{"post":{"summary":"Export Campaign","tags":["Instantly"],"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","description":"Campaign UUID."},"required":true,"description":"Campaign UUID.","name":"id","in":"path"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"api_key":{"type":"string","description":"Your Instantly API key. Optional if you have connected your Instantly account in the dashboard."}},"title":"ExportCampaignRequest","example":{}}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InstantlyResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-credits-cost":{"unit":"call","amount":0,"billing_shape":"per_call"},"description":"Credits: free.","x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/instantly/campaigns/{id}/duplicate":{"post":{"summary":"Duplicate Campaign","tags":["Instantly"],"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","description":"Campaign UUID."},"required":true,"description":"Campaign UUID.","name":"id","in":"path"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","description":"Name for the duplicated campaign."},"api_key":{"type":"string","description":"Your Instantly API key. Optional if you have connected your Instantly account in the dashboard."}},"title":"DuplicateCampaignRequest","example":{"name":"ColdIQ Outreach Q2 - Copy"}}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InstantlyResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-credits-cost":{"unit":"call","amount":0,"billing_shape":"per_call"},"description":"Credits: free.","x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/instantly/campaigns/{id}/variables":{"post":{"summary":"Add Campaign Variables","tags":["Instantly"],"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","description":"Campaign UUID."},"required":true,"description":"Campaign UUID.","name":"id","in":"path"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"variables":{"type":"array","items":{"type":"string"},"description":"Custom variable names to add to the campaign."},"api_key":{"type":"string","description":"Your Instantly API key. Optional if you have connected your Instantly account in the dashboard."}},"required":["variables"],"title":"AddCampaignVariablesRequest","example":{"variables":["company_size","pain_point"]}}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InstantlyResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-credits-cost":{"unit":"call","amount":0,"billing_shape":"per_call"},"description":"Credits: free.","x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/instantly/campaigns/{id}/sending-status":{"get":{"summary":"Get Campaign Sending Status","tags":["Instantly"],"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","description":"Campaign UUID."},"required":true,"description":"Campaign UUID.","name":"id","in":"path"},{"schema":{"type":"boolean","nullable":true,"description":"Include AI-generated summary of the sending status."},"required":false,"description":"Include AI-generated summary of the sending status.","name":"with_ai_summary","in":"query"},{"schema":{"type":"string","description":"Your Instantly API key. Optional if you have connected your Instantly account in the dashboard."},"required":false,"description":"Your Instantly API key. Optional if you have connected your Instantly account in the dashboard.","name":"api_key","in":"query"}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InstantlyResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-credits-cost":{"unit":"call","amount":0,"billing_shape":"per_call"},"description":"Credits: free.","x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/instantly/subsequences":{"post":{"summary":"Create Subsequence","tags":["Instantly"],"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"parent_campaign":{"type":"string","description":"Parent campaign UUID."},"name":{"type":"string","description":"Subsequence name."},"conditions":{"type":"object","properties":{"crm_status":{"nullable":true},"lead_activity":{"nullable":true},"reply_contains":{"type":"string"}}},"subsequence_schedule":{"nullable":true,"description":"Schedule configuration."},"sequences":{"type":"array","items":{"nullable":true},"description":"Email sequence steps."},"api_key":{"type":"string","description":"Your Instantly API key. Optional if you have connected your Instantly account in the dashboard."}},"required":["parent_campaign","name"],"title":"CreateSubsequenceRequest","example":{"parent_campaign":"00000000-0000-0000-0000-000000000001","name":"Interested Follow-up","sequences":[]}}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InstantlyResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-credits-cost":{"unit":"call","amount":0,"billing_shape":"per_call"},"description":"Credits: free.","x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}},"get":{"summary":"List Subsequences","tags":["Instantly"],"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"integer","minimum":1,"maximum":100,"description":"Number of records to return (1–100)."},"required":false,"description":"Number of records to return (1–100).","name":"limit","in":"query"},{"schema":{"type":"string","description":"Pagination cursor."},"required":false,"description":"Pagination cursor.","name":"starting_after","in":"query"},{"schema":{"type":"string","description":"Parent campaign UUID (required)."},"required":true,"description":"Parent campaign UUID (required).","name":"parent_campaign","in":"query"},{"schema":{"type":"string"},"required":false,"name":"search","in":"query"},{"schema":{"type":"string","description":"Your Instantly API key. Optional if you have connected your Instantly account in the dashboard."},"required":false,"description":"Your Instantly API key. Optional if you have connected your Instantly account in the dashboard.","name":"api_key","in":"query"}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InstantlyResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-credits-cost":{"unit":"call","amount":0,"billing_shape":"per_call"},"description":"Credits: free.","x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/instantly/subsequences/{id}":{"get":{"summary":"Get Subsequence","tags":["Instantly"],"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","description":"Subsequence UUID."},"required":true,"description":"Subsequence UUID.","name":"id","in":"path"},{"schema":{"type":"string","description":"Your Instantly API key. Optional if you have connected your Instantly account in the dashboard."},"required":false,"description":"Your Instantly API key. Optional if you have connected your Instantly account in the dashboard.","name":"api_key","in":"query"}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InstantlyResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-credits-cost":{"unit":"call","amount":0,"billing_shape":"per_call"},"description":"Credits: free.","x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}},"patch":{"summary":"Patch Subsequence","tags":["Instantly"],"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","description":"Subsequence UUID."},"required":true,"description":"Subsequence UUID.","name":"id","in":"path"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","description":"New name for the subsequence."},"api_key":{"type":"string","description":"Your Instantly API key. Optional if you have connected your Instantly account in the dashboard."}},"required":["name"],"title":"PatchSubsequenceRequest","example":{"name":"Warm Lead Follow-up"}}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InstantlyResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-credits-cost":{"unit":"call","amount":0,"billing_shape":"per_call"},"description":"Credits: free.","x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}},"delete":{"summary":"Delete Subsequence","tags":["Instantly"],"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","description":"Subsequence UUID."},"required":true,"description":"Subsequence UUID.","name":"id","in":"path"},{"schema":{"type":"string","description":"Your Instantly API key. Optional if you have connected your Instantly account in the dashboard."},"required":false,"description":"Your Instantly API key. Optional if you have connected your Instantly account in the dashboard.","name":"api_key","in":"query"}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InstantlyResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-credits-cost":{"unit":"call","amount":0,"billing_shape":"per_call"},"description":"Credits: free.","x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/instantly/subsequences/{id}/duplicate":{"post":{"summary":"Duplicate Subsequence","tags":["Instantly"],"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","description":"Subsequence UUID."},"required":true,"description":"Subsequence UUID.","name":"id","in":"path"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"parent_campaign":{"type":"string","description":"Parent campaign UUID for the duplicate."},"name":{"type":"string","description":"Name for the duplicated subsequence."},"api_key":{"type":"string","description":"Your Instantly API key. Optional if you have connected your Instantly account in the dashboard."}},"required":["parent_campaign","name"],"title":"DuplicateSubsequenceRequest","example":{"parent_campaign":"00000000-0000-0000-0000-000000000001","name":"Interested Follow-up - Copy"}}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InstantlyResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-credits-cost":{"unit":"call","amount":0,"billing_shape":"per_call"},"description":"Credits: free.","x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/instantly/subsequences/{id}/pause":{"post":{"summary":"Pause Subsequence","tags":["Instantly"],"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","description":"Subsequence UUID."},"required":true,"description":"Subsequence UUID.","name":"id","in":"path"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"api_key":{"type":"string","description":"Your Instantly API key. Optional if you have connected your Instantly account in the dashboard."}},"title":"PauseSubsequenceRequest","example":{}}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InstantlyResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-credits-cost":{"unit":"call","amount":0,"billing_shape":"per_call"},"description":"Credits: free.","x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/instantly/subsequences/{id}/resume":{"post":{"summary":"Resume Subsequence","tags":["Instantly"],"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","description":"Subsequence UUID."},"required":true,"description":"Subsequence UUID.","name":"id","in":"path"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"api_key":{"type":"string","description":"Your Instantly API key. Optional if you have connected your Instantly account in the dashboard."}},"title":"ResumeSubsequenceRequest","example":{}}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InstantlyResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-credits-cost":{"unit":"call","amount":0,"billing_shape":"per_call"},"description":"Credits: free.","x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/instantly/subsequences/{id}/sending-status":{"get":{"summary":"Get Subsequence Sending Status","tags":["Instantly"],"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","description":"Subsequence UUID."},"required":true,"description":"Subsequence UUID.","name":"id","in":"path"},{"schema":{"type":"boolean","nullable":true},"required":false,"name":"with_ai_summary","in":"query"},{"schema":{"type":"string","description":"Your Instantly API key. Optional if you have connected your Instantly account in the dashboard."},"required":false,"description":"Your Instantly API key. Optional if you have connected your Instantly account in the dashboard.","name":"api_key","in":"query"}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InstantlyResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-credits-cost":{"unit":"call","amount":0,"billing_shape":"per_call"},"description":"Credits: free.","x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/instantly/leads":{"post":{"summary":"Create Lead","tags":["Instantly"],"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"campaign":{"type":"string","description":"Campaign UUID to add the lead to."},"email":{"type":"string","format":"email","description":"Lead email address."},"first_name":{"type":"string"},"last_name":{"type":"string"},"company_name":{"type":"string"},"phone":{"type":"string"},"website":{"type":"string"},"personalization":{"type":"string"},"lt_interest_status":{"type":"integer"},"list_id":{"type":"string","description":"Lead list UUID."},"skip_if_in_workspace":{"type":"boolean"},"skip_if_in_campaign":{"type":"boolean"},"skip_if_in_list":{"type":"boolean"},"verify_leads_on_import":{"type":"boolean"},"custom_variables":{"type":"object","additionalProperties":{"type":"string"}},"api_key":{"type":"string","description":"Your Instantly API key. Optional if you have connected your Instantly account in the dashboard."}},"title":"CreateLeadRequest","example":{"email":"michel@coldiq.com","first_name":"Michel","last_name":"Lieben","company_name":"ColdIQ","campaign":"00000000-0000-0000-0000-000000000001"}}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InstantlyResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-credits-cost":{"unit":"call","amount":0,"billing_shape":"per_call"},"description":"Credits: free.","x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}},"delete":{"summary":"Bulk Delete Leads","tags":["Instantly"],"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","description":"Your Instantly API key. Optional if you have connected your Instantly account in the dashboard."},"required":false,"description":"Your Instantly API key. Optional if you have connected your Instantly account in the dashboard.","name":"api_key","in":"query"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"campaign_id":{"type":"string","description":"Delete leads from this campaign."},"list_id":{"type":"string","description":"Delete leads from this list."},"status":{"type":"string"},"ids":{"type":"array","items":{"type":"string"}},"limit":{"type":"integer","minimum":1,"maximum":10000}},"title":"BulkDeleteLeadsRequest","example":{"campaign_id":"00000000-0000-0000-0000-000000000001"}}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InstantlyResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-credits-cost":{"unit":"call","amount":0,"billing_shape":"per_call"},"description":"Credits: free.","x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/instantly/leads/list":{"post":{"summary":"List Leads","tags":["Instantly"],"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"search":{"type":"string"},"campaign":{"type":"string","description":"Filter by campaign UUID."},"list_id":{"type":"string"},"ids":{"type":"array","items":{"type":"string"}},"contacts":{"type":"array","items":{"type":"string","format":"email"}},"limit":{"type":"integer","minimum":1,"maximum":100},"starting_after":{"type":"string"},"filter":{"type":"string"},"smart_view_id":{"type":"string"},"api_key":{"type":"string","description":"Your Instantly API key. Optional if you have connected your Instantly account in the dashboard."}},"title":"ListLeadsRequest","example":{"campaign":"00000000-0000-0000-0000-000000000001","limit":20}}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InstantlyResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-credits-cost":{"unit":"call","amount":0,"billing_shape":"per_call"},"description":"Credits: free.","x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/instantly/leads/merge":{"post":{"summary":"Merge Leads","tags":["Instantly"],"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"lead_id":{"type":"string","description":"Source lead UUID (will be merged into destination)."},"destination_lead_id":{"type":"string","description":"Destination lead UUID (this lead is kept)."},"api_key":{"type":"string","description":"Your Instantly API key. Optional if you have connected your Instantly account in the dashboard."}},"required":["lead_id","destination_lead_id"],"title":"MergeLeadsRequest","example":{"lead_id":"00000000-0000-0000-0000-000000000001","destination_lead_id":"00000000-0000-0000-0000-000000000002"}}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InstantlyResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-credits-cost":{"unit":"call","amount":0,"billing_shape":"per_call"},"description":"Credits: free.","x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/instantly/leads/add":{"post":{"summary":"Bulk Add Leads","tags":["Instantly"],"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"leads":{"type":"array","items":{"type":"object","properties":{"email":{"type":"string","format":"email"},"first_name":{"type":"string"},"last_name":{"type":"string"},"company_name":{"type":"string"},"phone":{"type":"string"},"website":{"type":"string"},"personalization":{"type":"string"},"custom_variables":{"type":"object","additionalProperties":{"type":"string"}}}},"minItems":1,"maxItems":1000,"description":"Array of leads to add (1–1000)."},"campaign_id":{"type":"string","description":"Campaign UUID to add leads to."},"list_id":{"type":"string","description":"Lead list UUID to add leads to."},"skip_if_in_workspace":{"type":"boolean"},"skip_if_in_campaign":{"type":"boolean"},"skip_if_in_list":{"type":"boolean"},"verify_leads_on_import":{"type":"boolean"},"api_key":{"type":"string","description":"Your Instantly API key. Optional if you have connected your Instantly account in the dashboard."}},"required":["leads"],"title":"BulkAddLeadsRequest","example":{"campaign_id":"00000000-0000-0000-0000-000000000001","leads":[{"email":"michel@coldiq.com","first_name":"Michel","last_name":"Lieben","company_name":"ColdIQ"},{"email":"satya@microsoft.com","first_name":"Satya","last_name":"Nadella","company_name":"Microsoft"}]}}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InstantlyResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-credits-cost":{"unit":"call","amount":0,"billing_shape":"per_call"},"description":"Credits: free.","x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/instantly/leads/move":{"post":{"summary":"Move Leads","tags":["Instantly"],"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"to_campaign_id":{"type":"string","description":"Destination campaign UUID."},"to_list_id":{"type":"string","description":"Destination list UUID."},"campaign":{"type":"string","description":"Source campaign UUID."},"list_id":{"type":"string"},"ids":{"type":"array","items":{"type":"string"}},"excluded_ids":{"type":"array","items":{"type":"string"}},"copy_leads":{"type":"boolean"},"check_duplicates":{"type":"boolean"},"limit":{"type":"integer"},"api_key":{"type":"string","description":"Your Instantly API key. Optional if you have connected your Instantly account in the dashboard."}},"title":"MoveLeadsRequest","example":{"campaign":"00000000-0000-0000-0000-000000000001","to_campaign_id":"00000000-0000-0000-0000-000000000002"}}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InstantlyResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-credits-cost":{"unit":"call","amount":0,"billing_shape":"per_call"},"description":"Credits: free.","x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/instantly/leads/bulk-assign":{"post":{"summary":"Bulk Assign Leads","tags":["Instantly"],"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"organization_user_ids":{"type":"array","items":{"type":"string"},"minItems":1,"description":"User UUIDs to assign leads to."},"campaign":{"type":"string"},"list_id":{"type":"string"},"ids":{"type":"array","items":{"type":"string"}},"limit":{"type":"integer"},"api_key":{"type":"string","description":"Your Instantly API key. Optional if you have connected your Instantly account in the dashboard."}},"required":["organization_user_ids"],"title":"BulkAssignLeadsRequest","example":{"organization_user_ids":["00000000-0000-0000-0000-000000000001"]}}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InstantlyResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-credits-cost":{"unit":"call","amount":0,"billing_shape":"per_call"},"description":"Credits: free.","x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/instantly/leads/update-interest-status":{"post":{"summary":"Update Lead Interest Status","tags":["Instantly"],"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"lead_email":{"type":"string","format":"email","description":"Lead email address."},"interest_value":{"type":"integer","nullable":true,"description":"Interest status value. Pass null to reset."},"campaign_id":{"type":"string"},"list_id":{"type":"string"},"ai_interest_value":{"type":"integer"},"disable_auto_interest":{"type":"boolean"},"api_key":{"type":"string","description":"Your Instantly API key. Optional if you have connected your Instantly account in the dashboard."}},"required":["lead_email","interest_value"],"title":"UpdateLeadInterestStatusRequest","example":{"lead_email":"michel@coldiq.com","interest_value":1}}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InstantlyResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-credits-cost":{"unit":"call","amount":0,"billing_shape":"per_call"},"description":"Credits: free.","x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/instantly/leads/subsequence/move":{"post":{"summary":"Move Lead to Subsequence","tags":["Instantly"],"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","description":"Lead UUID."},"subsequence_id":{"type":"string","description":"Subsequence UUID."},"api_key":{"type":"string","description":"Your Instantly API key. Optional if you have connected your Instantly account in the dashboard."}},"required":["id","subsequence_id"],"title":"MoveLeadToSubsequenceRequest","example":{"id":"00000000-0000-0000-0000-000000000001","subsequence_id":"00000000-0000-0000-0000-000000000002"}}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InstantlyResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-credits-cost":{"unit":"call","amount":0,"billing_shape":"per_call"},"description":"Credits: free.","x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/instantly/leads/subsequence/remove":{"post":{"summary":"Remove Lead from Subsequence","tags":["Instantly"],"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","description":"Lead UUID."},"api_key":{"type":"string","description":"Your Instantly API key. Optional if you have connected your Instantly account in the dashboard."}},"required":["id"],"title":"RemoveLeadFromSubsequenceRequest","example":{"id":"00000000-0000-0000-0000-000000000001"}}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InstantlyResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-credits-cost":{"unit":"call","amount":0,"billing_shape":"per_call"},"description":"Credits: free.","x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/instantly/leads/{id}":{"get":{"summary":"Get Lead","tags":["Instantly"],"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","description":"Lead UUID."},"required":true,"description":"Lead UUID.","name":"id","in":"path"},{"schema":{"type":"string","description":"Your Instantly API key. Optional if you have connected your Instantly account in the dashboard."},"required":false,"description":"Your Instantly API key. Optional if you have connected your Instantly account in the dashboard.","name":"api_key","in":"query"}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InstantlyResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-credits-cost":{"unit":"call","amount":0,"billing_shape":"per_call"},"description":"Credits: free.","x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}},"patch":{"summary":"Patch Lead","tags":["Instantly"],"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","description":"Lead UUID."},"required":true,"description":"Lead UUID.","name":"id","in":"path"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"personalization":{"type":"string"},"website":{"type":"string"},"first_name":{"type":"string"},"last_name":{"type":"string"},"company_name":{"type":"string"},"phone":{"type":"string"},"lt_interest_status":{"type":"integer","description":"1=Interested, 2=Meeting Booked, 3=Meeting Completed, 4=Won, 0=Out of Office, -1=Not Interested, etc."},"pl_value_lead":{"type":"number"},"assigned_to":{"type":"string"},"custom_variables":{"type":"object","additionalProperties":{"type":"string"}},"api_key":{"type":"string","description":"Your Instantly API key. Optional if you have connected your Instantly account in the dashboard."}},"title":"PatchLeadRequest","example":{"lt_interest_status":1,"company_name":"ColdIQ"}}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InstantlyResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-credits-cost":{"unit":"call","amount":0,"billing_shape":"per_call"},"description":"Credits: free.","x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}},"delete":{"summary":"Delete Lead","tags":["Instantly"],"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","description":"Lead UUID."},"required":true,"description":"Lead UUID.","name":"id","in":"path"},{"schema":{"type":"string","description":"Your Instantly API key. Optional if you have connected your Instantly account in the dashboard."},"required":false,"description":"Your Instantly API key. Optional if you have connected your Instantly account in the dashboard.","name":"api_key","in":"query"}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InstantlyResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-credits-cost":{"unit":"call","amount":0,"billing_shape":"per_call"},"description":"Credits: free.","x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/instantly/lead-labels":{"post":{"summary":"Create Lead Label","tags":["Instantly"],"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"label":{"type":"string","description":"Label name."},"interest_status_label":{"type":"string","enum":["positive","negative","neutral"],"description":"Sentiment category."},"description":{"type":"string"},"use_with_ai":{"type":"boolean"},"api_key":{"type":"string","description":"Your Instantly API key. Optional if you have connected your Instantly account in the dashboard."}},"required":["label","interest_status_label"],"title":"CreateLeadLabelRequest","example":{"label":"Decision Maker","interest_status_label":"positive"}}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InstantlyResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-credits-cost":{"unit":"call","amount":0,"billing_shape":"per_call"},"description":"Credits: free.","x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}},"get":{"summary":"List Lead Labels","tags":["Instantly"],"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"integer","minimum":1,"maximum":100,"description":"Number of records to return (1–100)."},"required":false,"description":"Number of records to return (1–100).","name":"limit","in":"query"},{"schema":{"type":"string","description":"Pagination cursor."},"required":false,"description":"Pagination cursor.","name":"starting_after","in":"query"},{"schema":{"type":"string"},"required":false,"name":"search","in":"query"},{"schema":{"type":"string","enum":["positive","neutral","negative"]},"required":false,"name":"interest_status","in":"query"},{"schema":{"type":"string","description":"Your Instantly API key. Optional if you have connected your Instantly account in the dashboard."},"required":false,"description":"Your Instantly API key. Optional if you have connected your Instantly account in the dashboard.","name":"api_key","in":"query"}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InstantlyResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-credits-cost":{"unit":"call","amount":0,"billing_shape":"per_call"},"description":"Credits: free.","x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/instantly/lead-labels/ai-reply-label":{"post":{"summary":"Test AI Reply Label Prediction","tags":["Instantly"],"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"reply_text":{"type":"string","description":"Email reply text to classify with AI."},"api_key":{"type":"string","description":"Your Instantly API key. Optional if you have connected your Instantly account in the dashboard."}},"required":["reply_text"],"title":"AiReplyLabelRequest","example":{"reply_text":"Thanks for reaching out! I'd love to learn more about ColdIQ. Can we schedule a call?"}}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InstantlyResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-credits-cost":{"unit":"call","amount":0,"billing_shape":"per_call"},"description":"Credits: free.","x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/instantly/lead-labels/{id}":{"get":{"summary":"Get Lead Label","tags":["Instantly"],"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","description":"Lead label UUID."},"required":true,"description":"Lead label UUID.","name":"id","in":"path"},{"schema":{"type":"string","description":"Your Instantly API key. Optional if you have connected your Instantly account in the dashboard."},"required":false,"description":"Your Instantly API key. Optional if you have connected your Instantly account in the dashboard.","name":"api_key","in":"query"}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InstantlyResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-credits-cost":{"unit":"call","amount":0,"billing_shape":"per_call"},"description":"Credits: free.","x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}},"patch":{"summary":"Patch Lead Label","tags":["Instantly"],"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","description":"Lead label UUID."},"required":true,"description":"Lead label UUID.","name":"id","in":"path"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"label":{"type":"string"},"interest_status_label":{"type":"string","enum":["positive","negative","neutral"]},"description":{"type":"string"},"use_with_ai":{"type":"boolean"},"api_key":{"type":"string","description":"Your Instantly API key. Optional if you have connected your Instantly account in the dashboard."}},"title":"PatchLeadLabelRequest","example":{"label":"Key Decision Maker"}}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InstantlyResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-credits-cost":{"unit":"call","amount":0,"billing_shape":"per_call"},"description":"Credits: free.","x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}},"delete":{"summary":"Delete Lead Label","tags":["Instantly"],"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","description":"Lead label UUID."},"required":true,"description":"Lead label UUID.","name":"id","in":"path"},{"schema":{"type":"string","description":"Your Instantly API key. Optional if you have connected your Instantly account in the dashboard."},"required":false,"description":"Your Instantly API key. Optional if you have connected your Instantly account in the dashboard.","name":"api_key","in":"query"}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"reassigned_status":{"type":"integer","description":"Interest status to migrate leads to on deletion."}},"title":"DeleteLeadLabelRequest","example":{}}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InstantlyResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-credits-cost":{"unit":"call","amount":0,"billing_shape":"per_call"},"description":"Credits: free.","x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/instantly/lead-lists":{"post":{"summary":"Create Lead List","tags":["Instantly"],"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","description":"List name."},"has_enrichment_task":{"type":"boolean","nullable":true},"owned_by":{"type":"string","nullable":true},"api_key":{"type":"string","description":"Your Instantly API key. Optional if you have connected your Instantly account in the dashboard."}},"required":["name"],"title":"CreateLeadListRequest","example":{"name":"ColdIQ Prospects Q2 2026"}}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InstantlyResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-credits-cost":{"unit":"call","amount":0,"billing_shape":"per_call"},"description":"Credits: free.","x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}},"get":{"summary":"List Lead Lists","tags":["Instantly"],"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"integer","minimum":1,"maximum":100,"description":"Number of records to return (1–100)."},"required":false,"description":"Number of records to return (1–100).","name":"limit","in":"query"},{"schema":{"type":"string","description":"Pagination cursor."},"required":false,"description":"Pagination cursor.","name":"starting_after","in":"query"},{"schema":{"type":"string"},"required":false,"name":"search","in":"query"},{"schema":{"type":"boolean","nullable":true},"required":false,"name":"has_enrichment_task","in":"query"},{"schema":{"type":"string","description":"Your Instantly API key. Optional if you have connected your Instantly account in the dashboard."},"required":false,"description":"Your Instantly API key. Optional if you have connected your Instantly account in the dashboard.","name":"api_key","in":"query"}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InstantlyResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-credits-cost":{"unit":"call","amount":0,"billing_shape":"per_call"},"description":"Credits: free.","x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/instantly/lead-lists/{id}":{"get":{"summary":"Get Lead List","tags":["Instantly"],"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","description":"Lead list UUID."},"required":true,"description":"Lead list UUID.","name":"id","in":"path"},{"schema":{"type":"string","description":"Your Instantly API key. Optional if you have connected your Instantly account in the dashboard."},"required":false,"description":"Your Instantly API key. Optional if you have connected your Instantly account in the dashboard.","name":"api_key","in":"query"}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InstantlyResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-credits-cost":{"unit":"call","amount":0,"billing_shape":"per_call"},"description":"Credits: free.","x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}},"patch":{"summary":"Patch Lead List","tags":["Instantly"],"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","description":"Lead list UUID."},"required":true,"description":"Lead list UUID.","name":"id","in":"path"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string"},"has_enrichment_task":{"type":"boolean","nullable":true},"owned_by":{"type":"string","nullable":true},"api_key":{"type":"string","description":"Your Instantly API key. Optional if you have connected your Instantly account in the dashboard."}},"title":"PatchLeadListRequest","example":{"name":"ColdIQ Enterprise Prospects"}}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InstantlyResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-credits-cost":{"unit":"call","amount":0,"billing_shape":"per_call"},"description":"Credits: free.","x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}},"delete":{"summary":"Delete Lead List","tags":["Instantly"],"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","description":"Lead list UUID."},"required":true,"description":"Lead list UUID.","name":"id","in":"path"},{"schema":{"type":"string","description":"Your Instantly API key. Optional if you have connected your Instantly account in the dashboard."},"required":false,"description":"Your Instantly API key. Optional if you have connected your Instantly account in the dashboard.","name":"api_key","in":"query"}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InstantlyResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-credits-cost":{"unit":"call","amount":0,"billing_shape":"per_call"},"description":"Credits: free.","x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/instantly/lead-lists/{id}/verification-stats":{"get":{"summary":"Get Lead List Verification Stats","tags":["Instantly"],"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","description":"Lead list UUID."},"required":true,"description":"Lead list UUID.","name":"id","in":"path"},{"schema":{"type":"string","description":"Your Instantly API key. Optional if you have connected your Instantly account in the dashboard."},"required":false,"description":"Your Instantly API key. Optional if you have connected your Instantly account in the dashboard.","name":"api_key","in":"query"}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InstantlyResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-credits-cost":{"unit":"call","amount":0,"billing_shape":"per_call"},"description":"Credits: free.","x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/instantly/emails/unread/count":{"get":{"summary":"Get Unread Email Count","tags":["Instantly"],"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","description":"Your Instantly API key. Optional if you have connected your Instantly account in the dashboard."},"required":false,"description":"Your Instantly API key. Optional if you have connected your Instantly account in the dashboard.","name":"api_key","in":"query"}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InstantlyResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-credits-cost":{"unit":"call","amount":0,"billing_shape":"per_call"},"description":"Credits: free.","x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/instantly/emails/test":{"post":{"summary":"Send Test Email","tags":["Instantly"],"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"eaccount":{"type":"string","description":"Sending email account."},"to_address_email_list":{"type":"string","description":"Recipient email addresses (comma-separated)."},"subject":{"type":"string","description":"Email subject."},"body":{"type":"object","properties":{"html":{"type":"string","description":"HTML email body."}},"required":["html"]},"api_key":{"type":"string","description":"Your Instantly API key. Optional if you have connected your Instantly account in the dashboard."}},"required":["eaccount","to_address_email_list","subject","body"],"title":"SendTestEmailRequest","example":{"eaccount":"michel@coldiq.com","to_address_email_list":"michel@coldiq.com","subject":"Test: ColdIQ Outreach","body":{"html":"<p>Hello from <strong>ColdIQ</strong>!</p>"}}}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InstantlyResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-credits-cost":{"unit":"call","amount":0,"billing_shape":"per_call"},"description":"Credits: free.","x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/instantly/emails/reply":{"post":{"summary":"Reply to Email","tags":["Instantly"],"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"reply_to_uuid":{"type":"string","description":"UUID of the email to reply to."},"eaccount":{"type":"string","description":"Sending email account."},"subject":{"type":"string","description":"Reply subject."},"body":{"type":"object","properties":{"html":{"type":"string"},"text":{"type":"string"}}},"cc_address_email_list":{"type":"string"},"bcc_address_email_list":{"type":"string"},"api_key":{"type":"string","description":"Your Instantly API key. Optional if you have connected your Instantly account in the dashboard."}},"required":["reply_to_uuid","eaccount","subject","body"],"title":"ReplyToEmailRequest","example":{"reply_to_uuid":"00000000-0000-0000-0000-000000000001","eaccount":"michel@coldiq.com","subject":"Re: ColdIQ partnership","body":{"html":"<p>Thanks for your reply! Happy to connect.</p>"}}}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InstantlyResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-credits-cost":{"unit":"call","amount":0,"billing_shape":"per_call"},"description":"Credits: free.","x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/instantly/emails/forward":{"post":{"summary":"Forward Email","tags":["Instantly"],"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"reply_to_uuid":{"type":"string","description":"UUID of the email to forward."},"to_address_email_list":{"type":"string","description":"Forward recipient emails (comma-separated)."},"eaccount":{"type":"string","description":"Sending email account."},"subject":{"type":"string","description":"Forward subject."},"body":{"type":"object","properties":{"html":{"type":"string"},"text":{"type":"string"}}},"cc_address_email_list":{"type":"string"},"bcc_address_email_list":{"type":"string"},"api_key":{"type":"string","description":"Your Instantly API key. Optional if you have connected your Instantly account in the dashboard."}},"required":["reply_to_uuid","to_address_email_list","eaccount","subject","body"],"title":"ForwardEmailRequest","example":{"reply_to_uuid":"00000000-0000-0000-0000-000000000001","to_address_email_list":"michel@coldiq.com","eaccount":"michel@coldiq.com","subject":"Fwd: ColdIQ partnership","body":{"html":"<p>Forwarding this for your reference.</p>"}}}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InstantlyResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-credits-cost":{"unit":"call","amount":0,"billing_shape":"per_call"},"description":"Credits: free.","x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/instantly/emails/threads/{thread_id}/mark-as-read":{"post":{"summary":"Mark Thread as Read","tags":["Instantly"],"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","description":"Thread UUID."},"required":true,"description":"Thread UUID.","name":"thread_id","in":"path"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"api_key":{"type":"string","description":"Your Instantly API key. Optional if you have connected your Instantly account in the dashboard."}},"title":"MarkThreadAsReadRequest","example":{}}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InstantlyResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-credits-cost":{"unit":"call","amount":0,"billing_shape":"per_call"},"description":"Credits: free.","x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/instantly/emails":{"get":{"summary":"List Emails","tags":["Instantly"],"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"integer","minimum":1,"maximum":100,"description":"Number of records to return (1–100)."},"required":false,"description":"Number of records to return (1–100).","name":"limit","in":"query"},{"schema":{"type":"string","description":"Pagination cursor."},"required":false,"description":"Pagination cursor.","name":"starting_after","in":"query"},{"schema":{"type":"string"},"required":false,"name":"search","in":"query"},{"schema":{"type":"string"},"required":false,"name":"campaign_id","in":"query"},{"schema":{"type":"boolean","nullable":true},"required":false,"name":"is_unread","in":"query"},{"schema":{"type":"string","enum":["received","sent","manual"]},"required":false,"name":"email_type","in":"query"},{"schema":{"type":"string","description":"Filter by sending email account."},"required":false,"description":"Filter by sending email account.","name":"eaccount","in":"query"},{"schema":{"type":"string","description":"Filter by lead UUID."},"required":false,"description":"Filter by lead UUID.","name":"lead","in":"query"},{"schema":{"type":"string"},"required":false,"name":"min_timestamp_created","in":"query"},{"schema":{"type":"string"},"required":false,"name":"max_timestamp_created","in":"query"},{"schema":{"type":"string","description":"Your Instantly API key. Optional if you have connected your Instantly account in the dashboard."},"required":false,"description":"Your Instantly API key. Optional if you have connected your Instantly account in the dashboard.","name":"api_key","in":"query"}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InstantlyResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-credits-cost":{"unit":"call","amount":0,"billing_shape":"per_call"},"description":"Credits: free.","x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/instantly/emails/{id}":{"get":{"summary":"Get Email","tags":["Instantly"],"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","description":"Email UUID."},"required":true,"description":"Email UUID.","name":"id","in":"path"},{"schema":{"type":"string","description":"Your Instantly API key. Optional if you have connected your Instantly account in the dashboard."},"required":false,"description":"Your Instantly API key. Optional if you have connected your Instantly account in the dashboard.","name":"api_key","in":"query"}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InstantlyResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-credits-cost":{"unit":"call","amount":0,"billing_shape":"per_call"},"description":"Credits: free.","x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}},"patch":{"summary":"Update Email","tags":["Instantly"],"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","description":"Email UUID."},"required":true,"description":"Email UUID.","name":"id","in":"path"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"is_unread":{"type":"integer","nullable":true,"description":"Set to 0 to mark read, 1 to mark unread, null to clear."},"reminder_ts":{"type":"string","nullable":true,"description":"Reminder timestamp (ISO 8601). Pass null to clear."},"api_key":{"type":"string","description":"Your Instantly API key. Optional if you have connected your Instantly account in the dashboard."}},"title":"PatchEmailRequest","example":{"is_unread":0}}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InstantlyResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-credits-cost":{"unit":"call","amount":0,"billing_shape":"per_call"},"description":"Credits: free.","x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}},"delete":{"summary":"Delete Email","tags":["Instantly"],"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","description":"Email UUID."},"required":true,"description":"Email UUID.","name":"id","in":"path"},{"schema":{"type":"string","description":"Your Instantly API key. Optional if you have connected your Instantly account in the dashboard."},"required":false,"description":"Your Instantly API key. Optional if you have connected your Instantly account in the dashboard.","name":"api_key","in":"query"}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InstantlyResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-credits-cost":{"unit":"call","amount":0,"billing_shape":"per_call"},"description":"Credits: free.","x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/instantly/email-verification":{"post":{"summary":"Create Email Verification","tags":["Instantly"],"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"email":{"type":"string","format":"email","description":"Email address to verify."},"webhook_url":{"type":"string","format":"uri","description":"Callback URL for async results (used when verification takes over 10 seconds)."},"api_key":{"type":"string","description":"Your Instantly API key. Optional if you have connected your Instantly account in the dashboard."}},"required":["email"],"title":"CreateEmailVerificationRequest","example":{"email":"michel@coldiq.com"}}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InstantlyResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-credits-cost":{"unit":"call","amount":0,"billing_shape":"per_call"},"description":"Credits: free. Managed alternative: `POST /v1/email/verify` (Verify Email) runs this provider inside a ranked waterfall with charge-on-success billing and one normalized response shape, and falls back to the other providers for this capability on a miss. Call this endpoint directly when you specifically want this provider and no fallback.","x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/instantly/email-verification/{email}":{"get":{"summary":"Get Email Verification Status","tags":["Instantly"],"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","description":"Email address to check verification status for."},"required":true,"description":"Email address to check verification status for.","name":"email","in":"path"},{"schema":{"type":"string","description":"Your Instantly API key. Optional if you have connected your Instantly account in the dashboard."},"required":false,"description":"Your Instantly API key. Optional if you have connected your Instantly account in the dashboard.","name":"api_key","in":"query"}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InstantlyResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-credits-cost":{"unit":"call","amount":0,"billing_shape":"per_call"},"description":"Credits: free.","x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/instantly/block-lists-entries":{"post":{"summary":"Create Block List Entry","tags":["Instantly"],"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"bl_value":{"type":"string","description":"Email address or domain to block."},"api_key":{"type":"string","description":"Your Instantly API key. Optional if you have connected your Instantly account in the dashboard."}},"required":["bl_value"],"title":"CreateBlockListEntryRequest","example":{"bl_value":"competitor.com"}}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InstantlyResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-credits-cost":{"unit":"call","amount":0,"billing_shape":"per_call"},"description":"Credits: free.","x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}},"get":{"summary":"List Block List Entries","tags":["Instantly"],"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"integer","minimum":1,"maximum":100,"description":"Number of records to return (1–100)."},"required":false,"description":"Number of records to return (1–100).","name":"limit","in":"query"},{"schema":{"type":"string","description":"Pagination cursor."},"required":false,"description":"Pagination cursor.","name":"starting_after","in":"query"},{"schema":{"type":"boolean","nullable":true},"required":false,"name":"domains_only","in":"query"},{"schema":{"type":"string"},"required":false,"name":"search","in":"query"},{"schema":{"type":"string","description":"Your Instantly API key. Optional if you have connected your Instantly account in the dashboard."},"required":false,"description":"Your Instantly API key. Optional if you have connected your Instantly account in the dashboard.","name":"api_key","in":"query"}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InstantlyResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-credits-cost":{"unit":"call","amount":0,"billing_shape":"per_call"},"description":"Credits: free.","x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}},"delete":{"summary":"Delete All Block List Entries","tags":["Instantly"],"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"boolean","nullable":true},"required":false,"name":"domains_only","in":"query"},{"schema":{"type":"string"},"required":false,"name":"search","in":"query"},{"schema":{"type":"string","description":"Your Instantly API key. Optional if you have connected your Instantly account in the dashboard."},"required":false,"description":"Your Instantly API key. Optional if you have connected your Instantly account in the dashboard.","name":"api_key","in":"query"}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{},"title":"DeleteAllBlockListEntriesRequest","example":{}}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InstantlyResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-credits-cost":{"unit":"call","amount":0,"billing_shape":"per_call"},"description":"Credits: free.","x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/instantly/block-lists-entries/bulk-create":{"post":{"summary":"Bulk Create Block List Entries","tags":["Instantly"],"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"bl_values":{"type":"array","items":{"type":"string"},"minItems":1,"maxItems":1000,"description":"Emails or domains to block (1–1000)."},"api_key":{"type":"string","description":"Your Instantly API key. Optional if you have connected your Instantly account in the dashboard."}},"required":["bl_values"],"title":"BulkCreateBlockListEntriesRequest","example":{"bl_values":["competitor.com","anotherspammer.net"]}}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InstantlyResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-credits-cost":{"unit":"call","amount":0,"billing_shape":"per_call"},"description":"Credits: free.","x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/instantly/block-lists-entries/bulk-delete":{"post":{"summary":"Bulk Delete Block List Entries","tags":["Instantly"],"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"ids":{"type":"array","items":{"type":"string"},"minItems":1,"maxItems":1000,"description":"Block list entry UUIDs to delete (1–1000)."},"api_key":{"type":"string","description":"Your Instantly API key. Optional if you have connected your Instantly account in the dashboard."}},"required":["ids"],"title":"BulkDeleteBlockListEntriesRequest","example":{"ids":["00000000-0000-0000-0000-000000000001"]}}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InstantlyResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-credits-cost":{"unit":"call","amount":0,"billing_shape":"per_call"},"description":"Credits: free.","x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/instantly/block-lists-entries/download":{"get":{"summary":"Download Block List","tags":["Instantly"],"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","description":"Your Instantly API key. Optional if you have connected your Instantly account in the dashboard."},"required":false,"description":"Your Instantly API key. Optional if you have connected your Instantly account in the dashboard.","name":"api_key","in":"query"}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InstantlyResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-credits-cost":{"unit":"call","amount":0,"billing_shape":"per_call"},"description":"Credits: free.","x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/instantly/block-lists-entries/{id}":{"get":{"summary":"Get Block List Entry","tags":["Instantly"],"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","description":"Block list entry UUID."},"required":true,"description":"Block list entry UUID.","name":"id","in":"path"},{"schema":{"type":"string","description":"Your Instantly API key. Optional if you have connected your Instantly account in the dashboard."},"required":false,"description":"Your Instantly API key. Optional if you have connected your Instantly account in the dashboard.","name":"api_key","in":"query"}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InstantlyResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-credits-cost":{"unit":"call","amount":0,"billing_shape":"per_call"},"description":"Credits: free.","x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}},"patch":{"summary":"Patch Block List Entry","tags":["Instantly"],"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","description":"Block list entry UUID."},"required":true,"description":"Block list entry UUID.","name":"id","in":"path"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"bl_value":{"type":"string","description":"Updated email or domain value."},"api_key":{"type":"string","description":"Your Instantly API key. Optional if you have connected your Instantly account in the dashboard."}},"title":"PatchBlockListEntryRequest","example":{"bl_value":"newcompetitor.com"}}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InstantlyResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-credits-cost":{"unit":"call","amount":0,"billing_shape":"per_call"},"description":"Credits: free.","x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}},"delete":{"summary":"Delete Block List Entry","tags":["Instantly"],"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","description":"Block list entry UUID."},"required":true,"description":"Block list entry UUID.","name":"id","in":"path"},{"schema":{"type":"string","description":"Your Instantly API key. Optional if you have connected your Instantly account in the dashboard."},"required":false,"description":"Your Instantly API key. Optional if you have connected your Instantly account in the dashboard.","name":"api_key","in":"query"}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InstantlyResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-credits-cost":{"unit":"call","amount":0,"billing_shape":"per_call"},"description":"Credits: free.","x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/instantly/custom-tags":{"post":{"summary":"Create Custom Tag","tags":["Instantly"],"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"label":{"type":"string","description":"Tag label."},"description":{"type":"string","nullable":true},"api_key":{"type":"string","description":"Your Instantly API key. Optional if you have connected your Instantly account in the dashboard."}},"required":["label"],"title":"CreateCustomTagRequest","example":{"label":"Enterprise","description":"Enterprise-tier prospects"}}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InstantlyResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-credits-cost":{"unit":"call","amount":0,"billing_shape":"per_call"},"description":"Credits: free.","x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}},"get":{"summary":"List Custom Tags","tags":["Instantly"],"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"integer","minimum":1,"maximum":100,"description":"Number of records to return (1–100)."},"required":false,"description":"Number of records to return (1–100).","name":"limit","in":"query"},{"schema":{"type":"string","description":"Pagination cursor."},"required":false,"description":"Pagination cursor.","name":"starting_after","in":"query"},{"schema":{"type":"string"},"required":false,"name":"search","in":"query"},{"schema":{"type":"string","description":"Comma-separated resource IDs."},"required":false,"description":"Comma-separated resource IDs.","name":"resource_ids","in":"query"},{"schema":{"type":"string","description":"Comma-separated tag UUIDs."},"required":false,"description":"Comma-separated tag UUIDs.","name":"tag_ids","in":"query"},{"schema":{"type":"string","description":"Your Instantly API key. Optional if you have connected your Instantly account in the dashboard."},"required":false,"description":"Your Instantly API key. Optional if you have connected your Instantly account in the dashboard.","name":"api_key","in":"query"}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InstantlyResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-credits-cost":{"unit":"call","amount":0,"billing_shape":"per_call"},"description":"Credits: free.","x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/instantly/custom-tags/toggle-resource":{"post":{"summary":"Toggle Tag Resource","tags":["Instantly"],"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"tag_ids":{"type":"array","items":{"type":"string"},"description":"Tag UUIDs to assign or unassign."},"resource_type":{"type":"integer","description":"1=Account, 2=Campaign."},"resource_ids":{"type":"array","items":{"type":"string"},"description":"Resource IDs to tag."},"assign":{"type":"boolean","description":"true to assign, false to unassign."},"selected_all":{"type":"boolean"},"api_key":{"type":"string","description":"Your Instantly API key. Optional if you have connected your Instantly account in the dashboard."}},"required":["tag_ids","resource_type","resource_ids","assign"],"title":"ToggleTagResourceRequest","example":{"tag_ids":["00000000-0000-0000-0000-000000000001"],"resource_type":2,"resource_ids":["00000000-0000-0000-0000-000000000002"],"assign":true}}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InstantlyResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-credits-cost":{"unit":"call","amount":0,"billing_shape":"per_call"},"description":"Credits: free.","x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/instantly/custom-tags/{id}":{"get":{"summary":"Get Custom Tag","tags":["Instantly"],"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","description":"Custom tag UUID."},"required":true,"description":"Custom tag UUID.","name":"id","in":"path"},{"schema":{"type":"string","description":"Your Instantly API key. Optional if you have connected your Instantly account in the dashboard."},"required":false,"description":"Your Instantly API key. Optional if you have connected your Instantly account in the dashboard.","name":"api_key","in":"query"}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InstantlyResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-credits-cost":{"unit":"call","amount":0,"billing_shape":"per_call"},"description":"Credits: free.","x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}},"patch":{"summary":"Patch Custom Tag","tags":["Instantly"],"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","description":"Custom tag UUID."},"required":true,"description":"Custom tag UUID.","name":"id","in":"path"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"label":{"type":"string"},"description":{"type":"string","nullable":true},"api_key":{"type":"string","description":"Your Instantly API key. Optional if you have connected your Instantly account in the dashboard."}},"title":"PatchCustomTagRequest","example":{"label":"Enterprise Account"}}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InstantlyResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-credits-cost":{"unit":"call","amount":0,"billing_shape":"per_call"},"description":"Credits: free.","x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}},"delete":{"summary":"Delete Custom Tag","tags":["Instantly"],"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","description":"Custom tag UUID."},"required":true,"description":"Custom tag UUID.","name":"id","in":"path"},{"schema":{"type":"string","description":"Your Instantly API key. Optional if you have connected your Instantly account in the dashboard."},"required":false,"description":"Your Instantly API key. Optional if you have connected your Instantly account in the dashboard.","name":"api_key","in":"query"}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InstantlyResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-credits-cost":{"unit":"call","amount":0,"billing_shape":"per_call"},"description":"Credits: free.","x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/instantly/custom-tag-mappings":{"get":{"summary":"List Custom Tag Mappings","tags":["Instantly"],"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"integer","minimum":1,"maximum":100,"description":"Number of records to return (1–100)."},"required":false,"description":"Number of records to return (1–100).","name":"limit","in":"query"},{"schema":{"type":"string","description":"Pagination cursor."},"required":false,"description":"Pagination cursor.","name":"starting_after","in":"query"},{"schema":{"type":"string","description":"Comma-separated resource IDs."},"required":false,"description":"Comma-separated resource IDs.","name":"resource_ids","in":"query"},{"schema":{"type":"string","description":"Your Instantly API key. Optional if you have connected your Instantly account in the dashboard."},"required":false,"description":"Your Instantly API key. Optional if you have connected your Instantly account in the dashboard.","name":"api_key","in":"query"}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InstantlyResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-credits-cost":{"unit":"call","amount":0,"billing_shape":"per_call"},"description":"Credits: free.","x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/instantly/webhooks":{"post":{"summary":"Create Webhook","tags":["Instantly"],"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"target_hook_url":{"type":"string","format":"uri","description":"Webhook target URL."},"name":{"type":"string"},"campaign":{"type":"string","nullable":true,"description":"Filter to a specific campaign UUID (null = all campaigns)."},"event_type":{"type":"string","enum":["all_events","email_sent","email_opened","email_link_clicked","reply_received","email_bounced","lead_unsubscribed","campaign_completed","account_error","lead_neutral","lead_interested","lead_not_interested","lead_meeting_booked","lead_meeting_completed","lead_closed","lead_out_of_office","lead_wrong_person","lead_no_show","supersearch_enrichment_completed"],"description":"Event type to subscribe to."},"headers":{"type":"object","additionalProperties":{"type":"string"},"description":"Custom headers to send with webhook requests."},"api_key":{"type":"string","description":"Your Instantly API key. Optional if you have connected your Instantly account in the dashboard."}},"required":["target_hook_url"],"title":"CreateWebhookRequest","example":{"target_hook_url":"https://coldiq.com/webhooks/instantly","name":"Reply received handler","event_type":"reply_received"}}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InstantlyResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-credits-cost":{"unit":"call","amount":0,"billing_shape":"per_call"},"description":"Credits: free.","x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}},"get":{"summary":"List Webhooks","tags":["Instantly"],"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"integer","minimum":1,"maximum":100,"description":"Number of records to return (1–100)."},"required":false,"description":"Number of records to return (1–100).","name":"limit","in":"query"},{"schema":{"type":"string","description":"Pagination cursor."},"required":false,"description":"Pagination cursor.","name":"starting_after","in":"query"},{"schema":{"type":"string"},"required":false,"name":"campaign","in":"query"},{"schema":{"type":"string","enum":["all_events","email_sent","email_opened","email_link_clicked","reply_received","email_bounced","lead_unsubscribed","campaign_completed","account_error","lead_neutral","lead_interested","lead_not_interested","lead_meeting_booked","lead_meeting_completed","lead_closed","lead_out_of_office","lead_wrong_person","lead_no_show","supersearch_enrichment_completed"]},"required":false,"name":"event_type","in":"query"},{"schema":{"type":"string","description":"Your Instantly API key. Optional if you have connected your Instantly account in the dashboard."},"required":false,"description":"Your Instantly API key. Optional if you have connected your Instantly account in the dashboard.","name":"api_key","in":"query"}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InstantlyResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-credits-cost":{"unit":"call","amount":0,"billing_shape":"per_call"},"description":"Credits: free.","x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/instantly/webhooks/event-types":{"get":{"summary":"List Webhook Event Types","tags":["Instantly"],"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","description":"Your Instantly API key. Optional if you have connected your Instantly account in the dashboard."},"required":false,"description":"Your Instantly API key. Optional if you have connected your Instantly account in the dashboard.","name":"api_key","in":"query"}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InstantlyResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-credits-cost":{"unit":"call","amount":0,"billing_shape":"per_call"},"description":"Credits: free.","x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/instantly/webhooks/{id}":{"get":{"summary":"Get Webhook","tags":["Instantly"],"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","description":"Webhook UUID."},"required":true,"description":"Webhook UUID.","name":"id","in":"path"},{"schema":{"type":"string","description":"Your Instantly API key. Optional if you have connected your Instantly account in the dashboard."},"required":false,"description":"Your Instantly API key. Optional if you have connected your Instantly account in the dashboard.","name":"api_key","in":"query"}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InstantlyResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-credits-cost":{"unit":"call","amount":0,"billing_shape":"per_call"},"description":"Credits: free.","x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}},"patch":{"summary":"Patch Webhook","tags":["Instantly"],"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","description":"Webhook UUID."},"required":true,"description":"Webhook UUID.","name":"id","in":"path"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"target_hook_url":{"type":"string","format":"uri"},"name":{"type":"string"},"campaign":{"type":"string","nullable":true},"event_type":{"type":"string","enum":["all_events","email_sent","email_opened","email_link_clicked","reply_received","email_bounced","lead_unsubscribed","campaign_completed","account_error","lead_neutral","lead_interested","lead_not_interested","lead_meeting_booked","lead_meeting_completed","lead_closed","lead_out_of_office","lead_wrong_person","lead_no_show","supersearch_enrichment_completed"]},"headers":{"type":"object","additionalProperties":{"type":"string"}},"api_key":{"type":"string","description":"Your Instantly API key. Optional if you have connected your Instantly account in the dashboard."}},"title":"PatchWebhookRequest","example":{"event_type":"email_opened"}}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InstantlyResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-credits-cost":{"unit":"call","amount":0,"billing_shape":"per_call"},"description":"Credits: free.","x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}},"delete":{"summary":"Delete Webhook","tags":["Instantly"],"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","description":"Webhook UUID."},"required":true,"description":"Webhook UUID.","name":"id","in":"path"},{"schema":{"type":"string","description":"Your Instantly API key. Optional if you have connected your Instantly account in the dashboard."},"required":false,"description":"Your Instantly API key. Optional if you have connected your Instantly account in the dashboard.","name":"api_key","in":"query"}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InstantlyResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-credits-cost":{"unit":"call","amount":0,"billing_shape":"per_call"},"description":"Credits: free.","x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/instantly/webhooks/{id}/test":{"post":{"summary":"Test Webhook","tags":["Instantly"],"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","description":"Webhook UUID."},"required":true,"description":"Webhook UUID.","name":"id","in":"path"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"api_key":{"type":"string","description":"Your Instantly API key. Optional if you have connected your Instantly account in the dashboard."}},"title":"TestWebhookRequest","example":{}}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InstantlyResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-credits-cost":{"unit":"call","amount":0,"billing_shape":"per_call"},"description":"Credits: free.","x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/instantly/webhooks/{id}/resume":{"post":{"summary":"Resume Webhook","tags":["Instantly"],"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","description":"Webhook UUID."},"required":true,"description":"Webhook UUID.","name":"id","in":"path"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"api_key":{"type":"string","description":"Your Instantly API key. Optional if you have connected your Instantly account in the dashboard."}},"title":"ResumeWebhookRequest","example":{}}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InstantlyResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-credits-cost":{"unit":"call","amount":0,"billing_shape":"per_call"},"description":"Credits: free.","x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/instantly/webhook-events":{"get":{"summary":"List Webhook Events","tags":["Instantly"],"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"integer","minimum":1,"maximum":100,"description":"Number of records to return (1–100)."},"required":false,"description":"Number of records to return (1–100).","name":"limit","in":"query"},{"schema":{"type":"string","description":"Pagination cursor."},"required":false,"description":"Pagination cursor.","name":"starting_after","in":"query"},{"schema":{"type":"boolean","nullable":true},"required":false,"name":"success","in":"query"},{"schema":{"type":"string","description":"Start date (YYYY-MM-DD)."},"required":false,"description":"Start date (YYYY-MM-DD).","name":"from","in":"query"},{"schema":{"type":"string","description":"End date (YYYY-MM-DD)."},"required":false,"description":"End date (YYYY-MM-DD).","name":"to","in":"query"},{"schema":{"type":"string"},"required":false,"name":"search","in":"query"},{"schema":{"type":"string","description":"Your Instantly API key. Optional if you have connected your Instantly account in the dashboard."},"required":false,"description":"Your Instantly API key. Optional if you have connected your Instantly account in the dashboard.","name":"api_key","in":"query"}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InstantlyResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-credits-cost":{"unit":"call","amount":0,"billing_shape":"per_call"},"description":"Credits: free.","x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/instantly/webhook-events/summary":{"get":{"summary":"Get Webhook Event Summary","tags":["Instantly"],"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","description":"Start date (YYYY-MM-DD)."},"required":false,"description":"Start date (YYYY-MM-DD).","name":"from","in":"query"},{"schema":{"type":"string","description":"End date (YYYY-MM-DD)."},"required":false,"description":"End date (YYYY-MM-DD).","name":"to","in":"query"},{"schema":{"type":"string","description":"Your Instantly API key. Optional if you have connected your Instantly account in the dashboard."},"required":false,"description":"Your Instantly API key. Optional if you have connected your Instantly account in the dashboard.","name":"api_key","in":"query"}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InstantlyResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-credits-cost":{"unit":"call","amount":0,"billing_shape":"per_call"},"description":"Credits: free.","x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/instantly/webhook-events/summary-by-date":{"get":{"summary":"Get Webhook Event Summary by Date","tags":["Instantly"],"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","description":"Start date (YYYY-MM-DD)."},"required":false,"description":"Start date (YYYY-MM-DD).","name":"from","in":"query"},{"schema":{"type":"string","description":"End date (YYYY-MM-DD)."},"required":false,"description":"End date (YYYY-MM-DD).","name":"to","in":"query"},{"schema":{"type":"string","description":"Your Instantly API key. Optional if you have connected your Instantly account in the dashboard."},"required":false,"description":"Your Instantly API key. Optional if you have connected your Instantly account in the dashboard.","name":"api_key","in":"query"}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InstantlyResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-credits-cost":{"unit":"call","amount":0,"billing_shape":"per_call"},"description":"Credits: free.","x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/instantly/webhook-events/{id}":{"get":{"summary":"Get Webhook Event","tags":["Instantly"],"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","description":"Webhook event UUID."},"required":true,"description":"Webhook event UUID.","name":"id","in":"path"},{"schema":{"type":"string","description":"Your Instantly API key. Optional if you have connected your Instantly account in the dashboard."},"required":false,"description":"Your Instantly API key. Optional if you have connected your Instantly account in the dashboard.","name":"api_key","in":"query"}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InstantlyResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-credits-cost":{"unit":"call","amount":0,"billing_shape":"per_call"},"description":"Credits: free.","x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/instantly/background-jobs":{"get":{"summary":"List Background Jobs","tags":["Instantly"],"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"integer","minimum":1,"maximum":100,"description":"Number of records to return (1–100)."},"required":false,"description":"Number of records to return (1–100).","name":"limit","in":"query"},{"schema":{"type":"string","description":"Pagination cursor."},"required":false,"description":"Pagination cursor.","name":"starting_after","in":"query"},{"schema":{"type":"string"},"required":false,"name":"type","in":"query"},{"schema":{"type":"string"},"required":false,"name":"entity_type","in":"query"},{"schema":{"type":"string"},"required":false,"name":"entity_id","in":"query"},{"schema":{"type":"string"},"required":false,"name":"status","in":"query"},{"schema":{"type":"string"},"required":false,"name":"sort_column","in":"query"},{"schema":{"type":"string"},"required":false,"name":"sort_order","in":"query"},{"schema":{"type":"string","description":"Your Instantly API key. Optional if you have connected your Instantly account in the dashboard."},"required":false,"description":"Your Instantly API key. Optional if you have connected your Instantly account in the dashboard.","name":"api_key","in":"query"}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InstantlyResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-credits-cost":{"unit":"call","amount":0,"billing_shape":"per_call"},"description":"Credits: free.","x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/instantly/background-jobs/{id}":{"get":{"summary":"Get Background Job","tags":["Instantly"],"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","description":"Background job ID."},"required":true,"description":"Background job ID.","name":"id","in":"path"},{"schema":{"type":"string","description":"Comma-separated field names from the job data object to include."},"required":false,"description":"Comma-separated field names from the job data object to include.","name":"data_fields","in":"query"},{"schema":{"type":"string","description":"Your Instantly API key. Optional if you have connected your Instantly account in the dashboard."},"required":false,"description":"Your Instantly API key. Optional if you have connected your Instantly account in the dashboard.","name":"api_key","in":"query"}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InstantlyResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-credits-cost":{"unit":"call","amount":0,"billing_shape":"per_call"},"description":"Credits: free.","x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/instantly/audit-logs":{"get":{"summary":"List Audit Logs","tags":["Instantly"],"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"integer","minimum":1,"maximum":1000},"required":false,"name":"limit","in":"query"},{"schema":{"type":"string"},"required":false,"name":"starting_after","in":"query"},{"schema":{"type":"string"},"required":false,"name":"activity_type","in":"query"},{"schema":{"type":"string"},"required":false,"name":"search","in":"query"},{"schema":{"type":"string"},"required":false,"name":"start_date","in":"query"},{"schema":{"type":"string"},"required":false,"name":"end_date","in":"query"},{"schema":{"type":"string","description":"Your Instantly API key. Optional if you have connected your Instantly account in the dashboard."},"required":false,"description":"Your Instantly API key. Optional if you have connected your Instantly account in the dashboard.","name":"api_key","in":"query"}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InstantlyResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-credits-cost":{"unit":"call","amount":0,"billing_shape":"per_call"},"description":"Credits: free.","x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/instantly/inbox-placement-tests":{"post":{"summary":"Create Inbox Placement Test","tags":["Instantly"],"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","description":"Test name."},"type":{"type":"integer","description":"1=one-time, 2=automated."},"sending_method":{"type":"integer","description":"1=from Instantly, 2=external."},"email_subject":{"type":"string","description":"Test email subject."},"email_body":{"type":"string","description":"Test email body (HTML)."},"emails":{"type":"array","items":{"type":"string","format":"email"},"description":"Sending email accounts."},"delivery_mode":{"type":"integer","description":"1=one-by-one, 2=all-together."},"description":{"type":"string"},"campaign_id":{"type":"string"},"text_only":{"type":"boolean"},"run_immediately":{"type":"boolean"},"api_key":{"type":"string","description":"Your Instantly API key. Optional if you have connected your Instantly account in the dashboard."}},"required":["name","type","sending_method","email_subject","email_body","emails"],"title":"CreateInboxPlacementTestRequest","example":{"name":"ColdIQ Deliverability Check","type":1,"sending_method":1,"email_subject":"Test: ColdIQ outreach","email_body":"<p>Hello, this is a deliverability test from ColdIQ.</p>","emails":["michel@coldiq.com"],"run_immediately":true}}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InstantlyResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-credits-cost":{"unit":"call","amount":0,"billing_shape":"per_call"},"description":"Credits: free.","x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}},"get":{"summary":"List Inbox Placement Tests","tags":["Instantly"],"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"integer","minimum":1,"maximum":100,"description":"Number of records to return (1–100)."},"required":false,"description":"Number of records to return (1–100).","name":"limit","in":"query"},{"schema":{"type":"string","description":"Pagination cursor."},"required":false,"description":"Pagination cursor.","name":"starting_after","in":"query"},{"schema":{"type":"string"},"required":false,"name":"search","in":"query"},{"schema":{"type":"integer","nullable":true},"required":false,"name":"status","in":"query"},{"schema":{"type":"string"},"required":false,"name":"sort_order","in":"query"},{"schema":{"type":"string","description":"Your Instantly API key. Optional if you have connected your Instantly account in the dashboard."},"required":false,"description":"Your Instantly API key. Optional if you have connected your Instantly account in the dashboard.","name":"api_key","in":"query"}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InstantlyResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-credits-cost":{"unit":"call","amount":0,"billing_shape":"per_call"},"description":"Credits: free.","x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/instantly/inbox-placement-tests/email-service-provider-options":{"get":{"summary":"Get Email Service Provider Options","tags":["Instantly"],"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","description":"Your Instantly API key. Optional if you have connected your Instantly account in the dashboard."},"required":false,"description":"Your Instantly API key. Optional if you have connected your Instantly account in the dashboard.","name":"api_key","in":"query"}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InstantlyResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-credits-cost":{"unit":"call","amount":0,"billing_shape":"per_call"},"description":"Credits: free.","x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/instantly/inbox-placement-tests/{id}":{"get":{"summary":"Get Inbox Placement Test","tags":["Instantly"],"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","description":"Inbox placement test UUID."},"required":true,"description":"Inbox placement test UUID.","name":"id","in":"path"},{"schema":{"type":"boolean","nullable":true},"required":false,"name":"with_metadata","in":"query"},{"schema":{"type":"string","description":"Your Instantly API key. Optional if you have connected your Instantly account in the dashboard."},"required":false,"description":"Your Instantly API key. Optional if you have connected your Instantly account in the dashboard.","name":"api_key","in":"query"}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InstantlyResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-credits-cost":{"unit":"call","amount":0,"billing_shape":"per_call"},"description":"Credits: free.","x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}},"patch":{"summary":"Patch Inbox Placement Test","tags":["Instantly"],"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","description":"Inbox placement test UUID."},"required":true,"description":"Inbox placement test UUID.","name":"id","in":"path"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string"},"status":{"type":"integer"},"api_key":{"type":"string","description":"Your Instantly API key. Optional if you have connected your Instantly account in the dashboard."}},"title":"PatchInboxPlacementTestRequest","example":{"name":"ColdIQ Deliverability Check v2"}}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InstantlyResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-credits-cost":{"unit":"call","amount":0,"billing_shape":"per_call"},"description":"Credits: free.","x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}},"delete":{"summary":"Delete Inbox Placement Test","tags":["Instantly"],"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","description":"Inbox placement test UUID."},"required":true,"description":"Inbox placement test UUID.","name":"id","in":"path"},{"schema":{"type":"string","description":"Your Instantly API key. Optional if you have connected your Instantly account in the dashboard."},"required":false,"description":"Your Instantly API key. Optional if you have connected your Instantly account in the dashboard.","name":"api_key","in":"query"}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InstantlyResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-credits-cost":{"unit":"call","amount":0,"billing_shape":"per_call"},"description":"Credits: free.","x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/instantly/inbox-placement-analytics":{"get":{"summary":"List Inbox Placement Analytics","tags":["Instantly"],"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","description":"Inbox placement test UUID (required)."},"required":true,"description":"Inbox placement test UUID (required).","name":"test_id","in":"query"},{"schema":{"type":"integer","minimum":1,"maximum":100},"required":false,"name":"limit","in":"query"},{"schema":{"type":"string"},"required":false,"name":"starting_after","in":"query"},{"schema":{"type":"string"},"required":false,"name":"date_from","in":"query"},{"schema":{"type":"string"},"required":false,"name":"date_to","in":"query"},{"schema":{"type":"integer","nullable":true},"required":false,"name":"recipient_geo","in":"query"},{"schema":{"type":"integer","nullable":true},"required":false,"name":"recipient_type","in":"query"},{"schema":{"type":"integer","nullable":true},"required":false,"name":"recipient_esp","in":"query"},{"schema":{"type":"string"},"required":false,"name":"sender_email","in":"query"},{"schema":{"type":"string","description":"Your Instantly API key. Optional if you have connected your Instantly account in the dashboard."},"required":false,"description":"Your Instantly API key. Optional if you have connected your Instantly account in the dashboard.","name":"api_key","in":"query"}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InstantlyResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-credits-cost":{"unit":"call","amount":0,"billing_shape":"per_call"},"description":"Credits: free.","x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/instantly/inbox-placement-analytics/stats-by-test-id":{"post":{"summary":"Get Inbox Placement Stats by Test ID","tags":["Instantly"],"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"test_ids":{"type":"array","items":{"type":"string"},"minItems":1,"description":"Inbox placement test UUIDs."},"date_from":{"type":"string"},"date_to":{"type":"string"},"api_key":{"type":"string","description":"Your Instantly API key. Optional if you have connected your Instantly account in the dashboard."}},"required":["test_ids"],"title":"InboxPlacementStatsByTestIdRequest","example":{"test_ids":["00000000-0000-0000-0000-000000000001"]}}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InstantlyResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-credits-cost":{"unit":"call","amount":0,"billing_shape":"per_call"},"description":"Credits: free.","x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/instantly/inbox-placement-analytics/deliverability-insights":{"post":{"summary":"Get Inbox Placement Deliverability Insights","tags":["Instantly"],"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"test_id":{"type":"string","description":"Inbox placement test UUID."},"date_from":{"type":"string"},"date_to":{"type":"string"},"recipient_geo":{"type":"array","items":{"type":"integer"}},"recipient_type":{"type":"array","items":{"type":"integer"}},"recipient_esp":{"type":"array","items":{"type":"integer"}},"api_key":{"type":"string","description":"Your Instantly API key. Optional if you have connected your Instantly account in the dashboard."}},"required":["test_id"],"title":"InboxPlacementDeliverabilityInsightsRequest","example":{"test_id":"00000000-0000-0000-0000-000000000001"}}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InstantlyResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-credits-cost":{"unit":"call","amount":0,"billing_shape":"per_call"},"description":"Credits: free.","x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/instantly/inbox-placement-analytics/stats-by-date":{"post":{"summary":"Get Inbox Placement Stats by Date","tags":["Instantly"],"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"test_id":{"type":"string","description":"Inbox placement test UUID."},"date_from":{"type":"string"},"date_to":{"type":"string"},"recipient_geo":{"type":"array","items":{"type":"integer"}},"recipient_type":{"type":"array","items":{"type":"integer"}},"recipient_esp":{"type":"array","items":{"type":"integer"}},"sender_email":{"type":"string"},"api_key":{"type":"string","description":"Your Instantly API key. Optional if you have connected your Instantly account in the dashboard."}},"required":["test_id"],"title":"InboxPlacementStatsByDateRequest","example":{"test_id":"00000000-0000-0000-0000-000000000001"}}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InstantlyResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-credits-cost":{"unit":"call","amount":0,"billing_shape":"per_call"},"description":"Credits: free.","x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/instantly/inbox-placement-analytics/{id}":{"get":{"summary":"Get Inbox Placement Analytics","tags":["Instantly"],"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","description":"Analytics record UUID."},"required":true,"description":"Analytics record UUID.","name":"id","in":"path"},{"schema":{"type":"string","description":"Your Instantly API key. Optional if you have connected your Instantly account in the dashboard."},"required":false,"description":"Your Instantly API key. Optional if you have connected your Instantly account in the dashboard.","name":"api_key","in":"query"}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InstantlyResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-credits-cost":{"unit":"call","amount":0,"billing_shape":"per_call"},"description":"Credits: free.","x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/instantly/inbox-placement-reports":{"get":{"summary":"List Inbox Placement Reports","tags":["Instantly"],"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","description":"Inbox placement test UUID (required)."},"required":true,"description":"Inbox placement test UUID (required).","name":"test_id","in":"query"},{"schema":{"type":"integer","minimum":1,"maximum":100},"required":false,"name":"limit","in":"query"},{"schema":{"type":"string"},"required":false,"name":"starting_after","in":"query"},{"schema":{"type":"string"},"required":false,"name":"date_from","in":"query"},{"schema":{"type":"string"},"required":false,"name":"date_to","in":"query"},{"schema":{"type":"boolean","nullable":true},"required":false,"name":"skip_spam_assassin_report","in":"query"},{"schema":{"type":"boolean","nullable":true},"required":false,"name":"skip_blacklist_report","in":"query"},{"schema":{"type":"string","description":"Your Instantly API key. Optional if you have connected your Instantly account in the dashboard."},"required":false,"description":"Your Instantly API key. Optional if you have connected your Instantly account in the dashboard.","name":"api_key","in":"query"}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InstantlyResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-credits-cost":{"unit":"call","amount":0,"billing_shape":"per_call"},"description":"Credits: free.","x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/instantly/inbox-placement-reports/{id}":{"get":{"summary":"Get Inbox Placement Report","tags":["Instantly"],"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","description":"Report UUID."},"required":true,"description":"Report UUID.","name":"id","in":"path"},{"schema":{"type":"string","description":"Your Instantly API key. Optional if you have connected your Instantly account in the dashboard."},"required":false,"description":"Your Instantly API key. Optional if you have connected your Instantly account in the dashboard.","name":"api_key","in":"query"}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InstantlyResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-credits-cost":{"unit":"call","amount":0,"billing_shape":"per_call"},"description":"Credits: free.","x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/instantly/supersearch-enrichment":{"post":{"summary":"Create SuperSearch Enrichment","tags":["Instantly"],"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"resource_id":{"type":"string","description":"Campaign or list UUID."},"type":{"type":"string","enum":["work_email_enrichment","fully_enriched_profile","email_verification","joblisting","technologies","news","funding","ai_enrichment","custom_flow"],"description":"Enrichment type."},"limit":{"type":"integer","minimum":1,"maximum":5000},"filters":{"type":"object","properties":{"locations":{"type":"array","items":{"type":"string"}},"department":{"type":"array","items":{"type":"string"}},"level":{"type":"array","items":{"type":"string"}},"employeeCount":{"type":"array","items":{"type":"string"}},"revenue":{"type":"array","items":{"type":"string"}},"title":{"type":"array","items":{"type":"string"}},"name":{"type":"string"},"company_name":{"type":"string"},"domains":{"type":"array","items":{"type":"string"}},"industry":{"type":"array","items":{"type":"string"}},"skip_owned_leads":{"type":"boolean"},"show_one_lead_per_company":{"type":"boolean"}},"additionalProperties":{"nullable":true},"description":"SuperSearch lead filters selecting which leads to enrich. Same shape as the SuperSearch search_filters (title, level, department, locations, industry, employeeCount, revenue, domains, company_name, …)."},"api_key":{"type":"string","description":"Your Instantly API key. Optional if you have connected your Instantly account in the dashboard."}},"required":["resource_id","type"],"title":"CreateEnrichmentRequest","example":{"resource_id":"00000000-0000-0000-0000-000000000001","type":"work_email_enrichment","limit":100,"filters":{"title":["Head of GTM"],"level":["Director","VP"]}}}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InstantlyResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-credits-cost":{"unit":"call","amount":0,"billing_shape":"per_call"},"description":"Credits: free.","x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/instantly/supersearch-enrichment/enrich-leads-from-supersearch":{"post":{"summary":"Enrich Leads from SuperSearch","tags":["Instantly"],"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"search_filters":{"type":"object","properties":{"locations":{"type":"array","items":{"type":"string"}},"department":{"type":"array","items":{"type":"string"}},"level":{"type":"array","items":{"type":"string"}},"employeeCount":{"type":"array","items":{"type":"string"}},"revenue":{"type":"array","items":{"type":"string"}},"title":{"type":"array","items":{"type":"string"}},"name":{"type":"string"},"company_name":{"type":"string"},"domains":{"type":"array","items":{"type":"string"}},"industry":{"type":"array","items":{"type":"string"}},"skip_owned_leads":{"type":"boolean"},"show_one_lead_per_company":{"type":"boolean"}},"additionalProperties":{"nullable":true},"description":"Lead search filters."},"limit":{"type":"integer","minimum":1,"maximum":5000,"description":"Maximum leads to enrich (1–5,000)."},"search_name":{"type":"string"},"work_email_enrichment":{"type":"boolean"},"fully_enriched_profile":{"type":"boolean"},"resource_id":{"type":"string"},"resource_type":{"type":"integer","description":"1=list, 2=campaign."},"list_name":{"type":"string"},"auto_update":{"type":"boolean"},"evergreen":{"type":"boolean"},"api_key":{"type":"string","description":"Your Instantly API key. Optional if you have connected your Instantly account in the dashboard."}},"required":["search_filters","limit"],"title":"EnrichLeadsFromSupersearchRequest","example":{"search_filters":{"title":["CEO","Founder"],"industry":["Software"],"employeeCount":["1-10","11-50"]},"limit":100,"work_email_enrichment":true,"list_name":"ColdIQ CEO Software Leads"}}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InstantlyResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-credits-cost":{"unit":"call","amount":0,"billing_shape":"per_call"},"description":"Credits: free.","x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/instantly/supersearch-enrichment/run":{"post":{"summary":"Run SuperSearch Enrichment","tags":["Instantly"],"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"resource_id":{"type":"string","description":"Campaign or list UUID."},"lead_ids":{"type":"array","items":{"type":"string"},"minItems":1,"maxItems":10000},"limit":{"type":"integer"},"overwrite":{"type":"boolean"},"api_key":{"type":"string","description":"Your Instantly API key. Optional if you have connected your Instantly account in the dashboard."}},"required":["resource_id"],"title":"RunEnrichmentRequest","example":{"resource_id":"00000000-0000-0000-0000-000000000001"}}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InstantlyResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-credits-cost":{"unit":"call","amount":0,"billing_shape":"per_call"},"description":"Credits: free.","x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/instantly/supersearch-enrichment/count-leads-from-supersearch":{"post":{"summary":"Count Leads from SuperSearch","tags":["Instantly"],"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"search_filters":{"type":"object","properties":{"locations":{"type":"array","items":{"type":"string"}},"department":{"type":"array","items":{"type":"string"}},"level":{"type":"array","items":{"type":"string"}},"employeeCount":{"type":"array","items":{"type":"string"}},"revenue":{"type":"array","items":{"type":"string"}},"title":{"type":"array","items":{"type":"string"}},"name":{"type":"string"},"company_name":{"type":"string"},"domains":{"type":"array","items":{"type":"string"}},"industry":{"type":"array","items":{"type":"string"}},"skip_owned_leads":{"type":"boolean"},"show_one_lead_per_company":{"type":"boolean"}},"additionalProperties":{"nullable":true},"description":"Lead search filters."},"skip_owned_leads":{"type":"boolean"},"show_one_lead_per_company":{"type":"boolean"},"api_key":{"type":"string","description":"Your Instantly API key. Optional if you have connected your Instantly account in the dashboard."}},"required":["search_filters"],"title":"CountLeadsFromSupersearchRequest","example":{"search_filters":{"title":["CEO","Founder"],"industry":["Software"]}}}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InstantlyResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-credits-cost":{"unit":"call","amount":0,"billing_shape":"per_call"},"description":"Credits: free.","x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/instantly/supersearch-enrichment/preview-leads-from-supersearch":{"post":{"summary":"Preview Leads from SuperSearch","tags":["Instantly"],"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"search_filters":{"type":"object","properties":{"locations":{"type":"array","items":{"type":"string"}},"department":{"type":"array","items":{"type":"string"}},"level":{"type":"array","items":{"type":"string"}},"employeeCount":{"type":"array","items":{"type":"string"}},"revenue":{"type":"array","items":{"type":"string"}},"title":{"type":"array","items":{"type":"string"}},"name":{"type":"string"},"company_name":{"type":"string"},"domains":{"type":"array","items":{"type":"string"}},"industry":{"type":"array","items":{"type":"string"}},"skip_owned_leads":{"type":"boolean"},"show_one_lead_per_company":{"type":"boolean"}},"additionalProperties":{"nullable":true},"description":"Lead search filters."},"api_key":{"type":"string","description":"Your Instantly API key. Optional if you have connected your Instantly account in the dashboard."}},"required":["search_filters"],"title":"PreviewLeadsFromSupersearchRequest","example":{"search_filters":{"title":["CEO","Founder"],"company_name":"ColdIQ"}}}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InstantlyResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-credits-cost":{"unit":"call","amount":0,"billing_shape":"per_call"},"description":"Credits: free.","x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/instantly/supersearch-enrichment/ai":{"post":{"summary":"Create AI Enrichment","tags":["Instantly"],"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"resource_id":{"type":"string","description":"Campaign or list UUID."},"output_column":{"type":"string","description":"Column name for the AI output."},"resource_type":{"type":"integer","description":"1=Campaign, 2=List."},"model_version":{"type":"string","description":"AI model to use (e.g., gpt-4o, claude-3.5-sonnet)."},"prompt":{"type":"string","description":"Prompt template. Use {{variable}} placeholders."},"limit":{"type":"integer"},"overwrite":{"type":"boolean"},"auto_update":{"type":"boolean"},"api_key":{"type":"string","description":"Your Instantly API key. Optional if you have connected your Instantly account in the dashboard."}},"required":["resource_id","output_column","resource_type","model_version"],"title":"CreateAiEnrichmentRequest","example":{"resource_id":"00000000-0000-0000-0000-000000000001","output_column":"personalization","resource_type":1,"model_version":"gpt-4o","prompt":"Write a 1-sentence personalization for {{first_name}} at {{company_name}}."}}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InstantlyResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-credits-cost":{"unit":"call","amount":0,"billing_shape":"per_call"},"description":"Credits: free.","x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/instantly/supersearch-enrichment/{resource_id}":{"get":{"summary":"Get SuperSearch Enrichment Status","tags":["Instantly"],"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","description":"Campaign or list UUID."},"required":true,"description":"Campaign or list UUID.","name":"resource_id","in":"path"},{"schema":{"type":"string","description":"Your Instantly API key. Optional if you have connected your Instantly account in the dashboard."},"required":false,"description":"Your Instantly API key. Optional if you have connected your Instantly account in the dashboard.","name":"api_key","in":"query"}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InstantlyResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-credits-cost":{"unit":"call","amount":0,"billing_shape":"per_call"},"description":"Credits: free.","x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/instantly/supersearch-enrichment/ai/{resource_id}/in-progress":{"get":{"summary":"Get AI Enrichment In-Progress Status","tags":["Instantly"],"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","description":"Campaign or list UUID."},"required":true,"description":"Campaign or list UUID.","name":"resource_id","in":"path"},{"schema":{"type":"string","description":"Your Instantly API key. Optional if you have connected your Instantly account in the dashboard."},"required":false,"description":"Your Instantly API key. Optional if you have connected your Instantly account in the dashboard.","name":"api_key","in":"query"}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InstantlyResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-credits-cost":{"unit":"call","amount":0,"billing_shape":"per_call"},"description":"Credits: free.","x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/instantly/supersearch-enrichment/history/{resource_id}":{"get":{"summary":"Get SuperSearch Enrichment History","tags":["Instantly"],"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","description":"Campaign or list UUID."},"required":true,"description":"Campaign or list UUID.","name":"resource_id","in":"path"},{"schema":{"type":"integer","nullable":true},"required":false,"name":"offset","in":"query"},{"schema":{"type":"integer","nullable":true},"required":false,"name":"limit","in":"query"},{"schema":{"type":"string","description":"Your Instantly API key. Optional if you have connected your Instantly account in the dashboard."},"required":false,"description":"Your Instantly API key. Optional if you have connected your Instantly account in the dashboard.","name":"api_key","in":"query"}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InstantlyResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-credits-cost":{"unit":"call","amount":0,"billing_shape":"per_call"},"description":"Credits: free.","x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/instantly/supersearch-enrichment/{resource_id}/settings":{"patch":{"summary":"Update SuperSearch Enrichment Settings","tags":["Instantly"],"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","description":"Campaign or list UUID."},"required":true,"description":"Campaign or list UUID.","name":"resource_id","in":"path"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"auto_update":{"type":"boolean"},"skip_rows_without_email":{"type":"boolean"},"is_evergreen":{"type":"boolean"},"api_key":{"type":"string","description":"Your Instantly API key. Optional if you have connected your Instantly account in the dashboard."}},"title":"PatchEnrichmentSettingsRequest","example":{"auto_update":true,"is_evergreen":false}}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InstantlyResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-credits-cost":{"unit":"call","amount":0,"billing_shape":"per_call"},"description":"Credits: free.","x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/instantly/oauth/google/init":{"post":{"summary":"Initialize Google OAuth","tags":["Instantly"],"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"api_key":{"type":"string","description":"Your Instantly API key. Optional if you have connected your Instantly account in the dashboard."}},"title":"InitGoogleOAuthRequest","example":{}}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InstantlyResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-credits-cost":{"unit":"call","amount":0,"billing_shape":"per_call"},"description":"Credits: free.","x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/instantly/oauth/microsoft/init":{"post":{"summary":"Initialize Microsoft OAuth","tags":["Instantly"],"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"api_key":{"type":"string","description":"Your Instantly API key. Optional if you have connected your Instantly account in the dashboard."}},"title":"InitMicrosoftOAuthRequest","example":{}}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InstantlyResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-credits-cost":{"unit":"call","amount":0,"billing_shape":"per_call"},"description":"Credits: free.","x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/instantly/oauth/session/status/{sessionId}":{"get":{"summary":"Get OAuth Session Status","tags":["Instantly"],"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","description":"OAuth session ID."},"required":true,"description":"OAuth session ID.","name":"sessionId","in":"path"},{"schema":{"type":"string","description":"Your Instantly API key. Optional if you have connected your Instantly account in the dashboard."},"required":false,"description":"Your Instantly API key. Optional if you have connected your Instantly account in the dashboard.","name":"api_key","in":"query"}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InstantlyResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-credits-cost":{"unit":"call","amount":0,"billing_shape":"per_call"},"description":"Credits: free.","x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/instantly/api-keys":{"post":{"summary":"Create API Key","tags":["Instantly"],"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string"},"scopes":{"type":"array","items":{"type":"string"}},"api_key":{"type":"string","description":"Your Instantly API key. Optional if you have connected your Instantly account in the dashboard."}},"title":"CreateApiKeyRequest","example":{"name":"My integration key","scopes":["campaigns:read","leads:create"]}}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InstantlyResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-credits-cost":{"unit":"call","amount":0,"billing_shape":"per_call"},"description":"Credits: free.","x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}},"get":{"summary":"List API Keys","tags":["Instantly"],"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","description":"Your Instantly API key. Optional if you have connected your Instantly account in the dashboard."},"required":false,"description":"Your Instantly API key. Optional if you have connected your Instantly account in the dashboard.","name":"api_key","in":"query"}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InstantlyResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-credits-cost":{"unit":"call","amount":0,"billing_shape":"per_call"},"description":"Credits: free.","x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/instantly/api-keys/{id}":{"delete":{"summary":"Delete API Key","tags":["Instantly"],"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","description":"API key ID."},"required":true,"description":"API key ID.","name":"id","in":"path"},{"schema":{"type":"string","description":"Your Instantly API key. Optional if you have connected your Instantly account in the dashboard."},"required":false,"description":"Your Instantly API key. Optional if you have connected your Instantly account in the dashboard.","name":"api_key","in":"query"}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InstantlyResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-credits-cost":{"unit":"call","amount":0,"billing_shape":"per_call"},"description":"Credits: free.","x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/instantly/dfy-email-account-orders":{"post":{"summary":"Place DFY Email Account Order","tags":["Instantly"],"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"items":{"type":"array","items":{"type":"object","properties":{"domain":{"type":"string","description":"Domain name."},"email_provider":{"type":"string"},"forwarding_domain":{"type":"string"},"accounts":{"type":"array","items":{"type":"object","properties":{"email_address_prefix":{"type":"string"},"first_name":{"type":"string"},"last_name":{"type":"string"}},"required":["email_address_prefix","first_name","last_name"]},"maxItems":5,"description":"Email accounts to create (max 5 per domain)."}},"required":["domain"]},"minItems":1},"order_type":{"type":"string","enum":["dfy","pre_warmed_up","extra_accounts"],"description":"Order type."},"simulation":{"type":"boolean","description":"Validate the order without charging. Recommended before placing real orders."},"api_key":{"type":"string","description":"Your Instantly API key. Optional if you have connected your Instantly account in the dashboard."}},"required":["items","order_type"],"title":"PlaceDfyEmailAccountOrderRequest","example":{"items":[{"domain":"coldiq-outreach.com","accounts":[{"email_address_prefix":"michel","first_name":"Michel","last_name":"Lieben"}]}],"order_type":"dfy","simulation":true}}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InstantlyResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-credits-cost":{"unit":"call","amount":0,"billing_shape":"per_call"},"description":"Credits: free.","x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}},"get":{"summary":"List DFY Email Account Orders","tags":["Instantly"],"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"integer","minimum":1,"maximum":100,"description":"Number of records to return (1–100)."},"required":false,"description":"Number of records to return (1–100).","name":"limit","in":"query"},{"schema":{"type":"string","description":"Pagination cursor."},"required":false,"description":"Pagination cursor.","name":"starting_after","in":"query"},{"schema":{"type":"string","description":"Your Instantly API key. Optional if you have connected your Instantly account in the dashboard."},"required":false,"description":"Your Instantly API key. Optional if you have connected your Instantly account in the dashboard.","name":"api_key","in":"query"}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InstantlyResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-credits-cost":{"unit":"call","amount":0,"billing_shape":"per_call"},"description":"Credits: free.","x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/instantly/dfy-email-account-orders/domains/check":{"post":{"summary":"Check Domain Availability","tags":["Instantly"],"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"domains":{"type":"array","items":{"type":"string"},"maxItems":50,"description":"Domains to check (max 50, .com/.org only)."},"api_key":{"type":"string","description":"Your Instantly API key. Optional if you have connected your Instantly account in the dashboard."}},"required":["domains"],"title":"CheckDomainsAvailabilityRequest","example":{"domains":["coldiq-outreach.com","coldiq-sales.com"]}}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InstantlyResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-credits-cost":{"unit":"call","amount":0,"billing_shape":"per_call"},"description":"Credits: free.","x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/instantly/dfy-email-account-orders/domains/similar":{"post":{"summary":"Generate Similar Available Domains","tags":["Instantly"],"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"domain":{"type":"string","description":"Domain to find similar available alternatives for."},"tlds":{"type":"array","items":{"type":"string"},"maxItems":2,"description":"TLDs to search (max 2). Defaults to [\"com\", \"org\"]."},"api_key":{"type":"string","description":"Your Instantly API key. Optional if you have connected your Instantly account in the dashboard."}},"required":["domain"],"title":"GenerateSimilarAvailableDomainsRequest","example":{"domain":"coldiq.com"}}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InstantlyResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-credits-cost":{"unit":"call","amount":0,"billing_shape":"per_call"},"description":"Credits: free.","x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/instantly/dfy-email-account-orders/domains/pre-warmed-up-list":{"post":{"summary":"Get Pre-Warmed Up Domains","tags":["Instantly"],"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"extensions":{"type":"array","items":{"type":"string"},"description":"Domain extensions to filter by. Defaults to [\"com\", \"org\", \"co\"]."},"search":{"type":"string"},"api_key":{"type":"string","description":"Your Instantly API key. Optional if you have connected your Instantly account in the dashboard."}},"title":"GetPreWarmedUpDomainsRequest","example":{"extensions":["com","org"]}}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InstantlyResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-credits-cost":{"unit":"call","amount":0,"billing_shape":"per_call"},"description":"Credits: free.","x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/instantly/dfy-email-account-orders/accounts":{"get":{"summary":"List DFY Email Accounts","tags":["Instantly"],"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"integer","minimum":1,"maximum":100,"description":"Number of records to return (1–100)."},"required":false,"description":"Number of records to return (1–100).","name":"limit","in":"query"},{"schema":{"type":"string","description":"Pagination cursor."},"required":false,"description":"Pagination cursor.","name":"starting_after","in":"query"},{"schema":{"type":"boolean","nullable":true,"description":"Include account passwords in the response."},"required":false,"description":"Include account passwords in the response.","name":"with_passwords","in":"query"},{"schema":{"type":"string","description":"Your Instantly API key. Optional if you have connected your Instantly account in the dashboard."},"required":false,"description":"Your Instantly API key. Optional if you have connected your Instantly account in the dashboard.","name":"api_key","in":"query"}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InstantlyResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-credits-cost":{"unit":"call","amount":0,"billing_shape":"per_call"},"description":"Credits: free.","x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/instantly/dfy-email-account-orders/accounts/cancel":{"post":{"summary":"Cancel DFY Email Accounts","tags":["Instantly"],"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"accounts":{"type":"array","items":{"type":"string","format":"email"},"minItems":1,"description":"Email addresses of DFY accounts to cancel."},"api_key":{"type":"string","description":"Your Instantly API key. Optional if you have connected your Instantly account in the dashboard."}},"required":["accounts"],"title":"CancelDfyEmailAccountsRequest","example":{"accounts":["michel@coldiq-outreach.com"]}}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InstantlyResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-credits-cost":{"unit":"call","amount":0,"billing_shape":"per_call"},"description":"Credits: free.","x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/instantly/workspace":{"patch":{"summary":"Patch Workspace","tags":["Instantly"],"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","description":"Workspace display name."},"org_logo_url":{"type":"string","format":"uri","description":"Organization logo URL."},"api_key":{"type":"string","description":"Your Instantly API key. Optional if you have connected your Instantly account in the dashboard."}},"title":"PatchWorkspaceRequest","example":{"name":"ColdIQ"}}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InstantlyResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-credits-cost":{"unit":"call","amount":0,"billing_shape":"per_call"},"description":"Credits: free.","x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/lemlist/campaigns":{"get":{"summary":"List Campaigns","tags":["Lemlist"],"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"integer","minimum":1,"maximum":100,"description":"Max results to return."},"required":false,"description":"Max results to return.","name":"limit","in":"query"},{"schema":{"type":"string","minLength":1,"description":"Your Lemlist API key. Optional if you have connected your Lemlist account in the dashboard."},"required":false,"description":"Your Lemlist API key. Optional if you have connected your Lemlist account in the dashboard.","name":"api_key","in":"query"}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LemlistResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-credits-cost":{"unit":"call","amount":0,"billing_shape":"per_call"},"description":"Credits: free.","x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}},"post":{"summary":"Create Campaign","tags":["Lemlist"],"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","description":"Campaign name."},"type":{"type":"string","enum":["automated","manual"],"description":"Campaign type."},"scheduleIds":{"type":"array","items":{"type":"string"},"description":"Schedule IDs to attach."},"senderIds":{"type":"array","items":{"type":"string"},"description":"Sender email account IDs."},"labels":{"type":"array","items":{"type":"string"},"description":"Label names."},"api_key":{"type":"string","minLength":1,"description":"Your Lemlist API key. Optional if you have connected your Lemlist account in the dashboard."}},"required":["name"],"title":"CreateCampaignRequest","example":{"name":"ColdIQ Outbound Q1"}}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LemlistResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-credits-cost":{"unit":"call","amount":0,"billing_shape":"per_call"},"description":"Credits: free.","x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/lemlist/campaigns/{campaignId}":{"get":{"summary":"Get Campaign","tags":["Lemlist"],"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","description":"Campaign ID."},"required":true,"description":"Campaign ID.","name":"campaignId","in":"path"},{"schema":{"type":"string","minLength":1,"description":"Your Lemlist API key. Optional if you have connected your Lemlist account in the dashboard."},"required":false,"description":"Your Lemlist API key. Optional if you have connected your Lemlist account in the dashboard.","name":"api_key","in":"query"}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LemlistResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-credits-cost":{"unit":"call","amount":0,"billing_shape":"per_call"},"description":"Credits: free.","x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}},"patch":{"summary":"Update Campaign","tags":["Lemlist"],"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","description":"Campaign ID."},"required":true,"description":"Campaign ID.","name":"campaignId","in":"path"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string"},"scheduleIds":{"type":"array","items":{"type":"string"}},"senderIds":{"type":"array","items":{"type":"string"}},"labels":{"type":"array","items":{"type":"string"}},"api_key":{"type":"string","minLength":1,"description":"Your Lemlist API key. Optional if you have connected your Lemlist account in the dashboard."}},"title":"UpdateCampaignRequest","example":{"name":"ColdIQ Outbound Q2"}}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LemlistResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-credits-cost":{"unit":"call","amount":0,"billing_shape":"per_call"},"description":"Credits: free.","x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/lemlist/campaigns/{campaignId}/duplicate":{"post":{"summary":"Duplicate Campaign","tags":["Lemlist"],"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","description":"Campaign ID."},"required":true,"description":"Campaign ID.","name":"campaignId","in":"path"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"api_key":{"type":"string","minLength":1,"description":"Your Lemlist API key. Optional if you have connected your Lemlist account in the dashboard."}},"title":"DuplicateCampaignRequest","example":{}}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LemlistResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-credits-cost":{"unit":"call","amount":0,"billing_shape":"per_call"},"description":"Credits: free.","x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/lemlist/campaigns/{campaignId}/start":{"post":{"summary":"Start Campaign","tags":["Lemlist"],"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","description":"Campaign ID."},"required":true,"description":"Campaign ID.","name":"campaignId","in":"path"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"api_key":{"type":"string","minLength":1,"description":"Your Lemlist API key. Optional if you have connected your Lemlist account in the dashboard."}},"title":"StartCampaignRequest","example":{}}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LemlistResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-credits-cost":{"unit":"call","amount":0,"billing_shape":"per_call"},"description":"Credits: free.","x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/lemlist/campaigns/{campaignId}/pause":{"post":{"summary":"Pause Campaign","tags":["Lemlist"],"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","description":"Campaign ID."},"required":true,"description":"Campaign ID.","name":"campaignId","in":"path"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"api_key":{"type":"string","minLength":1,"description":"Your Lemlist API key. Optional if you have connected your Lemlist account in the dashboard."}},"title":"PauseCampaignRequest","example":{}}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LemlistResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-credits-cost":{"unit":"call","amount":0,"billing_shape":"per_call"},"description":"Credits: free.","x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/lemlist/campaigns/{campaignId}/stats":{"get":{"summary":"Get Campaign Stats","tags":["Lemlist"],"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","description":"Campaign ID."},"required":true,"description":"Campaign ID.","name":"campaignId","in":"path"},{"schema":{"type":"string","description":"Start date in ISO format (e.g., 2026-01-01)."},"required":true,"description":"Start date in ISO format (e.g., 2026-01-01).","name":"startDate","in":"query"},{"schema":{"type":"string","description":"End date in ISO format (e.g., 2026-12-31)."},"required":true,"description":"End date in ISO format (e.g., 2026-12-31).","name":"endDate","in":"query"},{"schema":{"type":"string","description":"IANA timezone (e.g., Europe/Brussels). Defaults to UTC."},"required":false,"description":"IANA timezone (e.g., Europe/Brussels). Defaults to UTC.","name":"timezone","in":"query"},{"schema":{"type":"string","minLength":1,"description":"Your Lemlist API key. Optional if you have connected your Lemlist account in the dashboard."},"required":false,"description":"Your Lemlist API key. Optional if you have connected your Lemlist account in the dashboard.","name":"api_key","in":"query"}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LemlistResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-credits-cost":{"unit":"call","amount":0,"billing_shape":"per_call"},"description":"Credits: free.","x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/lemlist/campaigns/{campaignId}/export":{"post":{"summary":"Export Campaign Stats","tags":["Lemlist"],"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","description":"Campaign ID."},"required":true,"description":"Campaign ID.","name":"campaignId","in":"path"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"api_key":{"type":"string","minLength":1,"description":"Your Lemlist API key. Optional if you have connected your Lemlist account in the dashboard."}},"title":"ExportCampaignStatsRequest","example":{}}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LemlistResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-credits-cost":{"unit":"call","amount":0,"billing_shape":"per_call"},"description":"Credits: free.","x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/lemlist/campaigns/{campaignId}/export-status":{"get":{"summary":"Get Campaign Export Status","tags":["Lemlist"],"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","description":"Campaign ID."},"required":true,"description":"Campaign ID.","name":"campaignId","in":"path"},{"schema":{"type":"string","minLength":1,"description":"Your Lemlist API key. Optional if you have connected your Lemlist account in the dashboard."},"required":false,"description":"Your Lemlist API key. Optional if you have connected your Lemlist account in the dashboard.","name":"api_key","in":"query"}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LemlistResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-credits-cost":{"unit":"call","amount":0,"billing_shape":"per_call"},"description":"Credits: free.","x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/lemlist/campaigns/{campaignId}/leads":{"post":{"summary":"Create Lead in Campaign","tags":["Lemlist"],"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","description":"Campaign ID."},"required":true,"description":"Campaign ID.","name":"campaignId","in":"path"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"email":{"type":"string","format":"email","description":"Lead email address."},"firstName":{"type":"string"},"lastName":{"type":"string"},"companyName":{"type":"string"},"jobTitle":{"type":"string"},"linkedinUrl":{"type":"string"},"picture":{"type":"string"},"phone":{"type":"string"},"companyDomain":{"type":"string"},"icebreaker":{"type":"string"},"timezone":{"type":"string","description":"IANA timezone (e.g., Europe/Brussels)."},"contactOwner":{"type":"string","description":"User ID or email of the contact owner."},"api_key":{"type":"string","minLength":1,"description":"Your Lemlist API key. Optional if you have connected your Lemlist account in the dashboard."}},"title":"CreateLeadRequest","example":{"email":"michel@coldiq.com","firstName":"Michel","lastName":"Lieben","companyName":"ColdIQ","jobTitle":"CEO","linkedinUrl":"https://www.linkedin.com/in/michel-lieben","companyDomain":"coldiq.com"}}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LemlistResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-credits-cost":{"unit":"call","amount":0,"billing_shape":"per_call"},"description":"Credits: free.","x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}},"get":{"summary":"List Campaign Leads","tags":["Lemlist"],"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","description":"Campaign ID."},"required":true,"description":"Campaign ID.","name":"campaignId","in":"path"},{"schema":{"type":"integer","minimum":1,"maximum":100,"description":"Max results to return."},"required":false,"description":"Max results to return.","name":"limit","in":"query"},{"schema":{"type":"integer","nullable":true,"minimum":0,"description":"Pagination offset."},"required":false,"description":"Pagination offset.","name":"offset","in":"query"},{"schema":{"type":"string","description":"Filter by lead status."},"required":false,"description":"Filter by lead status.","name":"status","in":"query"},{"schema":{"type":"string","minLength":1,"description":"Your Lemlist API key. Optional if you have connected your Lemlist account in the dashboard."},"required":false,"description":"Your Lemlist API key. Optional if you have connected your Lemlist account in the dashboard.","name":"api_key","in":"query"}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LemlistResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-credits-cost":{"unit":"call","amount":0,"billing_shape":"per_call"},"description":"Credits: free.","x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/lemlist/leads/{leadId}":{"get":{"summary":"Get Lead","tags":["Lemlist"],"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","description":"Lead ID or email address."},"required":true,"description":"Lead ID or email address.","name":"leadId","in":"path"},{"schema":{"type":"string","minLength":1,"description":"Your Lemlist API key. Optional if you have connected your Lemlist account in the dashboard."},"required":false,"description":"Your Lemlist API key. Optional if you have connected your Lemlist account in the dashboard.","name":"api_key","in":"query"}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LemlistResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-credits-cost":{"unit":"call","amount":0,"billing_shape":"per_call"},"description":"Credits: free.","x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}},"delete":{"summary":"Delete Lead","tags":["Lemlist"],"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","description":"Lead ID or email address."},"required":true,"description":"Lead ID or email address.","name":"leadId","in":"path"},{"schema":{"type":"string","minLength":1,"description":"Your Lemlist API key. Optional if you have connected your Lemlist account in the dashboard."},"required":false,"description":"Your Lemlist API key. Optional if you have connected your Lemlist account in the dashboard.","name":"api_key","in":"query"}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LemlistResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-credits-cost":{"unit":"call","amount":0,"billing_shape":"per_call"},"description":"Credits: free.","x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/lemlist/campaigns/{campaignId}/leads/{leadId}":{"patch":{"summary":"Update Lead in Campaign","tags":["Lemlist"],"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","description":"Campaign ID."},"required":true,"description":"Campaign ID.","name":"campaignId","in":"path"},{"schema":{"type":"string","description":"Lead ID or email address."},"required":true,"description":"Lead ID or email address.","name":"leadId","in":"path"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"email":{"type":"string","format":"email","description":"Lead email address."},"firstName":{"type":"string"},"lastName":{"type":"string"},"companyName":{"type":"string"},"jobTitle":{"type":"string"},"linkedinUrl":{"type":"string"},"picture":{"type":"string"},"phone":{"type":"string"},"companyDomain":{"type":"string"},"icebreaker":{"type":"string"},"timezone":{"type":"string","description":"IANA timezone (e.g., Europe/Brussels)."},"contactOwner":{"type":"string","description":"User ID or email of the contact owner."},"api_key":{"type":"string","minLength":1,"description":"Your Lemlist API key. Optional if you have connected your Lemlist account in the dashboard."}},"title":"UpdateLeadRequest","example":{"jobTitle":"Founder & CEO","companyName":"ColdIQ"}}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LemlistResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-credits-cost":{"unit":"call","amount":0,"billing_shape":"per_call"},"description":"Credits: free.","x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/lemlist/leads/{leadId}/variables":{"post":{"summary":"Add Lead Variable","tags":["Lemlist"],"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","description":"Lead ID or email address."},"required":true,"description":"Lead ID or email address.","name":"leadId","in":"path"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","description":"Variable name."},"value":{"nullable":true,"description":"Variable value."},"api_key":{"type":"string","minLength":1,"description":"Your Lemlist API key. Optional if you have connected your Lemlist account in the dashboard."}},"required":["name"],"title":"AddLeadVariableRequest","example":{"name":"customField","value":"ColdIQ customer"}}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LemlistResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-credits-cost":{"unit":"call","amount":0,"billing_shape":"per_call"},"description":"Credits: free.","x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}},"patch":{"summary":"Update Lead Variable","tags":["Lemlist"],"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","description":"Lead ID or email address."},"required":true,"description":"Lead ID or email address.","name":"leadId","in":"path"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","description":"Variable name."},"value":{"nullable":true,"description":"Variable value."},"api_key":{"type":"string","minLength":1,"description":"Your Lemlist API key. Optional if you have connected your Lemlist account in the dashboard."}},"required":["name"],"title":"AddLeadVariableRequest","example":{"name":"customField","value":"ColdIQ customer"}}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LemlistResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-credits-cost":{"unit":"call","amount":0,"billing_shape":"per_call"},"description":"Credits: free.","x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}},"delete":{"summary":"Delete Lead Variable","tags":["Lemlist"],"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","description":"Lead ID or email address."},"required":true,"description":"Lead ID or email address.","name":"leadId","in":"path"},{"schema":{"type":"string","description":"Variable name to delete."},"required":true,"description":"Variable name to delete.","name":"name","in":"query"},{"schema":{"type":"string","minLength":1,"description":"Your Lemlist API key. Optional if you have connected your Lemlist account in the dashboard."},"required":false,"description":"Your Lemlist API key. Optional if you have connected your Lemlist account in the dashboard.","name":"api_key","in":"query"}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LemlistResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-credits-cost":{"unit":"call","amount":0,"billing_shape":"per_call"},"description":"Credits: free.","x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/lemlist/leads/{leadId}/interested":{"post":{"summary":"Mark Lead as Interested","tags":["Lemlist"],"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","description":"Lead ID or email address."},"required":true,"description":"Lead ID or email address.","name":"leadId","in":"path"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"api_key":{"type":"string","minLength":1,"description":"Your Lemlist API key. Optional if you have connected your Lemlist account in the dashboard."}},"title":"MarkInterestedRequest","example":{}}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LemlistResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-credits-cost":{"unit":"call","amount":0,"billing_shape":"per_call"},"description":"Credits: free.","x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/lemlist/leads/{leadId}/not-interested":{"post":{"summary":"Mark Lead as Not Interested","tags":["Lemlist"],"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","description":"Lead ID or email address."},"required":true,"description":"Lead ID or email address.","name":"leadId","in":"path"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"api_key":{"type":"string","minLength":1,"description":"Your Lemlist API key. Optional if you have connected your Lemlist account in the dashboard."}},"title":"MarkNotInterestedRequest","example":{}}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LemlistResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-credits-cost":{"unit":"call","amount":0,"billing_shape":"per_call"},"description":"Credits: free.","x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/lemlist/leads/{leadId}/pause":{"post":{"summary":"Pause Lead","tags":["Lemlist"],"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","description":"Lead ID or email address."},"required":true,"description":"Lead ID or email address.","name":"leadId","in":"path"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"api_key":{"type":"string","minLength":1,"description":"Your Lemlist API key. Optional if you have connected your Lemlist account in the dashboard."}},"title":"PauseLeadRequest","example":{}}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LemlistResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-credits-cost":{"unit":"call","amount":0,"billing_shape":"per_call"},"description":"Credits: free.","x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/lemlist/leads/{leadId}/resume":{"post":{"summary":"Resume Lead","tags":["Lemlist"],"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","description":"Lead ID or email address."},"required":true,"description":"Lead ID or email address.","name":"leadId","in":"path"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"api_key":{"type":"string","minLength":1,"description":"Your Lemlist API key. Optional if you have connected your Lemlist account in the dashboard."}},"title":"ResumeLeadRequest","example":{}}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LemlistResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-credits-cost":{"unit":"call","amount":0,"billing_shape":"per_call"},"description":"Credits: free.","x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/lemlist/contacts":{"get":{"summary":"Get Contacts","tags":["Lemlist"],"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","description":"Contact ID or email address to look up."},"required":true,"description":"Contact ID or email address to look up.","name":"idsOrEmails","in":"query"},{"schema":{"type":"string","minLength":1,"description":"Your Lemlist API key. Optional if you have connected your Lemlist account in the dashboard."},"required":false,"description":"Your Lemlist API key. Optional if you have connected your Lemlist account in the dashboard.","name":"api_key","in":"query"}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LemlistResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-credits-cost":{"unit":"call","amount":0,"billing_shape":"per_call"},"description":"Credits: free.","x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/lemlist/contacts/{contactId}":{"get":{"summary":"Get Contact","tags":["Lemlist"],"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","description":"Contact ID or email address."},"required":true,"description":"Contact ID or email address.","name":"contactId","in":"path"},{"schema":{"type":"string","minLength":1,"description":"Your Lemlist API key. Optional if you have connected your Lemlist account in the dashboard."},"required":false,"description":"Your Lemlist API key. Optional if you have connected your Lemlist account in the dashboard.","name":"api_key","in":"query"}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LemlistResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-credits-cost":{"unit":"call","amount":0,"billing_shape":"per_call"},"description":"Credits: free.","x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/lemlist/database/filters":{"get":{"summary":"Get Database Filters","tags":["Lemlist"],"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","minLength":1,"description":"Your Lemlist API key. Optional if you have connected your Lemlist account in the dashboard."},"required":false,"description":"Your Lemlist API key. Optional if you have connected your Lemlist account in the dashboard.","name":"api_key","in":"query"}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LemlistResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-credits-cost":{"unit":"call","amount":0,"billing_shape":"per_call"},"description":"Credits: free.","x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/lemlist/enrich":{"post":{"summary":"Enrich Entity","tags":["Lemlist"],"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"email":{"type":"string","format":"email"},"linkedinUrl":{"type":"string"},"firstName":{"type":"string"},"lastName":{"type":"string"},"companyName":{"type":"string"},"companyDomain":{"type":"string"},"findEmail":{"type":"boolean","description":"Find email address for this person."},"findPhone":{"type":"boolean","description":"Find phone number for this person."},"linkedinEnrichment":{"type":"boolean","description":"Enrich LinkedIn profile data."},"verifyEmail":{"type":"boolean","description":"Verify the provided email address."},"api_key":{"type":"string","minLength":1,"description":"Your Lemlist API key. Optional if you have connected your Lemlist account in the dashboard."}},"title":"EnrichRequest","example":{"email":"michel@coldiq.com","firstName":"Michel","lastName":"Lieben","companyDomain":"coldiq.com","findPhone":true,"linkedinEnrichment":true}}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LemlistResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-credits-cost":{"unit":"call","amount":0,"billing_shape":"per_call"},"description":"Credits: free.","x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/lemlist/enrich/bulk":{"post":{"summary":"Bulk Enrich Entities","tags":["Lemlist"],"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"leads":{"type":"array","items":{"type":"object","properties":{"email":{"type":"string","format":"email"},"linkedinUrl":{"type":"string"},"firstName":{"type":"string"},"lastName":{"type":"string"},"companyName":{"type":"string"},"companyDomain":{"type":"string"}}},"minItems":1,"maxItems":200,"description":"Up to 200 entities to enrich."},"api_key":{"type":"string","minLength":1,"description":"Your Lemlist API key. Optional if you have connected your Lemlist account in the dashboard."}},"required":["leads"],"title":"BulkEnrichRequest","example":{"leads":[{"email":"michel@coldiq.com","firstName":"Michel","lastName":"Lieben"},{"email":"satya@microsoft.com","firstName":"Satya","lastName":"Nadella","companyDomain":"microsoft.com"}]}}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LemlistResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-credits-cost":{"unit":"call","amount":0,"billing_shape":"per_call"},"description":"Credits: free.","x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/lemlist/leads/{leadId}/enrich":{"post":{"summary":"Enrich Lead","tags":["Lemlist"],"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","description":"Lead ID or email address."},"required":true,"description":"Lead ID or email address.","name":"leadId","in":"path"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"api_key":{"type":"string","minLength":1,"description":"Your Lemlist API key. Optional if you have connected your Lemlist account in the dashboard."}},"title":"EnrichLeadRequest","example":{}}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LemlistResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-credits-cost":{"unit":"call","amount":0,"billing_shape":"per_call"},"description":"Credits: free.","x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/lemlist/enrich/{enrichId}":{"get":{"summary":"Get Enrichment Results","tags":["Lemlist"],"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","description":"Enrichment request ID."},"required":true,"description":"Enrichment request ID.","name":"enrichId","in":"path"},{"schema":{"type":"string","minLength":1,"description":"Your Lemlist API key. Optional if you have connected your Lemlist account in the dashboard."},"required":false,"description":"Your Lemlist API key. Optional if you have connected your Lemlist account in the dashboard.","name":"api_key","in":"query"}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LemlistResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-credits-cost":{"unit":"call","amount":0,"billing_shape":"per_call"},"description":"Credits: free.","x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/lemlist/unsubscribes":{"get":{"summary":"List Unsubscribes","tags":["Lemlist"],"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"integer","minimum":1,"maximum":100,"description":"Max results to return."},"required":false,"description":"Max results to return.","name":"limit","in":"query"},{"schema":{"type":"integer","nullable":true,"minimum":0,"description":"Pagination offset."},"required":false,"description":"Pagination offset.","name":"offset","in":"query"},{"schema":{"type":"string","minLength":1,"description":"Your Lemlist API key. Optional if you have connected your Lemlist account in the dashboard."},"required":false,"description":"Your Lemlist API key. Optional if you have connected your Lemlist account in the dashboard.","name":"api_key","in":"query"}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LemlistResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-credits-cost":{"unit":"call","amount":0,"billing_shape":"per_call"},"description":"Credits: free.","x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}},"post":{"summary":"Add Unsubscribe","tags":["Lemlist"],"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"email":{"type":"string","format":"email","description":"Email address to unsubscribe."},"api_key":{"type":"string","minLength":1,"description":"Your Lemlist API key. Optional if you have connected your Lemlist account in the dashboard."}},"required":["email"],"title":"AddUnsubscribeRequest","example":{"email":"michel@coldiq.com"}}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LemlistResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-credits-cost":{"unit":"call","amount":0,"billing_shape":"per_call"},"description":"Credits: free.","x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/lemlist/unsubscribes/{email}":{"get":{"summary":"Get Unsubscribe Status","tags":["Lemlist"],"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","description":"Email address."},"required":true,"description":"Email address.","name":"email","in":"path"},{"schema":{"type":"string","minLength":1,"description":"Your Lemlist API key. Optional if you have connected your Lemlist account in the dashboard."},"required":false,"description":"Your Lemlist API key. Optional if you have connected your Lemlist account in the dashboard.","name":"api_key","in":"query"}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LemlistResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-credits-cost":{"unit":"call","amount":0,"billing_shape":"per_call"},"description":"Credits: free.","x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}},"delete":{"summary":"Remove Unsubscribe","tags":["Lemlist"],"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","description":"Email address."},"required":true,"description":"Email address.","name":"email","in":"path"},{"schema":{"type":"string","minLength":1,"description":"Your Lemlist API key. Optional if you have connected your Lemlist account in the dashboard."},"required":false,"description":"Your Lemlist API key. Optional if you have connected your Lemlist account in the dashboard.","name":"api_key","in":"query"}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LemlistResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-credits-cost":{"unit":"call","amount":0,"billing_shape":"per_call"},"description":"Credits: free.","x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/lemlist/unsubscribes/export":{"post":{"summary":"Export Unsubscribes","tags":["Lemlist"],"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"api_key":{"type":"string","minLength":1,"description":"Your Lemlist API key. Optional if you have connected your Lemlist account in the dashboard."}},"title":"ExportUnsubscribesRequest","example":{}}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LemlistResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-credits-cost":{"unit":"call","amount":0,"billing_shape":"per_call"},"description":"Credits: free.","x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/lemlist/activities":{"get":{"summary":"List Activities","tags":["Lemlist"],"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","description":"Filter by campaign ID."},"required":false,"description":"Filter by campaign ID.","name":"campaignId","in":"query"},{"schema":{"type":"string","description":"Filter by activity type."},"required":false,"description":"Filter by activity type.","name":"type","in":"query"},{"schema":{"type":"integer","minimum":1,"maximum":100},"required":false,"name":"limit","in":"query"},{"schema":{"type":"integer","nullable":true,"minimum":0},"required":false,"name":"offset","in":"query"},{"schema":{"type":"string","minLength":1,"description":"Your Lemlist API key. Optional if you have connected your Lemlist account in the dashboard."},"required":false,"description":"Your Lemlist API key. Optional if you have connected your Lemlist account in the dashboard.","name":"api_key","in":"query"}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LemlistResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-credits-cost":{"unit":"call","amount":0,"billing_shape":"per_call"},"description":"Credits: free.","x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/lemlist/team":{"get":{"summary":"Get Team","tags":["Lemlist"],"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","minLength":1,"description":"Your Lemlist API key. Optional if you have connected your Lemlist account in the dashboard."},"required":false,"description":"Your Lemlist API key. Optional if you have connected your Lemlist account in the dashboard.","name":"api_key","in":"query"}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LemlistResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-credits-cost":{"unit":"call","amount":0,"billing_shape":"per_call"},"description":"Credits: free.","x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/lemlist/team/credits":{"get":{"summary":"Get Team Credits","tags":["Lemlist"],"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","minLength":1,"description":"Your Lemlist API key. Optional if you have connected your Lemlist account in the dashboard."},"required":false,"description":"Your Lemlist API key. Optional if you have connected your Lemlist account in the dashboard.","name":"api_key","in":"query"}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LemlistResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-credits-cost":{"unit":"call","amount":0,"billing_shape":"per_call"},"description":"Credits: free.","x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/lemlist/team/senders":{"get":{"summary":"List Team Senders","tags":["Lemlist"],"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","minLength":1,"description":"Your Lemlist API key. Optional if you have connected your Lemlist account in the dashboard."},"required":false,"description":"Your Lemlist API key. Optional if you have connected your Lemlist account in the dashboard.","name":"api_key","in":"query"}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LemlistResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-credits-cost":{"unit":"call","amount":0,"billing_shape":"per_call"},"description":"Credits: free.","x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/attio/people/query":{"post":{"summary":"List person records","tags":["Attio"],"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"filter":{"type":"object","additionalProperties":{"nullable":true},"description":"Filter expression. See Attio filter guide."},"sorts":{"type":"array","items":{"type":"object","properties":{"direction":{"type":"string","enum":["asc","desc"]},"attribute":{"type":"string"},"field":{"type":"string"},"path":{"type":"array","items":{"nullable":true}}},"required":["direction"]}},"limit":{"type":"integer","minimum":1,"maximum":500,"description":"Max results (default 500)."},"offset":{"type":"integer","nullable":true,"minimum":0,"description":"Results to skip (default 0)."},"api_key":{"type":"string","minLength":1,"description":"Your Attio access token. Optional if you have connected your Attio account in the dashboard."}},"title":"QueryPeopleRequest","example":{"filter":{"email_addresses":{"email_address":{"$eq":"michel@coldiq.com"}}},"limit":10,"offset":0}}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AttioResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-credits-cost":{"unit":"call","amount":0,"billing_shape":"per_call"},"description":"Credits: free.","x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/attio/people":{"post":{"summary":"Create a person record","tags":["Attio"],"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"values":{"$ref":"#/components/schemas/PersonValues"}},"required":["values"]},"api_key":{"type":"string","minLength":1,"description":"Your Attio access token. Optional if you have connected your Attio account in the dashboard."}},"required":["data"],"title":"CreatePersonRequest","example":{"data":{"values":{"name":[{"full_name":"Michel Lieben","first_name":"Michel","last_name":"Lieben"}],"email_addresses":[{"email_address":"michel@coldiq.com"}],"job_title":[{"value":"CEO"}],"linkedin":[{"value":"https://www.linkedin.com/michel-lieben"}]}}}}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AttioResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-credits-cost":{"unit":"call","amount":0,"billing_shape":"per_call"},"description":"Credits: free.","x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}},"put":{"summary":"Assert a person record","tags":["Attio"],"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"matching_attribute":{"type":"string","description":"Attribute slug to match on when upserting (e.g. 'email_addresses')."},"data":{"type":"object","properties":{"values":{"$ref":"#/components/schemas/PersonValues"}},"required":["values"]},"api_key":{"type":"string","minLength":1,"description":"Your Attio access token. Optional if you have connected your Attio account in the dashboard."}},"required":["data"],"title":"AssertPersonRequest","example":{"matching_attribute":"email_addresses","data":{"values":{"name":[{"full_name":"Michel Lieben","first_name":"Michel","last_name":"Lieben"}],"email_addresses":[{"email_address":"michel@coldiq.com"}],"job_title":[{"value":"CEO"}]}}}}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AttioResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-credits-cost":{"unit":"call","amount":0,"billing_shape":"per_call"},"description":"Credits: free.","x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/attio/people/{record_id}":{"get":{"summary":"Get a person record","tags":["Attio"],"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","format":"uuid","description":"The record UUID."},"required":true,"description":"The record UUID.","name":"record_id","in":"path"},{"schema":{"type":"string","minLength":1,"description":"Your Attio access token. Optional if you have connected your Attio account in the dashboard."},"required":false,"description":"Your Attio access token. Optional if you have connected your Attio account in the dashboard.","name":"api_key","in":"query"}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AttioResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-credits-cost":{"unit":"call","amount":0,"billing_shape":"per_call"},"description":"Credits: free.","x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}},"patch":{"summary":"Update a person record","tags":["Attio"],"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","format":"uuid","description":"The record UUID."},"required":true,"description":"The record UUID.","name":"record_id","in":"path"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"values":{"$ref":"#/components/schemas/PersonValues"}},"required":["values"]},"api_key":{"type":"string","minLength":1,"description":"Your Attio access token. Optional if you have connected your Attio account in the dashboard."}},"required":["data"],"title":"UpdatePersonRequest","example":{"data":{"values":{"job_title":[{"value":"Co-founder & CEO"}]}}}}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AttioResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-credits-cost":{"unit":"call","amount":0,"billing_shape":"per_call"},"description":"Credits: free.","x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}},"delete":{"summary":"Delete a person record","tags":["Attio"],"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","format":"uuid","description":"The record UUID."},"required":true,"description":"The record UUID.","name":"record_id","in":"path"},{"schema":{"type":"string","minLength":1,"description":"Your Attio access token. Optional if you have connected your Attio account in the dashboard."},"required":false,"description":"Your Attio access token. Optional if you have connected your Attio account in the dashboard.","name":"api_key","in":"query"}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AttioResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-credits-cost":{"unit":"call","amount":0,"billing_shape":"per_call"},"description":"Credits: free.","x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/attio/companies/query":{"post":{"summary":"List company records","tags":["Attio"],"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"filter":{"type":"object","additionalProperties":{"nullable":true},"description":"Filter expression. See Attio filter guide."},"sorts":{"type":"array","items":{"type":"object","properties":{"direction":{"type":"string","enum":["asc","desc"]},"attribute":{"type":"string"},"field":{"type":"string"},"path":{"type":"array","items":{"nullable":true}}},"required":["direction"]}},"limit":{"type":"integer","minimum":1,"maximum":500,"description":"Max results (default 500)."},"offset":{"type":"integer","nullable":true,"minimum":0,"description":"Results to skip (default 0)."},"api_key":{"type":"string","minLength":1,"description":"Your Attio access token. Optional if you have connected your Attio account in the dashboard."}},"title":"QueryCompaniesRequest","example":{"filter":{"domains":{"domain":{"$eq":"coldiq.com"}}},"limit":10,"offset":0}}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AttioResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-credits-cost":{"unit":"call","amount":0,"billing_shape":"per_call"},"description":"Credits: free.","x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/attio/companies":{"post":{"summary":"Create a company record","tags":["Attio"],"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"values":{"$ref":"#/components/schemas/CompanyValues"}},"required":["values"]},"api_key":{"type":"string","minLength":1,"description":"Your Attio access token. Optional if you have connected your Attio account in the dashboard."}},"required":["data"],"title":"CreateCompanyRequest","example":{"data":{"values":{"name":[{"value":"ColdIQ"}],"domains":[{"domain":"coldiq.com"}],"linkedin":[{"value":"https://www.linkedin.com/company/coldiq"}]}}}}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AttioResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-credits-cost":{"unit":"call","amount":0,"billing_shape":"per_call"},"description":"Credits: free.","x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}},"put":{"summary":"Assert a company record","tags":["Attio"],"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"matching_attribute":{"type":"string","description":"Attribute slug to match on when upserting (e.g. 'domains')."},"data":{"type":"object","properties":{"values":{"$ref":"#/components/schemas/CompanyValues"}},"required":["values"]},"api_key":{"type":"string","minLength":1,"description":"Your Attio access token. Optional if you have connected your Attio account in the dashboard."}},"required":["data"],"title":"AssertCompanyRequest","example":{"matching_attribute":"domains","data":{"values":{"name":[{"value":"ColdIQ"}],"domains":[{"domain":"coldiq.com"}]}}}}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AttioResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-credits-cost":{"unit":"call","amount":0,"billing_shape":"per_call"},"description":"Credits: free.","x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/attio/companies/{record_id}":{"get":{"summary":"Get a company record","tags":["Attio"],"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","format":"uuid","description":"The record UUID."},"required":true,"description":"The record UUID.","name":"record_id","in":"path"},{"schema":{"type":"string","minLength":1,"description":"Your Attio access token. Optional if you have connected your Attio account in the dashboard."},"required":false,"description":"Your Attio access token. Optional if you have connected your Attio account in the dashboard.","name":"api_key","in":"query"}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AttioResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-credits-cost":{"unit":"call","amount":0,"billing_shape":"per_call"},"description":"Credits: free.","x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}},"patch":{"summary":"Update a company record","tags":["Attio"],"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","format":"uuid","description":"The record UUID."},"required":true,"description":"The record UUID.","name":"record_id","in":"path"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"values":{"$ref":"#/components/schemas/CompanyValues"}},"required":["values"]},"api_key":{"type":"string","minLength":1,"description":"Your Attio access token. Optional if you have connected your Attio account in the dashboard."}},"required":["data"],"title":"UpdateCompanyRequest","example":{"data":{"values":{"description":[{"value":"AI-powered cold outreach platform."}]}}}}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AttioResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-credits-cost":{"unit":"call","amount":0,"billing_shape":"per_call"},"description":"Credits: free.","x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}},"delete":{"summary":"Delete a company record","tags":["Attio"],"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","format":"uuid","description":"The record UUID."},"required":true,"description":"The record UUID.","name":"record_id","in":"path"},{"schema":{"type":"string","minLength":1,"description":"Your Attio access token. Optional if you have connected your Attio account in the dashboard."},"required":false,"description":"Your Attio access token. Optional if you have connected your Attio account in the dashboard.","name":"api_key","in":"query"}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AttioResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-credits-cost":{"unit":"call","amount":0,"billing_shape":"per_call"},"description":"Credits: free.","x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/attio/notes":{"post":{"summary":"Create a note","tags":["Attio"],"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"parent_object":{"type":"string","description":"The parent object slug or ID (e.g. 'people', 'companies')."},"parent_record_id":{"type":"string","format":"uuid","description":"The parent record UUID."},"title":{"type":"string","description":"Plaintext title for the note."},"format":{"type":"string","enum":["plaintext","markdown"]},"content":{"type":"string","description":"Note body content."},"created_at":{"type":"string","description":"ISO 8601 timestamp to backdate the note."}},"required":["parent_object","parent_record_id","title","format","content"]},"api_key":{"type":"string","minLength":1,"description":"Your Attio access token. Optional if you have connected your Attio account in the dashboard."}},"required":["data"],"title":"CreateNoteRequest","example":{"data":{"parent_object":"people","parent_record_id":"891dcbfc-9141-415d-9b2a-2238a6cc012d","title":"Discovery call","format":"plaintext","content":"Discussed pricing and onboarding timeline."}}}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AttioResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-credits-cost":{"unit":"call","amount":0,"billing_shape":"per_call"},"description":"Credits: free.","x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}},"get":{"summary":"List notes","tags":["Attio"],"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","description":"Filter by parent object slug (e.g. 'people')."},"required":false,"description":"Filter by parent object slug (e.g. 'people').","name":"parent_object","in":"query"},{"schema":{"type":"string","format":"uuid","description":"Filter by parent record UUID."},"required":false,"description":"Filter by parent record UUID.","name":"parent_record_id","in":"query"},{"schema":{"type":"integer","minimum":1,"maximum":50,"description":"Max results (default 10, max 50)."},"required":false,"description":"Max results (default 10, max 50).","name":"limit","in":"query"},{"schema":{"type":"integer","nullable":true,"minimum":0,"description":"Results to skip (default 0)."},"required":false,"description":"Results to skip (default 0).","name":"offset","in":"query"},{"schema":{"type":"string","minLength":1,"description":"Your Attio access token. Optional if you have connected your Attio account in the dashboard."},"required":false,"description":"Your Attio access token. Optional if you have connected your Attio account in the dashboard.","name":"api_key","in":"query"}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AttioResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-credits-cost":{"unit":"call","amount":0,"billing_shape":"per_call"},"description":"Credits: free.","x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/attio/notes/{note_id}":{"get":{"summary":"Get a note","tags":["Attio"],"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","format":"uuid","description":"The note UUID."},"required":true,"description":"The note UUID.","name":"note_id","in":"path"},{"schema":{"type":"string","minLength":1,"description":"Your Attio access token. Optional if you have connected your Attio account in the dashboard."},"required":false,"description":"Your Attio access token. Optional if you have connected your Attio account in the dashboard.","name":"api_key","in":"query"}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AttioResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-credits-cost":{"unit":"call","amount":0,"billing_shape":"per_call"},"description":"Credits: free.","x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}},"delete":{"summary":"Delete a note","tags":["Attio"],"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","format":"uuid","description":"The note UUID."},"required":true,"description":"The note UUID.","name":"note_id","in":"path"},{"schema":{"type":"string","minLength":1,"description":"Your Attio access token. Optional if you have connected your Attio account in the dashboard."},"required":false,"description":"Your Attio access token. Optional if you have connected your Attio account in the dashboard.","name":"api_key","in":"query"}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AttioResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-credits-cost":{"unit":"call","amount":0,"billing_shape":"per_call"},"description":"Credits: free.","x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/attio/tasks":{"post":{"summary":"Create a task","tags":["Attio"],"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"content":{"type":"string","maxLength":2000,"description":"Task content text."},"format":{"type":"string","enum":["plaintext"]},"deadline_at":{"type":"string","nullable":true,"description":"ISO 8601 deadline timestamp, or null."},"is_completed":{"type":"boolean"},"linked_records":{"type":"array","items":{"$ref":"#/components/schemas/RecordRef"},"description":"Records linked to this task."},"assignees":{"type":"array","items":{"$ref":"#/components/schemas/Assignee"},"description":"Workspace members assigned to this task."}},"required":["content","format","deadline_at","is_completed","linked_records","assignees"]},"api_key":{"type":"string","minLength":1,"description":"Your Attio access token. Optional if you have connected your Attio account in the dashboard."}},"required":["data"],"title":"CreateTaskRequest","example":{"data":{"content":"Follow up with Michel about onboarding.","format":"plaintext","deadline_at":"2026-04-01T09:00:00.000000000Z","is_completed":false,"linked_records":[{"target_object":"people","target_record_id":"891dcbfc-9141-415d-9b2a-2238a6cc012d"}],"assignees":[]}}}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AttioResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-credits-cost":{"unit":"call","amount":0,"billing_shape":"per_call"},"description":"Credits: free.","x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}},"get":{"summary":"List all tasks","tags":["Attio"],"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"integer","minimum":1,"maximum":500,"description":"Max results (default 500)."},"required":false,"description":"Max results (default 500).","name":"limit","in":"query"},{"schema":{"type":"integer","nullable":true,"minimum":0,"description":"Results to skip (default 0)."},"required":false,"description":"Results to skip (default 0).","name":"offset","in":"query"},{"schema":{"type":"string","enum":["created_at:asc","created_at:desc"],"description":"Sort order."},"required":false,"description":"Sort order.","name":"sort","in":"query"},{"schema":{"type":"string","description":"Filter by linked object slug (e.g. 'people'). Requires linked_record_id."},"required":false,"description":"Filter by linked object slug (e.g. 'people'). Requires linked_record_id.","name":"linked_object","in":"query"},{"schema":{"type":"string","format":"uuid","description":"Filter by linked record UUID. Requires linked_object."},"required":false,"description":"Filter by linked record UUID. Requires linked_object.","name":"linked_record_id","in":"query"},{"schema":{"type":"string","description":"Filter by assignee email or ID. Pass 'null' for unassigned tasks."},"required":false,"description":"Filter by assignee email or ID. Pass 'null' for unassigned tasks.","name":"assignee","in":"query"},{"schema":{"type":"string","enum":["true","false"],"description":"Filter by completion status."},"required":false,"description":"Filter by completion status.","name":"is_completed","in":"query"},{"schema":{"type":"string","minLength":1,"description":"Your Attio access token. Optional if you have connected your Attio account in the dashboard."},"required":false,"description":"Your Attio access token. Optional if you have connected your Attio account in the dashboard.","name":"api_key","in":"query"}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AttioResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-credits-cost":{"unit":"call","amount":0,"billing_shape":"per_call"},"description":"Credits: free.","x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/attio/tasks/{task_id}":{"get":{"summary":"Get a task","tags":["Attio"],"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","format":"uuid","description":"The task UUID."},"required":true,"description":"The task UUID.","name":"task_id","in":"path"},{"schema":{"type":"string","minLength":1,"description":"Your Attio access token. Optional if you have connected your Attio account in the dashboard."},"required":false,"description":"Your Attio access token. Optional if you have connected your Attio account in the dashboard.","name":"api_key","in":"query"}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AttioResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-credits-cost":{"unit":"call","amount":0,"billing_shape":"per_call"},"description":"Credits: free.","x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}},"patch":{"summary":"Update a task","tags":["Attio"],"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","format":"uuid","description":"The task UUID."},"required":true,"description":"The task UUID.","name":"task_id","in":"path"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"deadline_at":{"type":"string","nullable":true,"description":"ISO 8601 deadline timestamp, or null."},"is_completed":{"type":"boolean"},"linked_records":{"type":"array","items":{"$ref":"#/components/schemas/RecordRef"}},"assignees":{"type":"array","items":{"$ref":"#/components/schemas/Assignee"}}}},"api_key":{"type":"string","minLength":1,"description":"Your Attio access token. Optional if you have connected your Attio account in the dashboard."}},"required":["data"],"title":"UpdateTaskRequest","example":{"data":{"is_completed":true}}}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AttioResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-credits-cost":{"unit":"call","amount":0,"billing_shape":"per_call"},"description":"Credits: free.","x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}},"delete":{"summary":"Delete a task","tags":["Attio"],"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","format":"uuid","description":"The task UUID."},"required":true,"description":"The task UUID.","name":"task_id","in":"path"},{"schema":{"type":"string","minLength":1,"description":"Your Attio access token. Optional if you have connected your Attio account in the dashboard."},"required":false,"description":"Your Attio access token. Optional if you have connected your Attio account in the dashboard.","name":"api_key","in":"query"}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AttioResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-credits-cost":{"unit":"call","amount":0,"billing_shape":"per_call"},"description":"Credits: free.","x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/attio/records/search":{"post":{"summary":"Search records","tags":["Attio"],"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"query":{"type":"string","maxLength":256,"description":"Fuzzy search query. Empty string returns default results."},"objects":{"type":"array","items":{"type":"string"},"minItems":1,"description":"Object slugs or UUIDs to search within (e.g. ['people', 'companies'])."},"request_as":{"type":"object","properties":{"type":{"type":"string","enum":["workspace"]},"workspace_member_id":{"type":"string","format":"uuid"},"workspace_member_email_address":{"type":"string","format":"email"}},"description":"Search context (required by Attio). Use { \"type\": \"workspace\" } for default."},"limit":{"type":"integer","minimum":1,"maximum":25,"description":"Max results (default 25, max 25)."},"api_key":{"type":"string","minLength":1,"description":"Your Attio access token. Optional if you have connected your Attio account in the dashboard."}},"required":["query","objects","request_as"],"title":"SearchRecordsRequest","example":{"query":"Michel Lieben","objects":["people","companies"],"request_as":{"type":"workspace"},"limit":10}}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AttioResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-credits-cost":{"unit":"call","amount":0,"billing_shape":"per_call"},"description":"Credits: free.","x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/jina/reader":{"post":{"summary":"Read URL","description":"Fetch any URL and convert it to clean, LLM-ready markdown. Handles JavaScript-rendered pages, PDFs, and complex layouts. Usage-based: a temporary hold is reserved up front; the final charge equals Jina-reported token usage. Credits: variable per token used, charged by which fields you request (token). Reserved up-front, settled to actual (see X-ColdIQ-Credits-Charged). Call get_endpoint_details for the live rate.","tags":["Jina"],"x-credits-cost":{"unit":"token used","rates":{"token":0.0000105},"billing_shape":"per_result"},"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"url":{"type":"string","format":"uri","description":"URL of the page to read and convert to markdown."},"targetSelector":{"type":"string","nullable":true,"description":"CSS selector to extract only matching content."},"removeSelector":{"type":"string","nullable":true,"description":"CSS selector for elements to strip before conversion."},"waitForSelector":{"type":"string","nullable":true,"description":"CSS selector to wait for before reading the page."},"withGeneratedAlt":{"type":"boolean","description":"Auto-generate alt text for images via a vision model."},"withImagesSummary":{"type":"boolean","description":"Append an image summary section to the output."},"withLinksSummary":{"type":"boolean","description":"Append a links summary section to the output."},"timeout":{"type":"integer","minimum":1,"maximum":180,"description":"Page load timeout in seconds (1–180)."},"noCache":{"type":"boolean","description":"Bypass Jina's internal 5-minute URL cache."},"tokenBudget":{"type":"integer","minimum":1,"maximum":300000,"description":"Reject the request if the extracted output exceeds this token budget (1–300,000). Defaults to 100,000."}},"required":["url"],"title":"ReaderRequest","example":{"url":"https://coldiq.com","withLinksSummary":true}}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/JinaResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/jina/search":{"post":{"summary":"Search","description":"Run a web search and return results as structured markdown, ready for LLM consumption. Usage-based: a temporary hold is reserved up front; the final charge equals Jina-reported token usage. Credits: variable per token used, charged by which fields you request (token). Reserved up-front, settled to actual (see X-ColdIQ-Credits-Charged). Call get_endpoint_details for the live rate. Managed alternative: `POST /v1/web/search` (Web Search) runs this provider inside a ranked waterfall with charge-on-success billing and one normalized response shape, and falls back to the other providers for this capability on a miss. Call this endpoint directly when you specifically want this provider and no fallback.","tags":["Jina"],"x-credits-cost":{"unit":"token used","rates":{"token":0.0000105},"billing_shape":"per_result"},"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"q":{"type":"string","minLength":1,"description":"Search query."},"count":{"type":"integer","minimum":1,"maximum":20,"description":"Number of results to return (1–20, default 5)."},"page":{"type":"integer","minimum":1,"description":"Pagination page (default 1)."},"type":{"type":"string","enum":["web","images","news"],"description":"Result type: 'web' (default), 'images', or 'news'."},"gl":{"type":"string","nullable":true,"description":"Geographic location — ISO 3166-1 alpha-2 country code (e.g. \"us\", \"gb\")."},"hl":{"type":"string","nullable":true,"description":"Interface language — ISO 639-1 code (e.g. \"en\", \"fr\")."}},"required":["q"],"title":"SearchRequest","example":{"q":"ColdIQ AI sales tools","count":5,"gl":"us"}}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/JinaResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/jina/rerank":{"post":{"summary":"Rerank documents","description":"Rerank a list of documents by relevance to a query. Returns documents ordered by relevance score. Usage-based: a temporary hold is reserved up front; the final charge equals Jina-reported token usage. Credits: variable per token used, charged by which fields you request (token). Reserved up-front, settled to actual (see X-ColdIQ-Credits-Charged). Call get_endpoint_details for the live rate.","tags":["Jina"],"x-credits-cost":{"unit":"token used","rates":{"token":0.0000105},"billing_shape":"per_result"},"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"model":{"type":"string","enum":["jina-reranker-v2-base-multilingual","jina-reranker-v1-base-en","jina-reranker-v1-tiny-en","jina-reranker-v1-turbo-en","jina-colbert-v2","jina-reranker-v3"],"description":"Reranker model to use."},"query":{"type":"string","minLength":1,"description":"Search query to rank documents against."},"documents":{"type":"array","items":{"type":"string"},"minItems":1,"description":"List of document strings to rerank."},"top_n":{"type":"integer","minimum":1,"description":"Return only the top N ranked documents."},"return_documents":{"type":"boolean","description":"Include document text in the response (default true)."}},"required":["model","query","documents"],"title":"RerankRequest","example":{"model":"jina-reranker-v2-base-multilingual","query":"AI-powered sales automation tools","documents":["ColdIQ is an AI-native sales intelligence platform","Microsoft Office is a productivity suite","Cold email outreach with AI personalization"],"top_n":2}}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/JinaResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/jina/classify":{"post":{"summary":"Classify text","description":"Zero-shot text classification — assign input texts to the most relevant labels without any training data. Usage-based: a temporary hold is reserved up front; the final charge equals Jina-reported token usage. Credits: variable per token used, charged by which fields you request (token). Reserved up-front, settled to actual (see X-ColdIQ-Credits-Charged). Call get_endpoint_details for the live rate.","tags":["Jina"],"x-credits-cost":{"unit":"token used","rates":{"token":0.0000105},"billing_shape":"per_result"},"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"model":{"type":"string","enum":["jina-embeddings-v3","jina-embeddings-v2-base-en","jina-clip-v2"],"description":"Model to use for zero-shot classification."},"input":{"type":"array","items":{"type":"string"},"minItems":1,"description":"Array of text strings to classify."},"labels":{"type":"array","items":{"type":"string"},"minItems":2,"maxItems":512,"description":"Array of candidate label strings (2–512)."}},"required":["model","input","labels"],"title":"ClassifyRequest","example":{"model":"jina-embeddings-v3","input":["We are looking for a CRM that integrates with our outreach stack","Quarterly earnings call next Friday"],"labels":["sales inquiry","customer support","internal meeting","product feedback"]}}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/JinaResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/jina/grounding":{"post":{"summary":"Ground a statement","description":"Fact-check a claim against real-time web data. Returns a factuality score (0–1), a boolean verdict, a reasoning explanation, and up to 30 cited sources. Typical latency ~30 seconds. Usage-based: a temporary hold is reserved up front; the final charge equals Jina-reported token usage. Credits: variable per token used, charged by which fields you request (token). Reserved up-front, settled to actual (see X-ColdIQ-Credits-Charged). Call get_endpoint_details for the live rate.","tags":["Jina"],"x-credits-cost":{"unit":"token used","rates":{"token":0.0000105},"billing_shape":"per_result"},"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"statement":{"type":"string","minLength":1,"description":"The claim or assertion to fact-check against real-time web data."},"references":{"type":"array","nullable":true,"items":{"type":"string","format":"uri"},"description":"Optional list of specific URLs to use as grounding sources. If omitted, Jina searches the open web."}},"required":["statement"],"title":"GroundingRequest","example":{"statement":"ColdIQ was founded by Michel Lieben and is focused on AI-powered sales tools."}}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/JinaResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/jina/segment":{"post":{"summary":"Tokenize and segment text","description":"Tokenize text and optionally split it into semantically meaningful chunks. Supports 100+ languages and multiple tokenizer formats. Useful for token counting and RAG chunking pipelines. Free. Credits: free.","tags":["Jina"],"x-credits-cost":{"amount":0,"unit":"call","billing_shape":"per_call"},"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"content":{"type":"string","minLength":1,"maxLength":64000,"description":"Text to tokenize or segment (max 64,000 characters)."},"tokenizer":{"type":"string","enum":["cl100k_base","o200k_base","p50k_base","r50k_base","p50k_edit","gpt2"],"description":"Tokenizer to use (default: 'cl100k_base'). cl100k_base = GPT-4/3.5, o200k_base = GPT-4o."},"return_tokens":{"type":"boolean","description":"Include token IDs and values in the response."},"return_chunks":{"type":"boolean","description":"Segment the text into semantically meaningful chunks."},"max_chunk_length":{"type":"integer","minimum":1,"description":"Maximum characters per chunk (default 1000). Actual chunks may be smaller at text boundaries."},"head":{"type":"integer","minimum":1,"description":"Return only the first N tokens. Cannot be used with tail."},"tail":{"type":"integer","minimum":1,"description":"Return only the last N tokens. Cannot be used with head."}},"required":["content"],"title":"SegmentRequest","example":{"content":"ColdIQ is an AI-native sales intelligence platform founded by Michel Lieben. It helps sales teams automate outreach and enrich prospect data at scale.","tokenizer":"cl100k_base","return_chunks":true,"max_chunk_length":512}}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/JinaResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/jina/deepsearch":{"post":{"summary":"DeepSearch","description":"Multi-step reasoning engine that iteratively searches the web, reads sources, and synthesizes a cited answer. OpenAI-compatible message format. Supports streaming via SSE. Typical latency 20–120 seconds. Usage-based: a temporary hold is reserved up front; the final charge equals Jina-reported token usage. Credits: variable per token used, charged by which fields you request (token). Reserved up-front, settled to actual (see X-ColdIQ-Credits-Charged). Call get_endpoint_details for the live rate.","tags":["Jina"],"x-credits-cost":{"unit":"token used","rates":{"token":0.0000105},"billing_shape":"per_result"},"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"messages":{"type":"array","items":{"$ref":"#/components/schemas/DeepSearchMessage"},"minItems":1,"description":"Conversation messages (OpenAI schema). The last user message is the query to research."},"reasoning_effort":{"type":"string","enum":["low","medium","high"],"description":"Search depth preset. 'low' = 300K tokens, 'medium' = 750K tokens, 'high' = 1.5M tokens."},"budget_tokens":{"type":"integer","minimum":1,"description":"Advisory reasoning budget. This is not a hard usage cap; billing reservation follows reasoning_effort."},"max_attempts":{"type":"integer","minimum":1,"description":"Max retry attempts for quality checks before returning the best answer found."},"boost_hostnames":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Domains to prioritize when retrieving content (e.g. [\"arxiv.org\", \"techcrunch.com\"])."},"bad_hostnames":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Domains to exclude entirely from search and retrieval."},"only_hostnames":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Restrict all search results to only these domains."},"max_returned_urls":{"type":"integer","minimum":1,"description":"Maximum number of source URLs to include in the final answer (default 100, sorted by relevance)."},"search_provider":{"type":"string","enum":["jina","brave","serper","duck","arxiv"],"description":"Search engine to use (default: 'jina'). Use 'arxiv' for academic-only queries."},"stream":{"type":"boolean","description":"Stream reasoning steps and the final answer via Server-Sent Events."}},"required":["messages"],"title":"DeepSearchRequest","example":{"messages":[{"role":"user","content":"What are the most effective AI-powered outreach tools for B2B sales in 2026?"}],"reasoning_effort":"medium","boost_hostnames":["coldiq.com"]}}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/JinaResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/twitter/tweet-scraper/scrape":{"post":{"x-credits-cost":{"amount":0.084,"unit":"tweet","billing_shape":"per_result"},"summary":"Scrape tweets by keyword, handle, URL, or conversation ID.","description":"Start an async job to search and scrape tweets. Returns a `jobId` immediately — poll `GET /twitter/tweet-scraper/scrape/{jobId}` for results. Billed at 1 credit per tweet returned, reserved upfront based on `maxItems` (default 100, max 500). Credits: bills only for returned results, per tweet; reserved up-front for the requested size and settled to the actual count (see X-ColdIQ-Credits-Charged). Call get_endpoint_details for the live rate.","tags":["Twitter"],"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"startUrls":{"type":"array","items":{"type":"string","format":"uri"},"maxItems":25,"description":"Twitter (X) URLs to scrape. Tweet, Profile, Search, or List URLs are supported. Max 25 entries."},"searchTerms":{"type":"array","items":{"type":"string","minLength":1},"maxItems":25,"description":"Search terms to query on Twitter (X). Supports advanced search operators. Max 25 entries."},"twitterHandles":{"type":"array","items":{"type":"string","pattern":"^[A-Za-z0-9_]{1,15}$"},"maxItems":25,"description":"Twitter handles whose tweets you want to retrieve (without @). Max 25 entries."},"conversationIds":{"type":"array","items":{"type":"string","pattern":"^\\d+$"},"maxItems":25,"description":"Conversation IDs (numeric tweet IDs) whose threads you want to retrieve. Max 25 entries."},"maxItems":{"type":"integer","minimum":1,"maximum":500,"description":"Maximum number of tweets to return (1–500). Determines credits reserved upfront. Defaults to 100."},"sort":{"type":"string","enum":["Top","Latest","Latest + Top"],"description":"Sort order. 'Latest + Top' runs both simultaneously to maximise results but may include duplicates."},"tweetLanguage":{"type":"string","enum":["ab","aa","af","ak","sq","am","ar","an","hy","as","av","ae","ay","az","bm","ba","eu","be","bn","bi","bs","br","bg","my","ca","ch","ce","ny","zh","cu","cv","kw","co","cr","hr","cs","da","dv","nl","dz","en","eo","et","ee","fo","fj","fi","fr","fy","ff","gd","gl","lg","ka","de","el","kl","gn","gu","ht","ha","he","hz","hi","ho","hu","is","io","ig","id","ia","ie","iu","ik","ga","it","ja","jv","kn","kr","ks","kk","km","ki","rw","ky","kv","kg","ko","kj","ku","lo","la","lv","li","ln","lt","lu","lb","mk","mg","ms","ml","mt","gv","mi","mr","mh","mn","na","nv","nd","nr","ng","ne","no","nb","nn","ii","oc","oj","or","om","os","pi","ps","fa","pl","pt","pa","qu","ro","rm","rn","ru","se","sm","sg","sa","sc","sr","sn","sd","si","sk","sl","so","st","es","su","sw","ss","sv","tl","ty","tg","ta","tt","te","th","bo","ti","to","ts","tn","tr","tk","tw","ug","uk","ur","uz","ve","vi","vo","wa","cy","wo","xh","yi","yo","za","zu"],"description":"Restrict results to tweets in this language (ISO 639-1 code)."},"onlyVerifiedUsers":{"type":"boolean","description":"Return only tweets from verified (blue-check) accounts."},"onlyTwitterBlue":{"type":"boolean","description":"Return only tweets from Twitter Blue subscribers."},"onlyImage":{"type":"boolean","description":"Return only tweets that contain images."},"onlyVideo":{"type":"boolean","description":"Return only tweets that contain videos."},"onlyQuote":{"type":"boolean","description":"Return only quote tweets."},"author":{"type":"string","pattern":"^[A-Za-z0-9_]{1,15}$","description":"Return only tweets sent by this handle (e.g. \"MichelLieben\", without @)."},"inReplyTo":{"type":"string","pattern":"^[A-Za-z0-9_]{1,15}$","description":"Return only tweets that are replies to this handle."},"mentioning":{"type":"string","pattern":"^[A-Za-z0-9_]{1,15}$","description":"Return only tweets mentioning this handle."},"geotaggedNear":{"type":"string","minLength":1,"description":"Return only tweets geotagged near this location (e.g. \"New York, NY\")."},"withinRadius":{"type":"string","pattern":"^\\d+(\\.\\d+)?(mi|km)$","description":"Restrict geo results to within this radius (e.g. \"15mi\"). Use together with geotaggedNear."},"geocode":{"type":"string","pattern":"^-?\\d+(\\.\\d+)?,-?\\d+(\\.\\d+)?,\\d+(\\.\\d+)?(mi|km)$","description":"Return tweets from users within radius of latitude/longitude (e.g. \"48.8566,2.3522,10km\")."},"placeObjectId":{"type":"string","minLength":1,"description":"Return only tweets tagged with this place ID."},"minimumRetweets":{"type":"integer","minimum":0,"description":"Return only tweets with at least this many retweets."},"minimumFavorites":{"type":"integer","minimum":0,"description":"Return only tweets with at least this many likes."},"minimumReplies":{"type":"integer","minimum":0,"description":"Return only tweets with at least this many replies."},"start":{"type":"string","format":"date","description":"Return only tweets sent after this date (YYYY-MM-DD)."},"end":{"type":"string","format":"date","description":"Return only tweets sent before this date (YYYY-MM-DD)."},"includeSearchTerms":{"type":"boolean","description":"Add a searchTerm field to each tweet indicating the search term that matched it."}},"title":"TweetScraperInput","example":{"searchTerms":["ColdIQ","Michel Lieben coldiq.com"],"maxItems":20,"sort":"Latest","tweetLanguage":"en","minimumFavorites":5}}}}},"responses":{"202":{"description":"Job accepted. Poll the returned `jobId` for results.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TweetScraperSubmitResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/twitter/tweet-scraper/scrape/{jobId}":{"get":{"x-credits-cost":{"amount":0,"unit":"call","billing_shape":"per_call"},"summary":"Get tweet scraper job result","description":"Poll the status of a tweet scraping job. Returns `202` while in progress, `200` with results when done. Completed results are cached — repeated calls are free and instant. Credits: free.","tags":["Twitter"],"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"integer","minimum":0,"exclusiveMinimum":true,"maximum":2147483647},"required":true,"name":"jobId","in":"path"}],"responses":{"200":{"description":"Job status. When `status` is `done`, `tweets` contains the scraped data.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TweetScraperPollResponse"}}}},"202":{"description":"Job is still running — poll again shortly.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TweetScraperPollResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"404":{"description":"Job not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"410":{"description":"Job expired — credits refunded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/google-maps/reviews":{"post":{"x-credits-cost":{"amount":0.084,"unit":"review","billing_shape":"per_result"},"summary":"Scrape Google Maps reviews","description":"Start an async job to extract reviews from one or more Google Maps place URLs. Returns a `jobId` immediately — poll `GET /google-maps/reviews/{jobId}` for results. Credits are reserved upfront (1 per `maxReviews` × number of URLs) and the unused portion is refunded when results arrive. Credits: bills only for returned results, per review; reserved up-front for the requested size and settled to the actual count (see X-ColdIQ-Credits-Charged). Call get_endpoint_details for the live rate. Managed alternative: `POST /v1/places/reviews` (Get Place Reviews) runs this provider inside a ranked waterfall with charge-on-success billing and one normalized response shape, and falls back to the other providers for this capability on a miss. Call this endpoint directly when you specifically want this provider and no fallback.","tags":["Google Maps"],"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"startUrls":{"type":"array","items":{"$ref":"#/components/schemas/GoogleMapsStartUrl"},"minItems":1,"maxItems":10,"description":"One or more Google Maps place URLs to scrape reviews from (max 10)."},"maxReviews":{"type":"integer","minimum":1,"maximum":300,"description":"Maximum number of reviews to scrape per place (default 5, max 300)."},"reviewsSort":{"type":"string","enum":["mostRelevant","newest","highestRanking","lowestRanking"],"description":"Sort order for reviews. 'mostRelevant' (default), 'newest', 'highestRanking', or 'lowestRanking'."},"language":{"type":"string","description":"ISO 639-1 language code to filter reviews by language (e.g. 'en', 'fr')."},"personalDataOptions":{"$ref":"#/components/schemas/GoogleMapsPersonalDataOptions"}},"required":["startUrls"],"title":"GoogleMapsReviewsRequest","example":{"startUrls":[{"url":"https://www.google.com/maps/search/ColdIQ+Brussels+Belgium"}],"maxReviews":10,"reviewsSort":"newest","language":"en"}}}}},"responses":{"202":{"description":"Job accepted. Poll the returned `jobId` for results.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GoogleMapsReviewsSubmitResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/google-maps/reviews/{jobId}":{"get":{"x-credits-cost":{"amount":0,"unit":"call","billing_shape":"per_call"},"summary":"Get Google Maps reviews job result","description":"Poll the status of a reviews scraping job. Returns `202` while in progress, `200` with results when done. Completed results are cached — repeated calls are free and instant. Credits: free.","tags":["Google Maps"],"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"integer","minimum":0,"exclusiveMinimum":true,"maximum":2147483647},"required":true,"name":"jobId","in":"path"}],"responses":{"200":{"description":"Job status. When `status` is `done`, `reviews` contains the scraped data.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GoogleMapsReviewsPollResponse"}}}},"202":{"description":"Job is still running — poll again shortly.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GoogleMapsReviewsPollResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"404":{"description":"Job not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"410":{"description":"Job expired — credits refunded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/google-maps/scraper":{"post":{"x-credits-cost":{"amount":0.084,"unit":"place","billing_shape":"per_result"},"summary":"Google Maps Scraper","description":"Start an async job to extract places from Google Maps using search terms or direct URLs. Returns a `jobId` immediately — poll `GET /google-maps/scraper/{jobId}` for results. Credits are reserved upfront (1 per `maxCrawledPlacesPerSearch` × number of inputs) and the unused portion is refunded when results arrive. Credits: bills only for returned results, per place; reserved up-front for the requested size and settled to the actual count (see X-ColdIQ-Credits-Charged). Call get_endpoint_details for the live rate. Managed alternative: `POST /v1/places/search` (Search Places) runs this provider inside a ranked waterfall with charge-on-success billing and one normalized response shape, and falls back to the other providers for this capability on a miss. Call this endpoint directly when you specifically want this provider and no fallback.","tags":["Google Maps"],"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"searchStringsArray":{"type":"array","items":{"type":"string"},"minItems":1,"maxItems":10,"description":"Search terms as you would type them in Google Maps (e.g. \"coffee shop New York\"). Max 10 terms per call."},"startUrls":{"type":"array","items":{"$ref":"#/components/schemas/GoogleMapsStartUrl"},"minItems":1,"maxItems":10,"description":"Google Maps URLs to scrape directly (must contain /maps/search or /maps/place, max 10)."},"maxCrawledPlacesPerSearch":{"type":"integer","minimum":1,"maximum":200,"description":"Maximum number of places to return per search term or URL (default 10, max 200)."},"countryCode":{"type":"string","description":"ISO country code to restrict the search (e.g. \"us\", \"de\"). Increases result cap when combined with city."},"city":{"type":"string","description":"City to restrict the search (e.g. \"New York\")."},"language":{"type":"string","description":"ISO 639-1 language code for result details (e.g. 'en', 'fr')."},"includeOpeningHours":{"type":"boolean","description":"Include opening hours per place (slows scraping, default false)."},"additionalInfo":{"type":"boolean","description":"Include additional place attributes — service options, highlights, offerings, etc. (default false)."}},"title":"GoogleMapsScraperRequest","example":{"searchStringsArray":["B2B SaaS companies Brussels"],"maxCrawledPlacesPerSearch":20,"countryCode":"be","city":"Brussels","language":"en"}}}}},"responses":{"202":{"description":"Job accepted. Poll the returned `jobId` for results.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GoogleMapsScraperSubmitResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/google-maps/scraper/{jobId}":{"get":{"x-credits-cost":{"amount":0,"unit":"call","billing_shape":"per_call"},"summary":"Get Google Maps Scraper job result","description":"Poll the status of a places scraping job. Returns `202` while in progress, `200` with results when done. Completed results are cached — repeated calls are free and instant. Credits: free.","tags":["Google Maps"],"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"integer","minimum":0,"exclusiveMinimum":true,"maximum":2147483647},"required":true,"name":"jobId","in":"path"}],"responses":{"200":{"description":"Job status. When `status` is `done`, `places` contains the scraped data.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GoogleMapsScraperPollResponse"}}}},"202":{"description":"Job is still running — poll again shortly.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GoogleMapsScraperPollResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"404":{"description":"Job not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"410":{"description":"Job expired — credits refunded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/meta-ads/search":{"post":{"x-credits-cost":{"amount":0.16,"unit":"ad","billing_shape":"per_result"},"summary":"Search ads","description":"Start an async job to search the Facebook Ads Library by keyword or URL. Returns a `jobId` immediately — poll `GET /meta-ads/search/{jobId}` for results. Credits: bills only for returned results, per ad; reserved up-front for the requested size and settled to the actual count (see X-ColdIQ-Credits-Charged). Call get_endpoint_details for the live rate. Managed alternative: `POST /v1/ads/search` (Search Ads) runs this provider inside a ranked waterfall with charge-on-success billing and one normalized response shape, and falls back to the other providers for this capability on a miss. Call this endpoint directly when you specifically want this provider and no fallback.","tags":["Meta Ads Library"],"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"search":{"type":"string","minLength":1,"description":"Keyword to search in the Facebook Ads Library. Required when urls is not provided."},"country":{"type":"string","minLength":2,"maxLength":2,"description":"Two-letter country code to scope results (e.g. \"US\", \"GB\"). Defaults to \"US\" when not provided."},"adType":{"type":"string","enum":["ALL","POLITICAL_AND_ISSUE_ADS"],"description":"Filter by ad type. Use 'ALL' for all ads or 'POLITICAL_AND_ISSUE_ADS' for political ads only. Defaults to 'ALL' when search is provided."},"urls":{"type":"array","items":{"type":"string","format":"uri"},"description":"One or more Facebook Ads Library URLs to scrape directly (e.g. a pre-filtered search or advertiser page URL). Use instead of search."},"maxItems":{"type":"integer","minimum":1,"maximum":200,"default":20,"description":"Maximum number of ads to return (1–200). Defaults to 20."}},"title":"MetaAdsSearchRequest","example":{"search":"ColdIQ","country":"US","adType":"ALL","maxItems":20}}}}},"responses":{"202":{"description":"Job accepted. Poll the returned `jobId` for results.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MetaAdsSubmitResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/meta-ads/search/{jobId}":{"get":{"x-credits-cost":{"amount":0,"unit":"call","billing_shape":"per_call"},"summary":"Get Meta Ads search job result","description":"Poll the status of a Meta Ads Library scraping job. Returns `202` while in progress, `200` with results when done. Completed results are cached — repeated calls are free and instant. Credits: free.","tags":["Meta Ads Library"],"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"integer","minimum":0,"exclusiveMinimum":true,"maximum":2147483647},"required":true,"name":"jobId","in":"path"}],"responses":{"200":{"description":"Job status. When `status` is `done`, `ads` contains the scraped data.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MetaAdsPollResponse"}}}},"202":{"description":"Job is still running — poll again shortly.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MetaAdsPollResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"404":{"description":"Job not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"410":{"description":"Job expired — credits refunded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/twitter-ads-scraper/search":{"post":{"summary":"Search Ads","description":"Start an async job to search the Twitter Ad Transparency Center for ads matching the given terms. Returns a `jobId` immediately — poll `GET /twitter-ads-scraper/search/{jobId}` for results. Credits are reserved upfront at `maxItems × rate` and settled to the actual count returned. Credits: bills only for returned results, per result; reserved up-front for the requested size and settled to the actual count (see X-ColdIQ-Credits-Charged). Call get_endpoint_details for the live rate. Managed alternative: `POST /v1/ads/search` (Search Ads) runs this provider inside a ranked waterfall with charge-on-success billing and one normalized response shape, and falls back to the other providers for this capability on a miss. Call this endpoint directly when you specifically want this provider and no fallback.","x-credits-cost":{"amount":0.31,"unit":"result","billing_shape":"per_result"},"tags":["Twitter Ads Scraper"],"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"searchTerms":{"type":"array","items":{"type":"string","minLength":1},"minItems":1,"maxItems":10,"description":"Advertiser handles or keywords to search for on the Twitter Ad Transparency Center (e.g. \"ColdIQ\" or \"@Microsoft\")"},"maxItems":{"type":"integer","minimum":1,"maximum":100,"description":"Maximum number of ads to return (default: 20, max: 100). Credits are reserved upfront at this value and settled to the actual count returned."},"country":{"type":"string","nullable":true,"minLength":2,"maxLength":2,"description":"Two-letter ISO 3166-1 alpha-2 country code to filter ads by target country (e.g. \"US\")"},"startDate":{"type":"string","nullable":true,"pattern":"^\\d{4}-\\d{2}-\\d{2}$","description":"Start of the time range filter (YYYY-MM-DD)"},"endDate":{"type":"string","nullable":true,"pattern":"^\\d{4}-\\d{2}-\\d{2}$","description":"End of the time range filter (YYYY-MM-DD)"}},"required":["searchTerms"],"example":{"searchTerms":["ColdIQ"],"maxItems":20,"country":"US"}}}}},"responses":{"202":{"description":"Job accepted. Poll the returned `jobId` for results.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TwitterAdsSubmitResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/twitter-ads-scraper/search/{jobId}":{"get":{"summary":"Get Twitter Ads search job result","description":"Poll the status of a Twitter Ads scraping job. Returns `202` while in progress, `200` with results when done. Completed results are cached — repeated calls are free and instant. Credits: free.","x-credits-cost":{"amount":0,"unit":"call","billing_shape":"per_call"},"tags":["Twitter Ads Scraper"],"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"integer","minimum":0,"exclusiveMinimum":true,"maximum":2147483647},"required":true,"name":"jobId","in":"path"}],"responses":{"200":{"description":"Job status. When `status` is `done`, `ads` contains the scraped data.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TwitterAdsPollResponse"}}}},"202":{"description":"Job is still running — poll again shortly.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TwitterAdsPollResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"404":{"description":"Job not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"410":{"description":"Job expired — credits refunded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/linkedin-ad-library/search":{"post":{"x-credits-cost":{"amount":0.21,"unit":"ad","billing_shape":"per_result"},"summary":"LinkedIn Ad Library Scraper","description":"Start an async job to extract ads from the LinkedIn Ad Library. Returns a `jobId` immediately — poll `GET /linkedin-ad-library/search/{jobId}` for results. Credits: bills only for returned results, per ad; reserved up-front for the requested size and settled to the actual count (see X-ColdIQ-Credits-Charged). Call get_endpoint_details for the live rate. Managed alternative: `POST /v1/ads/search` (Search Ads) runs this provider inside a ranked waterfall with charge-on-success billing and one normalized response shape, and falls back to the other providers for this capability on a miss. Call this endpoint directly when you specifically want this provider and no fallback.","tags":["LinkedIn Ad Library"],"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"searchUrls":{"type":"array","items":{"type":"string","format":"uri"},"minItems":1,"maxItems":25,"description":"One or more LinkedIn Ad Library search URLs (max 25). Build these at linkedin.com/ad-library/search using filters like accountOwner, countries, and dateOption."},"maxResults":{"type":"integer","nullable":true,"minimum":1,"description":"Maximum number of ads to return across all search URLs."}},"required":["searchUrls"],"title":"LinkedInAdLibrarySearchRequest","example":{"searchUrls":["https://www.linkedin.com/ad-library/search?accountOwner=nvidia&countries=BR&dateOption=last-30-days"],"maxResults":50}}}}},"responses":{"202":{"description":"Job accepted. Poll the returned `jobId` for results.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LinkedInAdLibrarySubmitResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/linkedin-ad-library/search/{jobId}":{"get":{"x-credits-cost":{"amount":0,"unit":"call","billing_shape":"per_call"},"summary":"Get LinkedIn Ad Library job result","description":"Poll the status of a LinkedIn Ad Library scraping job. Returns `202` while in progress, `200` with results when done. Completed results are cached — repeated calls are free and instant. Credits: free.","tags":["LinkedIn Ad Library"],"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"integer","minimum":0,"exclusiveMinimum":true,"maximum":2147483647},"required":true,"name":"jobId","in":"path"}],"responses":{"200":{"description":"Job status. When `status` is `done`, `ads` contains the scraped data.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LinkedInAdLibraryPollResponse"}}}},"202":{"description":"Job is still running — poll again shortly.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LinkedInAdLibraryPollResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"404":{"description":"Job not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"410":{"description":"Job expired — credits refunded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/google-ads/search":{"post":{"x-credits-cost":{"amount":0.21,"unit":"ad","billing_shape":"per_result"},"summary":"Google Ads Scraper","description":"Start an async job to scrape Google Ads from the Ads Transparency Center. Search by advertiser name, domain, or ID. Returns a `jobId` immediately — poll `GET /google-ads/search/{jobId}` for results. Credits: bills only for returned results, per ad; reserved up-front for the requested size and settled to the actual count (see X-ColdIQ-Credits-Charged). Call get_endpoint_details for the live rate. Managed alternative: `POST /v1/ads/search` (Search Ads) runs this provider inside a ranked waterfall with charge-on-success billing and one normalized response shape, and falls back to the other providers for this capability on a miss. Call this endpoint directly when you specifically want this provider and no fallback.","tags":["Google Ads"],"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"searchTerms":{"type":"array","items":{"type":"string","minLength":1},"maxItems":25,"description":"Search for advertisers by name (e.g., Nike, Apple, Coca-Cola). Finds matching advertisers and scrapes their ads. Max 25 items."},"domains":{"type":"array","items":{"type":"string","minLength":1},"maxItems":25,"description":"Search ads by website domain (e.g., nike.com, apple.com). Max 25 items."},"advertiserIds":{"type":"array","items":{"type":"string","minLength":1},"maxItems":25,"description":"Direct advertiser IDs from Google Ads Transparency Center (e.g., AR16735076323512287233). Max 25 items."},"region":{"type":"string","description":"Filter ads shown in a specific country (ISO code). Leave empty for all regions."},"maxAds":{"type":"integer","minimum":1,"maximum":1000,"description":"Maximum number of ads to scrape per advertiser or domain. Defaults to 100."}},"title":"GoogleAdsSearchRequest","example":{"domains":["coldiq.com"],"maxAds":50}}}}},"responses":{"202":{"description":"Job accepted. Poll the returned `jobId` for results.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GoogleAdsSubmitResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/google-ads/search/{jobId}":{"get":{"x-credits-cost":{"amount":0,"unit":"call","billing_shape":"per_call"},"summary":"Get Google Ads job result","description":"Poll the status of a Google Ads scraping job. Returns `202` while in progress, `200` with results when done. Completed results are cached — repeated calls are free and instant. Credits: free.","tags":["Google Ads"],"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"integer","minimum":0,"exclusiveMinimum":true,"maximum":2147483647},"required":true,"name":"jobId","in":"path"}],"responses":{"200":{"description":"Job status. When `status` is `done`, `ads` contains the scraped data.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GoogleAdsPollResponse"}}}},"202":{"description":"Job is still running — poll again shortly.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GoogleAdsPollResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"404":{"description":"Job not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"410":{"description":"Job expired — credits refunded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/reddit/scrape":{"post":{"summary":"Reddit Scraper","description":"Start an async job to scrape Reddit posts, comments, communities, or users by subreddit URL, post URL, user URL, or search query. Returns a `jobId` immediately — poll `GET /reddit/scrape/{jobId}` for results. Credits are reserved upfront based on `maxItems` (default 10) and settled to the actual count returned. Credits: bills only for returned results, per item; reserved up-front for the requested size and settled to the actual count (see X-ColdIQ-Credits-Charged). Call get_endpoint_details for the live rate. Managed alternative: `POST /v1/reddit/search` (Search Reddit) runs this provider inside a ranked waterfall with charge-on-success billing and one normalized response shape, and falls back to the other providers for this capability on a miss. Call this endpoint directly when you specifically want this provider and no fallback.","tags":["Reddit"],"x-credits-cost":{"amount":0.16,"unit":"item","billing_shape":"per_result"},"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"startUrls":{"type":"array","items":{"$ref":"#/components/schemas/RedditStartUrl"},"maxItems":25,"description":"Reddit URLs to scrape — subreddit, post, user, or search URLs. Maximum 25."},"searchQueries":{"type":"array","items":{"type":"string","minLength":1},"maxItems":25,"description":"Search queries to run on Reddit. One scrape run is performed per query. Maximum 25."},"searchType":{"type":"string","nullable":true,"enum":["posts","comments","communities","users",null],"description":"What the search queries return: posts, comments, communities, or users. Defaults to \"posts\"."},"searchCommunityName":{"type":"string","description":"Restrict search queries to a single community (e.g. \"sales\"). Applies to searchQueries only."},"sort":{"type":"string","nullable":true,"enum":["relevance","hot","top","new","rising","comments",null],"description":"Sort order applied to results."},"time":{"type":"string","nullable":true,"enum":["hour","day","week","month","year","all",null],"description":"Time filter for results. Only applies when sort is \"top\" or \"relevance\"."},"maxItems":{"type":"integer","minimum":1,"maximum":200,"description":"Maximum number of items (posts, comments, communities, or users) to return (1–200). Defaults to 10. Credits are reserved upfront based on this value and settled to the actual count returned."},"maxComments":{"type":"integer","minimum":0,"maximum":1000,"description":"Maximum number of comments to fetch per post (only when comments are included). Set 0 to skip comment scraping entirely. Maximum 1000."},"includeComments":{"type":"boolean","description":"When true, includes top-level comments alongside each post."},"postDateLimit":{"type":"string","description":"Only return posts published on or after this date (ISO 8601, e.g. \"2025-01-01\")."},"commentDateLimit":{"type":"string","description":"Only return comments published on or after this date (ISO 8601, e.g. \"2025-01-01\")."}},"example":{"startUrls":[{"url":"https://www.reddit.com/r/sales/"}],"searchType":"posts","sort":"hot","maxItems":10}}}}},"responses":{"202":{"description":"Job accepted. Poll the returned `jobId` for results.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RedditSubmitResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/reddit/scrape/{jobId}":{"get":{"summary":"Get Reddit scrape job result","description":"Poll the status of a Reddit scraping job. Returns `202` while in progress, `200` with results when done. Completed results are cached — repeated calls are free and instant. Credits: free.","x-credits-cost":{"amount":0,"unit":"call","billing_shape":"per_call"},"tags":["Reddit"],"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"integer","minimum":0,"exclusiveMinimum":true,"maximum":2147483647},"required":true,"name":"jobId","in":"path"}],"responses":{"200":{"description":"Job status. When `status` is `done`, `items` contains the scraped data.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RedditPollResponse"}}}},"202":{"description":"Job is still running — poll again shortly.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RedditPollResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"404":{"description":"Job not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"410":{"description":"Job expired — credits refunded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/builtwith/domain":{"post":{"x-credits-cost":{"amount":3.13,"unit":"call","billing_shape":"per_call"},"summary":"Domain API","description":"Returns the full technology stack detected on a domain — frameworks, analytics, CRMs, ad networks, CDNs, and more. Credits: flat charge per call regardless of how many rows come back. Call get_endpoint_details for the live rate. Managed alternative: `POST /v1/company/enrich` (Enrich Company) runs this provider inside a ranked waterfall with charge-on-success billing and one normalized response shape, and falls back to the other providers for this capability on a miss. Call this endpoint directly when you specifically want this provider and no fallback.","tags":["BuiltWith"],"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"domain":{"type":"string","minLength":1,"pattern":"^[a-zA-Z0-9][a-zA-Z0-9.-]+\\.[a-zA-Z]{2,}$","description":"Domain name to look up (e.g. \"coldiq.com\")."}},"required":["domain"],"title":"BuiltWithDomainRequest","example":{"domain":"coldiq.com"}}}}},"responses":{"200":{"description":"Technology stack for the requested domain.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BuiltWithResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/builtwith/lists":{"post":{"x-credits-cost":{"amount":3.13,"unit":"call","billing_shape":"per_call"},"summary":"Lists API","description":"Returns websites that use a given technology (optionally combined with up to 16 other technologies), with first/last detection dates, estimated spend, revenue, employee and follower counts, rank signals, and optional company metadata. Filter by country, detection date, and numeric thresholds. Paginate by passing the returned NextOffset as offset until it equals \"END\". Credits: flat charge per call regardless of how many rows come back. Call get_endpoint_details for the live rate.","tags":["BuiltWith"],"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"technology":{"type":"string","minLength":1,"description":"Technology name as shown on builtwith.com (e.g. \"HubSpot\", \"Google Analytics\"). Spaces are converted to dashes upstream."},"other_technologies":{"type":"array","items":{"type":"string","minLength":1},"maxItems":16,"description":"Up to 16 additional technology names. Results must use the primary technology AND every technology listed here."},"include_meta":{"type":"boolean","description":"Return company metadata (name, location, vertical, telephones, emails, social links, titles) for each site."},"countries":{"type":"array","items":{"type":"string","pattern":"^[A-Za-z]{2}$"},"description":"Restrict results to these ISO 3166-1 alpha-2 country codes (e.g. [\"US\", \"GB\"])."},"offset":{"type":"string","description":"Pagination cursor: pass the exact NextOffset value from the previous response."},"since":{"type":"string","description":"Only sites first detected since this date — \"YYYY-MM-DD\" or relative (\"30 Days Ago\"). Cannot be combined with all."},"all":{"type":"boolean","description":"Include every site ever detected with the technology, including historical (no longer live) sites. Cannot be combined with since."},"spend":{"type":"object","properties":{"value":{"type":"number","description":"Numeric threshold."},"operator":{"type":"string","enum":["EQ","LT","LTE","GT","GTE"],"description":"Comparison operator. Default GTE (greater than or equal)."}},"required":["value"],"title":"BuiltWithListsNumericFilter","description":"Filter on estimated monthly technology spend in USD."},"revenue":{"type":"object","properties":{"value":{"type":"number","description":"Numeric threshold."},"operator":{"type":"string","enum":["EQ","LT","LTE","GT","GTE"],"description":"Comparison operator. Default GTE (greater than or equal)."}},"required":["value"],"title":"BuiltWithListsNumericFilter","description":"Filter on estimated annual revenue in USD."},"sku":{"type":"object","properties":{"value":{"type":"number","description":"Numeric threshold."},"operator":{"type":"string","enum":["EQ","LT","LTE","GT","GTE"],"description":"Comparison operator. Default GTE (greater than or equal)."}},"required":["value"],"title":"BuiltWithListsNumericFilter","description":"Filter on number of products (SKUs) sold."},"followers":{"type":"object","properties":{"value":{"type":"number","description":"Numeric threshold."},"operator":{"type":"string","enum":["EQ","LT","LTE","GT","GTE"],"description":"Comparison operator. Default GTE (greater than or equal)."}},"required":["value"],"title":"BuiltWithListsNumericFilter","description":"Filter on social media follower count."},"employees":{"type":"object","properties":{"value":{"type":"number","description":"Numeric threshold."},"operator":{"type":"string","enum":["EQ","LT","LTE","GT","GTE"],"description":"Comparison operator. Default GTE (greater than or equal)."}},"required":["value"],"title":"BuiltWithListsNumericFilter","description":"Filter on employee count."},"sitemap":{"type":"object","properties":{"value":{"type":"number","description":"Numeric threshold."},"operator":{"type":"string","enum":["EQ","LT","LTE","GT","GTE"],"description":"Comparison operator. Default GTE (greater than or equal)."}},"required":["value"],"title":"BuiltWithListsNumericFilter","description":"Filter on number of sitemap pages."},"pagerank":{"type":"object","properties":{"value":{"type":"number","description":"Numeric threshold."},"operator":{"type":"string","enum":["EQ","LT","LTE","GT","GTE"],"description":"Comparison operator. Default GTE (greater than or equal)."}},"required":["value"],"title":"BuiltWithListsNumericFilter","description":"Filter on page rank."},"bwrank":{"type":"object","properties":{"value":{"type":"number","description":"Numeric threshold."},"operator":{"type":"string","enum":["EQ","LT","LTE","GT","GTE"],"description":"Comparison operator. Default GTE (greater than or equal)."}},"required":["value"],"title":"BuiltWithListsNumericFilter","description":"Filter on BuiltWith rank."},"tranco":{"type":"object","properties":{"value":{"type":"number","description":"Numeric threshold."},"operator":{"type":"string","enum":["EQ","LT","LTE","GT","GTE"],"description":"Comparison operator. Default GTE (greater than or equal)."}},"required":["value"],"title":"BuiltWithListsNumericFilter","description":"Filter on Tranco rank."},"majestic":{"type":"object","properties":{"value":{"type":"number","description":"Numeric threshold."},"operator":{"type":"string","enum":["EQ","LT","LTE","GT","GTE"],"description":"Comparison operator. Default GTE (greater than or equal)."}},"required":["value"],"title":"BuiltWithListsNumericFilter","description":"Filter on Majestic rank."},"bws":{"type":"object","properties":{"value":{"type":"number","description":"Numeric threshold."},"operator":{"type":"string","enum":["EQ","LT","LTE","GT","GTE"],"description":"Comparison operator. Default GTE (greater than or equal)."}},"required":["value"],"title":"BuiltWithListsNumericFilter","description":"Filter on BuiltWith score."},"ecat":{"type":"object","properties":{"value":{"type":"number","description":"Numeric threshold."},"operator":{"type":"string","enum":["EQ","LT","LTE","GT","GTE"],"description":"Comparison operator. Default GTE (greater than or equal)."}},"required":["value"],"title":"BuiltWithListsNumericFilter","description":"Filter on e-commerce category score."},"aim":{"type":"object","properties":{"value":{"type":"number","description":"Numeric threshold."},"operator":{"type":"string","enum":["EQ","LT","LTE","GT","GTE"],"description":"Comparison operator. Default GTE (greater than or equal)."}},"required":["value"],"title":"BuiltWithListsNumericFilter","description":"Filter on AI marketing score."},"aio":{"type":"object","properties":{"value":{"type":"number","description":"Numeric threshold."},"operator":{"type":"string","enum":["EQ","LT","LTE","GT","GTE"],"description":"Comparison operator. Default GTE (greater than or equal)."}},"required":["value"],"title":"BuiltWithListsNumericFilter","description":"Filter on AI operations score."},"air":{"type":"object","properties":{"value":{"type":"number","description":"Numeric threshold."},"operator":{"type":"string","enum":["EQ","LT","LTE","GT","GTE"],"description":"Comparison operator. Default GTE (greater than or equal)."}},"required":["value"],"title":"BuiltWithListsNumericFilter","description":"Filter on AI research score."},"aiv":{"type":"object","properties":{"value":{"type":"number","description":"Numeric threshold."},"operator":{"type":"string","enum":["EQ","LT","LTE","GT","GTE"],"description":"Comparison operator. Default GTE (greater than or equal)."}},"required":["value"],"title":"BuiltWithListsNumericFilter","description":"Filter on AI vision score."}},"required":["technology"],"title":"BuiltWithListsRequest","example":{"technology":"HubSpot","countries":["US"],"include_meta":true}}}}},"responses":{"200":{"description":"One page of websites using the requested technology.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BuiltWithListsResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/builtwith/relationships":{"post":{"x-credits-cost":{"amount":3.13,"unit":"call","billing_shape":"per_call"},"summary":"Relationships API","description":"Returns websites related to a domain through shared identifiers — analytics IDs, ad-network tags, and optionally IP addresses — with first/last-seen dates and whether the identifier was live on both sites at the same time. Look up 1 to 16 domains per request; paginate with offset when more_results is true. Credits: flat charge per call regardless of how many rows come back. Call get_endpoint_details for the live rate.","tags":["BuiltWith"],"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"domain":{"type":"string","minLength":1,"pattern":"^[a-zA-Z0-9][a-zA-Z0-9.-]+\\.[a-zA-Z]{2,}$","description":"Domain or sub-domain to look up (e.g. \"coldiq.com\"). Ignored when domains is provided."},"domains":{"type":"array","items":{"type":"string","minLength":1,"pattern":"^[a-zA-Z0-9][a-zA-Z0-9.-]+\\.[a-zA-Z]{2,}$"},"minItems":1,"maxItems":16,"description":"Up to 16 domains to look up in one request. Takes precedence over domain."},"offset":{"type":"integer","minimum":0,"description":"Pagination offset: pass the next_skip value from the previous response."},"include_ip":{"type":"boolean","description":"Include website IP address relationships."}},"title":"BuiltWithRelationshipsRequest","example":{"domain":"coldiq.com"}}}}},"responses":{"200":{"description":"Relationships detected for the requested domain(s).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BuiltWithRelationshipsResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/prospeo/enrich-person":{"post":{"summary":"Enrich Person","description":"Enrich a person record using a LinkedIn URL, email, name + company, or internal person ID. Returns contact details, job history, email, and optionally mobile. Credits: charged once per call, at a rate that depends on which fields you request (standard, mobile) — it is NOT flat. Reserved up-front, settled to actual (see X-ColdIQ-Credits-Charged). Call get_endpoint_details for the live rate. Managed alternatives: `POST /v1/email/find` (Find Email), `POST /v1/phone/find` (Find Phone) and `POST /v1/person/enrich` (Enrich Person) run this provider inside a ranked waterfall with charge-on-success billing and one normalized response shape, and fall back to the other providers for this capability on a miss. Call this endpoint directly when you specifically want this provider and no fallback.","tags":["Prospeo"],"x-credits-cost":{"unit":"call","rates":{"standard":3.5,"mobile":35},"billing_shape":"per_call_variable"},"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"first_name":{"type":"string"},"last_name":{"type":"string"},"full_name":{"type":"string"},"company_name":{"type":"string"},"company_website":{"type":"string"},"company_linkedin_url":{"type":"string"},"linkedin_url":{"type":"string"},"email":{"type":"string"},"person_id":{"type":"string"}}},"only_verified_email":{"type":"boolean"},"enrich_mobile":{"type":"boolean"},"only_verified_mobile":{"type":"boolean"}},"required":["data"],"example":{"data":{"linkedin_url":"https://www.linkedin.com/in/michel-lieben"}}}}}},"responses":{"200":{"description":"Person data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProspeoEnrichPersonResponse"}}}},"400":{"description":"Bad request or upstream validation error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/prospeo/bulk-enrich-person":{"post":{"summary":"Bulk Enrich Person","description":"Enrich up to 50 person records in a single request. Each record requires an `identifier` field for tracking. Credits are reserved upfront (worst-case) and settled to the actual `total_cost` from the response. Credits: variable per record, charged by which fields you request (standard, mobile). Reserved up-front, settled to actual (see X-ColdIQ-Credits-Charged). Call get_endpoint_details for the live rate.","tags":["Prospeo"],"x-credits-cost":{"unit":"record","rates":{"standard":3.5,"mobile":35},"billing_shape":"per_result"},"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"first_name":{"type":"string"},"last_name":{"type":"string"},"full_name":{"type":"string"},"company_name":{"type":"string"},"company_website":{"type":"string"},"company_linkedin_url":{"type":"string"},"linkedin_url":{"type":"string"},"email":{"type":"string"},"person_id":{"type":"string"},"identifier":{"type":"string"}},"required":["identifier"]},"minItems":1,"maxItems":50},"only_verified_email":{"type":"boolean"},"enrich_mobile":{"type":"boolean"},"only_verified_mobile":{"type":"boolean"}},"required":["data"],"example":{"data":[{"identifier":"michel-lieben","linkedin_url":"https://www.linkedin.com/in/michel-lieben"},{"identifier":"satya-nadella","company_website":"microsoft.com","full_name":"Satya Nadella"}]}}}}},"responses":{"200":{"description":"Bulk enrich results","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProspeoBulkEnrichPersonResponse"}}}},"400":{"description":"Bad request or upstream validation error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/prospeo/search-person":{"post":{"summary":"Search Person","description":"Search for people using 30+ filters. Key filter keys: person_job_title (current title, {\"include\":[...]}), person_seniority (enum: C-Suite, Director, Entry, Founder/Owner, Head, Intern, Manager, Partner, Senior, Vice President), person_department, person_location_search, company (target employers by domain/name), plus experience/tenure ranges — see the filters schema for exact key names and value formats. Returns 25 results per page, up to 25,000 total. Credits: flat charge per call regardless of how many rows come back. Call get_endpoint_details for the live rate. Managed alternative: `POST /v1/people/search` (Find People) runs this provider inside a ranked waterfall with charge-on-success billing and one normalized response shape, and falls back to the other providers for this capability on a miss. Call this endpoint directly when you specifically want this provider and no fallback.","tags":["Prospeo"],"x-credits-cost":{"amount":3.5,"unit":"call","billing_shape":"per_call"},"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"filters":{"type":"object","properties":{"person_job_title":{"type":"object","properties":{"include":{"type":"array","items":{"type":"string"}},"exclude":{"type":"array","items":{"type":"string"}}},"additionalProperties":{"nullable":true},"description":"Current job title(s). Format {\"include\":[...],\"exclude\":[...]}. Optional \"match_mode\": CONTAINS | EXACT | SIMILAR, and \"boolean_search\" for expressions like \"(CEO OR CTO) AND !Intern\". NOTE: the key is person_job_title — \"current_title\"/\"job_titles\" are NOT valid and return INVALID_FILTERS."},"person_name_or_job_title":{"type":"string","description":"Free-text quick search across name and job title (plain string, not an object)."},"person_seniority":{"type":"object","properties":{"include":{"type":"array","items":{"type":"string"}},"exclude":{"type":"array","items":{"type":"string"}}},"additionalProperties":{"nullable":true},"description":"Seniority level(s). Format {\"include\":[...]}. Allowed values (exact): C-Suite, Director, Entry, Founder/Owner, Head, Intern, Manager, Partner, Senior, Vice President. (Use \"Vice President\", not \"VP\".)"},"person_department":{"type":"object","properties":{"include":{"type":"array","items":{"type":"string"}},"exclude":{"type":"array","items":{"type":"string"}}},"additionalProperties":{"nullable":true},"description":"Functional department(s). Format {\"include\":[...]}. Values include: C-Suite, Consulting, Design, Education & Coaching, Engineering & Technical, Finance, Human Resources, Information Technology, Legal, Marketing, Medical & Health, Operations, Product, Sales."},"person_name":{"type":"object","properties":{"include":{"type":"array","items":{"type":"string"}},"exclude":{"type":"array","items":{"type":"string"}}},"additionalProperties":{"nullable":true},"description":"Strict person-name match. Format {\"include\":[...],\"exclude\":[...]}."},"person_search":{"type":"object","properties":{"include":{"type":"array","items":{"type":"string"}},"exclude":{"type":"array","items":{"type":"string"}}},"additionalProperties":{"nullable":true},"description":"Search by name, company name, or domain. Format {\"include\":[...],\"exclude\":[...],\"match_mode\":\"SMART\"}."},"person_location_search":{"type":"object","properties":{"include":{"type":"array","items":{"type":"string"}},"exclude":{"type":"array","items":{"type":"string"}}},"additionalProperties":{"nullable":true},"description":"Person location(s), e.g. \"New York, United States\". Format {\"include\":[...],\"exclude\":[...]}."},"person_year_of_experience":{"type":"object","properties":{"min":{"type":"number"},"max":{"type":"number"}},"additionalProperties":{"nullable":true},"description":"Total years of experience. Format {\"min\":0,\"max\":60}."},"person_time_in_current_role":{"type":"object","properties":{"min":{"type":"number"},"max":{"type":"number"}},"additionalProperties":{"nullable":true},"description":"Tenure in current role, in months. Format {\"min\":0,\"max\":600}."},"person_time_in_current_company":{"type":"object","properties":{"min":{"type":"number"},"max":{"type":"number"}},"additionalProperties":{"nullable":true},"description":"Tenure at current company, in months. Format {\"min\":0,\"max\":600}."},"person_job_change":{"type":"object","properties":{},"additionalProperties":{"nullable":true},"description":"Recent job change. Format {\"timeframe_days\":90,\"only_promotion\":false}."},"person_contact_details":{"type":"object","properties":{},"additionalProperties":{"nullable":true},"description":"Contact-data availability. Format {\"email\":[...],\"mobile\":[...],\"operator\":\"OR\"}."},"max_person_per_company":{"type":"integer","description":"Cap on results returned per company (integer)."},"company_industry":{"type":"object","properties":{"include":{"type":"array","items":{"type":"string"}},"exclude":{"type":"array","items":{"type":"string"}}},"additionalProperties":{"nullable":true},"description":"Employer industry using Prospeo exact taxonomy values. Format {\"include\":[...],\"exclude\":[...]}. Do not guess values such as \"SaaS\" or \"Computer Software\"; omit this filter unless an accepted taxonomy value is known."},"company_location_search":{"type":"object","properties":{"include":{"type":"array","items":{"type":"string"}},"exclude":{"type":"array","items":{"type":"string"}}},"additionalProperties":{"nullable":true},"description":"Employer location(s). Format {\"include\":[...],\"exclude\":[...]}."},"company":{"type":"object","properties":{"websites":{"type":"object","properties":{"include":{"type":"array","items":{"type":"string"}},"exclude":{"type":"array","items":{"type":"string"}}},"additionalProperties":{"nullable":true}},"names":{"type":"object","properties":{"include":{"type":"array","items":{"type":"string"}},"exclude":{"type":"array","items":{"type":"string"}}},"additionalProperties":{"nullable":true}}},"additionalProperties":{"nullable":true},"description":"Target specific employers. Format {\"websites\":{\"include\":[\"microsoft.com\"]},\"names\":{\"include\":[\"Microsoft\"]}}. Use ROOT domains only — subdomains like www.microsoft.com are rejected."}},"additionalProperties":{"nullable":true},"description":"People search filters. At least one include filter is required (exclude-only searches are rejected). Combine filters to narrow results. Any filter key not listed here is forwarded to Prospeo as-is; unknown keys return INVALID_FILTERS."},"page":{"type":"integer","minimum":1,"description":"Page number (25 results per page)."}},"required":["filters"],"example":{"filters":{"person_job_title":{"include":["Head of GTM","Head of Growth"]},"person_seniority":{"include":["Head","Director","Vice President"]}}}}}}},"responses":{"200":{"description":"Search results","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProspeoSearchPersonResponse"}}}},"400":{"description":"Bad request or upstream validation error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/prospeo/enrich-company":{"post":{"summary":"Enrich Company","description":"Enrich a company record using website, LinkedIn URL, name, or internal company ID. Returns full company profile including headcount, funding, technology stack, and job postings. Credits: flat charge per call regardless of how many rows come back. Call get_endpoint_details for the live rate. Managed alternative: `POST /v1/company/enrich` (Enrich Company) runs this provider inside a ranked waterfall with charge-on-success billing and one normalized response shape, and falls back to the other providers for this capability on a miss. Call this endpoint directly when you specifically want this provider and no fallback.","tags":["Prospeo"],"x-credits-cost":{"amount":3.5,"unit":"call","billing_shape":"per_call"},"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"company_website":{"type":"string"},"company_linkedin_url":{"type":"string"},"company_name":{"type":"string"},"company_id":{"type":"string"}}}},"required":["data"],"example":{"data":{"company_website":"coldiq.com"}}}}}},"responses":{"200":{"description":"Company data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProspeoEnrichCompanyResponse"}}}},"400":{"description":"Bad request or upstream validation error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/prospeo/bulk-enrich-company":{"post":{"summary":"Bulk Enrich Company","description":"Enrich up to 50 company records in a single request. Each record requires an `identifier` field for tracking. Credits are reserved upfront (worst-case) and settled to the actual `total_cost` from the response. Credits: bills only for returned results, per record; reserved up-front for the requested size and settled to the actual count (see X-ColdIQ-Credits-Charged). Call get_endpoint_details for the live rate.","tags":["Prospeo"],"x-credits-cost":{"amount":3.5,"unit":"record","billing_shape":"per_result"},"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"company_website":{"type":"string"},"company_linkedin_url":{"type":"string"},"company_name":{"type":"string"},"company_id":{"type":"string"},"identifier":{"type":"string"}},"required":["identifier"]},"minItems":1,"maxItems":50}},"required":["data"],"example":{"data":[{"identifier":"coldiq","company_website":"coldiq.com"},{"identifier":"microsoft","company_website":"microsoft.com"},{"identifier":"apple","company_website":"apple.com"}]}}}}},"responses":{"200":{"description":"Bulk enrich results","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProspeoBulkEnrichCompanyResponse"}}}},"400":{"description":"Bad request or upstream validation error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/prospeo/search-company":{"post":{"summary":"Search Company","description":"Search for companies using filters including industry, employee count, funding stage, revenue range, technology stack, and more. Returns 25 results per page, up to 25,000 total. Credits: flat charge per call regardless of how many rows come back. Call get_endpoint_details for the live rate. Managed alternative: `POST /v1/companies/search` (Search Companies) runs this provider inside a ranked waterfall with charge-on-success billing and one normalized response shape, and falls back to the other providers for this capability on a miss. Call this endpoint directly when you specifically want this provider and no fallback.","tags":["Prospeo"],"x-credits-cost":{"amount":3.5,"unit":"call","billing_shape":"per_call"},"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"filters":{"type":"object","properties":{"company_industry":{"type":"object","properties":{"include":{"type":"array","items":{"type":"string"}},"exclude":{"type":"array","items":{"type":"string"}}},"additionalProperties":{"nullable":true},"description":"Industry. Format {\"include\":[...],\"exclude\":[...]}."},"company_headcount_custom":{"type":"object","properties":{"min":{"type":"number"},"max":{"type":"number"}},"additionalProperties":{"nullable":true},"description":"Employee-count range. Format {\"min\":10,\"max\":500}."},"company_location_search":{"type":"object","properties":{"include":{"type":"array","items":{"type":"string"}},"exclude":{"type":"array","items":{"type":"string"}}},"additionalProperties":{"nullable":true},"description":"Company location(s), e.g. \"San Francisco, United States\". Format {\"include\":[...],\"exclude\":[...]}."},"company":{"type":"object","properties":{"websites":{"type":"object","properties":{"include":{"type":"array","items":{"type":"string"}},"exclude":{"type":"array","items":{"type":"string"}}},"additionalProperties":{"nullable":true}},"names":{"type":"object","properties":{"include":{"type":"array","items":{"type":"string"}},"exclude":{"type":"array","items":{"type":"string"}}},"additionalProperties":{"nullable":true}}},"additionalProperties":{"nullable":true},"description":"Target specific companies. Format {\"websites\":{\"include\":[\"microsoft.com\"]},\"names\":{\"include\":[\"Microsoft\"]}}. Use ROOT domains only — subdomains like www.microsoft.com are rejected."}},"additionalProperties":{"nullable":true},"description":"Company search filters. At least one include filter is required (exclude-only searches are rejected). Prospeo exposes more filters (funding, technology, revenue, NAICS/SIC, …); build a search in the Prospeo dashboard and copy the generated payload for their exact key names. Any key not listed here is forwarded as-is; unknown keys return INVALID_FILTERS."},"page":{"type":"integer","minimum":1,"description":"Page number (25 results per page)."}},"required":["filters"],"example":{"filters":{"company_industry":{"include":["Software Development"]},"company_headcount_custom":{"min":10,"max":500}}}}}}},"responses":{"200":{"description":"Search results","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProspeoSearchCompanyResponse"}}}},"400":{"description":"Bad request or upstream validation error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/dataforseo/serp/youtube/locations":{"post":{"summary":"YouTube Locations","description":"Get the list of locations supported for YouTube SERP queries. Credits: flat charge per call regardless of how many rows come back. Call get_endpoint_details for the live rate.","tags":["DataForSEO"],"x-credits-cost":{"amount":0.13,"unit":"call","billing_shape":"per_call"},"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"country_iso_code":{"type":"string","minLength":2,"maxLength":2,"description":"2-letter ISO country code, e.g. \"US\"."},"location_type":{"type":"string","description":"Filter by location type."},"location_name":{"type":"string","description":"Filter by location name."}},"required":["country_iso_code"],"title":"YouTubeLocationsRequest","example":{"country_iso_code":"US"}}}}},"responses":{"200":{"description":"YouTube locations list","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DfsYouTubeLocationsResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/dataforseo/serp/youtube/organic":{"post":{"summary":"YouTube Organic Search","description":"Retrieve organic YouTube search results for a keyword. Credits: bills only for returned results, per result; reserved up-front for the requested size and settled to the actual count (see X-ColdIQ-Credits-Charged). Call get_endpoint_details for the live rate. Managed alternative: `POST /v1/seo/search` (Search SEO) runs this provider inside a ranked waterfall with charge-on-success billing and one normalized response shape, and falls back to the other providers for this capability on a miss. Call this endpoint directly when you specifically want this provider and no fallback.","tags":["DataForSEO"],"x-credits-cost":{"amount":0.13,"unit":"result","billing_shape":"per_result"},"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"keyword":{"type":"string","minLength":1,"description":"Search keyword."},"location_name":{"type":"string","minLength":1,"description":"Location name, e.g. \"United States\"."},"language_code":{"type":"string","minLength":1,"description":"Language code, e.g. \"en\"."},"device":{"type":"string","enum":["desktop","mobile"],"description":"Device type."},"os":{"type":"string","description":"Operating system."},"block_depth":{"type":"integer","minimum":1,"maximum":700,"description":"Number of results to return (1–700). Defaults to 10."}},"required":["keyword","location_name","language_code"],"title":"YouTubeOrganicRequest","example":{"keyword":"cold email tutorial","location_name":"United States","language_code":"en","block_depth":10}}}}},"responses":{"200":{"description":"YouTube organic search results","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DfsYouTubeOrganicResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/dataforseo/serp/youtube/video-info":{"post":{"summary":"YouTube Video Info","description":"Retrieve detailed information about a YouTube video. Credits: flat charge per call regardless of how many rows come back. Call get_endpoint_details for the live rate.","tags":["DataForSEO"],"x-credits-cost":{"amount":0.13,"unit":"call","billing_shape":"per_call"},"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"video_id":{"type":"string","minLength":1,"description":"YouTube video ID."},"location_name":{"type":"string","minLength":1,"description":"Location name, e.g. \"United States\"."},"language_code":{"type":"string","minLength":1,"description":"Language code, e.g. \"en\"."},"device":{"type":"string","enum":["desktop","mobile"],"description":"Device type."},"os":{"type":"string","description":"Operating system."}},"required":["video_id","location_name","language_code"],"title":"YouTubeVideoInfoRequest","example":{"video_id":"dQw4w9WgXcQ","location_name":"United States","language_code":"en"}}}}},"responses":{"200":{"description":"YouTube video information","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DfsYouTubeVideoInfoResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/dataforseo/serp/youtube/video-comments":{"post":{"summary":"YouTube Video Comments","description":"Retrieve comments for a YouTube video. Credits: bills only for returned results, per result; reserved up-front for the requested size and settled to the actual count (see X-ColdIQ-Credits-Charged). Call get_endpoint_details for the live rate.","tags":["DataForSEO"],"x-credits-cost":{"amount":0.13,"unit":"result","billing_shape":"per_result"},"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"video_id":{"type":"string","minLength":1,"description":"YouTube video ID."},"location_name":{"type":"string","minLength":1,"description":"Location name, e.g. \"United States\"."},"language_code":{"type":"string","minLength":1,"description":"Language code, e.g. \"en\"."},"device":{"type":"string","enum":["desktop","mobile"],"description":"Device type."},"os":{"type":"string","description":"Operating system."},"depth":{"type":"integer","minimum":1,"maximum":700,"description":"Number of comments to return (1–700). Defaults to 10."}},"required":["video_id","location_name","language_code"],"title":"YouTubeVideoCommentsRequest","example":{"video_id":"dQw4w9WgXcQ","location_name":"United States","language_code":"en","depth":10}}}}},"responses":{"200":{"description":"YouTube video comments","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DfsYouTubeVideoCommentsResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/dataforseo/serp/youtube/video-subtitles":{"post":{"summary":"YouTube Video Subtitles","description":"Retrieve subtitles for a YouTube video. Credits: flat charge per call regardless of how many rows come back. Call get_endpoint_details for the live rate.","tags":["DataForSEO"],"x-credits-cost":{"amount":0.13,"unit":"call","billing_shape":"per_call"},"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"video_id":{"type":"string","minLength":1,"description":"YouTube video ID."},"location_name":{"type":"string","minLength":1,"description":"Location name, e.g. \"United States\"."},"language_code":{"type":"string","minLength":1,"description":"Language code, e.g. \"en\"."},"subtitles_language":{"type":"string","description":"Language code for the subtitles to retrieve."},"subtitles_translate_language":{"type":"string","description":"Language code to translate subtitles into."},"device":{"type":"string","enum":["desktop","mobile"],"description":"Device type."},"os":{"type":"string","description":"Operating system."}},"required":["video_id","location_name","language_code"],"title":"YouTubeVideoSubtitlesRequest","example":{"video_id":"dQw4w9WgXcQ","location_name":"United States","language_code":"en"}}}}},"responses":{"200":{"description":"YouTube video subtitles","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DfsYouTubeVideoSubtitlesResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/dataforseo/serp/{search_engine}/locations":{"post":{"summary":"SERP Locations","description":"Get the list of locations supported for a given search engine. Credits: flat charge per call regardless of how many rows come back. Call get_endpoint_details for the live rate.","tags":["DataForSEO"],"x-credits-cost":{"amount":0.13,"unit":"call","billing_shape":"per_call"},"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","minLength":1,"description":"Search engine name, e.g. \"google\", \"bing\", \"yahoo\"."},"required":true,"description":"Search engine name, e.g. \"google\", \"bing\", \"yahoo\".","name":"search_engine","in":"path"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"country_iso_code":{"type":"string","minLength":2,"maxLength":2,"description":"2-letter ISO country code, e.g. \"US\"."},"location_type":{"type":"string","description":"Filter by location type."},"location_name":{"type":"string","description":"Filter by location name."}},"required":["country_iso_code"],"title":"SerpLocationsRequest","example":{"country_iso_code":"US"}}}}},"responses":{"200":{"description":"SERP locations list","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DfsSerpLocationsResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/dataforseo/serp/{search_engine}/organic":{"post":{"summary":"Organic SERP","description":"Retrieve organic search results for a keyword from a specified search engine. Credits: bills only for returned results, per result; reserved up-front for the requested size and settled to the actual count (see X-ColdIQ-Credits-Charged). Call get_endpoint_details for the live rate.","tags":["DataForSEO"],"x-credits-cost":{"amount":0.13,"unit":"result","billing_shape":"per_result"},"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","minLength":1,"description":"Search engine name, e.g. \"google\", \"bing\", \"yahoo\"."},"required":true,"description":"Search engine name, e.g. \"google\", \"bing\", \"yahoo\".","name":"search_engine","in":"path"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"keyword":{"type":"string","minLength":1,"description":"Search keyword."},"language_code":{"type":"string","minLength":1,"description":"Language code, e.g. \"en\"."},"location_name":{"type":"string","description":"Location name, e.g. \"United States\"."},"depth":{"type":"integer","minimum":1,"maximum":700,"description":"Number of results to return (1–700). Defaults to 10."},"device":{"type":"string","enum":["desktop","mobile"],"description":"Device type. Defaults to \"desktop\"."},"max_crawl_pages":{"type":"integer","minimum":0,"exclusiveMinimum":true,"description":"Maximum number of pages to crawl."},"people_also_ask_click_depth":{"type":"integer","minimum":0,"exclusiveMinimum":true,"description":"Depth for People Also Ask expansion."}},"required":["keyword"],"title":"SerpOrganicRequest","example":{"keyword":"B2B sales automation software","language_code":"en","location_name":"United States","depth":10}}}}},"responses":{"200":{"description":"Organic SERP results","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DfsSerpOrganicResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/dataforseo/keywords/google-ads/locations":{"post":{"summary":"Google Ads Locations","description":"Get the list of locations supported for Google Ads keyword data. Credits: flat charge per call regardless of how many rows come back. Call get_endpoint_details for the live rate.","tags":["DataForSEO"],"x-credits-cost":{"amount":0.11,"unit":"call","billing_shape":"per_call"},"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"country_iso_code":{"type":"string","minLength":2,"maxLength":2,"description":"2-letter ISO country code, e.g. \"US\"."},"location_type":{"type":"string","description":"Filter by location type."},"location_name":{"type":"string","description":"Filter by location name."}},"required":["country_iso_code"],"title":"GoogleAdsLocationsRequest","example":{"country_iso_code":"US"}}}}},"responses":{"200":{"description":"Google Ads locations list","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DfsGoogleAdsLocationsResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/dataforseo/keywords/google-ads/search-volume":{"post":{"summary":"Google Ads Search Volume","description":"Get historical search volume data for a list of keywords from Google Ads. Credits: bills only for returned results, per keyword; reserved up-front for the requested size and settled to the actual count (see X-ColdIQ-Credits-Charged). Call get_endpoint_details for the live rate. Managed alternative: `POST /v1/seo/search` (Search SEO) runs this provider inside a ranked waterfall with charge-on-success billing and one normalized response shape, and falls back to the other providers for this capability on a miss. Call this endpoint directly when you specifically want this provider and no fallback.","tags":["DataForSEO"],"x-credits-cost":{"amount":0.11,"unit":"keyword","billing_shape":"per_result"},"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"keywords":{"type":"array","items":{"type":"string","minLength":1},"minItems":1,"description":"List of keywords to get search volume for. Costs 1 credit per keyword."},"location_name":{"type":"string","description":"Location name, e.g. \"United States\"."},"language_code":{"type":"string","description":"Language code, e.g. \"en\"."}},"required":["keywords"],"title":"GoogleAdsSearchVolumeRequest","example":{"keywords":["cold email software","sales automation tool","B2B prospecting"],"location_name":"United States","language_code":"en"}}}}},"responses":{"200":{"description":"Search volume results","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DfsGoogleAdsSearchVolumeResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/dataforseo/keywords/google-trends/categories":{"get":{"summary":"Google Trends Categories","description":"Get the list of Google Trends categories. No credit cost. Credits: free.","tags":["DataForSEO"],"x-credits-cost":{"amount":0,"unit":"call","billing_shape":"per_call"},"security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Google Trends categories list","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DfsGoogleTrendsCategoriesResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/dataforseo/keywords/google-trends/explore":{"post":{"summary":"Google Trends Explore","description":"Explore interest over time and related queries for up to 5 keywords using Google Trends. Credits: flat charge per call regardless of how many rows come back. Call get_endpoint_details for the live rate. Managed alternative: `POST /v1/seo/search` (Search SEO) runs this provider inside a ranked waterfall with charge-on-success billing and one normalized response shape, and falls back to the other providers for this capability on a miss. Call this endpoint directly when you specifically want this provider and no fallback.","tags":["DataForSEO"],"x-credits-cost":{"amount":0.11,"unit":"call","billing_shape":"per_call"},"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"keywords":{"type":"array","items":{"type":"string","minLength":1},"minItems":1,"maxItems":5,"description":"List of keywords to explore (1–5). Costs 1 credit per call."},"location_name":{"type":"string","description":"Location name, e.g. \"United States\"."},"language_code":{"type":"string","description":"Language code, e.g. \"en\"."},"type":{"type":"string","description":"Type of Google Trends data to retrieve."},"date_from":{"type":"string","description":"Start date for the trends data range (YYYY-MM-DD)."},"date_to":{"type":"string","description":"End date for the trends data range (YYYY-MM-DD)."},"time_range":{"type":"string","description":"Predefined time range, e.g. \"past_12_months\"."},"item_types":{"type":"array","items":{"type":"string"},"description":"Types of items to include in the results."},"category_code":{"type":"integer","description":"Google Trends category code to filter results."}},"required":["keywords"],"title":"GoogleTrendsExploreRequest","example":{"keywords":["cold email","sales automation"],"location_name":"United States"}}}}},"responses":{"200":{"description":"Google Trends explore results","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DfsGoogleTrendsExploreResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/dataforseo/labs/ranked-keywords":{"post":{"summary":"Ranked Keywords","description":"Get the list of keywords a domain ranks for in Google organic search. Credits: bills only for returned results, per result; reserved up-front for the requested size and settled to the actual count (see X-ColdIQ-Credits-Charged). Call get_endpoint_details for the live rate. Managed alternative: `POST /v1/seo/search` (Search SEO) runs this provider inside a ranked waterfall with charge-on-success billing and one normalized response shape, and falls back to the other providers for this capability on a miss. Call this endpoint directly when you specifically want this provider and no fallback.","tags":["DataForSEO"],"x-credits-cost":{"amount":2.31,"unit":"result","billing_shape":"per_result"},"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"target":{"type":"string","minLength":1,"description":"Domain to retrieve ranked keywords for."},"location_name":{"type":"string","description":"Full location name (e.g. \"United States\")."},"language_code":{"type":"string","description":"ISO 639-1 language code (e.g. \"en\")."},"limit":{"type":"integer","minimum":0,"exclusiveMinimum":true,"description":"Maximum number of results to return. Defaults to 10."},"offset":{"type":"integer","minimum":0,"description":"Offset in the results array for pagination."},"filters":{"type":"array","items":{"nullable":true},"description":"Array of filter conditions. Each element is a filter rule or logical operator."},"order_by":{"type":"array","items":{"nullable":true},"description":"Sorting rules as an array of field+order strings (e.g. [\"keyword_data.keyword_info.search_volume,desc\"])."},"include_subdomains":{"type":"boolean","description":"When true, results include subdomains of the target."},"include_clickstream_data":{"type":"boolean","description":"When true, returns clickstream-based metrics."},"item_types":{"type":"array","items":{"nullable":true},"description":"Filter by item types in SERP (e.g. [\"organic\", \"paid\"])."}},"required":["target"],"example":{"target":"coldiq.com","location_name":"United States","language_code":"en","limit":10}}}}},"responses":{"200":{"description":"Ranked keywords results","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DfsLabsRankedKeywordsResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/dataforseo/labs/competitors-domain":{"post":{"summary":"Competitors Domain","description":"Get domains competing with the target in Google organic search. Credits: bills only for returned results, per result; reserved up-front for the requested size and settled to the actual count (see X-ColdIQ-Credits-Charged). Call get_endpoint_details for the live rate. Managed alternative: `POST /v1/seo/search` (Search SEO) runs this provider inside a ranked waterfall with charge-on-success billing and one normalized response shape, and falls back to the other providers for this capability on a miss. Call this endpoint directly when you specifically want this provider and no fallback.","tags":["DataForSEO"],"x-credits-cost":{"amount":2.31,"unit":"result","billing_shape":"per_result"},"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"target":{"type":"string","minLength":1,"description":"Domain to find competitors for."},"location_name":{"type":"string","description":"Full location name (e.g. \"United States\")."},"language_code":{"type":"string","description":"ISO 639-1 language code (e.g. \"en\")."},"ignore_synonyms":{"type":"boolean","description":"When true, synonyms are excluded from results."},"limit":{"type":"integer","minimum":0,"exclusiveMinimum":true,"description":"Maximum number of results to return. Defaults to 10."},"offset":{"type":"integer","minimum":0,"description":"Offset in the results array for pagination."},"filters":{"type":"array","items":{"nullable":true},"description":"Array of filter conditions. Each element is a filter rule or logical operator."},"order_by":{"type":"array","items":{"nullable":true},"description":"Sorting rules as an array of field+order strings (e.g. [\"keyword_data.keyword_info.search_volume,desc\"])."},"exclude_top_domains":{"type":"boolean","description":"When true, top domains (e.g. Wikipedia, Amazon) are excluded from results."},"include_clickstream_data":{"type":"boolean","description":"When true, returns clickstream-based metrics."},"item_types":{"type":"array","items":{"nullable":true},"description":"Filter by item types in SERP (e.g. [\"organic\", \"paid\"])."}},"required":["target"],"example":{"target":"coldiq.com","location_name":"United States","language_code":"en"}}}}},"responses":{"200":{"description":"Competitor domains","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DfsLabsCompetitorsDomainResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/dataforseo/labs/domain-rank-overview":{"post":{"summary":"Domain Rank Overview","description":"Get a summary of organic and paid traffic metrics for a domain. Credits: flat charge per call regardless of how many rows come back. Call get_endpoint_details for the live rate. Managed alternative: `POST /v1/seo/search` (Search SEO) runs this provider inside a ranked waterfall with charge-on-success billing and one normalized response shape, and falls back to the other providers for this capability on a miss. Call this endpoint directly when you specifically want this provider and no fallback.","tags":["DataForSEO"],"x-credits-cost":{"amount":2.31,"unit":"call","billing_shape":"per_call"},"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"target":{"type":"string","minLength":1,"description":"Domain to get rank overview for."},"location_name":{"type":"string","description":"Full location name (e.g. \"United States\")."},"language_code":{"type":"string","description":"ISO 639-1 language code (e.g. \"en\")."},"ignore_synonyms":{"type":"boolean","description":"When true, synonyms are excluded from results."}},"required":["target"],"example":{"target":"coldiq.com","location_name":"United States","language_code":"en"}}}}},"responses":{"200":{"description":"Domain rank overview","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DfsLabsDomainRankOverviewResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/dataforseo/labs/keyword-ideas":{"post":{"summary":"Keyword Ideas","description":"Get keyword ideas based on seed keywords. Credits: bills only for returned results, per result; reserved up-front for the requested size and settled to the actual count (see X-ColdIQ-Credits-Charged). Call get_endpoint_details for the live rate. Managed alternative: `POST /v1/seo/search` (Search SEO) runs this provider inside a ranked waterfall with charge-on-success billing and one normalized response shape, and falls back to the other providers for this capability on a miss. Call this endpoint directly when you specifically want this provider and no fallback.","tags":["DataForSEO"],"x-credits-cost":{"amount":2.31,"unit":"result","billing_shape":"per_result"},"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"keywords":{"type":"array","items":{"type":"string"},"minItems":1,"description":"Seed keywords to generate ideas for."},"location_name":{"type":"string","description":"Full location name (e.g. \"United States\")."},"language_code":{"type":"string","description":"ISO 639-1 language code (e.g. \"en\")."},"limit":{"type":"integer","minimum":0,"exclusiveMinimum":true,"description":"Maximum number of results to return. Defaults to 10."},"offset":{"type":"integer","minimum":0,"description":"Offset in the results array for pagination."},"filters":{"type":"array","items":{"nullable":true},"description":"Array of filter conditions. Each element is a filter rule or logical operator."},"order_by":{"type":"array","items":{"nullable":true},"description":"Sorting rules as an array of field+order strings (e.g. [\"keyword_data.keyword_info.search_volume,desc\"])."},"include_clickstream_data":{"type":"boolean","description":"When true, returns clickstream-based metrics."}},"required":["keywords"],"example":{"keywords":["cold email","sales automation"],"location_name":"United States","language_code":"en","limit":10}}}}},"responses":{"200":{"description":"Keyword ideas","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DfsLabsKeywordIdeasResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/dataforseo/labs/related-keywords":{"post":{"summary":"Related Keywords","description":"Get keywords related to a seed keyword, traversing the related keywords graph. Credits: bills only for returned results, per result; reserved up-front for the requested size and settled to the actual count (see X-ColdIQ-Credits-Charged). Call get_endpoint_details for the live rate.","tags":["DataForSEO"],"x-credits-cost":{"amount":2.31,"unit":"result","billing_shape":"per_result"},"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"keyword":{"type":"string","minLength":1,"description":"Seed keyword to find related keywords for."},"depth":{"type":"integer","minimum":0,"exclusiveMinimum":true,"description":"Depth of the related keywords graph to traverse."},"location_name":{"type":"string","description":"Full location name (e.g. \"United States\")."},"language_code":{"type":"string","description":"ISO 639-1 language code (e.g. \"en\")."},"limit":{"type":"integer","minimum":0,"exclusiveMinimum":true,"description":"Maximum number of results to return. Defaults to 10."},"offset":{"type":"integer","minimum":0,"description":"Offset in the results array for pagination."},"filters":{"type":"array","items":{"nullable":true},"description":"Array of filter conditions. Each element is a filter rule or logical operator."},"order_by":{"type":"array","items":{"nullable":true},"description":"Sorting rules as an array of field+order strings (e.g. [\"keyword_data.keyword_info.search_volume,desc\"])."},"include_clickstream_data":{"type":"boolean","description":"When true, returns clickstream-based metrics."}},"required":["keyword"],"example":{"keyword":"cold email software","location_name":"United States","language_code":"en","limit":10}}}}},"responses":{"200":{"description":"Related keywords","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DfsLabsRelatedKeywordsResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/dataforseo/labs/keyword-suggestions":{"post":{"summary":"Keyword Suggestions","description":"Get keyword suggestions based on a seed keyword. Credits: bills only for returned results, per result; reserved up-front for the requested size and settled to the actual count (see X-ColdIQ-Credits-Charged). Call get_endpoint_details for the live rate.","tags":["DataForSEO"],"x-credits-cost":{"amount":2.31,"unit":"result","billing_shape":"per_result"},"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"keyword":{"type":"string","minLength":1,"description":"Seed keyword to generate suggestions for."},"location_name":{"type":"string","description":"Full location name (e.g. \"United States\")."},"language_code":{"type":"string","description":"ISO 639-1 language code (e.g. \"en\")."},"limit":{"type":"integer","minimum":0,"exclusiveMinimum":true,"description":"Maximum number of results to return. Defaults to 10."},"offset":{"type":"integer","minimum":0,"description":"Offset in the results array for pagination."},"filters":{"type":"array","items":{"nullable":true},"description":"Array of filter conditions. Each element is a filter rule or logical operator."},"order_by":{"type":"array","items":{"nullable":true},"description":"Sorting rules as an array of field+order strings (e.g. [\"keyword_data.keyword_info.search_volume,desc\"])."},"include_clickstream_data":{"type":"boolean","description":"When true, returns clickstream-based metrics."}},"required":["keyword"],"example":{"keyword":"B2B sales automation","location_name":"United States","language_code":"en","limit":10}}}}},"responses":{"200":{"description":"Keyword suggestions","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DfsLabsKeywordSuggestionsResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/dataforseo/labs/historical-serp":{"post":{"summary":"Historical SERP","description":"Get historical Google SERP data for a keyword. Credits: flat charge per call regardless of how many rows come back. Call get_endpoint_details for the live rate.","tags":["DataForSEO"],"x-credits-cost":{"amount":2.31,"unit":"call","billing_shape":"per_call"},"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"keyword":{"type":"string","minLength":1,"description":"Keyword to retrieve historical SERP data for."},"location_name":{"type":"string","description":"Full location name (e.g. \"United States\")."},"language_code":{"type":"string","description":"ISO 639-1 language code (e.g. \"en\")."}},"required":["keyword"],"example":{"keyword":"cold email software","location_name":"United States","language_code":"en"}}}}},"responses":{"200":{"description":"Historical SERP data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DfsLabsHistoricalSerpResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/dataforseo/labs/serp-competitors":{"post":{"summary":"SERP Competitors","description":"Get domains competing in the SERP for a set of keywords. Credits: bills only for returned results, per result; reserved up-front for the requested size and settled to the actual count (see X-ColdIQ-Credits-Charged). Call get_endpoint_details for the live rate.","tags":["DataForSEO"],"x-credits-cost":{"amount":2.31,"unit":"result","billing_shape":"per_result"},"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"keywords":{"type":"array","items":{"type":"string"},"minItems":1,"description":"Keywords to find SERP competitors for."},"location_name":{"type":"string","description":"Full location name (e.g. \"United States\")."},"language_code":{"type":"string","description":"ISO 639-1 language code (e.g. \"en\")."},"limit":{"type":"integer","minimum":0,"exclusiveMinimum":true,"description":"Maximum number of results to return. Defaults to 10."},"offset":{"type":"integer","minimum":0,"description":"Offset in the results array for pagination."},"filters":{"type":"array","items":{"nullable":true},"description":"Array of filter conditions. Each element is a filter rule or logical operator."},"order_by":{"type":"array","items":{"nullable":true},"description":"Sorting rules as an array of field+order strings (e.g. [\"keyword_data.keyword_info.search_volume,desc\"])."},"include_subdomains":{"type":"boolean","description":"When true, results include subdomains of the target."},"item_types":{"type":"array","items":{"nullable":true},"description":"Filter by item types in SERP (e.g. [\"organic\", \"paid\"])."}},"required":["keywords"],"example":{"keywords":["cold email","sales outreach tools"],"location_name":"United States","language_code":"en"}}}}},"responses":{"200":{"description":"SERP competitors","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DfsLabsSerpCompetitorsResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/dataforseo/labs/bulk-keyword-difficulty":{"post":{"summary":"Bulk Keyword Difficulty","description":"Get keyword difficulty scores for a list of keywords. Credits: bills only for returned results, per keyword; reserved up-front for the requested size and settled to the actual count (see X-ColdIQ-Credits-Charged). Call get_endpoint_details for the live rate.","tags":["DataForSEO"],"x-credits-cost":{"amount":2.31,"unit":"keyword","billing_shape":"per_result"},"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"keywords":{"type":"array","items":{"type":"string"},"minItems":1,"description":"Keywords to retrieve difficulty scores for. Costs 1 credit per keyword."},"location_name":{"type":"string","description":"Full location name (e.g. \"United States\")."},"language_code":{"type":"string","description":"ISO 639-1 language code (e.g. \"en\")."}},"required":["keywords"],"example":{"keywords":["cold email software","B2B sales automation","sales prospecting tools"],"location_name":"United States","language_code":"en"}}}}},"responses":{"200":{"description":"Keyword difficulty scores","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DfsLabsBulkKeywordDifficultyResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/dataforseo/labs/subdomains":{"post":{"summary":"Subdomains","description":"Get organic search metrics for all subdomains of a target domain. Credits: bills only for returned results, per result; reserved up-front for the requested size and settled to the actual count (see X-ColdIQ-Credits-Charged). Call get_endpoint_details for the live rate.","tags":["DataForSEO"],"x-credits-cost":{"amount":2.31,"unit":"result","billing_shape":"per_result"},"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"target":{"type":"string","minLength":1,"description":"Root domain to retrieve subdomain data for."},"location_name":{"type":"string","description":"Full location name (e.g. \"United States\")."},"language_code":{"type":"string","description":"ISO 639-1 language code (e.g. \"en\")."},"ignore_synonyms":{"type":"boolean","description":"When true, synonyms are excluded from results."},"limit":{"type":"integer","minimum":0,"exclusiveMinimum":true,"description":"Maximum number of results to return. Defaults to 10."},"offset":{"type":"integer","minimum":0,"description":"Offset in the results array for pagination."},"filters":{"type":"array","items":{"nullable":true},"description":"Array of filter conditions. Each element is a filter rule or logical operator."},"order_by":{"type":"array","items":{"nullable":true},"description":"Sorting rules as an array of field+order strings (e.g. [\"keyword_data.keyword_info.search_volume,desc\"])."},"item_types":{"type":"array","items":{"nullable":true},"description":"Filter by item types in SERP (e.g. [\"organic\", \"paid\"])."},"include_clickstream_data":{"type":"boolean","description":"When true, returns clickstream-based metrics."}},"required":["target"],"example":{"target":"microsoft.com","location_name":"United States","language_code":"en"}}}}},"responses":{"200":{"description":"Subdomains data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DfsLabsSubdomainsResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/dataforseo/labs/keyword-overview":{"post":{"summary":"Keyword Overview","description":"Get search volume, CPC, competition, and other metrics for a list of keywords. Credits: bills only for returned results, per keyword; reserved up-front for the requested size and settled to the actual count (see X-ColdIQ-Credits-Charged). Call get_endpoint_details for the live rate.","tags":["DataForSEO"],"x-credits-cost":{"amount":2.31,"unit":"keyword","billing_shape":"per_result"},"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"keywords":{"type":"array","items":{"type":"string"},"minItems":1,"maxItems":700,"description":"Keywords to get overview metrics for (max 700). Costs 1 credit per keyword."},"location_name":{"type":"string","description":"Full location name (e.g. \"United States\")."},"language_code":{"type":"string","description":"ISO 639-1 language code (e.g. \"en\")."},"include_clickstream_data":{"type":"boolean","description":"When true, returns clickstream-based metrics."}},"required":["keywords"],"example":{"keywords":["cold email software","sales automation"],"location_name":"United States","language_code":"en"}}}}},"responses":{"200":{"description":"Keyword overview metrics","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DfsLabsKeywordOverviewResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/dataforseo/labs/top-searches":{"post":{"summary":"Top Searches","description":"Get the most popular Google search queries for a location. Credits: bills only for returned results, per result; reserved up-front for the requested size and settled to the actual count (see X-ColdIQ-Credits-Charged). Call get_endpoint_details for the live rate.","tags":["DataForSEO"],"x-credits-cost":{"amount":2.31,"unit":"result","billing_shape":"per_result"},"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"location_name":{"type":"string","description":"Full location name (e.g. \"United States\")."},"language_code":{"type":"string","description":"ISO 639-1 language code (e.g. \"en\")."},"limit":{"type":"integer","minimum":0,"exclusiveMinimum":true,"description":"Maximum number of results to return. Defaults to 10."},"offset":{"type":"integer","minimum":0,"description":"Offset in the results array for pagination."},"filters":{"type":"array","items":{"nullable":true},"description":"Array of filter conditions. Each element is a filter rule or logical operator."},"order_by":{"type":"array","items":{"nullable":true},"description":"Sorting rules as an array of field+order strings (e.g. [\"keyword_data.keyword_info.search_volume,desc\"])."},"include_clickstream_data":{"type":"boolean","description":"When true, returns clickstream-based metrics."}},"example":{"location_name":"United States","language_code":"en","limit":10}}}}},"responses":{"200":{"description":"Top search queries","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DfsLabsTopSearchesResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/dataforseo/labs/search-intent":{"post":{"summary":"Search Intent","description":"Classify keywords by search intent (informational, navigational, commercial, transactional). Credits: bills only for returned results, per keyword; reserved up-front for the requested size and settled to the actual count (see X-ColdIQ-Credits-Charged). Call get_endpoint_details for the live rate.","tags":["DataForSEO"],"x-credits-cost":{"amount":2.31,"unit":"keyword","billing_shape":"per_result"},"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"keywords":{"type":"array","items":{"type":"string"},"minItems":1,"description":"Keywords to classify by search intent. Costs 1 credit per keyword."},"language_code":{"type":"string","description":"ISO 639-1 language code (e.g. \"en\")."}},"required":["keywords"],"example":{"keywords":["best cold email software","buy sales CRM","how to write cold emails"],"language_code":"en"}}}}},"responses":{"200":{"description":"Search intent classification","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DfsLabsSearchIntentResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/dataforseo/labs/keywords-for-site":{"post":{"summary":"Keywords for Site","description":"Get keyword suggestions relevant to a target website. Credits: bills only for returned results, per result; reserved up-front for the requested size and settled to the actual count (see X-ColdIQ-Credits-Charged). Call get_endpoint_details for the live rate.","tags":["DataForSEO"],"x-credits-cost":{"amount":2.31,"unit":"result","billing_shape":"per_result"},"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"target":{"type":"string","minLength":1,"description":"Domain to retrieve keyword ideas for."},"location_name":{"type":"string","description":"Full location name (e.g. \"United States\")."},"language_code":{"type":"string","description":"ISO 639-1 language code (e.g. \"en\")."},"limit":{"type":"integer","minimum":0,"exclusiveMinimum":true,"description":"Maximum number of results to return. Defaults to 10."},"offset":{"type":"integer","minimum":0,"description":"Offset in the results array for pagination."},"filters":{"type":"array","items":{"nullable":true},"description":"Array of filter conditions. Each element is a filter rule or logical operator."},"order_by":{"type":"array","items":{"nullable":true},"description":"Sorting rules as an array of field+order strings (e.g. [\"keyword_data.keyword_info.search_volume,desc\"])."},"include_subdomains":{"type":"boolean","description":"When true, results include subdomains of the target."},"include_clickstream_data":{"type":"boolean","description":"When true, returns clickstream-based metrics."}},"required":["target"],"example":{"target":"coldiq.com","location_name":"United States","language_code":"en","limit":10}}}}},"responses":{"200":{"description":"Keywords for site","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DfsLabsKeywordsForSiteResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/dataforseo/labs/domain-intersection":{"post":{"summary":"Domain Intersection","description":"Get keywords that two domains have in common or that distinguish them. Credits: bills only for returned results, per result; reserved up-front for the requested size and settled to the actual count (see X-ColdIQ-Credits-Charged). Call get_endpoint_details for the live rate.","tags":["DataForSEO"],"x-credits-cost":{"amount":2.31,"unit":"result","billing_shape":"per_result"},"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"target1":{"type":"string","minLength":1,"description":"First domain to compare."},"target2":{"type":"string","minLength":1,"description":"Second domain to compare."},"location_name":{"type":"string","description":"Full location name (e.g. \"United States\")."},"language_code":{"type":"string","description":"ISO 639-1 language code (e.g. \"en\")."},"ignore_synonyms":{"type":"boolean","description":"When true, synonyms are excluded from results."},"limit":{"type":"integer","minimum":0,"exclusiveMinimum":true,"description":"Maximum number of results to return. Defaults to 10."},"offset":{"type":"integer","minimum":0,"description":"Offset in the results array for pagination."},"filters":{"type":"array","items":{"nullable":true},"description":"Array of filter conditions. Each element is a filter rule or logical operator."},"order_by":{"type":"array","items":{"nullable":true},"description":"Sorting rules as an array of field+order strings (e.g. [\"keyword_data.keyword_info.search_volume,desc\"])."},"intersections":{"type":"boolean","description":"When true, returns only keywords both domains rank for."},"include_clickstream_data":{"type":"boolean","description":"When true, returns clickstream-based metrics."},"item_types":{"type":"array","items":{"nullable":true},"description":"Filter by item types in SERP (e.g. [\"organic\", \"paid\"])."}},"required":["target1","target2"],"example":{"target1":"coldiq.com","target2":"apollo.io","location_name":"United States","language_code":"en"}}}}},"responses":{"200":{"description":"Domain intersection results","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DfsLabsDomainIntersectionResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/dataforseo/labs/historical-rank-overview":{"post":{"summary":"Historical Rank Overview","description":"Get historical organic and paid traffic metrics for a domain. Credits: flat charge per call regardless of how many rows come back. Call get_endpoint_details for the live rate.","tags":["DataForSEO"],"x-credits-cost":{"amount":2.31,"unit":"call","billing_shape":"per_call"},"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"target":{"type":"string","minLength":1,"description":"Domain to retrieve historical rank overview for."},"location_name":{"type":"string","description":"Full location name (e.g. \"United States\")."},"language_code":{"type":"string","description":"ISO 639-1 language code (e.g. \"en\")."},"ignore_synonyms":{"type":"boolean","description":"When true, synonyms are excluded from results."},"include_clickstream_data":{"type":"boolean","description":"When true, returns clickstream-based metrics."}},"required":["target"],"example":{"target":"coldiq.com","location_name":"United States","language_code":"en"}}}}},"responses":{"200":{"description":"Historical rank overview","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DfsLabsHistoricalRankOverviewResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/dataforseo/labs/page-intersection":{"post":{"summary":"Page Intersection","description":"Get keywords that multiple pages have in common or that distinguish them. Credits: bills only for returned results, per result; reserved up-front for the requested size and settled to the actual count (see X-ColdIQ-Credits-Charged). Call get_endpoint_details for the live rate.","tags":["DataForSEO"],"x-credits-cost":{"amount":2.31,"unit":"result","billing_shape":"per_result"},"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"pages":{"type":"object","additionalProperties":{"nullable":true},"description":"Key-value pairs of page identifiers to URLs to compare."},"exclude_pages":{"type":"array","items":{"nullable":true},"description":"Pages to exclude from the intersection results."},"intersection_mode":{"type":"string","description":"Intersection mode: \"all\" to include only keywords ranking on all pages, or \"any\"."},"location_name":{"type":"string","description":"Full location name (e.g. \"United States\")."},"language_code":{"type":"string","description":"ISO 639-1 language code (e.g. \"en\")."},"ignore_synonyms":{"type":"boolean","description":"When true, synonyms are excluded from results."},"limit":{"type":"integer","minimum":0,"exclusiveMinimum":true,"description":"Maximum number of results to return. Defaults to 10."},"offset":{"type":"integer","minimum":0,"description":"Offset in the results array for pagination."},"filters":{"type":"array","items":{"nullable":true},"description":"Array of filter conditions. Each element is a filter rule or logical operator."},"order_by":{"type":"array","items":{"nullable":true},"description":"Sorting rules as an array of field+order strings (e.g. [\"keyword_data.keyword_info.search_volume,desc\"])."},"include_clickstream_data":{"type":"boolean","description":"When true, returns clickstream-based metrics."},"item_types":{"type":"array","items":{"nullable":true},"description":"Filter by item types in SERP (e.g. [\"organic\", \"paid\"])."}},"required":["pages"],"example":{"pages":{"page1":"https://coldiq.com/blog","page2":"https://apollo.io/blog"},"location_name":"United States","language_code":"en"}}}}},"responses":{"200":{"description":"Page intersection results","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DfsLabsPageIntersectionResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/dataforseo/labs/bulk-traffic-estimation":{"post":{"summary":"Bulk Traffic Estimation","description":"Estimate organic search traffic for a list of domains. Credits: bills only for returned results, per target; reserved up-front for the requested size and settled to the actual count (see X-ColdIQ-Credits-Charged). Call get_endpoint_details for the live rate.","tags":["DataForSEO"],"x-credits-cost":{"amount":2.31,"unit":"target","billing_shape":"per_result"},"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"targets":{"type":"array","items":{"type":"string"},"minItems":1,"description":"Domains to estimate organic traffic for. Costs 1 credit per domain."},"location_name":{"type":"string","description":"Full location name (e.g. \"United States\")."},"language_code":{"type":"string","description":"ISO 639-1 language code (e.g. \"en\")."},"ignore_synonyms":{"type":"boolean","description":"When true, synonyms are excluded from results."},"item_types":{"type":"array","items":{"nullable":true},"description":"Filter by item types in SERP (e.g. [\"organic\", \"paid\"])."}},"required":["targets"],"example":{"targets":["coldiq.com","apollo.io","salesloft.com"],"location_name":"United States","language_code":"en"}}}}},"responses":{"200":{"description":"Traffic estimation results","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DfsLabsBulkTrafficEstimationResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/dataforseo/labs/available-filters":{"get":{"summary":"Available Filters","description":"Get the list of available filters for DataForSEO Labs endpoints. No credit cost. Credits: free.","tags":["DataForSEO"],"x-credits-cost":{"amount":0,"unit":"call","billing_shape":"per_call"},"security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Available filters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DfsLabsAvailableFiltersResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/dataforseo/labs/historical-keyword-data":{"post":{"summary":"Historical Keyword Data","description":"Get monthly historical search volume data for a list of keywords. Credits: bills only for returned results, per keyword; reserved up-front for the requested size and settled to the actual count (see X-ColdIQ-Credits-Charged). Call get_endpoint_details for the live rate.","tags":["DataForSEO"],"x-credits-cost":{"amount":2.31,"unit":"keyword","billing_shape":"per_result"},"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"keywords":{"type":"array","items":{"type":"string"},"minItems":1,"maxItems":700,"description":"Keywords to retrieve historical search data for (max 700). Costs 1 credit per keyword."},"location_name":{"type":"string","description":"Full location name (e.g. \"United States\")."},"language_code":{"type":"string","description":"ISO 639-1 language code (e.g. \"en\")."}},"required":["keywords"],"example":{"keywords":["cold email software","B2B sales automation"],"location_name":"United States","language_code":"en"}}}}},"responses":{"200":{"description":"Historical keyword data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DfsLabsHistoricalKeywordDataResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/dataforseo/labs/relevant-pages":{"post":{"summary":"Relevant Pages","description":"Get pages from a domain most relevant to organic search traffic. Credits: bills only for returned results, per result; reserved up-front for the requested size and settled to the actual count (see X-ColdIQ-Credits-Charged). Call get_endpoint_details for the live rate.","tags":["DataForSEO"],"x-credits-cost":{"amount":2.31,"unit":"result","billing_shape":"per_result"},"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"target":{"type":"string","minLength":1,"description":"Domain to find relevant pages for."},"location_name":{"type":"string","description":"Full location name (e.g. \"United States\")."},"language_code":{"type":"string","description":"ISO 639-1 language code (e.g. \"en\")."},"ignore_synonyms":{"type":"boolean","description":"When true, synonyms are excluded from results."},"limit":{"type":"integer","minimum":0,"exclusiveMinimum":true,"description":"Maximum number of results to return. Defaults to 10."},"offset":{"type":"integer","minimum":0,"description":"Offset in the results array for pagination."},"filters":{"type":"array","items":{"nullable":true},"description":"Array of filter conditions. Each element is a filter rule or logical operator."},"order_by":{"type":"array","items":{"nullable":true},"description":"Sorting rules as an array of field+order strings (e.g. [\"keyword_data.keyword_info.search_volume,desc\"])."},"exclude_top_domains":{"type":"boolean","description":"When true, top domains (e.g. Wikipedia, Amazon) are excluded from results."},"item_types":{"type":"array","items":{"nullable":true},"description":"Filter by item types in SERP (e.g. [\"organic\", \"paid\"])."},"include_clickstream_data":{"type":"boolean","description":"When true, returns clickstream-based metrics."}},"required":["target"],"example":{"target":"coldiq.com","location_name":"United States","language_code":"en","limit":10}}}}},"responses":{"200":{"description":"Relevant pages","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DfsLabsRelevantPagesResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/dataforseo/domain-analytics/whois":{"post":{"summary":"WHOIS Overview","description":"Get WHOIS data for domains matching the specified filters. Credits: bills only for returned results, per result; reserved up-front for the requested size and settled to the actual count (see X-ColdIQ-Credits-Charged). Call get_endpoint_details for the live rate. Managed alternative: `POST /v1/seo/search` (Search SEO) runs this provider inside a ranked waterfall with charge-on-success billing and one normalized response shape, and falls back to the other providers for this capability on a miss. Call this endpoint directly when you specifically want this provider and no fallback.","tags":["DataForSEO"],"x-credits-cost":{"amount":0.13,"unit":"result","billing_shape":"per_result"},"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"limit":{"type":"integer","minimum":0,"exclusiveMinimum":true,"description":"Maximum number of results to return."},"offset":{"type":"integer","minimum":0,"description":"Offset for pagination."},"filters":{"type":"array","items":{"nullable":true},"description":"Array of filters."},"order_by":{"type":"array","items":{"nullable":true},"description":"Array of sorting parameters."},"is_claimed":{"type":"boolean","description":"If true, returns only claimed domains."}},"example":{"limit":10,"filters":[["domain","=","coldiq.com"]]}}}}},"responses":{"200":{"description":"WHOIS overview results","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DfsDomainAnalyticsWhoisOverviewResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/dataforseo/domain-analytics/whois/available-filters":{"get":{"summary":"WHOIS Available Filters","description":"Get the list of available filters for the WHOIS Overview endpoint. No credit cost. Credits: free.","tags":["DataForSEO"],"x-credits-cost":{"amount":0,"unit":"call","billing_shape":"per_call"},"security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Available WHOIS filters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DfsDomainAnalyticsWhoisAvailableFiltersResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/dataforseo/domain-analytics/technologies":{"post":{"summary":"Domain Technologies","description":"Get technologies detected on the target domain. Credits: flat charge per call regardless of how many rows come back. Call get_endpoint_details for the live rate. Managed alternative: `POST /v1/seo/search` (Search SEO) runs this provider inside a ranked waterfall with charge-on-success billing and one normalized response shape, and falls back to the other providers for this capability on a miss. Call this endpoint directly when you specifically want this provider and no fallback.","tags":["DataForSEO"],"x-credits-cost":{"amount":0.13,"unit":"call","billing_shape":"per_call"},"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"target":{"type":"string","minLength":1,"description":"Target domain to analyze."}},"required":["target"],"example":{"target":"coldiq.com"}}}}},"responses":{"200":{"description":"Domain technologies results","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DfsDomainAnalyticsDomainTechnologiesResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/dataforseo/domain-analytics/technologies/available-filters":{"get":{"summary":"Technologies Available Filters","description":"Get the list of available filters for the Technologies endpoints. No credit cost. Credits: free.","tags":["DataForSEO"],"x-credits-cost":{"amount":0,"unit":"call","billing_shape":"per_call"},"security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Available technologies filters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DfsDomainAnalyticsTechnologiesAvailableFiltersResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/dataforseo/on-page/content-parsing":{"post":{"summary":"Content Parsing","description":"Parse and extract structured content from a webpage, including text, links, and metadata. Credits: flat charge per call regardless of how many rows come back. Call get_endpoint_details for the live rate. Managed alternative: `POST /v1/seo/search` (Search SEO) runs this provider inside a ranked waterfall with charge-on-success billing and one normalized response shape, and falls back to the other providers for this capability on a miss. Call this endpoint directly when you specifically want this provider and no fallback.","tags":["DataForSEO"],"x-credits-cost":{"amount":0.26,"unit":"call","billing_shape":"per_call"},"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"url":{"type":"string","format":"uri","description":"URL of the page to parse."},"enable_javascript":{"type":"boolean","description":"If true, enables JavaScript rendering."},"custom_user_agent":{"type":"string","description":"Custom user agent string."},"accept_language":{"type":"string","description":"Accept-Language header value."}},"required":["url"],"example":{"url":"https://coldiq.com"}}}}},"responses":{"200":{"description":"Content parsing results","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DfsOnPageContentParsingResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/dataforseo/on-page/instant-pages":{"post":{"summary":"Instant Pages","description":"Crawl a URL and return detailed on-page data including meta tags, links, and content. Credits: flat charge per call regardless of how many rows come back. Call get_endpoint_details for the live rate.","tags":["DataForSEO"],"x-credits-cost":{"amount":0.26,"unit":"call","billing_shape":"per_call"},"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"url":{"type":"string","format":"uri","description":"URL of the page to crawl."},"enable_javascript":{"type":"boolean","description":"If true, enables JavaScript rendering."},"custom_js":{"type":"string","description":"Custom JavaScript to execute on the page."},"custom_user_agent":{"type":"string","description":"Custom user agent string."},"accept_language":{"type":"string","description":"Accept-Language header value."}},"required":["url"],"example":{"url":"https://coldiq.com"}}}}},"responses":{"200":{"description":"Instant pages results","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DfsOnPageInstantPagesResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/dataforseo/on-page/lighthouse":{"post":{"summary":"Lighthouse","description":"Run a Google Lighthouse audit on a URL and return performance, accessibility, SEO, and best practices scores. Credits: flat charge per call regardless of how many rows come back. Call get_endpoint_details for the live rate. Managed alternative: `POST /v1/seo/search` (Search SEO) runs this provider inside a ranked waterfall with charge-on-success billing and one normalized response shape, and falls back to the other providers for this capability on a miss. Call this endpoint directly when you specifically want this provider and no fallback.","tags":["DataForSEO"],"x-credits-cost":{"amount":0.26,"unit":"call","billing_shape":"per_call"},"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"url":{"type":"string","format":"uri","description":"URL to run Lighthouse audit on."},"enable_javascript":{"type":"boolean","description":"If true, enables JavaScript rendering."},"custom_user_agent":{"type":"string","description":"Custom user agent string."},"accept_language":{"type":"string","description":"Accept-Language header value."},"full_data":{"type":"boolean","description":"If true, returns the full Lighthouse audit data."}},"required":["url"],"example":{"url":"https://coldiq.com"}}}}},"responses":{"200":{"description":"Lighthouse audit results","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DfsOnPageLighthouseResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/theirstack/jobs/search":{"post":{"summary":"Search jobs","description":"Search job postings by title, technology, company, location, and seniority. Credits: bills only for returned results, per job; reserved up-front for the requested size and settled to the actual count (see X-ColdIQ-Credits-Charged). Call get_endpoint_details for the live rate. Managed alternatives: `POST /v1/signals/find` (Find Signals) and `POST /v1/jobs/search` (Search Jobs) run this provider inside a ranked waterfall with charge-on-success billing and one normalized response shape, and fall back to the other providers for this capability on a miss. Call this endpoint directly when you specifically want this provider and no fallback.","tags":["TheirStack"],"x-credits-cost":{"amount":4.2,"unit":"job","billing_shape":"per_result"},"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"page":{"type":"integer","minimum":0,"description":"Page number (0-indexed)."},"limit":{"type":"integer","minimum":1,"maximum":100,"description":"Results per page. Default: 25."},"offset":{"type":"integer","minimum":0,"description":"Offset for pagination."},"order_by":{"type":"array","items":{"type":"object","properties":{"field":{"type":"string","description":"Field name to sort by."},"desc":{"type":"boolean","description":"Sort descending. Default: true."}},"required":["field"]},"description":"Sort fields. Default: date_posted desc."},"job_title_or":{"type":"array","items":{"type":"string"},"description":"Match any of these exact job titles."},"job_title_pattern_or":{"type":"array","items":{"type":"string"},"description":"Match job titles containing any of these patterns."},"job_title_pattern_and":{"type":"array","items":{"type":"string"},"description":"Match job titles containing all of these patterns."},"job_country_code_or":{"type":"array","items":{"type":"string"},"description":"ISO country codes where the job is located (e.g. \"US\", \"GB\")."},"posted_at_max_age_days":{"type":"integer","minimum":1,"description":"Only return jobs posted within the last N days."},"posted_at_gte":{"type":"string","description":"Only return jobs posted on or after this date (ISO 8601)."},"posted_at_lte":{"type":"string","description":"Only return jobs posted on or before this date (ISO 8601)."},"job_description_pattern_or":{"type":"array","items":{"type":"string"},"description":"Match job descriptions containing any of these patterns."},"job_seniority_or":{"type":"array","items":{"type":"string"},"description":"Seniority levels (e.g. \"senior\", \"lead\", \"manager\")."},"job_technology_slug_or":{"type":"array","items":{"type":"string"},"description":"Technology slugs mentioned in the job (e.g. \"react\", \"postgresql\")."},"job_keyword_slug_or":{"type":"array","items":{"type":"string"},"description":"Keyword/buying-intent slugs mentioned in the job."},"job_location_or":{"type":"array","items":{"type":"integer"},"description":"Location IDs from the TheirStack catalog."},"company_name_or":{"type":"array","items":{"type":"string"},"description":"Filter by exact company names."},"company_domain_or":{"type":"array","items":{"type":"string"},"description":"Filter by company domains."},"company_linkedin_url_or":{"type":"array","items":{"type":"string"},"description":"Filter by company LinkedIn URLs."},"company_technology_slug_or":{"type":"array","items":{"type":"string"},"description":"Company uses any of these technologies."},"funding_stage_or":{"type":"array","items":{"type":"string"},"description":"Funding stages (e.g. \"seed\", \"series_a\", \"series_b\")."},"industry_or":{"type":"array","items":{"type":"string"},"description":"Filter by industry names."},"industry_id_or":{"type":"array","items":{"type":"integer"},"description":"Filter by industry IDs."},"include_total_results":{"type":"boolean","description":"Include total result count in metadata (slower)."},"blur_company_data":{"type":"boolean","description":"Anonymize company information in the response."}},"title":"TheirStackJobSearchRequest","example":{"job_title_pattern_or":["software engineer","backend developer"],"company_technology_slug_or":["salesforce"],"posted_at_max_age_days":30,"limit":10}}}}},"responses":{"200":{"description":"Matching job postings.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TheirStackJobSearchResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/theirstack/companies/search":{"post":{"summary":"Search companies","description":"Search companies by tech stack, hiring signals, firmographics, and funding. Credits: bills only for returned results, per company; reserved up-front for the requested size and settled to the actual count (see X-ColdIQ-Credits-Charged). Call get_endpoint_details for the live rate. Managed alternatives: `POST /v1/companies/search` (Search Companies) and `POST /v1/signals/find` (Find Signals) run this provider inside a ranked waterfall with charge-on-success billing and one normalized response shape, and fall back to the other providers for this capability on a miss. Call this endpoint directly when you specifically want this provider and no fallback.","tags":["TheirStack"],"x-credits-cost":{"amount":12.6,"unit":"company","billing_shape":"per_result"},"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"page":{"type":"integer","minimum":0,"description":"Page number (0-indexed)."},"limit":{"type":"integer","minimum":1,"maximum":100,"description":"Results per page. Default: 25."},"offset":{"type":"integer","minimum":0,"description":"Offset for pagination."},"order_by":{"type":"array","items":{"type":"object","properties":{"field":{"type":"string","description":"Field name to sort by."},"desc":{"type":"boolean","description":"Sort descending. Default: true."}},"required":["field"]},"description":"Sort fields."},"expand_technology_slugs":{"type":"array","items":{"type":"string"},"description":"Return detailed usage data for these technology slugs on each company."},"company_name_or":{"type":"array","items":{"type":"string"},"description":"Filter by exact company names."},"company_domain_or":{"type":"array","items":{"type":"string"},"description":"Filter by company domains."},"company_linkedin_url_or":{"type":"array","items":{"type":"string"},"description":"Filter by company LinkedIn URLs."},"company_technology_slug_or":{"type":"array","items":{"type":"string"},"description":"Company uses any of these technologies."},"company_technology_slug_and":{"type":"array","items":{"type":"string"},"description":"Company uses all of these technologies."},"company_keyword_slug_or":{"type":"array","items":{"type":"string"},"description":"Buying-intent keywords the company is associated with."},"company_country_code_or":{"type":"array","items":{"type":"string"},"description":"HQ country codes (e.g. \"US\", \"GB\")."},"min_employee_count":{"type":"integer","minimum":0,"description":"Minimum employee count."},"max_employee_count":{"type":"integer","minimum":0,"description":"Maximum employee count."},"min_funding_usd":{"type":"integer","minimum":0,"description":"Minimum total funding in USD."},"max_funding_usd":{"type":"integer","minimum":0,"description":"Maximum total funding in USD."},"funding_stage_or":{"type":"array","items":{"type":"string"},"description":"Funding stages (e.g. \"seed\", \"series_a\")."},"industry_or":{"type":"array","items":{"type":"string"},"description":"Filter by industry names."},"industry_id_or":{"type":"array","items":{"type":"integer"},"description":"Filter by industry IDs."},"only_yc_companies":{"type":"boolean","description":"Only return Y Combinator-backed companies."},"company_description_pattern_or":{"type":"array","items":{"type":"string"},"description":"Company description contains any of these patterns."},"include_total_results":{"type":"boolean","description":"Include total result count in metadata (slower)."}},"title":"TheirStackCompanySearchRequest","example":{"company_technology_slug_or":["salesforce","hubspot"],"company_country_code_or":["US"],"min_employee_count":50,"max_employee_count":500,"limit":10}}}}},"responses":{"200":{"description":"Matching companies.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TheirStackCompanySearchResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/theirstack/companies/technologies":{"post":{"summary":"Get company technologies","description":"List all technologies detected for a company, with confidence levels and job signal counts. Credits: flat charge per call regardless of how many rows come back. Call get_endpoint_details for the live rate.","tags":["TheirStack"],"x-credits-cost":{"amount":12.6,"unit":"call","billing_shape":"per_call"},"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"company_domain":{"type":"string","description":"Company domain (e.g. \"microsoft.com\")."},"company_name":{"type":"string","description":"Company name."},"company_linkedin_url":{"type":"string","description":"Company LinkedIn URL."},"company_name_or":{"type":"array","items":{"type":"string"},"description":"Multiple company names (OR)."},"order_by":{"type":"array","items":{"type":"object","properties":{"field":{"type":"string","description":"Field name to sort by."},"desc":{"type":"boolean","description":"Sort descending. Default: true."}},"required":["field"]},"description":"Sort fields."},"technology_slug_or":{"type":"array","items":{"type":"string"},"description":"Filter by technology slugs."},"technology_category_slug_or":{"type":"array","items":{"type":"string"},"description":"Filter by technology category slugs."},"keyword_slug_or":{"type":"array","items":{"type":"string"},"description":"Filter by keyword slugs."},"keyword_category_slug_or":{"type":"array","items":{"type":"string"},"description":"Filter by keyword category slugs."},"confidence_or":{"type":"array","items":{"type":"string","enum":["low","medium","high"]},"description":"Filter by signal confidence levels."},"include_total_results":{"type":"boolean","description":"Include total result count in metadata (slower)."}},"title":"TheirStackTechnographicsRequest","example":{"company_domain":"coldiq.com"}}}}},"responses":{"200":{"description":"Technologies detected for the company.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TheirStackTechnographicsResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/theirstack/companies/buying_intents":{"post":{"summary":"Get company buying intents","description":"Detect buying intent topics for a company based on job signals and technology adoption patterns. Credits: flat charge per call regardless of how many rows come back. Call get_endpoint_details for the live rate. Managed alternative: `POST /v1/signals/find` (Find Signals) runs this provider inside a ranked waterfall with charge-on-success billing and one normalized response shape, and falls back to the other providers for this capability on a miss. Call this endpoint directly when you specifically want this provider and no fallback.","tags":["TheirStack"],"x-credits-cost":{"amount":12.6,"unit":"call","billing_shape":"per_call"},"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"company_domain":{"type":"string","description":"Company domain (e.g. \"microsoft.com\")."},"company_name":{"type":"string","description":"Company name."},"company_linkedin_url":{"type":"string","description":"Company LinkedIn URL."},"company_name_or":{"type":"array","items":{"type":"string"},"description":"Multiple company names (OR)."},"order_by":{"type":"array","items":{"type":"object","properties":{"field":{"type":"string","description":"Field name to sort by."},"desc":{"type":"boolean","description":"Sort descending. Default: true."}},"required":["field"]},"description":"Sort fields."},"technology_slug_or":{"type":"array","items":{"type":"string"},"description":"Filter by technology slugs."},"technology_category_slug_or":{"type":"array","items":{"type":"string"},"description":"Filter by technology category slugs."},"keyword_slug_or":{"type":"array","items":{"type":"string"},"description":"Filter by keyword slugs."},"keyword_category_slug_or":{"type":"array","items":{"type":"string"},"description":"Filter by keyword category slugs."},"confidence_or":{"type":"array","items":{"type":"string","enum":["low","medium","high"]},"description":"Filter by signal confidence levels."},"include_total_results":{"type":"boolean","description":"Include total result count in metadata (slower)."}},"title":"TheirStackBuyingIntentsRequest","example":{"company_domain":"coldiq.com"}}}}},"responses":{"200":{"description":"Buying intent signals for the company.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TheirStackBuyingIntentsResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/sumble/organizations/find":{"post":{"x-credits-cost":{"amount":10.5,"unit":"result","billing_shape":"per_result"},"summary":"Find Organizations","description":"Search for organizations using technology, industry, and firmographic filters. Returns up to 200 results. Credits: bills only for returned results, per result; reserved up-front for the requested size and settled to the actual count (see X-ColdIQ-Credits-Charged). Call get_endpoint_details for the live rate. Managed alternative: `POST /v1/companies/search` (Search Companies) runs this provider inside a ranked waterfall with charge-on-success billing and one normalized response shape, and falls back to the other providers for this capability on a miss. Call this endpoint directly when you specifically want this provider and no fallback.","tags":["Sumble"],"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"filters":{"type":"object","properties":{"technologies":{"type":"array","items":{"type":"string"},"maxItems":20,"description":"Technology slugs to filter by (max 20)."},"technology_categories":{"type":"array","items":{"type":"string"},"maxItems":20,"description":"Technology category slugs to filter by (max 20)."},"since":{"type":"string","description":"Filter for entities active since this date (YYYY-MM-DD)."},"query":{"type":"string","description":"Text search query (alternative to technology filters)."}},"description":"Technology, category, date, or text query filters."},"include_entity_details":{"type":"boolean","description":"Include matching technology and team details per organization. Requires at least one technology or technology_category filter. Increases credit cost to 5 credits × filter terms per result."},"limit":{"type":"integer","minimum":1,"maximum":100,"description":"Max results to return (1–100, default 10)."},"offset":{"type":"integer","minimum":0,"maximum":10000,"description":"Pagination offset (default 0)."},"order_by_column":{"type":"string","enum":["industry","employee_count","employee_count_int","first_activity_time","last_activity_time","jobs_count","teams_count","people_count","jobs_count_growth_6mo","cloud_spend_estimate_millions_usd","account_score"],"description":"Column to sort results by."},"order_by_direction":{"type":"string","enum":["ASC","DESC"],"description":"Sort direction."}},"required":["filters"],"title":"SumbleFindOrganizationsRequest","example":{"filters":{"technologies":["hubspot"]},"limit":10}}}}},"responses":{"200":{"description":"Matching organizations.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SumbleFindOrganizationsResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/sumble/organizations/enrich":{"post":{"x-credits-cost":{"amount":10.5,"unit":"technology","billing_shape":"per_result"},"summary":"Enrich Organization","description":"Identify technologies used at a specific organization. Credits: bills only for returned results, per technology; reserved up-front for the requested size and settled to the actual count (see X-ColdIQ-Credits-Charged). Call get_endpoint_details for the live rate.","tags":["Sumble"],"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"organization":{"type":"object","properties":{"domain":{"type":"string","minLength":1,"description":"Domain name (e.g. \"coldiq.com\")."},"id":{"type":"integer","description":"Sumble organization ID."},"slug":{"type":"string","minLength":1,"description":"Sumble organization slug."},"linkedin_url":{"type":"string","minLength":1,"format":"uri","description":"LinkedIn organization URL."}},"description":"Organization to enrich (provide one of domain, id, slug, or linkedin_url)."},"filters":{"type":"object","properties":{"technologies":{"type":"array","items":{"type":"string"},"maxItems":20,"description":"Technology slugs to filter by (max 20)."},"technology_categories":{"type":"array","items":{"type":"string"},"maxItems":20,"description":"Technology category slugs to filter by (max 20)."},"since":{"type":"string","description":"Filter for entities active since this date (YYYY-MM-DD)."},"query":{"type":"string","description":"Text search query (alternative to technology filters)."}},"description":"Technology or category filters to apply. At least one technologies or technology_categories entry required. Each matched technology costs 5 credits."}},"required":["organization","filters"],"title":"SumbleEnrichOrganizationRequest","example":{"organization":{"domain":"coldiq.com"},"filters":{"technologies":["hubspot","salesforce"]}}}}}},"responses":{"200":{"description":"Organization technology data.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SumbleEnrichOrganizationResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/sumble/organizations/match":{"post":{"x-credits-cost":{"amount":2.1,"unit":"match","billing_shape":"per_result"},"summary":"Match Organizations","description":"Batch match up to 200 organizations by name, URL, and optional location. Credits: bills only for returned results, per match; reserved up-front for the requested size and settled to the actual count (see X-ColdIQ-Credits-Charged). Call get_endpoint_details for the live rate.","tags":["Sumble"],"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"organizations":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","description":"Company name."},"url":{"type":"string","description":"Company website URL."},"location":{"type":"string","description":"City/country to disambiguate matches."}}},"minItems":1,"maxItems":200,"description":"Organizations to match (name or url required per entry). Up to 200 per request."}},"required":["organizations"],"title":"SumbleMatchOrganizationsRequest","example":{"organizations":[{"name":"ColdIQ","url":"coldiq.com"},{"name":"Microsoft","url":"microsoft.com"}]}}}}},"responses":{"200":{"description":"Match results.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SumbleMatchOrganizationsResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/sumble/people/find":{"post":{"x-credits-cost":{"amount":2.1,"unit":"result","billing_shape":"per_result"},"summary":"Find People","description":"Find professionals at a specific organization, filterable by job function, level, country, and date. Credits: bills only for returned results, per result; reserved up-front for the requested size and settled to the actual count (see X-ColdIQ-Credits-Charged). Call get_endpoint_details for the live rate. Managed alternative: `POST /v1/people/search` (Find People) runs this provider inside a ranked waterfall with charge-on-success billing and one normalized response shape, and falls back to the other providers for this capability on a miss. Call this endpoint directly when you specifically want this provider and no fallback.","tags":["Sumble"],"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"organization":{"type":"object","properties":{"domain":{"type":"string","minLength":1,"description":"Domain name (e.g. \"coldiq.com\")."},"id":{"type":"integer","description":"Sumble organization ID."},"slug":{"type":"string","minLength":1,"description":"Sumble organization slug."},"linkedin_url":{"type":"string","minLength":1,"format":"uri","description":"LinkedIn organization URL."}},"description":"Organization to find people at (provide one of domain, id, slug, or linkedin_url)."},"filters":{"type":"object","properties":{"job_functions":{"type":"array","items":{"type":"string"},"maxItems":20,"description":"Job function slugs to filter by (max 20)."},"job_levels":{"type":"array","items":{"type":"string"},"maxItems":10,"description":"Job level slugs to filter by (max 10)."},"countries":{"type":"array","items":{"type":"string"},"maxItems":50,"description":"Country codes to filter by (ISO 3166-1 alpha-2, max 50)."},"since":{"type":"string","description":"Filter for people active since this date (YYYY-MM-DD)."},"query":{"type":"string","description":"Text search query."}},"description":"Job function, level, country, date, or text query filters."},"limit":{"type":"integer","minimum":1,"maximum":100,"description":"Max people to return (1–100, default 10)."},"offset":{"type":"integer","minimum":0,"maximum":10000,"description":"Pagination offset (default 0)."}},"required":["organization","filters"],"title":"SumbleFindPeopleRequest","example":{"organization":{"domain":"coldiq.com"},"filters":{"job_functions":["sales"]},"limit":10}}}}},"responses":{"200":{"description":"People at the organization.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SumbleFindPeopleResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/sumble/people/enrich":{"post":{"x-credits-cost":{"amount":21,"unit":"call","billing_shape":"per_call"},"summary":"Enrich Person","description":"Retrieve email addresses and phone number for a person by their Sumble ID. Credits: flat charge per call regardless of how many rows come back. Call get_endpoint_details for the live rate.","tags":["Sumble"],"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"person_id":{"type":"integer","minimum":0,"exclusiveMinimum":true,"description":"Sumble person ID (obtained from Find People results)."}},"required":["person_id"],"title":"SumbleEnrichPersonRequest","example":{"person_id":12345678}}}}},"responses":{"200":{"description":"Contact information for the person.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SumbleEnrichPersonResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/sumble/jobs/find":{"post":{"x-credits-cost":{"unit":"job","rates":{"base":4.2,"with_description":6.3},"billing_shape":"per_result"},"summary":"Find Jobs","description":"Search job postings with technology, country, and text filters. Credits: variable per job, charged by which fields you request (base, with_description). Reserved up-front, settled to actual (see X-ColdIQ-Credits-Charged). Call get_endpoint_details for the live rate.","tags":["Sumble"],"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"organization":{"type":"object","properties":{"domain":{"type":"string","minLength":1,"description":"Domain name (e.g. \"coldiq.com\")."},"id":{"type":"integer","description":"Sumble organization ID."},"slug":{"type":"string","minLength":1,"description":"Sumble organization slug."},"linkedin_url":{"type":"string","minLength":1,"format":"uri","description":"LinkedIn organization URL."}},"description":"Scope results to a specific organization (optional; provide one of domain, id, slug, or linkedin_url)."},"filters":{"type":"object","properties":{"technologies":{"type":"array","items":{"type":"string"},"maxItems":20,"description":"Technology slugs to filter by (max 20)."},"technology_categories":{"type":"array","items":{"type":"string"},"maxItems":20,"description":"Technology category slugs to filter by (max 20)."},"countries":{"type":"array","items":{"type":"string"},"maxItems":50,"description":"Country codes to filter by (ISO 3166-1 alpha-2, max 50)."},"since":{"type":"string","description":"Filter for jobs posted since this date (YYYY-MM-DD)."},"query":{"type":"string","description":"Text search query."}},"description":"Technology, category, country, date, or text query filters."},"include_descriptions":{"type":"boolean","description":"Include full job descriptions in results. Costs 3 credits per job instead of 2."},"limit":{"type":"integer","minimum":1,"maximum":100,"description":"Max jobs to return (1–100, default 10)."},"offset":{"type":"integer","minimum":0,"maximum":10000,"description":"Pagination offset (default 0)."}},"required":["filters"],"title":"SumbleFindJobsRequest","example":{"filters":{"technologies":["hubspot"]},"limit":10}}}}},"responses":{"200":{"description":"Matching job postings.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SumbleFindJobsResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/unipile/accounts":{"get":{"summary":"List All Accounts","tags":["Unipile"],"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","description":"Pagination cursor from the previous response."},"required":false,"description":"Pagination cursor from the previous response.","name":"cursor","in":"query"},{"schema":{"type":"integer","minimum":1,"maximum":250,"description":"Number of items to return (1–250)."},"required":false,"description":"Number of items to return (1–250).","name":"limit","in":"query"},{"schema":{"type":"string","minLength":1,"description":"Your Unipile access token. Optional if you have connected your Unipile account in the dashboard."},"required":false,"description":"Your Unipile access token. Optional if you have connected your Unipile account in the dashboard.","name":"access_token","in":"query"},{"schema":{"type":"string","format":"uri","pattern":"^https:\\/\\/api\\d+\\.unipile\\.com:\\d+$","description":"Your Unipile DSN base URL (e.g. https://api15.unipile.com:14591). Optional if you have connected your Unipile account in the dashboard.","example":"https://api15.unipile.com:14591"},"required":false,"description":"Your Unipile DSN base URL (e.g. https://api15.unipile.com:14591). Optional if you have connected your Unipile account in the dashboard.","name":"dsn","in":"query"}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnipileResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-credits-cost":{"unit":"call","amount":0,"billing_shape":"per_call"},"description":"Credits: free.","x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}},"post":{"summary":"Connect Account","tags":["Unipile"],"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"provider":{"type":"string","enum":["LINKEDIN","WHATSAPP","INSTAGRAM","MESSENGER","TELEGRAM","TWITTER","GMAIL","OUTLOOK","IMAP"],"description":"Provider to connect."},"username":{"type":"string","description":"Account username or email."},"password":{"type":"string","description":"Account password."},"access_token":{"type":"string","minLength":1,"description":"Your Unipile access token. Optional if you have connected your Unipile account in the dashboard."},"dsn":{"type":"string","format":"uri","pattern":"^https:\\/\\/api\\d+\\.unipile\\.com:\\d+$","description":"Your Unipile DSN base URL (e.g. https://api15.unipile.com:14591). Optional if you have connected your Unipile account in the dashboard.","example":"https://api15.unipile.com:14591"}},"required":["provider"],"title":"ConnectAccountRequest","example":{"provider":"LINKEDIN","username":"michel@coldiq.com","password":"secret"}}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnipileResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-credits-cost":{"unit":"call","amount":0,"billing_shape":"per_call"},"description":"Credits: free.","x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/unipile/accounts/hosted":{"post":{"summary":"Connect Account via Hosted Auth","tags":["Unipile"],"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"provider":{"type":"string","enum":["LINKEDIN","WHATSAPP","INSTAGRAM","MESSENGER","TELEGRAM","TWITTER","GMAIL","OUTLOOK","IMAP"],"description":"Provider to connect."},"success_redirect_url":{"type":"string","format":"uri","description":"Redirect URL on successful connection."},"failure_redirect_url":{"type":"string","format":"uri","description":"Redirect URL on failed connection."},"notify_url":{"type":"string","format":"uri","description":"Webhook URL for connection status updates."},"access_token":{"type":"string","minLength":1,"description":"Your Unipile access token. Optional if you have connected your Unipile account in the dashboard."},"dsn":{"type":"string","format":"uri","pattern":"^https:\\/\\/api\\d+\\.unipile\\.com:\\d+$","description":"Your Unipile DSN base URL (e.g. https://api15.unipile.com:14591). Optional if you have connected your Unipile account in the dashboard.","example":"https://api15.unipile.com:14591"}},"required":["provider"],"title":"ConnectHostedRequest","example":{"provider":"LINKEDIN"}}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnipileResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-credits-cost":{"unit":"call","amount":0,"billing_shape":"per_call"},"description":"Credits: free.","x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/unipile/accounts/{id}":{"get":{"summary":"Retrieve Account","tags":["Unipile"],"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","minLength":1,"pattern":"^[A-Za-z0-9_=.:+-]+$","description":"Resource ID."},"required":true,"description":"Resource ID.","name":"id","in":"path"},{"schema":{"type":"string","minLength":1,"description":"Your Unipile access token. Optional if you have connected your Unipile account in the dashboard."},"required":false,"description":"Your Unipile access token. Optional if you have connected your Unipile account in the dashboard.","name":"access_token","in":"query"},{"schema":{"type":"string","format":"uri","pattern":"^https:\\/\\/api\\d+\\.unipile\\.com:\\d+$","description":"Your Unipile DSN base URL (e.g. https://api15.unipile.com:14591). Optional if you have connected your Unipile account in the dashboard.","example":"https://api15.unipile.com:14591"},"required":false,"description":"Your Unipile DSN base URL (e.g. https://api15.unipile.com:14591). Optional if you have connected your Unipile account in the dashboard.","name":"dsn","in":"query"}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnipileResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-credits-cost":{"unit":"call","amount":0,"billing_shape":"per_call"},"description":"Credits: free.","x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}},"delete":{"summary":"Delete Account","tags":["Unipile"],"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","minLength":1,"pattern":"^[A-Za-z0-9_=.:+-]+$","description":"Resource ID."},"required":true,"description":"Resource ID.","name":"id","in":"path"},{"schema":{"type":"string","minLength":1,"description":"Your Unipile access token. Optional if you have connected your Unipile account in the dashboard."},"required":false,"description":"Your Unipile access token. Optional if you have connected your Unipile account in the dashboard.","name":"access_token","in":"query"},{"schema":{"type":"string","format":"uri","pattern":"^https:\\/\\/api\\d+\\.unipile\\.com:\\d+$","description":"Your Unipile DSN base URL (e.g. https://api15.unipile.com:14591). Optional if you have connected your Unipile account in the dashboard.","example":"https://api15.unipile.com:14591"},"required":false,"description":"Your Unipile DSN base URL (e.g. https://api15.unipile.com:14591). Optional if you have connected your Unipile account in the dashboard.","name":"dsn","in":"query"}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnipileResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-credits-cost":{"unit":"call","amount":0,"billing_shape":"per_call"},"description":"Credits: free.","x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}},"patch":{"summary":"Update Account","tags":["Unipile"],"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","minLength":1,"pattern":"^[A-Za-z0-9_=.:+-]+$","description":"Resource ID."},"required":true,"description":"Resource ID.","name":"id","in":"path"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"proxy":{"type":"object","properties":{"host":{"type":"string"},"port":{"type":"integer","nullable":true},"username":{"type":"string"},"password":{"type":"string"}},"description":"Proxy configuration for this account."},"access_token":{"type":"string","minLength":1,"description":"Your Unipile access token. Optional if you have connected your Unipile account in the dashboard."},"dsn":{"type":"string","format":"uri","pattern":"^https:\\/\\/api\\d+\\.unipile\\.com:\\d+$","description":"Your Unipile DSN base URL (e.g. https://api15.unipile.com:14591). Optional if you have connected your Unipile account in the dashboard.","example":"https://api15.unipile.com:14591"}},"title":"PatchAccountRequest","example":{"proxy":{"host":"1.2.3.4","port":8080}}}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnipileResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-credits-cost":{"unit":"call","amount":0,"billing_shape":"per_call"},"description":"Credits: free.","x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/unipile/accounts/{id}/reconnect":{"post":{"summary":"Reconnect Account","tags":["Unipile"],"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","minLength":1,"pattern":"^[A-Za-z0-9_=.:+-]+$","description":"Resource ID."},"required":true,"description":"Resource ID.","name":"id","in":"path"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"access_token":{"type":"string","minLength":1,"description":"Your Unipile access token. Optional if you have connected your Unipile account in the dashboard."},"dsn":{"type":"string","format":"uri","pattern":"^https:\\/\\/api\\d+\\.unipile\\.com:\\d+$","description":"Your Unipile DSN base URL (e.g. https://api15.unipile.com:14591). Optional if you have connected your Unipile account in the dashboard.","example":"https://api15.unipile.com:14591"}},"title":"ReconnectAccountRequest","example":{}}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnipileResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-credits-cost":{"unit":"call","amount":0,"billing_shape":"per_call"},"description":"Credits: free.","x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/unipile/accounts/{id}/resync":{"get":{"summary":"Resync Account","tags":["Unipile"],"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","minLength":1,"pattern":"^[A-Za-z0-9_=.:+-]+$","description":"Resource ID."},"required":true,"description":"Resource ID.","name":"id","in":"path"},{"schema":{"type":"string","minLength":1,"description":"Your Unipile access token. Optional if you have connected your Unipile account in the dashboard."},"required":false,"description":"Your Unipile access token. Optional if you have connected your Unipile account in the dashboard.","name":"access_token","in":"query"},{"schema":{"type":"string","format":"uri","pattern":"^https:\\/\\/api\\d+\\.unipile\\.com:\\d+$","description":"Your Unipile DSN base URL (e.g. https://api15.unipile.com:14591). Optional if you have connected your Unipile account in the dashboard.","example":"https://api15.unipile.com:14591"},"required":false,"description":"Your Unipile DSN base URL (e.g. https://api15.unipile.com:14591). Optional if you have connected your Unipile account in the dashboard.","name":"dsn","in":"query"}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnipileResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-credits-cost":{"unit":"call","amount":0,"billing_shape":"per_call"},"description":"Credits: free.","x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/unipile/accounts/{id}/checkpoint/solve":{"post":{"summary":"Solve Checkpoint","tags":["Unipile"],"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","minLength":1,"pattern":"^[A-Za-z0-9_=.:+-]+$","description":"Resource ID."},"required":true,"description":"Resource ID.","name":"id","in":"path"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"code":{"type":"string","description":"Verification code received via email/SMS."},"access_token":{"type":"string","minLength":1,"description":"Your Unipile access token. Optional if you have connected your Unipile account in the dashboard."},"dsn":{"type":"string","format":"uri","pattern":"^https:\\/\\/api\\d+\\.unipile\\.com:\\d+$","description":"Your Unipile DSN base URL (e.g. https://api15.unipile.com:14591). Optional if you have connected your Unipile account in the dashboard.","example":"https://api15.unipile.com:14591"}},"required":["code"],"title":"CheckpointSolveRequest","example":{"code":"123456"}}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnipileResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-credits-cost":{"unit":"call","amount":0,"billing_shape":"per_call"},"description":"Credits: free.","x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/unipile/accounts/{id}/checkpoint/resend":{"post":{"summary":"Resend Checkpoint","tags":["Unipile"],"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","minLength":1,"pattern":"^[A-Za-z0-9_=.:+-]+$","description":"Resource ID."},"required":true,"description":"Resource ID.","name":"id","in":"path"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"access_token":{"type":"string","minLength":1,"description":"Your Unipile access token. Optional if you have connected your Unipile account in the dashboard."},"dsn":{"type":"string","format":"uri","pattern":"^https:\\/\\/api\\d+\\.unipile\\.com:\\d+$","description":"Your Unipile DSN base URL (e.g. https://api15.unipile.com:14591). Optional if you have connected your Unipile account in the dashboard.","example":"https://api15.unipile.com:14591"}},"title":"ResendCheckpointRequest","example":{}}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnipileResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-credits-cost":{"unit":"call","amount":0,"billing_shape":"per_call"},"description":"Credits: free.","x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/unipile/accounts/{id}/restart":{"post":{"summary":"Restart Account","tags":["Unipile"],"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","minLength":1,"pattern":"^[A-Za-z0-9_=.:+-]+$","description":"Resource ID."},"required":true,"description":"Resource ID.","name":"id","in":"path"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"access_token":{"type":"string","minLength":1,"description":"Your Unipile access token. Optional if you have connected your Unipile account in the dashboard."},"dsn":{"type":"string","format":"uri","pattern":"^https:\\/\\/api\\d+\\.unipile\\.com:\\d+$","description":"Your Unipile DSN base URL (e.g. https://api15.unipile.com:14591). Optional if you have connected your Unipile account in the dashboard.","example":"https://api15.unipile.com:14591"}},"title":"RestartAccountRequest","example":{}}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnipileResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-credits-cost":{"unit":"call","amount":0,"billing_shape":"per_call"},"description":"Credits: free.","x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/unipile/chats":{"get":{"summary":"List All Chats","tags":["Unipile"],"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","description":"Pagination cursor from the previous response."},"required":false,"description":"Pagination cursor from the previous response.","name":"cursor","in":"query"},{"schema":{"type":"integer","minimum":1,"maximum":250,"description":"Number of items to return (1–250)."},"required":false,"description":"Number of items to return (1–250).","name":"limit","in":"query"},{"schema":{"type":"string","description":"Filter by account ID."},"required":false,"description":"Filter by account ID.","name":"account_id","in":"query"},{"schema":{"type":"string","minLength":1,"description":"Your Unipile access token. Optional if you have connected your Unipile account in the dashboard."},"required":false,"description":"Your Unipile access token. Optional if you have connected your Unipile account in the dashboard.","name":"access_token","in":"query"},{"schema":{"type":"string","format":"uri","pattern":"^https:\\/\\/api\\d+\\.unipile\\.com:\\d+$","description":"Your Unipile DSN base URL (e.g. https://api15.unipile.com:14591). Optional if you have connected your Unipile account in the dashboard.","example":"https://api15.unipile.com:14591"},"required":false,"description":"Your Unipile DSN base URL (e.g. https://api15.unipile.com:14591). Optional if you have connected your Unipile account in the dashboard.","name":"dsn","in":"query"}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnipileResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-credits-cost":{"unit":"call","amount":0,"billing_shape":"per_call"},"description":"Credits: free.","x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}},"post":{"summary":"Start New Chat","tags":["Unipile"],"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"account_id":{"type":"string","description":"Account ID to initiate the chat from."},"attendees_ids":{"type":"array","items":{"type":"string"},"description":"List of attendee IDs to add to the chat."},"text":{"type":"string","description":"Initial message text."},"access_token":{"type":"string","minLength":1,"description":"Your Unipile access token. Optional if you have connected your Unipile account in the dashboard."},"dsn":{"type":"string","format":"uri","pattern":"^https:\\/\\/api\\d+\\.unipile\\.com:\\d+$","description":"Your Unipile DSN base URL (e.g. https://api15.unipile.com:14591). Optional if you have connected your Unipile account in the dashboard.","example":"https://api15.unipile.com:14591"}},"required":["account_id","attendees_ids"],"title":"CreateChatRequest","example":{"account_id":"acc_abc","attendees_ids":["att_xyz"],"text":"Hi Michel, would love to connect!"}}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnipileResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-credits-cost":{"unit":"call","amount":0,"billing_shape":"per_call"},"description":"Credits: free.","x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/unipile/chats/{id}":{"get":{"summary":"Retrieve Chat","tags":["Unipile"],"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","minLength":1,"pattern":"^[A-Za-z0-9_=.:+-]+$","description":"Resource ID."},"required":true,"description":"Resource ID.","name":"id","in":"path"},{"schema":{"type":"string","minLength":1,"description":"Your Unipile access token. Optional if you have connected your Unipile account in the dashboard."},"required":false,"description":"Your Unipile access token. Optional if you have connected your Unipile account in the dashboard.","name":"access_token","in":"query"},{"schema":{"type":"string","format":"uri","pattern":"^https:\\/\\/api\\d+\\.unipile\\.com:\\d+$","description":"Your Unipile DSN base URL (e.g. https://api15.unipile.com:14591). Optional if you have connected your Unipile account in the dashboard.","example":"https://api15.unipile.com:14591"},"required":false,"description":"Your Unipile DSN base URL (e.g. https://api15.unipile.com:14591). Optional if you have connected your Unipile account in the dashboard.","name":"dsn","in":"query"}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnipileResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-credits-cost":{"unit":"call","amount":0,"billing_shape":"per_call"},"description":"Credits: free.","x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}},"patch":{"summary":"Update Chat","tags":["Unipile"],"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","minLength":1,"pattern":"^[A-Za-z0-9_=.:+-]+$","description":"Resource ID."},"required":true,"description":"Resource ID.","name":"id","in":"path"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"read":{"type":"boolean","description":"Mark the chat as read."},"muted":{"type":"boolean","description":"Mute notifications for this chat."},"access_token":{"type":"string","minLength":1,"description":"Your Unipile access token. Optional if you have connected your Unipile account in the dashboard."},"dsn":{"type":"string","format":"uri","pattern":"^https:\\/\\/api\\d+\\.unipile\\.com:\\d+$","description":"Your Unipile DSN base URL (e.g. https://api15.unipile.com:14591). Optional if you have connected your Unipile account in the dashboard.","example":"https://api15.unipile.com:14591"}},"title":"PatchChatRequest","example":{"read":true}}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnipileResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-credits-cost":{"unit":"call","amount":0,"billing_shape":"per_call"},"description":"Credits: free.","x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}},"delete":{"summary":"Delete Chat","tags":["Unipile"],"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","minLength":1,"pattern":"^[A-Za-z0-9_=.:+-]+$","description":"Resource ID."},"required":true,"description":"Resource ID.","name":"id","in":"path"},{"schema":{"type":"string","minLength":1,"description":"Your Unipile access token. Optional if you have connected your Unipile account in the dashboard."},"required":false,"description":"Your Unipile access token. Optional if you have connected your Unipile account in the dashboard.","name":"access_token","in":"query"},{"schema":{"type":"string","format":"uri","pattern":"^https:\\/\\/api\\d+\\.unipile\\.com:\\d+$","description":"Your Unipile DSN base URL (e.g. https://api15.unipile.com:14591). Optional if you have connected your Unipile account in the dashboard.","example":"https://api15.unipile.com:14591"},"required":false,"description":"Your Unipile DSN base URL (e.g. https://api15.unipile.com:14591). Optional if you have connected your Unipile account in the dashboard.","name":"dsn","in":"query"}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnipileResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-credits-cost":{"unit":"call","amount":0,"billing_shape":"per_call"},"description":"Credits: free.","x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/unipile/chats/{chatId}/messages":{"get":{"summary":"List Chat Messages","tags":["Unipile"],"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","minLength":1,"pattern":"^[A-Za-z0-9_=.:+-]+$","description":"Chat ID."},"required":true,"description":"Chat ID.","name":"chatId","in":"path"},{"schema":{"type":"string","description":"Pagination cursor from the previous response."},"required":false,"description":"Pagination cursor from the previous response.","name":"cursor","in":"query"},{"schema":{"type":"integer","minimum":1,"maximum":250,"description":"Number of items to return (1–250)."},"required":false,"description":"Number of items to return (1–250).","name":"limit","in":"query"},{"schema":{"type":"string","minLength":1,"description":"Your Unipile access token. Optional if you have connected your Unipile account in the dashboard."},"required":false,"description":"Your Unipile access token. Optional if you have connected your Unipile account in the dashboard.","name":"access_token","in":"query"},{"schema":{"type":"string","format":"uri","pattern":"^https:\\/\\/api\\d+\\.unipile\\.com:\\d+$","description":"Your Unipile DSN base URL (e.g. https://api15.unipile.com:14591). Optional if you have connected your Unipile account in the dashboard.","example":"https://api15.unipile.com:14591"},"required":false,"description":"Your Unipile DSN base URL (e.g. https://api15.unipile.com:14591). Optional if you have connected your Unipile account in the dashboard.","name":"dsn","in":"query"}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnipileResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-credits-cost":{"unit":"call","amount":0,"billing_shape":"per_call"},"description":"Credits: free.","x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}},"post":{"summary":"Send Message","tags":["Unipile"],"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","minLength":1,"pattern":"^[A-Za-z0-9_=.:+-]+$","description":"Chat ID."},"required":true,"description":"Chat ID.","name":"chatId","in":"path"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"text":{"type":"string","description":"Message text content."},"thread_id":{"type":"string","description":"Thread ID to reply into."},"access_token":{"type":"string","minLength":1,"description":"Your Unipile access token. Optional if you have connected your Unipile account in the dashboard."},"dsn":{"type":"string","format":"uri","pattern":"^https:\\/\\/api\\d+\\.unipile\\.com:\\d+$","description":"Your Unipile DSN base URL (e.g. https://api15.unipile.com:14591). Optional if you have connected your Unipile account in the dashboard.","example":"https://api15.unipile.com:14591"}},"title":"SendMessageRequest","example":{"text":"Thanks for connecting, Michel!"}}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnipileResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-credits-cost":{"unit":"call","amount":0,"billing_shape":"per_call"},"description":"Credits: free.","x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/unipile/chats/{id}/attendees":{"get":{"summary":"List Chat Attendees","tags":["Unipile"],"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","minLength":1,"pattern":"^[A-Za-z0-9_=.:+-]+$","description":"Resource ID."},"required":true,"description":"Resource ID.","name":"id","in":"path"},{"schema":{"type":"string","minLength":1,"description":"Your Unipile access token. Optional if you have connected your Unipile account in the dashboard."},"required":false,"description":"Your Unipile access token. Optional if you have connected your Unipile account in the dashboard.","name":"access_token","in":"query"},{"schema":{"type":"string","format":"uri","pattern":"^https:\\/\\/api\\d+\\.unipile\\.com:\\d+$","description":"Your Unipile DSN base URL (e.g. https://api15.unipile.com:14591). Optional if you have connected your Unipile account in the dashboard.","example":"https://api15.unipile.com:14591"},"required":false,"description":"Your Unipile DSN base URL (e.g. https://api15.unipile.com:14591). Optional if you have connected your Unipile account in the dashboard.","name":"dsn","in":"query"}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnipileResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-credits-cost":{"unit":"call","amount":0,"billing_shape":"per_call"},"description":"Credits: free.","x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/unipile/chats/{id}/sync":{"get":{"summary":"Sync Chat","tags":["Unipile"],"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","minLength":1,"pattern":"^[A-Za-z0-9_=.:+-]+$","description":"Resource ID."},"required":true,"description":"Resource ID.","name":"id","in":"path"},{"schema":{"type":"string","minLength":1,"description":"Your Unipile access token. Optional if you have connected your Unipile account in the dashboard."},"required":false,"description":"Your Unipile access token. Optional if you have connected your Unipile account in the dashboard.","name":"access_token","in":"query"},{"schema":{"type":"string","format":"uri","pattern":"^https:\\/\\/api\\d+\\.unipile\\.com:\\d+$","description":"Your Unipile DSN base URL (e.g. https://api15.unipile.com:14591). Optional if you have connected your Unipile account in the dashboard.","example":"https://api15.unipile.com:14591"},"required":false,"description":"Your Unipile DSN base URL (e.g. https://api15.unipile.com:14591). Optional if you have connected your Unipile account in the dashboard.","name":"dsn","in":"query"}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnipileResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-credits-cost":{"unit":"call","amount":0,"billing_shape":"per_call"},"description":"Credits: free.","x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/unipile/messages":{"get":{"summary":"List All Messages","tags":["Unipile"],"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","description":"Pagination cursor from the previous response."},"required":false,"description":"Pagination cursor from the previous response.","name":"cursor","in":"query"},{"schema":{"type":"integer","minimum":1,"maximum":250,"description":"Number of items to return (1–250)."},"required":false,"description":"Number of items to return (1–250).","name":"limit","in":"query"},{"schema":{"type":"string","description":"Filter by account ID."},"required":false,"description":"Filter by account ID.","name":"account_id","in":"query"},{"schema":{"type":"string","description":"Filter by chat ID."},"required":false,"description":"Filter by chat ID.","name":"chat_id","in":"query"},{"schema":{"type":"string","minLength":1,"description":"Your Unipile access token. Optional if you have connected your Unipile account in the dashboard."},"required":false,"description":"Your Unipile access token. Optional if you have connected your Unipile account in the dashboard.","name":"access_token","in":"query"},{"schema":{"type":"string","format":"uri","pattern":"^https:\\/\\/api\\d+\\.unipile\\.com:\\d+$","description":"Your Unipile DSN base URL (e.g. https://api15.unipile.com:14591). Optional if you have connected your Unipile account in the dashboard.","example":"https://api15.unipile.com:14591"},"required":false,"description":"Your Unipile DSN base URL (e.g. https://api15.unipile.com:14591). Optional if you have connected your Unipile account in the dashboard.","name":"dsn","in":"query"}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnipileResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-credits-cost":{"unit":"call","amount":0,"billing_shape":"per_call"},"description":"Credits: free.","x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/unipile/messages/{messageId}":{"get":{"summary":"Retrieve Message","tags":["Unipile"],"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","minLength":1,"pattern":"^[A-Za-z0-9_=.:+-]+$","description":"Message ID."},"required":true,"description":"Message ID.","name":"messageId","in":"path"},{"schema":{"type":"string","minLength":1,"description":"Your Unipile access token. Optional if you have connected your Unipile account in the dashboard."},"required":false,"description":"Your Unipile access token. Optional if you have connected your Unipile account in the dashboard.","name":"access_token","in":"query"},{"schema":{"type":"string","format":"uri","pattern":"^https:\\/\\/api\\d+\\.unipile\\.com:\\d+$","description":"Your Unipile DSN base URL (e.g. https://api15.unipile.com:14591). Optional if you have connected your Unipile account in the dashboard.","example":"https://api15.unipile.com:14591"},"required":false,"description":"Your Unipile DSN base URL (e.g. https://api15.unipile.com:14591). Optional if you have connected your Unipile account in the dashboard.","name":"dsn","in":"query"}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnipileResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-credits-cost":{"unit":"call","amount":0,"billing_shape":"per_call"},"description":"Credits: free.","x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}},"patch":{"summary":"Edit Message","tags":["Unipile"],"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","minLength":1,"pattern":"^[A-Za-z0-9_=.:+-]+$","description":"Message ID."},"required":true,"description":"Message ID.","name":"messageId","in":"path"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"text":{"type":"string","description":"New message text."},"access_token":{"type":"string","minLength":1,"description":"Your Unipile access token. Optional if you have connected your Unipile account in the dashboard."},"dsn":{"type":"string","format":"uri","pattern":"^https:\\/\\/api\\d+\\.unipile\\.com:\\d+$","description":"Your Unipile DSN base URL (e.g. https://api15.unipile.com:14591). Optional if you have connected your Unipile account in the dashboard.","example":"https://api15.unipile.com:14591"}},"required":["text"],"title":"EditMessageRequest","example":{"text":"Updated message content."}}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnipileResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-credits-cost":{"unit":"call","amount":0,"billing_shape":"per_call"},"description":"Credits: free.","x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}},"delete":{"summary":"Delete Message","tags":["Unipile"],"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","minLength":1,"pattern":"^[A-Za-z0-9_=.:+-]+$","description":"Message ID."},"required":true,"description":"Message ID.","name":"messageId","in":"path"},{"schema":{"type":"string","minLength":1,"description":"Your Unipile access token. Optional if you have connected your Unipile account in the dashboard."},"required":false,"description":"Your Unipile access token. Optional if you have connected your Unipile account in the dashboard.","name":"access_token","in":"query"},{"schema":{"type":"string","format":"uri","pattern":"^https:\\/\\/api\\d+\\.unipile\\.com:\\d+$","description":"Your Unipile DSN base URL (e.g. https://api15.unipile.com:14591). Optional if you have connected your Unipile account in the dashboard.","example":"https://api15.unipile.com:14591"},"required":false,"description":"Your Unipile DSN base URL (e.g. https://api15.unipile.com:14591). Optional if you have connected your Unipile account in the dashboard.","name":"dsn","in":"query"}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnipileResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-credits-cost":{"unit":"call","amount":0,"billing_shape":"per_call"},"description":"Credits: free.","x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/unipile/messages/{messageId}/forward":{"post":{"summary":"Forward Message","tags":["Unipile"],"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","minLength":1,"pattern":"^[A-Za-z0-9_=.:+-]+$","description":"Message ID."},"required":true,"description":"Message ID.","name":"messageId","in":"path"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"chat_id":{"type":"string","description":"Chat ID to forward the message to."},"access_token":{"type":"string","minLength":1,"description":"Your Unipile access token. Optional if you have connected your Unipile account in the dashboard."},"dsn":{"type":"string","format":"uri","pattern":"^https:\\/\\/api\\d+\\.unipile\\.com:\\d+$","description":"Your Unipile DSN base URL (e.g. https://api15.unipile.com:14591). Optional if you have connected your Unipile account in the dashboard.","example":"https://api15.unipile.com:14591"}},"required":["chat_id"],"title":"ForwardMessageRequest","example":{"chat_id":"ch_xyz"}}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnipileResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-credits-cost":{"unit":"call","amount":0,"billing_shape":"per_call"},"description":"Credits: free.","x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/unipile/messages/{messageId}/reactions":{"post":{"summary":"Add Message Reaction","tags":["Unipile"],"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","minLength":1,"pattern":"^[A-Za-z0-9_=.:+-]+$","description":"Message ID."},"required":true,"description":"Message ID.","name":"messageId","in":"path"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"emoji":{"type":"string","description":"Emoji character to react with."},"access_token":{"type":"string","minLength":1,"description":"Your Unipile access token. Optional if you have connected your Unipile account in the dashboard."},"dsn":{"type":"string","format":"uri","pattern":"^https:\\/\\/api\\d+\\.unipile\\.com:\\d+$","description":"Your Unipile DSN base URL (e.g. https://api15.unipile.com:14591). Optional if you have connected your Unipile account in the dashboard.","example":"https://api15.unipile.com:14591"}},"required":["emoji"],"title":"AddMessageReactionRequest","example":{"emoji":"👍"}}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnipileResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-credits-cost":{"unit":"call","amount":0,"billing_shape":"per_call"},"description":"Credits: free.","x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/unipile/users/attendees":{"get":{"summary":"List Attendees","tags":["Unipile"],"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","description":"Pagination cursor from the previous response."},"required":false,"description":"Pagination cursor from the previous response.","name":"cursor","in":"query"},{"schema":{"type":"integer","minimum":1,"maximum":250,"description":"Number of items to return (1–250)."},"required":false,"description":"Number of items to return (1–250).","name":"limit","in":"query"},{"schema":{"type":"string","description":"Filter by account ID."},"required":false,"description":"Filter by account ID.","name":"account_id","in":"query"},{"schema":{"type":"string","minLength":1,"description":"Your Unipile access token. Optional if you have connected your Unipile account in the dashboard."},"required":false,"description":"Your Unipile access token. Optional if you have connected your Unipile account in the dashboard.","name":"access_token","in":"query"},{"schema":{"type":"string","format":"uri","pattern":"^https:\\/\\/api\\d+\\.unipile\\.com:\\d+$","description":"Your Unipile DSN base URL (e.g. https://api15.unipile.com:14591). Optional if you have connected your Unipile account in the dashboard.","example":"https://api15.unipile.com:14591"},"required":false,"description":"Your Unipile DSN base URL (e.g. https://api15.unipile.com:14591). Optional if you have connected your Unipile account in the dashboard.","name":"dsn","in":"query"}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnipileResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-credits-cost":{"unit":"call","amount":0,"billing_shape":"per_call"},"description":"Credits: free.","x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/unipile/users/me":{"get":{"summary":"Get Own Profile","tags":["Unipile"],"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","description":"Account ID to retrieve the profile for."},"required":true,"description":"Account ID to retrieve the profile for.","name":"account_id","in":"query"},{"schema":{"type":"string","minLength":1,"description":"Your Unipile access token. Optional if you have connected your Unipile account in the dashboard."},"required":false,"description":"Your Unipile access token. Optional if you have connected your Unipile account in the dashboard.","name":"access_token","in":"query"},{"schema":{"type":"string","format":"uri","pattern":"^https:\\/\\/api\\d+\\.unipile\\.com:\\d+$","description":"Your Unipile DSN base URL (e.g. https://api15.unipile.com:14591). Optional if you have connected your Unipile account in the dashboard.","example":"https://api15.unipile.com:14591"},"required":false,"description":"Your Unipile DSN base URL (e.g. https://api15.unipile.com:14591). Optional if you have connected your Unipile account in the dashboard.","name":"dsn","in":"query"}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnipileResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-credits-cost":{"unit":"call","amount":0,"billing_shape":"per_call"},"description":"Credits: free.","x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/unipile/users/invite/sent":{"get":{"summary":"List Sent Invitations","tags":["Unipile"],"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","description":"Pagination cursor from the previous response."},"required":false,"description":"Pagination cursor from the previous response.","name":"cursor","in":"query"},{"schema":{"type":"integer","minimum":1,"maximum":250,"description":"Number of items to return (1–250)."},"required":false,"description":"Number of items to return (1–250).","name":"limit","in":"query"},{"schema":{"type":"string","description":"Filter by account ID."},"required":false,"description":"Filter by account ID.","name":"account_id","in":"query"},{"schema":{"type":"string","minLength":1,"description":"Your Unipile access token. Optional if you have connected your Unipile account in the dashboard."},"required":false,"description":"Your Unipile access token. Optional if you have connected your Unipile account in the dashboard.","name":"access_token","in":"query"},{"schema":{"type":"string","format":"uri","pattern":"^https:\\/\\/api\\d+\\.unipile\\.com:\\d+$","description":"Your Unipile DSN base URL (e.g. https://api15.unipile.com:14591). Optional if you have connected your Unipile account in the dashboard.","example":"https://api15.unipile.com:14591"},"required":false,"description":"Your Unipile DSN base URL (e.g. https://api15.unipile.com:14591). Optional if you have connected your Unipile account in the dashboard.","name":"dsn","in":"query"}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnipileResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-credits-cost":{"unit":"call","amount":0,"billing_shape":"per_call"},"description":"Credits: free.","x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/unipile/users/invite/received":{"get":{"summary":"List Received Invitations","tags":["Unipile"],"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","description":"Pagination cursor from the previous response."},"required":false,"description":"Pagination cursor from the previous response.","name":"cursor","in":"query"},{"schema":{"type":"integer","minimum":1,"maximum":250,"description":"Number of items to return (1–250)."},"required":false,"description":"Number of items to return (1–250).","name":"limit","in":"query"},{"schema":{"type":"string","description":"Filter by account ID."},"required":false,"description":"Filter by account ID.","name":"account_id","in":"query"},{"schema":{"type":"string","minLength":1,"description":"Your Unipile access token. Optional if you have connected your Unipile account in the dashboard."},"required":false,"description":"Your Unipile access token. Optional if you have connected your Unipile account in the dashboard.","name":"access_token","in":"query"},{"schema":{"type":"string","format":"uri","pattern":"^https:\\/\\/api\\d+\\.unipile\\.com:\\d+$","description":"Your Unipile DSN base URL (e.g. https://api15.unipile.com:14591). Optional if you have connected your Unipile account in the dashboard.","example":"https://api15.unipile.com:14591"},"required":false,"description":"Your Unipile DSN base URL (e.g. https://api15.unipile.com:14591). Optional if you have connected your Unipile account in the dashboard.","name":"dsn","in":"query"}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnipileResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-credits-cost":{"unit":"call","amount":0,"billing_shape":"per_call"},"description":"Credits: free.","x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/unipile/users/invite/{inviteId}":{"post":{"summary":"Handle Received Invitation","tags":["Unipile"],"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","minLength":1,"pattern":"^[A-Za-z0-9_=.:+-]+$","description":"Invite ID."},"required":true,"description":"Invite ID.","name":"inviteId","in":"path"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"action":{"type":"string","enum":["accept","reject","ignore"],"description":"Action to take on the received invite."},"access_token":{"type":"string","minLength":1,"description":"Your Unipile access token. Optional if you have connected your Unipile account in the dashboard."},"dsn":{"type":"string","format":"uri","pattern":"^https:\\/\\/api\\d+\\.unipile\\.com:\\d+$","description":"Your Unipile DSN base URL (e.g. https://api15.unipile.com:14591). Optional if you have connected your Unipile account in the dashboard.","example":"https://api15.unipile.com:14591"}},"required":["action"],"title":"HandleInviteRequest","example":{"action":"accept"}}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnipileResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-credits-cost":{"unit":"call","amount":0,"billing_shape":"per_call"},"description":"Credits: free.","x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}},"delete":{"summary":"Cancel Sent Invitation","tags":["Unipile"],"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","minLength":1,"pattern":"^[A-Za-z0-9_=.:+-]+$","description":"Invite ID."},"required":true,"description":"Invite ID.","name":"inviteId","in":"path"},{"schema":{"type":"string","minLength":1,"description":"Your Unipile access token. Optional if you have connected your Unipile account in the dashboard."},"required":false,"description":"Your Unipile access token. Optional if you have connected your Unipile account in the dashboard.","name":"access_token","in":"query"},{"schema":{"type":"string","format":"uri","pattern":"^https:\\/\\/api\\d+\\.unipile\\.com:\\d+$","description":"Your Unipile DSN base URL (e.g. https://api15.unipile.com:14591). Optional if you have connected your Unipile account in the dashboard.","example":"https://api15.unipile.com:14591"},"required":false,"description":"Your Unipile DSN base URL (e.g. https://api15.unipile.com:14591). Optional if you have connected your Unipile account in the dashboard.","name":"dsn","in":"query"}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnipileResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-credits-cost":{"unit":"call","amount":0,"billing_shape":"per_call"},"description":"Credits: free.","x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/unipile/emails":{"get":{"summary":"List Emails","tags":["Unipile"],"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","description":"Pagination cursor from the previous response."},"required":false,"description":"Pagination cursor from the previous response.","name":"cursor","in":"query"},{"schema":{"type":"integer","minimum":1,"maximum":250,"description":"Number of items to return (1–250)."},"required":false,"description":"Number of items to return (1–250).","name":"limit","in":"query"},{"schema":{"type":"string","description":"Filter by account ID."},"required":false,"description":"Filter by account ID.","name":"account_id","in":"query"},{"schema":{"type":"string","description":"Filter by folder ID."},"required":false,"description":"Filter by folder ID.","name":"folder_id","in":"query"},{"schema":{"type":"string","minLength":1,"description":"Your Unipile access token. Optional if you have connected your Unipile account in the dashboard."},"required":false,"description":"Your Unipile access token. Optional if you have connected your Unipile account in the dashboard.","name":"access_token","in":"query"},{"schema":{"type":"string","format":"uri","pattern":"^https:\\/\\/api\\d+\\.unipile\\.com:\\d+$","description":"Your Unipile DSN base URL (e.g. https://api15.unipile.com:14591). Optional if you have connected your Unipile account in the dashboard.","example":"https://api15.unipile.com:14591"},"required":false,"description":"Your Unipile DSN base URL (e.g. https://api15.unipile.com:14591). Optional if you have connected your Unipile account in the dashboard.","name":"dsn","in":"query"}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnipileResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-credits-cost":{"unit":"call","amount":0,"billing_shape":"per_call"},"description":"Credits: free.","x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}},"post":{"summary":"Send Email","tags":["Unipile"],"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"account_id":{"type":"string","description":"Account ID to send the email from."},"to":{"type":"array","items":{"type":"object","properties":{"display_name":{"type":"string"},"identifier":{"type":"string"}},"required":["identifier"]},"description":"Primary recipients."},"subject":{"type":"string","description":"Email subject line."},"body":{"type":"string","description":"Email body (HTML or plain text)."},"cc":{"type":"array","items":{"type":"object","properties":{"display_name":{"type":"string"},"identifier":{"type":"string"}},"required":["identifier"]},"description":"CC recipients."},"reply_to":{"type":"array","items":{"type":"object","properties":{"display_name":{"type":"string"},"identifier":{"type":"string"}},"required":["identifier"]},"description":"Reply-to addresses."},"thread_id":{"type":"string","description":"Thread ID to reply into."},"access_token":{"type":"string","minLength":1,"description":"Your Unipile access token. Optional if you have connected your Unipile account in the dashboard."},"dsn":{"type":"string","format":"uri","pattern":"^https:\\/\\/api\\d+\\.unipile\\.com:\\d+$","description":"Your Unipile DSN base URL (e.g. https://api15.unipile.com:14591). Optional if you have connected your Unipile account in the dashboard.","example":"https://api15.unipile.com:14591"}},"required":["account_id","to","subject","body"],"title":"SendMailRequest","example":{"account_id":"acc_abc","to":[{"display_name":"Michel Lieben","identifier":"michel@coldiq.com"}],"subject":"Quick question about ColdIQ","body":"<p>Hi Michel, I came across ColdIQ and wanted to reach out.</p>"}}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnipileResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-credits-cost":{"unit":"call","amount":0,"billing_shape":"per_call"},"description":"Credits: free.","x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/unipile/emails/contacts":{"get":{"summary":"List Email Contacts","tags":["Unipile"],"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","description":"Pagination cursor from the previous response."},"required":false,"description":"Pagination cursor from the previous response.","name":"cursor","in":"query"},{"schema":{"type":"integer","minimum":1,"maximum":250,"description":"Number of items to return (1–250)."},"required":false,"description":"Number of items to return (1–250).","name":"limit","in":"query"},{"schema":{"type":"string","description":"Filter by account ID."},"required":false,"description":"Filter by account ID.","name":"account_id","in":"query"},{"schema":{"type":"string","description":"Search query to filter contacts."},"required":false,"description":"Search query to filter contacts.","name":"query","in":"query"},{"schema":{"type":"string","minLength":1,"description":"Your Unipile access token. Optional if you have connected your Unipile account in the dashboard."},"required":false,"description":"Your Unipile access token. Optional if you have connected your Unipile account in the dashboard.","name":"access_token","in":"query"},{"schema":{"type":"string","format":"uri","pattern":"^https:\\/\\/api\\d+\\.unipile\\.com:\\d+$","description":"Your Unipile DSN base URL (e.g. https://api15.unipile.com:14591). Optional if you have connected your Unipile account in the dashboard.","example":"https://api15.unipile.com:14591"},"required":false,"description":"Your Unipile DSN base URL (e.g. https://api15.unipile.com:14591). Optional if you have connected your Unipile account in the dashboard.","name":"dsn","in":"query"}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnipileResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-credits-cost":{"unit":"call","amount":0,"billing_shape":"per_call"},"description":"Credits: free.","x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/unipile/emails/{mailId}":{"get":{"summary":"Retrieve Email","tags":["Unipile"],"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","minLength":1,"pattern":"^[A-Za-z0-9_=.:+-]+$","description":"Mail ID."},"required":true,"description":"Mail ID.","name":"mailId","in":"path"},{"schema":{"type":"string","minLength":1,"description":"Your Unipile access token. Optional if you have connected your Unipile account in the dashboard."},"required":false,"description":"Your Unipile access token. Optional if you have connected your Unipile account in the dashboard.","name":"access_token","in":"query"},{"schema":{"type":"string","format":"uri","pattern":"^https:\\/\\/api\\d+\\.unipile\\.com:\\d+$","description":"Your Unipile DSN base URL (e.g. https://api15.unipile.com:14591). Optional if you have connected your Unipile account in the dashboard.","example":"https://api15.unipile.com:14591"},"required":false,"description":"Your Unipile DSN base URL (e.g. https://api15.unipile.com:14591). Optional if you have connected your Unipile account in the dashboard.","name":"dsn","in":"query"}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnipileResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-credits-cost":{"unit":"call","amount":0,"billing_shape":"per_call"},"description":"Credits: free.","x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}},"put":{"summary":"Update Email","tags":["Unipile"],"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","minLength":1,"pattern":"^[A-Za-z0-9_=.:+-]+$","description":"Mail ID."},"required":true,"description":"Mail ID.","name":"mailId","in":"path"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"read":{"type":"boolean","description":"Mark as read."},"starred":{"type":"boolean","description":"Star the email."},"folder_id":{"type":"string","description":"Move to this folder ID."},"access_token":{"type":"string","minLength":1,"description":"Your Unipile access token. Optional if you have connected your Unipile account in the dashboard."},"dsn":{"type":"string","format":"uri","pattern":"^https:\\/\\/api\\d+\\.unipile\\.com:\\d+$","description":"Your Unipile DSN base URL (e.g. https://api15.unipile.com:14591). Optional if you have connected your Unipile account in the dashboard.","example":"https://api15.unipile.com:14591"}},"title":"UpdateMailRequest","example":{"read":true}}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnipileResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-credits-cost":{"unit":"call","amount":0,"billing_shape":"per_call"},"description":"Credits: free.","x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}},"delete":{"summary":"Delete Email","tags":["Unipile"],"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","minLength":1,"pattern":"^[A-Za-z0-9_=.:+-]+$","description":"Mail ID."},"required":true,"description":"Mail ID.","name":"mailId","in":"path"},{"schema":{"type":"string","minLength":1,"description":"Your Unipile access token. Optional if you have connected your Unipile account in the dashboard."},"required":false,"description":"Your Unipile access token. Optional if you have connected your Unipile account in the dashboard.","name":"access_token","in":"query"},{"schema":{"type":"string","format":"uri","pattern":"^https:\\/\\/api\\d+\\.unipile\\.com:\\d+$","description":"Your Unipile DSN base URL (e.g. https://api15.unipile.com:14591). Optional if you have connected your Unipile account in the dashboard.","example":"https://api15.unipile.com:14591"},"required":false,"description":"Your Unipile DSN base URL (e.g. https://api15.unipile.com:14591). Optional if you have connected your Unipile account in the dashboard.","name":"dsn","in":"query"}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnipileResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-credits-cost":{"unit":"call","amount":0,"billing_shape":"per_call"},"description":"Credits: free.","x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/unipile/folders":{"get":{"summary":"List Email Folders","tags":["Unipile"],"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","minLength":1,"description":"Your Unipile access token. Optional if you have connected your Unipile account in the dashboard."},"required":false,"description":"Your Unipile access token. Optional if you have connected your Unipile account in the dashboard.","name":"access_token","in":"query"},{"schema":{"type":"string","format":"uri","pattern":"^https:\\/\\/api\\d+\\.unipile\\.com:\\d+$","description":"Your Unipile DSN base URL (e.g. https://api15.unipile.com:14591). Optional if you have connected your Unipile account in the dashboard.","example":"https://api15.unipile.com:14591"},"required":false,"description":"Your Unipile DSN base URL (e.g. https://api15.unipile.com:14591). Optional if you have connected your Unipile account in the dashboard.","name":"dsn","in":"query"}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnipileResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-credits-cost":{"unit":"call","amount":0,"billing_shape":"per_call"},"description":"Credits: free.","x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/unipile/folders/{folderId}":{"get":{"summary":"Retrieve Email Folder","tags":["Unipile"],"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","minLength":1,"pattern":"^[A-Za-z0-9_=.:+-]+$","description":"Folder ID."},"required":true,"description":"Folder ID.","name":"folderId","in":"path"},{"schema":{"type":"string","minLength":1,"description":"Your Unipile access token. Optional if you have connected your Unipile account in the dashboard."},"required":false,"description":"Your Unipile access token. Optional if you have connected your Unipile account in the dashboard.","name":"access_token","in":"query"},{"schema":{"type":"string","format":"uri","pattern":"^https:\\/\\/api\\d+\\.unipile\\.com:\\d+$","description":"Your Unipile DSN base URL (e.g. https://api15.unipile.com:14591). Optional if you have connected your Unipile account in the dashboard.","example":"https://api15.unipile.com:14591"},"required":false,"description":"Your Unipile DSN base URL (e.g. https://api15.unipile.com:14591). Optional if you have connected your Unipile account in the dashboard.","name":"dsn","in":"query"}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnipileResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-credits-cost":{"unit":"call","amount":0,"billing_shape":"per_call"},"description":"Credits: free.","x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/unipile/drafts":{"post":{"summary":"Create Email Draft","tags":["Unipile"],"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"account_id":{"type":"string","description":"Account ID to create the draft on."},"to":{"type":"array","items":{"type":"object","properties":{"display_name":{"type":"string"},"identifier":{"type":"string"}},"required":["identifier"]},"description":"Recipients."},"subject":{"type":"string","description":"Draft subject."},"body":{"type":"string","description":"Draft body."},"access_token":{"type":"string","minLength":1,"description":"Your Unipile access token. Optional if you have connected your Unipile account in the dashboard."},"dsn":{"type":"string","format":"uri","pattern":"^https:\\/\\/api\\d+\\.unipile\\.com:\\d+$","description":"Your Unipile DSN base URL (e.g. https://api15.unipile.com:14591). Optional if you have connected your Unipile account in the dashboard.","example":"https://api15.unipile.com:14591"}},"required":["account_id"],"title":"CreateDraftRequest","example":{"account_id":"acc_abc","subject":"Draft intro","body":"<p>Draft body here.</p>"}}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnipileResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-credits-cost":{"unit":"call","amount":0,"billing_shape":"per_call"},"description":"Credits: free.","x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/unipile/linkedin/search/parameters":{"get":{"summary":"Get LinkedIn Search Parameters","tags":["Unipile"],"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","description":"LinkedIn account ID."},"required":true,"description":"LinkedIn account ID.","name":"account_id","in":"query"},{"schema":{"type":"string","description":"Search type (e.g. people, companies, jobs)."},"required":false,"description":"Search type (e.g. people, companies, jobs).","name":"type","in":"query"},{"schema":{"type":"string","minLength":1,"description":"Your Unipile access token. Optional if you have connected your Unipile account in the dashboard."},"required":false,"description":"Your Unipile access token. Optional if you have connected your Unipile account in the dashboard.","name":"access_token","in":"query"},{"schema":{"type":"string","format":"uri","pattern":"^https:\\/\\/api\\d+\\.unipile\\.com:\\d+$","description":"Your Unipile DSN base URL (e.g. https://api15.unipile.com:14591). Optional if you have connected your Unipile account in the dashboard.","example":"https://api15.unipile.com:14591"},"required":false,"description":"Your Unipile DSN base URL (e.g. https://api15.unipile.com:14591). Optional if you have connected your Unipile account in the dashboard.","name":"dsn","in":"query"}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnipileResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-credits-cost":{"unit":"call","amount":0,"billing_shape":"per_call"},"description":"Credits: free.","x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/unipile/linkedin/search":{"post":{"summary":"Execute LinkedIn Search","tags":["Unipile"],"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"account_id":{"type":"string","description":"LinkedIn account ID to search from."},"query":{"type":"object","additionalProperties":{"nullable":true},"description":"Search parameters. Use GET /unipile/linkedin/search/parameters to discover available filters."},"cursor":{"type":"string","description":"Pagination cursor."},"limit":{"type":"integer","minimum":1,"maximum":50,"description":"Number of results to return."},"access_token":{"type":"string","minLength":1,"description":"Your Unipile access token. Optional if you have connected your Unipile account in the dashboard."},"dsn":{"type":"string","format":"uri","pattern":"^https:\\/\\/api\\d+\\.unipile\\.com:\\d+$","description":"Your Unipile DSN base URL (e.g. https://api15.unipile.com:14591). Optional if you have connected your Unipile account in the dashboard.","example":"https://api15.unipile.com:14591"}},"required":["account_id","query"],"title":"LinkedInSearchRequest","example":{"account_id":"acc_abc","query":{"keywords":"ColdIQ CEO","geo_codes":["103644278"]}}}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnipileResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-credits-cost":{"unit":"call","amount":0,"billing_shape":"per_call"},"description":"Credits: free.","x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/unipile/linkedin/jobs":{"get":{"summary":"List LinkedIn Job Postings","tags":["Unipile"],"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","description":"Pagination cursor from the previous response."},"required":false,"description":"Pagination cursor from the previous response.","name":"cursor","in":"query"},{"schema":{"type":"integer","minimum":1,"maximum":250,"description":"Number of items to return (1–250)."},"required":false,"description":"Number of items to return (1–250).","name":"limit","in":"query"},{"schema":{"type":"string","description":"LinkedIn account ID."},"required":true,"description":"LinkedIn account ID.","name":"account_id","in":"query"},{"schema":{"type":"string","minLength":1,"description":"Your Unipile access token. Optional if you have connected your Unipile account in the dashboard."},"required":false,"description":"Your Unipile access token. Optional if you have connected your Unipile account in the dashboard.","name":"access_token","in":"query"},{"schema":{"type":"string","format":"uri","pattern":"^https:\\/\\/api\\d+\\.unipile\\.com:\\d+$","description":"Your Unipile DSN base URL (e.g. https://api15.unipile.com:14591). Optional if you have connected your Unipile account in the dashboard.","example":"https://api15.unipile.com:14591"},"required":false,"description":"Your Unipile DSN base URL (e.g. https://api15.unipile.com:14591). Optional if you have connected your Unipile account in the dashboard.","name":"dsn","in":"query"}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnipileResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-credits-cost":{"unit":"call","amount":0,"billing_shape":"per_call"},"description":"Credits: free.","x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}},"post":{"summary":"Create LinkedIn Job Posting","tags":["Unipile"],"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"account_id":{"type":"string","description":"LinkedIn account ID to post the job from."},"title":{"type":"string","description":"Job title."},"description":{"type":"string","description":"Job description."},"location":{"type":"string","description":"Job location."},"company_id":{"type":"string","description":"LinkedIn company page ID."},"access_token":{"type":"string","minLength":1,"description":"Your Unipile access token. Optional if you have connected your Unipile account in the dashboard."},"dsn":{"type":"string","format":"uri","pattern":"^https:\\/\\/api\\d+\\.unipile\\.com:\\d+$","description":"Your Unipile DSN base URL (e.g. https://api15.unipile.com:14591). Optional if you have connected your Unipile account in the dashboard.","example":"https://api15.unipile.com:14591"}},"required":["account_id","title","description"],"title":"CreateLinkedInJobRequest","example":{"account_id":"acc_abc","title":"Sales Development Representative","description":"Join ColdIQ as an SDR and drive outbound pipeline."}}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnipileResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-credits-cost":{"unit":"call","amount":0,"billing_shape":"per_call"},"description":"Credits: free.","x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/unipile/linkedin/jobs/{jobId}":{"get":{"summary":"Retrieve LinkedIn Job Posting","tags":["Unipile"],"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","minLength":1,"pattern":"^[A-Za-z0-9_=.:+-]+$","description":"Job posting ID."},"required":true,"description":"Job posting ID.","name":"jobId","in":"path"},{"schema":{"type":"string","description":"LinkedIn account ID."},"required":true,"description":"LinkedIn account ID.","name":"account_id","in":"query"},{"schema":{"type":"string","minLength":1,"description":"Your Unipile access token. Optional if you have connected your Unipile account in the dashboard."},"required":false,"description":"Your Unipile access token. Optional if you have connected your Unipile account in the dashboard.","name":"access_token","in":"query"},{"schema":{"type":"string","format":"uri","pattern":"^https:\\/\\/api\\d+\\.unipile\\.com:\\d+$","description":"Your Unipile DSN base URL (e.g. https://api15.unipile.com:14591). Optional if you have connected your Unipile account in the dashboard.","example":"https://api15.unipile.com:14591"},"required":false,"description":"Your Unipile DSN base URL (e.g. https://api15.unipile.com:14591). Optional if you have connected your Unipile account in the dashboard.","name":"dsn","in":"query"}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnipileResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-credits-cost":{"unit":"call","amount":0,"billing_shape":"per_call"},"description":"Credits: free.","x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}},"patch":{"summary":"Update LinkedIn Job Posting","tags":["Unipile"],"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","minLength":1,"pattern":"^[A-Za-z0-9_=.:+-]+$","description":"Job posting ID."},"required":true,"description":"Job posting ID.","name":"jobId","in":"path"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"title":{"type":"string","description":"Updated job title."},"description":{"type":"string","description":"Updated job description."},"location":{"type":"string","description":"Updated location."},"access_token":{"type":"string","minLength":1,"description":"Your Unipile access token. Optional if you have connected your Unipile account in the dashboard."},"dsn":{"type":"string","format":"uri","pattern":"^https:\\/\\/api\\d+\\.unipile\\.com:\\d+$","description":"Your Unipile DSN base URL (e.g. https://api15.unipile.com:14591). Optional if you have connected your Unipile account in the dashboard.","example":"https://api15.unipile.com:14591"}},"title":"PatchLinkedInJobRequest","example":{"title":"Senior Sales Development Representative"}}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnipileResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-credits-cost":{"unit":"call","amount":0,"billing_shape":"per_call"},"description":"Credits: free.","x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/unipile/linkedin/jobs/{jobId}/publish":{"post":{"summary":"Publish LinkedIn Job Posting","tags":["Unipile"],"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","minLength":1,"pattern":"^[A-Za-z0-9_=.:+-]+$","description":"Job posting ID."},"required":true,"description":"Job posting ID.","name":"jobId","in":"path"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"access_token":{"type":"string","minLength":1,"description":"Your Unipile access token. Optional if you have connected your Unipile account in the dashboard."},"dsn":{"type":"string","format":"uri","pattern":"^https:\\/\\/api\\d+\\.unipile\\.com:\\d+$","description":"Your Unipile DSN base URL (e.g. https://api15.unipile.com:14591). Optional if you have connected your Unipile account in the dashboard.","example":"https://api15.unipile.com:14591"}},"title":"PublishJobRequest","example":{}}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnipileResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-credits-cost":{"unit":"call","amount":0,"billing_shape":"per_call"},"description":"Credits: free.","x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/unipile/linkedin/jobs/{jobId}/close":{"post":{"summary":"Close LinkedIn Job Posting","tags":["Unipile"],"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","minLength":1,"pattern":"^[A-Za-z0-9_=.:+-]+$","description":"Job posting ID."},"required":true,"description":"Job posting ID.","name":"jobId","in":"path"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"access_token":{"type":"string","minLength":1,"description":"Your Unipile access token. Optional if you have connected your Unipile account in the dashboard."},"dsn":{"type":"string","format":"uri","pattern":"^https:\\/\\/api\\d+\\.unipile\\.com:\\d+$","description":"Your Unipile DSN base URL (e.g. https://api15.unipile.com:14591). Optional if you have connected your Unipile account in the dashboard.","example":"https://api15.unipile.com:14591"}},"title":"CloseJobRequest","example":{}}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnipileResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-credits-cost":{"unit":"call","amount":0,"billing_shape":"per_call"},"description":"Credits: free.","x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/unipile/linkedin/jobs/{jobId}/applicants":{"get":{"summary":"List Job Applicants","tags":["Unipile"],"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","minLength":1,"pattern":"^[A-Za-z0-9_=.:+-]+$","description":"Job posting ID."},"required":true,"description":"Job posting ID.","name":"jobId","in":"path"},{"schema":{"type":"string","description":"Pagination cursor from the previous response."},"required":false,"description":"Pagination cursor from the previous response.","name":"cursor","in":"query"},{"schema":{"type":"integer","minimum":1,"maximum":250,"description":"Number of items to return (1–250)."},"required":false,"description":"Number of items to return (1–250).","name":"limit","in":"query"},{"schema":{"type":"string","minLength":1,"description":"Your Unipile access token. Optional if you have connected your Unipile account in the dashboard."},"required":false,"description":"Your Unipile access token. Optional if you have connected your Unipile account in the dashboard.","name":"access_token","in":"query"},{"schema":{"type":"string","format":"uri","pattern":"^https:\\/\\/api\\d+\\.unipile\\.com:\\d+$","description":"Your Unipile DSN base URL (e.g. https://api15.unipile.com:14591). Optional if you have connected your Unipile account in the dashboard.","example":"https://api15.unipile.com:14591"},"required":false,"description":"Your Unipile DSN base URL (e.g. https://api15.unipile.com:14591). Optional if you have connected your Unipile account in the dashboard.","name":"dsn","in":"query"}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnipileResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-credits-cost":{"unit":"call","amount":0,"billing_shape":"per_call"},"description":"Credits: free.","x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/unipile/webhooks":{"get":{"summary":"List Webhooks","tags":["Unipile"],"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","minLength":1,"description":"Your Unipile access token. Optional if you have connected your Unipile account in the dashboard."},"required":false,"description":"Your Unipile access token. Optional if you have connected your Unipile account in the dashboard.","name":"access_token","in":"query"},{"schema":{"type":"string","format":"uri","pattern":"^https:\\/\\/api\\d+\\.unipile\\.com:\\d+$","description":"Your Unipile DSN base URL (e.g. https://api15.unipile.com:14591). Optional if you have connected your Unipile account in the dashboard.","example":"https://api15.unipile.com:14591"},"required":false,"description":"Your Unipile DSN base URL (e.g. https://api15.unipile.com:14591). Optional if you have connected your Unipile account in the dashboard.","name":"dsn","in":"query"}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnipileResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-credits-cost":{"unit":"call","amount":0,"billing_shape":"per_call"},"description":"Credits: free.","x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}},"post":{"summary":"Create Webhook","tags":["Unipile"],"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"request_url":{"type":"string","format":"uri","description":"Destination URL for webhook deliveries."},"source":{"type":"string","enum":["messaging","users","account_status","email","email_tracking","calendar_event"],"description":"Webhook source type — determines which events are available."},"events":{"type":"array","items":{"type":"string"},"description":"Event types to subscribe to. Valid values depend on source (e.g. message_received for messaging, mail_received for email)."},"name":{"type":"string","description":"Human-readable webhook name."},"account_ids":{"type":"array","items":{"type":"string"},"description":"Scope webhook to specific account IDs. Omit to apply to all accounts."},"enabled":{"type":"boolean","description":"Whether the webhook is active."},"access_token":{"type":"string","minLength":1,"description":"Your Unipile access token. Optional if you have connected your Unipile account in the dashboard."},"dsn":{"type":"string","format":"uri","pattern":"^https:\\/\\/api\\d+\\.unipile\\.com:\\d+$","description":"Your Unipile DSN base URL (e.g. https://api15.unipile.com:14591). Optional if you have connected your Unipile account in the dashboard.","example":"https://api15.unipile.com:14591"}},"required":["request_url","source"],"title":"CreateWebhookRequest","example":{"request_url":"https://webhook.site/6103cc1c-9470-489b-ac74-dc69544666d0","source":"messaging","events":["message_received"],"name":"ColdIQ messaging"}}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnipileResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-credits-cost":{"unit":"call","amount":0,"billing_shape":"per_call"},"description":"Credits: free.","x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/unipile/webhooks/{webhookId}":{"delete":{"summary":"Delete Webhook","tags":["Unipile"],"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","minLength":1,"pattern":"^[A-Za-z0-9_=.:+-]+$","description":"Webhook ID."},"required":true,"description":"Webhook ID.","name":"webhookId","in":"path"},{"schema":{"type":"string","minLength":1,"description":"Your Unipile access token. Optional if you have connected your Unipile account in the dashboard."},"required":false,"description":"Your Unipile access token. Optional if you have connected your Unipile account in the dashboard.","name":"access_token","in":"query"},{"schema":{"type":"string","format":"uri","pattern":"^https:\\/\\/api\\d+\\.unipile\\.com:\\d+$","description":"Your Unipile DSN base URL (e.g. https://api15.unipile.com:14591). Optional if you have connected your Unipile account in the dashboard.","example":"https://api15.unipile.com:14591"},"required":false,"description":"Your Unipile DSN base URL (e.g. https://api15.unipile.com:14591). Optional if you have connected your Unipile account in the dashboard.","name":"dsn","in":"query"}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnipileResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-credits-cost":{"unit":"call","amount":0,"billing_shape":"per_call"},"description":"Credits: free.","x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/unipile/calendars":{"get":{"summary":"List Calendars","tags":["Unipile"],"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","description":"Filter by account ID."},"required":false,"description":"Filter by account ID.","name":"account_id","in":"query"},{"schema":{"type":"string","minLength":1,"description":"Your Unipile access token. Optional if you have connected your Unipile account in the dashboard."},"required":false,"description":"Your Unipile access token. Optional if you have connected your Unipile account in the dashboard.","name":"access_token","in":"query"},{"schema":{"type":"string","format":"uri","pattern":"^https:\\/\\/api\\d+\\.unipile\\.com:\\d+$","description":"Your Unipile DSN base URL (e.g. https://api15.unipile.com:14591). Optional if you have connected your Unipile account in the dashboard.","example":"https://api15.unipile.com:14591"},"required":false,"description":"Your Unipile DSN base URL (e.g. https://api15.unipile.com:14591). Optional if you have connected your Unipile account in the dashboard.","name":"dsn","in":"query"}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnipileResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-credits-cost":{"unit":"call","amount":0,"billing_shape":"per_call"},"description":"Credits: free.","x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/unipile/calendars/{calendarId}":{"get":{"summary":"Retrieve Calendar","tags":["Unipile"],"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","minLength":1,"pattern":"^[A-Za-z0-9_=.:+-]+$","description":"Calendar ID."},"required":true,"description":"Calendar ID.","name":"calendarId","in":"path"},{"schema":{"type":"string","minLength":1,"description":"Your Unipile access token. Optional if you have connected your Unipile account in the dashboard."},"required":false,"description":"Your Unipile access token. Optional if you have connected your Unipile account in the dashboard.","name":"access_token","in":"query"},{"schema":{"type":"string","format":"uri","pattern":"^https:\\/\\/api\\d+\\.unipile\\.com:\\d+$","description":"Your Unipile DSN base URL (e.g. https://api15.unipile.com:14591). Optional if you have connected your Unipile account in the dashboard.","example":"https://api15.unipile.com:14591"},"required":false,"description":"Your Unipile DSN base URL (e.g. https://api15.unipile.com:14591). Optional if you have connected your Unipile account in the dashboard.","name":"dsn","in":"query"}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnipileResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-credits-cost":{"unit":"call","amount":0,"billing_shape":"per_call"},"description":"Credits: free.","x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/unipile/calendars/{calendarId}/events":{"get":{"summary":"List Calendar Events","tags":["Unipile"],"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","minLength":1,"pattern":"^[A-Za-z0-9_=.:+-]+$","description":"Calendar ID."},"required":true,"description":"Calendar ID.","name":"calendarId","in":"path"},{"schema":{"type":"string","description":"Pagination cursor from the previous response."},"required":false,"description":"Pagination cursor from the previous response.","name":"cursor","in":"query"},{"schema":{"type":"integer","minimum":1,"maximum":250,"description":"Number of items to return (1–250)."},"required":false,"description":"Number of items to return (1–250).","name":"limit","in":"query"},{"schema":{"type":"string","description":"Filter events starting at or after this date (ISO 8601)."},"required":false,"description":"Filter events starting at or after this date (ISO 8601).","name":"start_date","in":"query"},{"schema":{"type":"string","description":"Filter events ending at or before this date (ISO 8601)."},"required":false,"description":"Filter events ending at or before this date (ISO 8601).","name":"end_date","in":"query"},{"schema":{"type":"string","minLength":1,"description":"Your Unipile access token. Optional if you have connected your Unipile account in the dashboard."},"required":false,"description":"Your Unipile access token. Optional if you have connected your Unipile account in the dashboard.","name":"access_token","in":"query"},{"schema":{"type":"string","format":"uri","pattern":"^https:\\/\\/api\\d+\\.unipile\\.com:\\d+$","description":"Your Unipile DSN base URL (e.g. https://api15.unipile.com:14591). Optional if you have connected your Unipile account in the dashboard.","example":"https://api15.unipile.com:14591"},"required":false,"description":"Your Unipile DSN base URL (e.g. https://api15.unipile.com:14591). Optional if you have connected your Unipile account in the dashboard.","name":"dsn","in":"query"}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnipileResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-credits-cost":{"unit":"call","amount":0,"billing_shape":"per_call"},"description":"Credits: free.","x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}},"post":{"summary":"Create Calendar Event","tags":["Unipile"],"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","minLength":1,"pattern":"^[A-Za-z0-9_=.:+-]+$","description":"Calendar ID."},"required":true,"description":"Calendar ID.","name":"calendarId","in":"path"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"title":{"type":"string","description":"Event title."},"start":{"type":"string","description":"Start time (ISO 8601)."},"end":{"type":"string","description":"End time (ISO 8601)."},"description":{"type":"string","description":"Event description."},"attendees":{"type":"array","items":{"type":"object","properties":{"email":{"type":"string"},"name":{"type":"string"}},"required":["email"]},"description":"List of attendees."},"location":{"type":"string","description":"Event location."},"access_token":{"type":"string","minLength":1,"description":"Your Unipile access token. Optional if you have connected your Unipile account in the dashboard."},"dsn":{"type":"string","format":"uri","pattern":"^https:\\/\\/api\\d+\\.unipile\\.com:\\d+$","description":"Your Unipile DSN base URL (e.g. https://api15.unipile.com:14591). Optional if you have connected your Unipile account in the dashboard.","example":"https://api15.unipile.com:14591"}},"required":["title","start","end"],"title":"CreateCalendarEventRequest","example":{"title":"ColdIQ Demo Call","start":"2026-04-01T10:00:00Z","end":"2026-04-01T10:30:00Z","attendees":[{"email":"michel@coldiq.com","name":"Michel Lieben"}]}}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnipileResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-credits-cost":{"unit":"call","amount":0,"billing_shape":"per_call"},"description":"Credits: free.","x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/unipile/calendars/{calendarId}/events/{eventId}":{"get":{"summary":"Retrieve Calendar Event","tags":["Unipile"],"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","minLength":1,"pattern":"^[A-Za-z0-9_=.:+-]+$","description":"Calendar ID."},"required":true,"description":"Calendar ID.","name":"calendarId","in":"path"},{"schema":{"type":"string","minLength":1,"pattern":"^[A-Za-z0-9_=.:+-]+$","description":"Event ID."},"required":true,"description":"Event ID.","name":"eventId","in":"path"},{"schema":{"type":"string","minLength":1,"description":"Your Unipile access token. Optional if you have connected your Unipile account in the dashboard."},"required":false,"description":"Your Unipile access token. Optional if you have connected your Unipile account in the dashboard.","name":"access_token","in":"query"},{"schema":{"type":"string","format":"uri","pattern":"^https:\\/\\/api\\d+\\.unipile\\.com:\\d+$","description":"Your Unipile DSN base URL (e.g. https://api15.unipile.com:14591). Optional if you have connected your Unipile account in the dashboard.","example":"https://api15.unipile.com:14591"},"required":false,"description":"Your Unipile DSN base URL (e.g. https://api15.unipile.com:14591). Optional if you have connected your Unipile account in the dashboard.","name":"dsn","in":"query"}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnipileResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-credits-cost":{"unit":"call","amount":0,"billing_shape":"per_call"},"description":"Credits: free.","x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}},"patch":{"summary":"Update Calendar Event","tags":["Unipile"],"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","minLength":1,"pattern":"^[A-Za-z0-9_=.:+-]+$","description":"Calendar ID."},"required":true,"description":"Calendar ID.","name":"calendarId","in":"path"},{"schema":{"type":"string","minLength":1,"pattern":"^[A-Za-z0-9_=.:+-]+$","description":"Event ID."},"required":true,"description":"Event ID.","name":"eventId","in":"path"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"title":{"type":"string","description":"Updated event title."},"start":{"type":"string","description":"Updated start time (ISO 8601)."},"end":{"type":"string","description":"Updated end time (ISO 8601)."},"description":{"type":"string","description":"Updated description."},"location":{"type":"string","description":"Updated location."},"access_token":{"type":"string","minLength":1,"description":"Your Unipile access token. Optional if you have connected your Unipile account in the dashboard."},"dsn":{"type":"string","format":"uri","pattern":"^https:\\/\\/api\\d+\\.unipile\\.com:\\d+$","description":"Your Unipile DSN base URL (e.g. https://api15.unipile.com:14591). Optional if you have connected your Unipile account in the dashboard.","example":"https://api15.unipile.com:14591"}},"title":"PatchCalendarEventRequest","example":{"title":"Updated: ColdIQ Demo Call"}}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnipileResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-credits-cost":{"unit":"call","amount":0,"billing_shape":"per_call"},"description":"Credits: free.","x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}},"delete":{"summary":"Delete Calendar Event","tags":["Unipile"],"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","minLength":1,"pattern":"^[A-Za-z0-9_=.:+-]+$","description":"Calendar ID."},"required":true,"description":"Calendar ID.","name":"calendarId","in":"path"},{"schema":{"type":"string","minLength":1,"pattern":"^[A-Za-z0-9_=.:+-]+$","description":"Event ID."},"required":true,"description":"Event ID.","name":"eventId","in":"path"},{"schema":{"type":"string","minLength":1,"description":"Your Unipile access token. Optional if you have connected your Unipile account in the dashboard."},"required":false,"description":"Your Unipile access token. Optional if you have connected your Unipile account in the dashboard.","name":"access_token","in":"query"},{"schema":{"type":"string","format":"uri","pattern":"^https:\\/\\/api\\d+\\.unipile\\.com:\\d+$","description":"Your Unipile DSN base URL (e.g. https://api15.unipile.com:14591). Optional if you have connected your Unipile account in the dashboard.","example":"https://api15.unipile.com:14591"},"required":false,"description":"Your Unipile DSN base URL (e.g. https://api15.unipile.com:14591). Optional if you have connected your Unipile account in the dashboard.","name":"dsn","in":"query"}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnipileResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-credits-cost":{"unit":"call","amount":0,"billing_shape":"per_call"},"description":"Credits: free.","x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/linkupapi/data/profil/enrich":{"post":{"summary":"Profile Enrichment","description":"Find and enrich a person's LinkedIn profile using their name and company. Returns full profile data including experience, education, skills, email, and phone. Credits: flat charge per call regardless of how many rows come back. Call get_endpoint_details for the live rate. Managed alternative: `POST /v1/person/enrich` (Enrich Person) runs this provider inside a ranked waterfall with charge-on-success billing and one normalized response shape, and falls back to the other providers for this capability on a miss. Call this endpoint directly when you specifically want this provider and no fallback.","tags":["LinkUp API"],"x-credits-cost":{"amount":6.3,"unit":"call","billing_shape":"per_call"},"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/LinkupProfileEnrichRequest"}}}},"responses":{"200":{"description":"Enriched person profile","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LinkupApiResponse"}}}},"400":{"description":"Bad request (upstream validation error)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"504":{"description":"Provider timed out","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/linkupapi/data/search/profiles":{"post":{"summary":"Search Profiles","description":"Search LinkedIn profiles by job title, location, current company, industry, school, or keywords. Returns a list of matching profiles. Billed per 10 results. Credits: flat charge per page of up to 10 results, whether or not the page comes back full. Call get_endpoint_details for the live rate. Managed alternative: `POST /v1/people/search` (Find People) runs this provider inside a ranked waterfall with charge-on-success billing and one normalized response shape, and falls back to the other providers for this capability on a miss. Call this endpoint directly when you specifically want this provider and no fallback.","tags":["LinkUp API"],"x-credits-cost":{"amount":6.3,"unit":"10 results","billing_shape":"per_page","rows_per_call":10},"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/LinkupSearchProfilesRequest"}}}},"responses":{"200":{"description":"Matching LinkedIn profiles","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LinkupApiResponse"}}}},"400":{"description":"Bad request (upstream validation error)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"504":{"description":"Provider timed out","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/linkupapi/data/company/info":{"post":{"summary":"Company Info","description":"Retrieve full LinkedIn company profile data from a LinkedIn company URL. Returns name, industry, employee count, headquarters, logo, followers, and more. Credits: flat charge per call regardless of how many rows come back. Call get_endpoint_details for the live rate. Managed alternative: `POST /v1/company/enrich` (Enrich Company) runs this provider inside a ranked waterfall with charge-on-success billing and one normalized response shape, and falls back to the other providers for this capability on a miss. Call this endpoint directly when you specifically want this provider and no fallback.","tags":["LinkUp API"],"x-credits-cost":{"amount":6.3,"unit":"call","billing_shape":"per_call"},"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/LinkupCompanyInfoRequest"}}}},"responses":{"200":{"description":"Company profile data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LinkupApiResponse"}}}},"400":{"description":"Bad request (upstream validation error)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"504":{"description":"Provider timed out","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/linkupapi/data/company/info-by-domain":{"post":{"summary":"Company Info By Domain","description":"Retrieve company intelligence from a domain name. Aggregates data from multiple public sources and returns name, industry, employee count, LinkedIn URL, and more. Credits: flat charge per call regardless of how many rows come back. Call get_endpoint_details for the live rate. Managed alternative: `POST /v1/company/enrich` (Enrich Company) runs this provider inside a ranked waterfall with charge-on-success billing and one normalized response shape, and falls back to the other providers for this capability on a miss. Call this endpoint directly when you specifically want this provider and no fallback.","tags":["LinkUp API"],"x-credits-cost":{"amount":6.3,"unit":"call","billing_shape":"per_call"},"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/LinkupCompanyInfoByDomainRequest"}}}},"responses":{"200":{"description":"Company data from domain lookup","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LinkupApiResponse"}}}},"400":{"description":"Bad request (upstream validation error)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"504":{"description":"Provider timed out","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/linkupapi/data/search/companies":{"post":{"summary":"Company Search","description":"Search and filter companies by keyword, industry, location, size, or founding status. Billed per 10 results. Credits: flat charge per page of up to 10 results, whether or not the page comes back full. Call get_endpoint_details for the live rate. Managed alternative: `POST /v1/companies/search` (Search Companies) runs this provider inside a ranked waterfall with charge-on-success billing and one normalized response shape, and falls back to the other providers for this capability on a miss. Call this endpoint directly when you specifically want this provider and no fallback.","tags":["LinkUp API"],"x-credits-cost":{"amount":6.3,"unit":"10 results","billing_shape":"per_page","rows_per_call":10},"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/LinkupSearchCompaniesRequest"}}}},"responses":{"200":{"description":"Matching companies","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LinkupApiResponse"}}}},"400":{"description":"Bad request (upstream validation error)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"504":{"description":"Provider timed out","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/linkupapi/data/mail/finder":{"post":{"summary":"Email Finder","description":"Find a person's professional email address from their LinkedIn profile URL or name + company domain. Credits: flat charge per call regardless of how many rows come back. Call get_endpoint_details for the live rate.","tags":["LinkUp API"],"x-credits-cost":{"amount":6.3,"unit":"call","billing_shape":"per_call"},"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/LinkupEmailFinderRequest"}}}},"responses":{"200":{"description":"Found email address and alternatives","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LinkupApiResponse"}}}},"400":{"description":"Bad request (upstream validation error)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"504":{"description":"Provider timed out","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/linkupapi/data/mail/reverse":{"post":{"summary":"Email Reverse","description":"Identify the person behind an email address. Returns their full LinkedIn profile data including experience, education, and skills. Credits: flat charge per call regardless of how many rows come back. Call get_endpoint_details for the live rate. Managed alternative: `POST /v1/person/enrich` (Enrich Person) runs this provider inside a ranked waterfall with charge-on-success billing and one normalized response shape, and falls back to the other providers for this capability on a miss. Call this endpoint directly when you specifically want this provider and no fallback.","tags":["LinkUp API"],"x-credits-cost":{"amount":6.3,"unit":"call","billing_shape":"per_call"},"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/LinkupEmailReverseRequest"}}}},"responses":{"200":{"description":"Person profile from email lookup","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LinkupApiResponse"}}}},"400":{"description":"Bad request (upstream validation error)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"504":{"description":"Provider timed out","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/linkupapi/data/mail/validate":{"post":{"summary":"Email Validation","description":"Validate whether an email address is real and deliverable. Returns validity status and catch-all detection. Credits: flat charge per call regardless of how many rows come back. Call get_endpoint_details for the live rate. Managed alternative: `POST /v1/email/verify` (Verify Email) runs this provider inside a ranked waterfall with charge-on-success billing and one normalized response shape, and falls back to the other providers for this capability on a miss. Call this endpoint directly when you specifically want this provider and no fallback.","tags":["LinkUp API"],"x-credits-cost":{"amount":6.3,"unit":"call","billing_shape":"per_call"},"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/LinkupEmailValidateRequest"}}}},"responses":{"200":{"description":"Email validation result","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LinkupApiResponse"}}}},"400":{"description":"Bad request (upstream validation error)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"504":{"description":"Provider timed out","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/linkupapi/data/fundraising-companies":{"post":{"summary":"Fundraising Companies","description":"Find companies that have recently received funding. Filter by funding stage, amount, industry, location, date range, and investor. Billed per 10 results. Credits: flat charge per page of up to 10 results, whether or not the page comes back full. Call get_endpoint_details for the live rate. Managed alternative: `POST /v1/companies/search` (Search Companies) runs this provider inside a ranked waterfall with charge-on-success billing and one normalized response shape, and falls back to the other providers for this capability on a miss. Call this endpoint directly when you specifically want this provider and no fallback.","tags":["LinkUp API"],"x-credits-cost":{"amount":6.3,"unit":"10 results","billing_shape":"per_page","rows_per_call":10},"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/LinkupFundraisingCompaniesRequest"}}}},"responses":{"200":{"description":"Recently funded companies","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LinkupApiResponse"}}}},"400":{"description":"Bad request (upstream validation error)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"504":{"description":"Provider timed out","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/linkupapi/data/hiring-companies":{"post":{"summary":"Hiring Companies","description":"Find companies actively hiring for specific roles. Aggregates job postings from Indeed and LinkedIn. Billed per 10 companies. Credits: flat charge per page of up to 10 results, whether or not the page comes back full. Call get_endpoint_details for the live rate. Managed alternative: `POST /v1/companies/search` (Search Companies) runs this provider inside a ranked waterfall with charge-on-success billing and one normalized response shape, and falls back to the other providers for this capability on a miss. Call this endpoint directly when you specifically want this provider and no fallback.","tags":["LinkUp API"],"x-credits-cost":{"amount":6.3,"unit":"10 results","billing_shape":"per_page","rows_per_call":10},"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/LinkupHiringCompaniesRequest"}}}},"responses":{"200":{"description":"Companies actively hiring","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LinkupApiResponse"}}}},"400":{"description":"Bad request (upstream validation error)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"504":{"description":"Provider timed out","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/ai-ark/companies":{"post":{"summary":"Company Search API","description":"Search 70M+ enriched company profiles using flexible filters: industry, location, employee size, revenue, funding, technologies, NAICS, and more. Returns paginated results and bills ONLY for the companies actually returned — an over-tight filter that matches nothing costs nothing. Default result ordering is not documented upstream and is not random: in observed pulls it is strongly correlated with company size, largest first. A capped pull (e.g. the top 200 per country) therefore returns big companies and can omit an entire small-employee band — one measured run returned nothing under 55 employees, so the whole 11-50 band was silently absent. When you need small companies, constrain `account.employeeSize` with an explicit RANGE instead of relying on depth. Credits: bills only for returned results, per returned company; reserved up-front for the requested size and settled to the actual count (see X-ColdIQ-Credits-Charged). Call get_endpoint_details for the live rate. Managed alternative: `POST /v1/companies/search` (Search Companies) runs this provider inside a ranked waterfall with charge-on-success billing and one normalized response shape, and falls back to the other providers for this capability on a miss. Call this endpoint directly when you specifically want this provider and no fallback.","tags":["AI Ark"],"x-credits-cost":{"amount":0.21,"unit":"returned company","billing_shape":"per_result"},"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AiArkCompanySearchRequest"}}}},"responses":{"200":{"description":"Company search results","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AiArkCompanySearchResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/ai-ark/lists":{"post":{"summary":"Save List","description":"Create or update a free AI Ark exclusion list of company or people ids, then reference its id from Company Search (`lists.company_id.exclude`) or People Search (`lists.people_id.exclude`) so records you already hold are never returned or billed again. This is also the documented way past the 10,000-result cap of one search. Lists hold up to 10,000 ids, up to 50 lists per day, and expire 24 hours after creation. Never Credits: free.","tags":["AI Ark"],"x-credits-cost":{"amount":0,"unit":"call","billing_shape":"per_call"},"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AiArkListSaveRequest"}}}},"responses":{"200":{"description":"The saved list","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AiArkListSaveResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/ai-ark/people":{"post":{"summary":"People Search API","description":"Search 500M+ enriched people profiles using contact and company filters: name, title, seniority, skills, education, location, and more. Returns paginated results with a single-use `trackId` for Find Emails. Bills only for returned results. Use `max_per_account` to keep at most N people per company in one call instead of issuing one call per company — it saves round trips, not credits (see the field description). Credits: bills only for returned results, per returned person; reserved up-front for the requested size and settled to the actual count (see X-ColdIQ-Credits-Charged). Call get_endpoint_details for the live rate. Managed alternative: `POST /v1/people/search` (Find People) runs this provider inside a ranked waterfall with charge-on-success billing and one normalized response shape, and falls back to the other providers for this capability on a miss. Call this endpoint directly when you specifically want this provider and no fallback.","tags":["AI Ark"],"x-credits-cost":{"amount":1.03,"unit":"returned person","billing_shape":"per_result"},"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AiArkPeopleSearchRequest"}}}},"responses":{"200":{"description":"People search results","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AiArkPeopleSearchResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/ai-ark/people/reverse-lookup":{"post":{"summary":"Reverse People Lookup API","description":"Look up a person profile by email address or phone number. Returns the full profile if found. Billed per request. Credits: flat charge per call regardless of how many rows come back. Call get_endpoint_details for the live rate. Managed alternative: `POST /v1/person/enrich` (Enrich Person) runs this provider inside a ranked waterfall with charge-on-success billing and one normalized response shape, and falls back to the other providers for this capability on a miss. Call this endpoint directly when you specifically want this provider and no fallback.","tags":["AI Ark"],"x-credits-cost":{"amount":1.03,"unit":"request","billing_shape":"per_call"},"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AiArkReverseLookupRequest"}}}},"responses":{"200":{"description":"Profile found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AiArkReverseLookupResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/ai-ark/people/mobile-phone-finder":{"post":{"summary":"Mobile Phone Finder API","description":"Find a person's mobile phone number by LinkedIn URL or name + company domain. Billed only when a phone number is found. Credits: bills only for returned results, per found phone number; reserved up-front for the requested size and settled to the actual count (see X-ColdIQ-Credits-Charged). Call get_endpoint_details for the live rate. Managed alternative: `POST /v1/phone/find` (Find Phone) runs this provider inside a ranked waterfall with charge-on-success billing and one normalized response shape, and falls back to the other providers for this capability on a miss. Call this endpoint directly when you specifically want this provider and no fallback.","tags":["AI Ark"],"x-credits-cost":{"amount":10.29,"unit":"found phone number","billing_shape":"per_result"},"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AiArkMobilePhoneFinderRequest"}}}},"responses":{"200":{"description":"Phone number found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AiArkMobilePhoneFinderResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/ai-ark/people/export/single":{"post":{"summary":"Export Single Person with Email","description":"Export a single person's full profile with verified email. Provide either the AI Ark person ID or a LinkedIn URL. Billed only when a valid email is found. Credits: bills only for returned results, per found email; reserved up-front for the requested size and settled to the actual count (see X-ColdIQ-Credits-Charged). Call get_endpoint_details for the live rate.","tags":["AI Ark"],"x-credits-cost":{"amount":2.06,"unit":"found email","billing_shape":"per_result"},"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AiArkExportSinglePersonRequest"}}}},"responses":{"200":{"description":"Profile with email","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AiArkExportSinglePersonResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/ai-ark/people/preview":{"post":{"summary":"People Preview","description":"Validate a People Search filter set before spending per-result credits. Same filters as People Search; returns real person ids, first names with masked last names, titles, companies, locations, and has_* availability flags, plus totalElements for the market size. No emails, phones, or trackId. Billed a flat rate per page whatever the page size, so use it to check totalElements and match quality, then send the identical filters to People Search or Export People with Email. Credits: bills only for returned results, per page; reserved up-front for the requested size and settled to the actual count (see X-ColdIQ-Credits-Charged). Call get_endpoint_details for the live rate.","tags":["AI Ark"],"x-credits-cost":{"unit":"page","amount":2.06,"billing_shape":"per_result"},"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AiArkPeoplePreviewRequest"}}}},"responses":{"200":{"description":"Preview page","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AiArkPeoplePreviewResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/ai-ark/people/analysis":{"post":{"summary":"Personality Analysis API","description":"DISC and OCEAN personality profile of one person from a LinkedIn URL or AI Ark id, with an archetype and selling and hiring outreach guidance (subject, tone, length, what to say, what to avoid, decision traits). Billed per request; a profile that cannot be found is refunded. Credits: flat charge per call regardless of how many rows come back. Call get_endpoint_details for the live rate.","tags":["AI Ark"],"x-credits-cost":{"unit":"request","amount":8.23,"billing_shape":"per_call"},"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AiArkPersonalityAnalysisRequest"}}}},"responses":{"200":{"description":"Personality profile","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AiArkPersonalityAnalysisResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"404":{"description":"Profile not found (refunded)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/ai-ark/credits":{"get":{"summary":"Fetch Your Credit","description":"Remaining AI Ark credits of your connected AI Ark account (Data BYOK). On the managed ColdIQ key the upstream balance is not exposed; the response reports your ColdIQ credit balance instead, which is what managed AI Ark calls consume. Free. Credits: free.","tags":["AI Ark"],"x-credits-cost":{"amount":0,"unit":"call","billing_shape":"per_call"},"security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Credit balance","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AiArkCreditsResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/ai-ark/people/export/submissions":{"get":{"summary":"Export People Submissions","description":"Your Export People submission history: trackId, request size, PENDING or SETTLED state, refund flag, and refund reason (SEARCH_NO_RESULTS, NO_EMAILS_FOUND, STUCK_HARD_REFUND, STUCK_SOFT_REFUND). Undelivered jobs are refunded upstream within about 10 hours. On the managed key only submissions made by your ColdIQ account are listed. Free. Credits: free.","tags":["AI Ark"],"x-credits-cost":{"amount":0,"unit":"call","billing_shape":"per_call","rows_per_call":25},"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","enum":["PENDING","SETTLED"],"description":"Filter by settlement state."},"required":false,"description":"Filter by settlement state.","name":"state","in":"query"},{"schema":{"type":"string","enum":["true","false"],"description":"Filter by refund status."},"required":false,"description":"Filter by refund status.","name":"fullyRefunded","in":"query"},{"schema":{"type":"integer","nullable":true,"minimum":0,"default":0,"description":"Page number, zero-based","example":0},"required":false,"description":"Page number, zero-based","name":"page","in":"query"},{"schema":{"type":"integer","minimum":1,"maximum":100,"default":25,"description":"Items per page (1-100)","example":25},"required":false,"description":"Items per page (1-100)","name":"size","in":"query"}],"responses":{"200":{"description":"Submission history","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AiArkSubmissionsResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Job not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/ai-ark/people/export/{trackId}/statistics":{"get":{"summary":"Export People Statistics","description":"Progress of one Export People job: state (PENDING, DONE, or a refund state), records processed, matches found, and webhook delivery state. Poll this instead of the results endpoint while a job runs; it never Only your own jobs are visible. Credits: free.","tags":["AI Ark"],"x-credits-cost":{"amount":0,"unit":"call","billing_shape":"per_call"},"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","format":"uuid"},"required":true,"name":"trackId","in":"path"}],"responses":{"200":{"description":"Job statistics","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AiArkJobStatistics"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Job not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/ai-ark/people/export/{trackId}/notify":{"patch":{"summary":"Resend Export People Webhook","description":"Ask AI Ark to deliver the completion webhook of one finished Export People job again. ColdIQ receives that delivery on its own interceptor, stores the results, settles the credits, and forwards them to the webhook you gave at submission, so this is the recovery step for a job whose results never arrived. Only your own jobs can be re-delivered. Free. Credits: free.","tags":["AI Ark"],"x-credits-cost":{"amount":0,"unit":"call","billing_shape":"per_call"},"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","format":"uuid"},"required":true,"name":"trackId","in":"path"}],"responses":{"200":{"description":"Delivery result","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AiArkWebhookDeliveryResult"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Job not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/ai-ark/people/email-finder/submissions":{"get":{"summary":"Email Finder Submissions","description":"Your Email Finder submission history: trackId, request size, PENDING or SETTLED state, refund flag, and refund reason (SEARCH_NO_RESULTS, NO_EMAILS_FOUND, STUCK_HARD_REFUND, STUCK_SOFT_REFUND). Undelivered jobs are refunded upstream within about 10 hours. On the managed key only submissions made by your ColdIQ account are listed. Free. Credits: free.","tags":["AI Ark"],"x-credits-cost":{"amount":0,"unit":"call","billing_shape":"per_call","rows_per_call":25},"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","enum":["PENDING","SETTLED"],"description":"Filter by settlement state."},"required":false,"description":"Filter by settlement state.","name":"state","in":"query"},{"schema":{"type":"string","enum":["true","false"],"description":"Filter by refund status."},"required":false,"description":"Filter by refund status.","name":"fullyRefunded","in":"query"},{"schema":{"type":"integer","nullable":true,"minimum":0,"default":0,"description":"Page number, zero-based","example":0},"required":false,"description":"Page number, zero-based","name":"page","in":"query"},{"schema":{"type":"integer","minimum":1,"maximum":100,"default":25,"description":"Items per page (1-100)","example":25},"required":false,"description":"Items per page (1-100)","name":"size","in":"query"}],"responses":{"200":{"description":"Submission history","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AiArkSubmissionsResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Job not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/ai-ark/people/email-finder/{trackId}/statistics":{"get":{"summary":"Email Finder Statistics","description":"Progress of one Email Finder job: state (PENDING, DONE, or a refund state), records processed, matches found, and webhook delivery state. Poll this instead of the results endpoint while a job runs; it never Only your own jobs are visible. Credits: free.","tags":["AI Ark"],"x-credits-cost":{"amount":0,"unit":"call","billing_shape":"per_call"},"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","format":"uuid"},"required":true,"name":"trackId","in":"path"}],"responses":{"200":{"description":"Job statistics","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AiArkJobStatistics"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Job not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/ai-ark/people/email-finder/{trackId}/notify":{"patch":{"summary":"Resend Email Finder Webhook","description":"Ask AI Ark to deliver the completion webhook of one finished Email Finder job again. ColdIQ receives that delivery on its own interceptor, stores the results, settles the credits, and forwards them to the webhook you gave at submission, so this is the recovery step for a job whose results never arrived. Only your own jobs can be re-delivered. Free. Credits: free.","tags":["AI Ark"],"x-credits-cost":{"amount":0,"unit":"call","billing_shape":"per_call"},"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","format":"uuid"},"required":true,"name":"trackId","in":"path"}],"responses":{"200":{"description":"Delivery result","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AiArkWebhookDeliveryResult"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Job not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/ai-ark/people/export":{"post":{"summary":"Export People with Email","description":"Export people profiles with verified emails based on company and contact filters. Returns a `trackId` immediately. Results are delivered asynchronously and stored for retrieval. The worst-case profile plus email cost is reserved first, then settled from exported profiles and valid emails found. Credits: variable per exported profile + verified email, charged by which fields you request (profile, verified_email). Reserved up-front, settled to actual (see X-ColdIQ-Credits-Charged). Call get_endpoint_details for the live rate.","tags":["AI Ark"],"x-credits-cost":{"unit":"exported profile + verified email","rates":{"profile":1.03,"verified_email":1.03},"billing_shape":"per_result"},"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AiArkExportPeopleRequest"}}}},"responses":{"200":{"description":"Export job accepted. Credits reserved upfront; unused credits refunded when results arrive.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AiArkExportPeopleResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/ai-ark/people/email-finder":{"post":{"summary":"Find Emails by Track ID","description":"Find emails for all people in a previous People Search result. The `trackId` can be used once and expires after 6 hours. Results are delivered asynchronously and stored for retrieval. The full result count is reserved before submission, then the charge is settled from valid emails found. Credits: bills only for returned results, per found email; reserved up-front for the requested size and settled to the actual count (see X-ColdIQ-Credits-Charged). Call get_endpoint_details for the live rate.","tags":["AI Ark"],"x-credits-cost":{"amount":2.06,"unit":"found email","billing_shape":"per_result"},"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AiArkEmailFinderRequest"}}}},"responses":{"200":{"description":"Email finder job accepted. Credits reserved based on batch size; unused credits refunded when results arrive.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AiArkEmailFinderResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/ai-ark/people/export/{trackId}":{"get":{"summary":"Get Export People Results","description":"Retrieve the result of an Export People job. Returns stored results instantly for completed jobs. For in-progress jobs, proxies to the AI Ark `/inquiries` endpoint — returns 202 while processing (AI Ark returns 409 until done). Credits: free.","tags":["AI Ark"],"x-credits-cost":{"amount":0,"unit":"call","billing_shape":"per_call","rows_per_call":10},"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","format":"uuid"},"required":true,"name":"trackId","in":"path"},{"schema":{"type":"integer","nullable":true,"minimum":0,"default":0,"description":"Page number, zero-based","example":0},"required":false,"description":"Page number, zero-based","name":"page","in":"query"},{"schema":{"type":"integer","minimum":1,"maximum":100,"default":10,"description":"Number of results per page (1–100)","example":10},"required":false,"description":"Number of results per page (1–100)","name":"size","in":"query"}],"responses":{"200":{"description":"Export results (completed job from webhook)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AiArkAsyncResult"}}}},"202":{"description":"Job still in progress — paginated partial results or {state:\"PROCESSING\"} if not yet started","content":{"application/json":{"schema":{"nullable":true}}}},"400":{"description":"Provider rejected the result query","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Job not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"410":{"description":"Job expired or failed — credits have been refunded, please resubmit","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/ai-ark/people/email-finder/{trackId}":{"get":{"summary":"Get Email Finder Results","description":"Retrieve the result of a Find Emails job. Returns stored results instantly for completed jobs. For in-progress jobs, proxies to the AI Ark `/inquiries` endpoint — individual items have `state: \"PROCESSING\"` until their email is resolved. Credits: free.","tags":["AI Ark"],"x-credits-cost":{"amount":0,"unit":"call","billing_shape":"per_call","rows_per_call":10},"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","format":"uuid"},"required":true,"name":"trackId","in":"path"},{"schema":{"type":"integer","nullable":true,"minimum":0,"default":0,"description":"Page number, zero-based","example":0},"required":false,"description":"Page number, zero-based","name":"page","in":"query"},{"schema":{"type":"integer","minimum":1,"maximum":100,"default":10,"description":"Number of results per page (1–100)","example":10},"required":false,"description":"Number of results per page (1–100)","name":"size","in":"query"}],"responses":{"200":{"description":"Email finder results (completed job from webhook)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AiArkAsyncResult"}}}},"202":{"description":"Job still in progress — paginated partial results from AI Ark","content":{"application/json":{"schema":{"nullable":true}}}},"400":{"description":"Provider rejected the result query","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Job not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"410":{"description":"Job expired or failed — credits have been refunded, please resubmit","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/linkedin-jobs-api/search":{"get":{"x-credits-cost":{"amount":0,"unit":"call","billing_shape":"per_call","rows_per_call":20},"summary":"List Advanced LinkedIn Job Search jobs","description":"Returns your most recent LinkedIn job search jobs (newest first), including their status and credit usage. Use the returned `jobId` values to poll for results. Credits: free.","tags":["LinkedIn Jobs API"],"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"integer","minimum":1,"maximum":100,"default":20,"description":"Number of jobs to return (max 100)."},"required":false,"description":"Number of jobs to return (max 100).","name":"limit","in":"query"},{"schema":{"type":"integer","nullable":true,"minimum":0,"default":0,"description":"Number of jobs to skip for pagination."},"required":false,"description":"Number of jobs to skip for pagination.","name":"offset","in":"query"}],"responses":{"200":{"description":"List of your search jobs, newest first.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LinkedInJobsApiListResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}},"post":{"x-credits-cost":{"amount":0.74,"unit":"job","billing_shape":"per_result"},"summary":"Advanced LinkedIn Job Search","description":"Start an async job to search LinkedIn job postings with advanced filters on title, location, description, company size, industry, seniority, employment type, and AI-enriched fields. Returns a `jobId` immediately — poll `GET /linkedin-jobs-api/search/{jobId}` for results. Credits: bills only for returned results, per job; reserved up-front for the requested size and settled to the actual count (see X-ColdIQ-Credits-Charged). Call get_endpoint_details for the live rate. Managed alternative: `POST /v1/jobs/search` (Search Jobs) runs this provider inside a ranked waterfall with charge-on-success billing and one normalized response shape, and falls back to the other providers for this capability on a miss. Call this endpoint directly when you specifically want this provider and no fallback.","tags":["LinkedIn Jobs API"],"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"timeRange":{"type":"string","enum":["1h","24h","7d","6m"],"default":"7d","description":"Time range for job listings. Choose hourly (1h), daily (24h), weekly (7d), or last 6 months (6m). Run at the same interval to avoid duplicates."},"limit":{"type":"integer","minimum":10,"maximum":5000,"default":10,"description":"Maximum number of jobs to return. Minimum 10, maximum 5,000."},"includeAi":{"type":"boolean","default":true,"description":"Include AI-enriched fields (work arrangement, salary, experience level, visa sponsorship, taxonomies). Over 99.9% of jobs are enriched."},"removeAgency":{"type":"boolean","description":"Filter out recruitment agencies, job boards, and other low-quality sources."},"titleSearch":{"type":"array","items":{"type":"string"},"description":"Job titles to search for. Use :* for prefix matching (e.g. \"Soft:*\" matches \"Software\")."},"titleExclusionSearch":{"type":"array","items":{"type":"string"},"description":"Job titles to exclude. Supports :* prefix matching."},"locationSearch":{"type":"array","items":{"type":"string"},"description":"Locations to search. Use exact \"City, State/Region, Country\" format with English names (e.g. \"San Francisco, California, United States\"). Supports :* prefix matching."},"locationExclusionSeach":{"type":"array","items":{"type":"string"},"description":"Locations to exclude. Use exact \"City, State/Region, Country\" format. Supports :* prefix matching."},"descriptionSearch":{"type":"array","items":{"type":"string"},"description":"Terms to search in job title & description. Not supported with 6m time range. Be specific and combine with titleSearch. Supports :* prefix matching."},"descriptionExclusionSearch":{"type":"array","items":{"type":"string"},"description":"Terms to exclude from job title & description. Not supported with 6m time range. Supports :* prefix matching."},"organizationSearch":{"type":"array","items":{"type":"string"},"description":"Organization names to search for. Supports :* prefix matching."},"organizationExclusionSearch":{"type":"array","items":{"type":"string"},"description":"Organization names to exclude. Supports :* prefix matching."},"organizationDescriptionSearch":{"type":"array","items":{"type":"string"},"description":"Terms to search in organization description. Not supported with 6m time range. Supports :* prefix matching."},"organizationDescriptionExclusionSearch":{"type":"array","items":{"type":"string"},"description":"Terms to exclude from organization description. Not supported with 6m time range. Supports :* prefix matching."},"descriptionType":{"type":"string","enum":["text","html"],"description":"Format of the job description. Omit to exclude description from results."},"datePostedAfter":{"type":"string","description":"Filter jobs posted on or after this date. Format: \"2025-01-01\" or \"2025-01-01T14:00:00\" (UTC). Not recommended when polling on a regular interval."},"remote":{"type":"boolean","description":"Filter for remote jobs only. Includes jobs with \"remote\" in title, description, or location."},"seniorityFilter":{"type":"array","items":{"type":"string","enum":["Associate","Director","Executive","Mid-Senior level","Entry level","Not Applicable","Internship"]},"description":"Filter by seniority level (English-speaking countries only). Case-sensitive."},"externalApplyUrl":{"type":"boolean","description":"Filter for jobs with an external apply URL (non-Easy Apply)."},"populateExternalApplyURL":{"type":"boolean","description":"Populate external_apply_url with the url field value when external_apply_url is null."},"noDirectApply":{"type":"boolean","description":"Exclude jobs with LinkedIn Easy Apply."},"directApply":{"type":"boolean","description":"Include only jobs with LinkedIn Easy Apply."},"organizationSlugFilter":{"type":"array","items":{"type":"string"},"description":"Filter by LinkedIn organization slugs (exact match). The slug is the company-specific part of the LinkedIn URL (e.g. \"tesla-motors\" from linkedin.com/company/tesla-motors/)."},"organizationSlugExclusionFilter":{"type":"array","items":{"type":"string"},"description":"Exclude jobs from specific LinkedIn organization slugs (exact match)."},"industryFilter":{"type":"array","items":{"type":"string"},"description":"Filter by LinkedIn industry names (exact match, e.g. \"Computer Software\", \"Internet\", \"Financial Services\")."},"organizationEmployeesLte":{"type":"integer","minimum":0,"description":"Maximum number of employees in the company."},"organizationEmployeesGte":{"type":"integer","minimum":0,"description":"Minimum number of employees in the company."},"EmploymentTypeFilter":{"type":"array","items":{"type":"string","enum":["FULL_TIME","PART_TIME","CONTRACTOR","TEMPORARY","INTERN","VOLUNTEER","PER_DIEM","OTHER"]},"description":"Filter by employment type."},"excludeATSDuplicate":{"type":"boolean","description":"Remove jobs that duplicate entries in the Career Site Job Listing dataset."},"populateAiRemoteLocation":{"type":"boolean","description":"Populate ai_remote_location with locations_derived when ai_remote_location is empty."},"populateAiRemoteLocationDerived":{"type":"boolean","description":"Populate ai_remote_location_derived with locations_derived when ai_remote_location_derived is empty."},"aiWorkArrangementFilter":{"type":"array","items":{"type":"string","enum":["On-site","Hybrid","Remote OK","Remote Solely"]},"description":"BETA: Filter by work arrangement. Use \"Remote OK\" + \"Remote Solely\" to include all remote jobs."},"aiHasSalary":{"type":"boolean","description":"BETA: Filter for jobs with salary information (AI-enriched or raw salary from job schema)."},"aiExperienceLevelFilter":{"type":"array","items":{"type":"string","enum":["0-2","2-5","5-10","10+"]},"description":"BETA: Filter by years of experience."},"aiVisaSponsorshipFilter":{"type":"boolean","description":"BETA: Filter for jobs offering visa sponsorship."},"aiTaxonomiesFilter":{"type":"array","items":{"type":"string","enum":["Technology","Healthcare","Management & Leadership","Finance & Accounting","Human Resources","Sales","Marketing","Customer Service & Support","Education","Legal","Engineering","Science & Research","Trades","Construction","Manufacturing","Logistics","Creative & Media","Hospitality","Environmental & Sustainability","Retail","Data & Analytics","Software","Energy","Agriculture","Social Services","Administrative","Government & Public Sector","Art & Design","Food & Beverage","Transportation","Consulting","Sports & Recreation","Security & Safety"]},"description":"BETA: Filter by AI job taxonomies."},"aiTaxonomiesPrimaryFilter":{"type":"array","items":{"type":"string","enum":["Technology","Healthcare","Management & Leadership","Finance & Accounting","Human Resources","Sales","Marketing","Customer Service & Support","Education","Legal","Engineering","Science & Research","Trades","Construction","Manufacturing","Logistics","Creative & Media","Hospitality","Environmental & Sustainability","Retail","Data & Analytics","Software","Energy","Agriculture","Social Services","Administrative","Government & Public Sector","Art & Design","Food & Beverage","Transportation","Consulting","Sports & Recreation","Security & Safety"]},"description":"BETA: Filter by primary AI taxonomy."},"aiTaxonomiesExclusionFilter":{"type":"array","items":{"type":"string","enum":["Technology","Healthcare","Management & Leadership","Finance & Accounting","Human Resources","Sales","Marketing","Customer Service & Support","Education","Legal","Engineering","Science & Research","Trades","Construction","Manufacturing","Logistics","Creative & Media","Hospitality","Environmental & Sustainability","Retail","Data & Analytics","Software","Energy","Agriculture","Social Services","Administrative","Government & Public Sector","Art & Design","Food & Beverage","Transportation","Consulting","Sports & Recreation","Security & Safety"]},"description":"BETA: Exclude jobs by AI taxonomies. Warning: very broad — may exclude unintended jobs."}},"title":"LinkedInJobsApiSearchRequest","example":{"titleSearch":["Account Executive"],"locationSearch":["New York, New York, United States"],"timeRange":"7d","limit":10,"includeAi":true,"removeAgency":true}}}}},"responses":{"202":{"description":"Job accepted. Poll the returned `jobId` for results.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LinkedInJobsApiSubmitResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/linkedin-jobs-api/search/{jobId}":{"get":{"x-credits-cost":{"amount":0,"unit":"call","billing_shape":"per_call"},"summary":"Get Advanced LinkedIn Job Search result","description":"Poll the status of a LinkedIn job search job. Returns `202` while in progress, `200` with results when done. Completed results are cached — repeated calls are free and instant. Credits: free.","tags":["LinkedIn Jobs API"],"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"integer","minimum":0,"exclusiveMinimum":true,"maximum":2147483647},"required":true,"name":"jobId","in":"path"}],"responses":{"200":{"description":"Job status. When `status` is `done`, `jobs` contains the scraped job listings.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LinkedInJobsApiPollResponse"}}}},"202":{"description":"Job is still running — poll again shortly.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LinkedInJobsApiPollResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"404":{"description":"Job not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"410":{"description":"Job expired — credits refunded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/jungler/workbooks":{"post":{"summary":"Create Collection Task","description":"Start an extraction task that collects comments and/or reactions from a LinkedIn post. Returns a `task_id` to poll for completion; extraction typically takes 1–3 minutes. Collected data expires 12 hours after the task is created. Credits: flat charge per call regardless of how many rows come back. Call get_endpoint_details for the live rate.","tags":["Jungler"],"x-credits-cost":{"amount":35,"unit":"task","billing_shape":"per_call"},"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"post_url":{"type":"string","format":"uri","description":"LinkedIn post URL to extract interactions from","example":"https://www.linkedin.com/feed/update/urn:li:activity:7234567890123456789"},"data_types":{"type":"array","items":{"type":"string","enum":["comment","reaction"]},"minItems":1,"description":"Interaction types to extract: 'comment', 'reaction', or both","example":["comment","reaction"]}},"required":["post_url","data_types"],"example":{"post_url":"https://www.linkedin.com/feed/update/urn:li:activity:7234567890123456789","data_types":["comment","reaction"]}}}}},"responses":{"200":{"description":"Task created","content":{"application/json":{"schema":{"$ref":"#/components/schemas/JunglerCreateWorkbookResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/jungler/tasks/{task_id}/status":{"get":{"summary":"Get Task Status","description":"Poll the status of a workbook extraction task. Status is one of `pending`, `started`, `success`, or `failure`; `workbook_id` is returned once the task reaches `success`. Poll every 10–30 seconds. Credits: free.","tags":["Jungler"],"x-credits-cost":{"amount":0,"unit":"call","billing_shape":"per_call"},"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","pattern":"^[a-zA-Z0-9_-]{1,128}$","description":"Task ID returned by Create Workbook","example":"abc123-def456-ghi789"},"required":true,"description":"Task ID returned by Create Workbook","name":"task_id","in":"path"}],"responses":{"200":{"description":"Task status","content":{"application/json":{"schema":{"$ref":"#/components/schemas/JunglerTaskStatusResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Task not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/jungler/workbooks/{workbook_id}/contacts":{"get":{"summary":"Get Contacts","description":"Retrieve deduplicated contact information — one entry per unique person who engaged, with aggregated `stats` — from a completed workbook. Credits: free.","tags":["Jungler"],"x-credits-cost":{"amount":0,"unit":"call","billing_shape":"per_call","rows_per_call":500},"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","pattern":"^[a-zA-Z0-9_-]{1,128}$","description":"Workbook ID from a completed task","example":"wb_abc123"},"required":true,"description":"Workbook ID from a completed task","name":"workbook_id","in":"path"},{"schema":{"type":"string","description":"Comma-separated fields to include on each contact","example":"name,profile_url,description"},"required":false,"description":"Comma-separated fields to include on each contact","name":"fields","in":"query"},{"schema":{"type":"string","enum":["commenters","reactors"],"description":"Filter contacts by activity type: 'commenters' or 'reactors'"},"required":false,"description":"Filter contacts by activity type: 'commenters' or 'reactors'","name":"activity_filter","in":"query"},{"schema":{"type":"integer","minimum":1,"default":1,"description":"Page number (1-based)","example":1},"required":false,"description":"Page number (1-based)","name":"page","in":"query"},{"schema":{"type":"integer","minimum":1,"maximum":500,"default":500,"description":"Items per page (1–500)","example":500},"required":false,"description":"Items per page (1–500)","name":"page_size","in":"query"}],"responses":{"200":{"description":"Contact list","content":{"application/json":{"schema":{"nullable":true}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Workbook not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/jungler/workbooks/{workbook_id}/comments":{"get":{"summary":"Get Comments","description":"Retrieve all comments from a completed workbook. Credits: free.","tags":["Jungler"],"x-credits-cost":{"amount":0,"unit":"call","billing_shape":"per_call","rows_per_call":500},"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","pattern":"^[a-zA-Z0-9_-]{1,128}$","description":"Workbook ID from a completed task","example":"wb_abc123"},"required":true,"description":"Workbook ID from a completed task","name":"workbook_id","in":"path"},{"schema":{"type":"string","enum":["true","false"],"description":"Include reply comments (default: true)"},"required":false,"description":"Include reply comments (default: true)","name":"include_replies","in":"query"},{"schema":{"type":"integer","minimum":1,"default":1,"description":"Page number (1-based)","example":1},"required":false,"description":"Page number (1-based)","name":"page","in":"query"},{"schema":{"type":"integer","minimum":1,"maximum":500,"default":500,"description":"Items per page (1–500)","example":500},"required":false,"description":"Items per page (1–500)","name":"page_size","in":"query"}],"responses":{"200":{"description":"Comment list","content":{"application/json":{"schema":{"nullable":true}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Workbook not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/jungler/workbooks/{workbook_id}/reactions":{"get":{"summary":"Get Reactions","description":"Retrieve reaction data from a completed workbook. Credits: free.","tags":["Jungler"],"x-credits-cost":{"amount":0,"unit":"call","billing_shape":"per_call","rows_per_call":500},"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","pattern":"^[a-zA-Z0-9_-]{1,128}$","description":"Workbook ID from a completed task","example":"wb_abc123"},"required":true,"description":"Workbook ID from a completed task","name":"workbook_id","in":"path"},{"schema":{"type":"integer","minimum":1,"default":1,"description":"Page number (1-based)","example":1},"required":false,"description":"Page number (1-based)","name":"page","in":"query"},{"schema":{"type":"integer","minimum":1,"maximum":500,"default":500,"description":"Items per page (1–500)","example":500},"required":false,"description":"Items per page (1–500)","name":"page_size","in":"query"}],"responses":{"200":{"description":"Reaction list","content":{"application/json":{"schema":{"nullable":true}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Workbook not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/jungler/searches":{"get":{"summary":"List Searches","description":"List all search configurations in the workspace. Credits: free.","tags":["Jungler"],"x-credits-cost":{"amount":0,"unit":"call","billing_shape":"per_call"},"security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Search list","content":{"application/json":{"schema":{"$ref":"#/components/schemas/JunglerListSearchesResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/jungler/searches/{search_id}":{"get":{"summary":"Get Search","description":"Retrieve full details of a single search configuration. Credits: free.","tags":["Jungler"],"x-credits-cost":{"amount":0,"unit":"call","billing_shape":"per_call"},"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","pattern":"^[a-zA-Z0-9_-]{1,128}$","description":"Search ID","example":"507f1f77bcf86cd799439011"},"required":true,"description":"Search ID","name":"search_id","in":"path"}],"responses":{"200":{"description":"Search details","content":{"application/json":{"schema":{"$ref":"#/components/schemas/JunglerGetSearchResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Search not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/jungler/posts":{"get":{"summary":"List Posts","description":"Retrieve paginated posts filtered by one or more search IDs. Supports extensive filtering by match status, post type, sentiment, author details, and more. Credits: bills only for returned results, per page; reserved up-front for the requested size and settled to the actual count (see X-ColdIQ-Credits-Charged). Call get_endpoint_details for the live rate.","tags":["Jungler"],"x-credits-cost":{"amount":3.5,"unit":"page","billing_shape":"per_result"},"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","pattern":"^[a-fA-F0-9]{24}(,[a-fA-F0-9]{24}){0,49}$","description":"Comma-separated search IDs to filter posts by (max 50)","example":"507f1f77bcf86cd799439011,507f1f77bcf86cd799439012"},"required":true,"description":"Comma-separated search IDs to filter posts by (max 50)","name":"search_ids","in":"query"},{"schema":{"type":"integer","minimum":1,"default":1,"description":"Page number (1-based)","example":1},"required":false,"description":"Page number (1-based)","name":"page","in":"query"},{"schema":{"type":"integer","minimum":1,"maximum":500,"default":100,"description":"Results per page (1–500)","example":100},"required":false,"description":"Results per page (1–500)","name":"page_size","in":"query"},{"schema":{"type":"string","enum":["relevant","not_relevant","unclassified","yes","no","maybe"],"description":"AI relevance classification filter: relevant, not_relevant, or unclassified (only applies when AI filtering is configured on the signal)"},"required":false,"description":"AI relevance classification filter: relevant, not_relevant, or unclassified (only applies when AI filtering is configured on the signal)","name":"match","in":"query"},{"schema":{"type":"string","maxLength":64,"description":"Post type filter: buying_intent, hiring, thought_leadership, lead_magnet, promotion, announcement, other"},"required":false,"description":"Post type filter: buying_intent, hiring, thought_leadership, lead_magnet, promotion, announcement, other","name":"post_type","in":"query"},{"schema":{"type":"string","enum":["positive","negative","neutral"],"description":"Sentiment filter"},"required":false,"description":"Sentiment filter","name":"sentiment","in":"query"},{"schema":{"type":"string","maxLength":10,"description":"Comma-separated language codes (e.g. en,fr)"},"required":false,"description":"Comma-separated language codes (e.g. en,fr)","name":"language","in":"query"},{"schema":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$","description":"Only posts published on or after this date (YYYY-MM-DD). Range may not exceed 180 days.","example":"2024-01-01"},"required":false,"description":"Only posts published on or after this date (YYYY-MM-DD). Range may not exceed 180 days.","name":"from_date","in":"query"},{"schema":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$","description":"Only posts published on or before this date (YYYY-MM-DD). Range may not exceed 180 days.","example":"2024-12-31"},"required":false,"description":"Only posts published on or before this date (YYYY-MM-DD). Range may not exceed 180 days.","name":"to_date","in":"query"},{"schema":{"type":"string","maxLength":64,"description":"Comma-separated ISO country codes to include"},"required":false,"description":"Comma-separated ISO country codes to include","name":"country","in":"query"},{"schema":{"type":"string","maxLength":64,"description":"Comma-separated function codes: ENG, PRD, MKT, SAL, FIN, OPS, HR, CS, LEG, DA, DSN, EDU, AMB, GEN, UNMAPPED"},"required":false,"description":"Comma-separated function codes: ENG, PRD, MKT, SAL, FIN, OPS, HR, CS, LEG, DA, DSN, EDU, AMB, GEN, UNMAPPED","name":"job_function","in":"query"},{"schema":{"type":"string","maxLength":64,"description":"Comma-separated authority levels: L, M, S, XS, NA, UNMAPPED"},"required":false,"description":"Comma-separated authority levels: L, M, S, XS, NA, UNMAPPED","name":"authority_level","in":"query"},{"schema":{"type":"string","maxLength":64,"description":"Comma-separated company sizes: XXS, XS, S, M, L, XL, XXL, UNMAPPED"},"required":false,"description":"Comma-separated company sizes: XXS, XS, S, M, L, XL, XXL, UNMAPPED","name":"company_size","in":"query"},{"schema":{"type":"string","maxLength":64,"description":"Comma-separated industry codes (e.g. TECH_INFO_MEDIA, FINANCIAL_SERVICES)"},"required":false,"description":"Comma-separated industry codes (e.g. TECH_INFO_MEDIA, FINANCIAL_SERVICES)","name":"industry","in":"query"},{"schema":{"type":"string","maxLength":64,"description":"Snapshot time for consistent pagination"},"required":false,"description":"Snapshot time for consistent pagination","name":"snapshot_time","in":"query"}],"responses":{"200":{"description":"Paginated post list","content":{"application/json":{"schema":{"nullable":true}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/visitor-id/websites":{"get":{"summary":"List Websites","description":"Every website you have a tracking pixel for, newest first. Agencies run one per client site. Credits: free.","tags":["Visitor ID"],"x-credits-cost":{"amount":0,"unit":"call","billing_shape":"per_call"},"security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Your websites","content":{"application/json":{"schema":{"$ref":"#/components/schemas/VisitorIdWebsiteList"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Not enough credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"No such website","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"That domain already has a pixel","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"At capacity","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}},"post":{"summary":"Add Website","description":"Set up visitor identification for a website and get the tracking pixel to install. Identification starts as soon as the pixel is live and your balance can cover it; each identified person or company is charged then, never here. Credits: free.","tags":["Visitor ID"],"x-credits-cost":{"amount":0,"unit":"call","billing_shape":"per_call"},"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"domain":{"type":"string","minLength":1,"description":"Website domain the tracking pixel will identify visitors for"},"name":{"type":"string","description":"Display name for the workspace (defaults to the domain)"}},"required":["domain"],"example":{"domain":"coldiq.com"}}}}},"responses":{"200":{"description":"Website already existed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/VisitorIdWebsite"}}}},"201":{"description":"Website added","content":{"application/json":{"schema":{"$ref":"#/components/schemas/VisitorIdWebsite"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Not enough credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"No such website","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"That domain already has a pixel","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"At capacity","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/visitor-id/websites/{website_id}":{"get":{"summary":"Get Website","description":"One website, with its pixel embed code and whether the pixel has been seen on the site in the last 7 days. Credits: free.","tags":["Visitor ID"],"x-credits-cost":{"amount":0,"unit":"call","billing_shape":"per_call"},"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"integer","nullable":true,"example":1},"required":false,"name":"website_id","in":"path"}],"responses":{"200":{"description":"Website","content":{"application/json":{"schema":{"$ref":"#/components/schemas/VisitorIdWebsite"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Not enough credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"No such website","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"That domain already has a pixel","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"At capacity","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}},"patch":{"summary":"Update Website","description":"Rename a website or point its pixel at a different domain. Credits: free.","tags":["Visitor ID"],"x-credits-cost":{"amount":0,"unit":"call","billing_shape":"per_call"},"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"integer","nullable":true,"example":1},"required":false,"name":"website_id","in":"path"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string"},"domain":{"type":"string","description":"Changing the domain re-provisions identification for the new site"},"monthly_limit_credits":{"type":"integer","minimum":6,"maximum":100000,"description":"The most this site may identify in one billing period, in credits. A company costs 1 and a person 6, so 300 is 300 companies, or 50 people, or any mix. Defaults to 300."}},"example":{"monthly_limit_credits":300}}}}},"responses":{"200":{"description":"Website updated","content":{"application/json":{"schema":{"$ref":"#/components/schemas/VisitorIdWebsite"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Not enough credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"No such website","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"That domain already has a pixel","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"At capacity","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}},"delete":{"summary":"Remove Website","description":"Stop identifying visitors on this website. Everything already identified stays readable. Credits: free.","tags":["Visitor ID"],"x-credits-cost":{"amount":0,"unit":"call","billing_shape":"per_call"},"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"integer","nullable":true,"example":1},"required":false,"name":"website_id","in":"path"}],"responses":{"200":{"description":"Website removed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/VisitorIdWebsite"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Not enough credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"No such website","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"That domain already has a pixel","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"At capacity","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/visitor-id/websites/{website_id}/resume":{"post":{"summary":"Resume Identification","description":"Start identifying again after the site ran out of credits. Returns 402 while the balance still cannot cover the sites you run. Credits: free.","tags":["Visitor ID"],"x-credits-cost":{"amount":0,"unit":"call","billing_shape":"per_call"},"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"integer","nullable":true,"example":1},"required":false,"name":"website_id","in":"path"}],"responses":{"200":{"description":"Identifying again","content":{"application/json":{"schema":{"$ref":"#/components/schemas/VisitorIdWebsite"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Not enough credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"No such website","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"That domain already has a pixel","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"At capacity","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/visitor-id/websites/{website_id}/usage":{"get":{"summary":"Get Usage","description":"How many people and companies this website identified this period, and what it cost. Credits: free.","tags":["Visitor ID"],"x-credits-cost":{"amount":0,"unit":"call","billing_shape":"per_call"},"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"integer","nullable":true,"example":1},"required":false,"name":"website_id","in":"path"}],"responses":{"200":{"description":"Usage this period","content":{"application/json":{"schema":{"$ref":"#/components/schemas/VisitorIdUsage"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Not enough credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"No such website","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"That domain already has a pixel","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"At capacity","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/visitor-id/websites/{website_id}/contacts":{"get":{"summary":"List Identified People","description":"People identified on this website, with verified work email, title and LinkedIn where available. Credits: free.","tags":["Visitor ID"],"x-credits-cost":{"amount":0,"unit":"call","billing_shape":"per_call"},"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"integer","nullable":true,"example":1},"required":false,"name":"website_id","in":"path"},{"schema":{"type":"integer","minimum":1,"maximum":100,"example":50},"required":false,"name":"limit","in":"query"},{"schema":{"type":"string"},"required":false,"name":"cursor","in":"query"},{"schema":{"type":"string","description":"Free-form filter JSON, passed through to the identification engine"},"required":false,"description":"Free-form filter JSON, passed through to the identification engine","name":"filters","in":"query"},{"schema":{"type":"string"},"required":false,"name":"filter_set_id","in":"query"},{"schema":{"type":"string","example":"michel@coldiq.com"},"required":false,"name":"email","in":"query"},{"schema":{"type":"string"},"required":false,"name":"account_id","in":"query"}],"responses":{"200":{"description":"Identified data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/VisitorIdResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Not enough credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"No such website","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"That domain already has a pixel","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"At capacity","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/visitor-id/websites/{website_id}/contacts/{contact_id}":{"get":{"summary":"Get Identified Person","description":"One identified person, in full. Credits: free.","tags":["Visitor ID"],"x-credits-cost":{"amount":0,"unit":"call","billing_shape":"per_call"},"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"integer","nullable":true,"example":1},"required":false,"name":"website_id","in":"path"},{"schema":{"type":"string","example":"16d5ff0e-061d-4c6b-95e0-531a58fc3468"},"required":true,"name":"contact_id","in":"path"}],"responses":{"200":{"description":"Identified data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/VisitorIdResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Not enough credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"No such website","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"That domain already has a pixel","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"At capacity","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/visitor-id/websites/{website_id}/accounts":{"get":{"summary":"List Identified Companies","description":"Companies identified on this website, with firmographics. Credits: free.","tags":["Visitor ID"],"x-credits-cost":{"amount":0,"unit":"call","billing_shape":"per_call"},"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"integer","nullable":true,"example":1},"required":false,"name":"website_id","in":"path"},{"schema":{"type":"integer","minimum":1,"maximum":100,"example":50},"required":false,"name":"limit","in":"query"},{"schema":{"type":"string"},"required":false,"name":"cursor","in":"query"},{"schema":{"type":"string","description":"Free-form filter JSON, passed through to the identification engine"},"required":false,"description":"Free-form filter JSON, passed through to the identification engine","name":"filters","in":"query"},{"schema":{"type":"string"},"required":false,"name":"filter_set_id","in":"query"},{"schema":{"type":"string","example":"coldiq.com"},"required":false,"name":"domain","in":"query"}],"responses":{"200":{"description":"Identified data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/VisitorIdResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Not enough credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"No such website","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"That domain already has a pixel","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"At capacity","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/visitor-id/websites/{website_id}/accounts/{account_id}":{"get":{"summary":"Get Identified Company","description":"One identified company, in full. Credits: free.","tags":["Visitor ID"],"x-credits-cost":{"amount":0,"unit":"call","billing_shape":"per_call"},"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"integer","nullable":true,"example":1},"required":false,"name":"website_id","in":"path"},{"schema":{"type":"string","example":"681ce79e-8565-464d-83e3-e0e9d5a4f499"},"required":true,"name":"account_id","in":"path"}],"responses":{"200":{"description":"Identified data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/VisitorIdResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Not enough credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"No such website","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"That domain already has a pixel","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"At capacity","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/visitor-id/websites/{website_id}/activity":{"get":{"summary":"Get Visit Activity","description":"Page-visit history for one identified person or company. Provide account_id or contact_id. Credits: free.","tags":["Visitor ID"],"x-credits-cost":{"amount":0,"unit":"call","billing_shape":"per_call"},"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"integer","nullable":true,"example":1},"required":false,"name":"website_id","in":"path"},{"schema":{"type":"string","example":"681ce79e-8565-464d-83e3-e0e9d5a4f499"},"required":false,"name":"account_id","in":"query"},{"schema":{"type":"string"},"required":false,"name":"contact_id","in":"query"},{"schema":{"type":"integer","minimum":1,"maximum":100,"example":50},"required":false,"name":"limit","in":"query"},{"schema":{"type":"string"},"required":false,"name":"cursor","in":"query"}],"responses":{"200":{"description":"Identified data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/VisitorIdResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Not enough credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"No such website","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"That domain already has a pixel","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"At capacity","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/visitor-id/websites/{website_id}/scores":{"get":{"summary":"Get Lead Score","description":"Lead score for one identified person or company. Provide account_id or contact_id. Credits: free.","tags":["Visitor ID"],"x-credits-cost":{"amount":0,"unit":"call","billing_shape":"per_call"},"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"integer","nullable":true,"example":1},"required":false,"name":"website_id","in":"path"},{"schema":{"type":"string","example":"681ce79e-8565-464d-83e3-e0e9d5a4f499"},"required":false,"name":"account_id","in":"query"},{"schema":{"type":"string"},"required":false,"name":"contact_id","in":"query"},{"schema":{"type":"boolean","nullable":true},"required":false,"name":"include_history","in":"query"},{"schema":{"type":"integer","minimum":1,"maximum":100,"example":50},"required":false,"name":"limit","in":"query"},{"schema":{"type":"string"},"required":false,"name":"cursor","in":"query"}],"responses":{"200":{"description":"Identified data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/VisitorIdResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Not enough credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"No such website","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"That domain already has a pixel","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"At capacity","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/visitor-id/websites/{website_id}/scores/recent":{"get":{"summary":"List Recent Lead Scores","description":"Lead scores that changed most recently on this website — the shortlist worth acting on. Credits: free.","tags":["Visitor ID"],"x-credits-cost":{"amount":0,"unit":"call","billing_shape":"per_call"},"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"integer","nullable":true,"example":1},"required":false,"name":"website_id","in":"path"},{"schema":{"type":"integer","minimum":1,"maximum":100,"example":50},"required":false,"name":"limit","in":"query"},{"schema":{"type":"string"},"required":false,"name":"cursor","in":"query"}],"responses":{"200":{"description":"Identified data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/VisitorIdResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Not enough credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"No such website","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"That domain already has a pixel","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"At capacity","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/visitor-id/websites/{website_id}/webhook":{"put":{"summary":"Set Event Webhook","description":"Receive identified people and companies at your own HTTPS endpoint, as they are found. Credits: free.","tags":["Visitor ID"],"x-credits-cost":{"amount":0,"unit":"call","billing_shape":"per_call"},"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"integer","nullable":true,"example":1},"required":false,"name":"website_id","in":"path"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"url":{"type":"string","format":"uri","description":"HTTPS endpoint that will receive identified-visitor events as JSON POSTs"},"events":{"type":"array","items":{"type":"string","enum":["contact.identified","account.identified","score.changed","tenant.limit_reached"]},"description":"Event types to forward (defaults to all)"}},"required":["url"],"example":{"url":"https://coldiq.com/api/visitor-events","events":["contact.identified","account.identified"]}}}}},"responses":{"200":{"description":"Webhook set","content":{"application/json":{"schema":{"$ref":"#/components/schemas/VisitorIdWebhookSubscription"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Not enough credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"No such website","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"That domain already has a pixel","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"At capacity","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}},"get":{"summary":"Get Event Webhook","description":"The endpoint currently receiving this website’s events, if any. Credits: free.","tags":["Visitor ID"],"x-credits-cost":{"amount":0,"unit":"call","billing_shape":"per_call"},"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"integer","nullable":true,"example":1},"required":false,"name":"website_id","in":"path"}],"responses":{"200":{"description":"Current webhook","content":{"application/json":{"schema":{"$ref":"#/components/schemas/VisitorIdWebhookSubscription"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Not enough credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"No such website","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"That domain already has a pixel","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"At capacity","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}},"delete":{"summary":"Remove Event Webhook","description":"Stop sending events to your endpoint. Identified data stays available to read. Credits: free.","tags":["Visitor ID"],"x-credits-cost":{"amount":0,"unit":"call","billing_shape":"per_call"},"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"integer","nullable":true,"example":1},"required":false,"name":"website_id","in":"path"}],"responses":{"200":{"description":"Webhook removed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/VisitorIdWebhookSubscription"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Not enough credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"No such website","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"That domain already has a pixel","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"At capacity","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/visitor-id/websites/{website_id}/slack-alerts":{"put":{"summary":"Set Slack Alerts","description":"Post identified people and companies into a Slack channel, sent by the ColdIQ app. Invite the app to the channel first. Names and emails stay in the dashboard: a channel is a shared room. Credits: free.","tags":["Visitor ID"],"x-credits-cost":{"amount":0,"unit":"call","billing_shape":"per_call"},"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"integer","nullable":true,"example":1},"required":false,"name":"website_id","in":"path"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"slack_team_id":{"type":"string","minLength":1,"description":"The Slack workspace, as Slack identifies it."},"channel_id":{"type":"string","minLength":1,"description":"The channel the ColdIQ bot posts into. The bot must be a member of it."}},"required":["slack_team_id","channel_id"],"example":{"slack_team_id":"T0123ABCDEF","channel_id":"C0123ABCDEF"}}}}},"responses":{"200":{"description":"Slack alerts set","content":{"application/json":{"schema":{"$ref":"#/components/schemas/VisitorIdSlackAlerts"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Not enough credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"No such website","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"That domain already has a pixel","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"At capacity","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}},"get":{"summary":"Get Slack Alerts","description":"The Slack channel currently receiving this website’s identifications, if any. Credits: free.","tags":["Visitor ID"],"x-credits-cost":{"amount":0,"unit":"call","billing_shape":"per_call"},"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"integer","nullable":true,"example":1},"required":false,"name":"website_id","in":"path"}],"responses":{"200":{"description":"Current Slack channel","content":{"application/json":{"schema":{"$ref":"#/components/schemas/VisitorIdSlackAlerts"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Not enough credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"No such website","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"That domain already has a pixel","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"At capacity","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}},"delete":{"summary":"Remove Slack Alerts","description":"Stop posting this website’s identifications to Slack. Identified data stays available to read. Credits: free.","tags":["Visitor ID"],"x-credits-cost":{"amount":0,"unit":"call","billing_shape":"per_call"},"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"integer","nullable":true,"example":1},"required":false,"name":"website_id","in":"path"}],"responses":{"200":{"description":"Slack alerts removed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/VisitorIdSlackAlerts"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Not enough credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"No such website","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"That domain already has a pixel","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"At capacity","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/mailboxes/catalog":{"get":{"tags":["ColdIQ Mailbox"],"x-credits-cost":{"amount":0,"unit":"call","billing_shape":"per_call"},"security":[{"bearerAuth":[]}],"summary":"Get Mailbox Catalog","description":"Prices, limits, purchasable TLDs and whether purchasing is open on your account. Read this first: `purchasingEnabled` decides whether a quote can become a purchase. Credits: free.","responses":{"200":{"description":"Providers, prices, limits, purchasable TLDs and the purchasing flag","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MailboxCatalog"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MailboxError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MailboxError"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/mailboxes/domains/availability":{"get":{"tags":["ColdIQ Mailbox"],"x-credits-cost":{"amount":0,"unit":"call","billing_shape":"per_call"},"security":[{"bearerAuth":[]}],"summary":"Check Domain Availability","description":"Whether one sending domain can be bought. Only the TLDs listed in the catalog are purchasable. Credits: free.","parameters":[{"schema":{"type":"string","minLength":4,"maxLength":253,"example":"coldiq-outreach.com"},"required":true,"name":"domain","in":"query"}],"responses":{"200":{"description":"Whether the domain can be purchased","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MailboxDomainAvailability"}}}},"400":{"description":"Invalid domain name","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MailboxError"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MailboxError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MailboxError"}}}},"502":{"description":"Mailbox service unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MailboxError"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}},"post":{"tags":["ColdIQ Mailbox"],"x-credits-cost":{"amount":0,"unit":"call","billing_shape":"per_call"},"security":[{"bearerAuth":[]}],"summary":"Check Domain Availability In Bulk","description":"One call for a whole grid of candidate names. Every requested name comes back with a verdict; a name the registrar does not answer for is reported unavailable, never omitted. Credits: free.","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BulkMailboxDomainAvailabilityBody"}}}},"responses":{"200":{"description":"A verdict for every requested domain","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/MailboxDomainAvailability"}}}}},"400":{"description":"Invalid or unsupported domain name","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MailboxError"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MailboxError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MailboxError"}}}},"502":{"description":"Mailbox service unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MailboxError"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/mailboxes/quotes":{"post":{"tags":["ColdIQ Mailbox"],"x-credits-cost":{"amount":0,"unit":"call","billing_shape":"per_call"},"security":[{"bearerAuth":[]}],"summary":"Price A Mailbox Order","description":"An authoritative, expiring quote for a configuration. A quote is consumed by exactly one purchase — never re-quote one that has already been purchased. Credits: free.","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MailboxQuoteBody"}}}},"responses":{"200":{"description":"An authoritative, expiring quote for this configuration","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MailboxQuote"}}}},"400":{"description":"Invalid configuration","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MailboxError"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MailboxError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MailboxError"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/mailboxes/purchases":{"post":{"tags":["ColdIQ Mailbox"],"x-credits-cost":{"amount":0,"unit":"call","billing_shape":"per_call"},"security":[{"bearerAuth":[]}],"summary":"Buy Mailboxes","description":"Turns a quote into a purchase and returns a hosted payment link (`checkoutUrl`) plus the order page in the dashboard (`dashboardUrl`). A purchase is paid on the surface that started it: pay this one at `checkoutUrl`, or from the dashboard order page, which also offers payment for purchases started here. Provisioning starts only once payment is confirmed; poll GET /mailboxes/purchases/{purchaseId} until the purchase is ready. Idempotent: send `idempotencyKey` in the body (or the Idempotency-Key header) — a replay returns the same purchase and the same payment link. Adding inboxes to a domain you already own is done from the dashboard, not here. Credits: free.","parameters":[{"name":"Idempotency-Key","in":"header","required":false,"description":"Unique key for THIS purchase intent (max 200 characters). Required as this header OR as the `idempotencyKey` body field (the header wins when both are sent). Replaying the same key returns the same purchase and never mints a second payment session — use a fresh key per intent, never per retry.","schema":{"type":"string","minLength":1,"maxLength":200}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateMailboxPurchaseBody"}}}},"responses":{"201":{"description":"Purchase created — pay at checkoutUrl (idempotent on idempotencyKey / the Idempotency-Key header)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MailboxPurchaseCreated"}}}},"400":{"description":"Missing idempotency key, invalid quote, or a quote that must be purchased from the dashboard","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MailboxError"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MailboxError"}}}},"403":{"description":"Mailbox purchasing not enabled","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MailboxError"}}}},"404":{"description":"Quote not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MailboxError"}}}},"409":{"description":"Quote expired or already used, purchase expired, or payment already received","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MailboxError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MailboxError"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}},"get":{"tags":["ColdIQ Mailbox"],"x-credits-cost":{"amount":0,"unit":"call","billing_shape":"per_call"},"security":[{"bearerAuth":[]}],"summary":"List Mailbox Purchases","description":"Your purchases, newest first. Polling the list advances unfinished ones; the payment link is only on the detail read. Credits: free.","responses":{"200":{"description":"Purchases, newest first","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/MailboxPurchaseListItem"}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MailboxError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MailboxError"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/mailboxes/carts":{"post":{"tags":["ColdIQ Mailbox"],"x-credits-cost":{"amount":0,"unit":"call","billing_shape":"per_call"},"security":[{"bearerAuth":[]}],"summary":"Buy Google And Microsoft Mailboxes Together","description":"One order from two quotes, one per provider. Each quote becomes its own purchase with its own subscription and its own hosted payment link; pay each `checkoutUrl` in turn. Idempotent: send `idempotencyKey` in the body (or the Idempotency-Key header) — a replay returns the same purchases; a half already paid comes back with an empty `checkoutUrl`. Credits: free.","parameters":[{"name":"Idempotency-Key","in":"header","required":false,"description":"Unique key for THIS purchase intent (max 200 characters). Required as this header OR as the `idempotencyKey` body field (the header wins when both are sent). Replaying the same key returns the same purchase and never mints a second payment session — use a fresh key per intent, never per retry.","schema":{"type":"string","minLength":1,"maxLength":200}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateMailboxCartBody"}}}},"responses":{"201":{"description":"Combined order created","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MailboxCartCreated"}}}},"400":{"description":"Missing idempotency key, or quotes that do not cover distinct providers","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MailboxError"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MailboxError"}}}},"403":{"description":"Mailbox purchasing not enabled","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MailboxError"}}}},"404":{"description":"Quote not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MailboxError"}}}},"409":{"description":"Quote expired or already used, purchase expired, or every purchase already paid","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MailboxError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MailboxError"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/mailboxes/purchases/{purchaseId}":{"get":{"tags":["ColdIQ Mailbox"],"x-credits-cost":{"amount":0,"unit":"call","billing_shape":"per_call"},"security":[{"bearerAuth":[]}],"summary":"Get Mailbox Purchase","description":"One purchase. Polling drives its provisioning forward; while payment is pending it carries the hosted payment link (`checkoutUrl`) and the dashboard order page (`dashboardUrl`). Credits: free.","parameters":[{"schema":{"type":"string","minLength":1,"example":"purchase_2f7c1a9e"},"required":true,"name":"purchaseId","in":"path"}],"responses":{"200":{"description":"The purchase, with the payment link while payment is pending","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MailboxPurchaseDetail"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MailboxError"}}}},"404":{"description":"Purchase not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MailboxError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MailboxError"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/mailboxes/domains":{"get":{"tags":["ColdIQ Mailbox"],"x-credits-cost":{"amount":0,"unit":"call","billing_shape":"per_call"},"security":[{"bearerAuth":[]}],"summary":"List Sending Domains","description":"Every sending domain you own, with its status and provider. Credits: free.","parameters":[{"schema":{"type":"string","enum":["pending","active","deleted"]},"required":false,"name":"status","in":"query"},{"schema":{"type":"string","enum":["google","microsoft"]},"required":false,"name":"provider_type","in":"query"}],"responses":{"200":{"description":"Your domains","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/MailboxDomain"}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MailboxError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MailboxError"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/mailboxes/integrations":{"get":{"tags":["ColdIQ Mailbox"],"x-credits-cost":{"amount":0,"unit":"call","billing_shape":"per_call"},"security":[{"bearerAuth":[]}],"summary":"List Sending Tools","description":"The sending tools inboxes can be pushed into, with the credential fields each one needs and the inbox types it accepts. Credits: free.","responses":{"200":{"description":"Supported tools","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/MailboxSequencer"}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MailboxError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MailboxError"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/mailboxes/integrations/{sequencer}/connections":{"get":{"tags":["ColdIQ Mailbox"],"x-credits-cost":{"amount":0,"unit":"call","billing_shape":"per_call"},"security":[{"bearerAuth":[]}],"summary":"List Sending Tool Connections","description":"Your saved connections to one sending tool. Keys stay encrypted server-side and are never returned. Credits: free.","parameters":[{"schema":{"type":"string","description":"Sending tool key, from the integrations list (GET .../mailboxes/integrations)","example":"smartlead"},"required":true,"description":"Sending tool key, from the integrations list (GET .../mailboxes/integrations)","name":"sequencer","in":"path"}],"responses":{"200":{"description":"Named connections — keys stay encrypted server-side","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/MailboxSequencerConnection"}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MailboxError"}}}},"404":{"description":"Unknown sending tool","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MailboxError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MailboxError"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}},"post":{"tags":["ColdIQ Mailbox"],"x-credits-cost":{"amount":0,"unit":"call","billing_shape":"per_call"},"security":[{"bearerAuth":[]}],"summary":"Save Sending Tool Connection","description":"Stores a validated connection (credentials encrypted at rest) using the setup token from the validate step. Credits: free.","parameters":[{"schema":{"type":"string","description":"Sending tool key, from the integrations list (GET .../mailboxes/integrations)","example":"smartlead"},"required":true,"description":"Sending tool key, from the integrations list (GET .../mailboxes/integrations)","name":"sequencer","in":"path"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateSequencerConnectionBody"}}}},"responses":{"201":{"description":"Connection stored, credentials encrypted at rest","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MailboxSequencerConnection"}}}},"400":{"description":"Setup token invalid or expired","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MailboxError"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MailboxError"}}}},"404":{"description":"Unknown sending tool","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MailboxError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MailboxError"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/mailboxes/integrations/{sequencer}/connections/validate":{"post":{"tags":["ColdIQ Mailbox"],"x-credits-cost":{"amount":0,"unit":"call","billing_shape":"per_call"},"security":[{"bearerAuth":[]}],"summary":"Validate Sending Tool Credentials","description":"Checks the credentials against the tool and returns a workspace preview plus a short-lived setup token to save the connection with. Nothing is stored at this step. Credits: free.","parameters":[{"schema":{"type":"string","description":"Sending tool key, from the integrations list (GET .../mailboxes/integrations)","example":"smartlead"},"required":true,"description":"Sending tool key, from the integrations list (GET .../mailboxes/integrations)","name":"sequencer","in":"path"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidateSequencerConnectionBody"}}}},"responses":{"200":{"description":"Workspace preview + a short-lived setup token; the raw credentials are never stored at this step","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MailboxSequencerConnectionPreview"}}}},"400":{"description":"The sending tool rejected the credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MailboxError"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MailboxError"}}}},"404":{"description":"Unknown sending tool","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MailboxError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MailboxError"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/mailboxes/integrations/{sequencer}/connections/{connectionId}":{"delete":{"tags":["ColdIQ Mailbox"],"x-credits-cost":{"amount":0,"unit":"call","billing_shape":"per_call"},"security":[{"bearerAuth":[]}],"summary":"Remove Sending Tool Connection","description":"Deletes ColdIQ's stored credentials for this connection. Inboxes already in the tool remain there. Credits: free.","parameters":[{"schema":{"type":"string","description":"Sending tool key, from the integrations list (GET .../mailboxes/integrations)","example":"smartlead"},"required":true,"description":"Sending tool key, from the integrations list (GET .../mailboxes/integrations)","name":"sequencer","in":"path"},{"schema":{"type":"string","example":"1"},"required":true,"name":"connectionId","in":"path"}],"responses":{"204":{"description":"ColdIQ's stored credentials deleted — inboxes already in the tool remain there"},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MailboxError"}}}},"404":{"description":"Connection not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MailboxError"}}}},"409":{"description":"Inboxes are still being added through this connection","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MailboxError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MailboxError"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/mailboxes/integrations/{sequencer}":{"post":{"tags":["ColdIQ Mailbox"],"x-credits-cost":{"amount":0,"unit":"call","billing_shape":"per_call"},"security":[{"bearerAuth":[]}],"summary":"Connect Mailboxes To A Sending Tool","description":"Adds inboxes to the tool through one saved connection. Per-inbox results — partial failure is expected and reported. Warmup starts in the sending tool. Credits: free.","parameters":[{"schema":{"type":"string","description":"Sending tool key, from the integrations list (GET .../mailboxes/integrations)","example":"smartlead"},"required":true,"description":"Sending tool key, from the integrations list (GET .../mailboxes/integrations)","name":"sequencer","in":"path"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConnectMailboxesToSequencerBody"}}}},"responses":{"200":{"description":"Per-inbox results — partial failure is expected and reported","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MailboxSequencerBatchResult"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MailboxError"}}}},"404":{"description":"Connection not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MailboxError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MailboxError"}}}},"502":{"description":"Mailbox service unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MailboxError"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/mailboxes/subscriptions":{"get":{"tags":["ColdIQ Mailbox"],"x-credits-cost":{"amount":0,"unit":"call","billing_shape":"per_call"},"security":[{"bearerAuth":[]}],"summary":"List Mailbox Subscriptions","description":"One row per live domain with its subscription state. Domains from one multi-domain purchase share a subscription: their rows carry the same stripeSubscriptionId and billedQuantity — total a shared subscription once. Credits: free.","responses":{"200":{"description":"Your mailbox subscriptions, one row per domain","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/MailboxSubscription"}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MailboxError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MailboxError"}}}},"502":{"description":"Billing service unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MailboxError"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/mailboxes/orders":{"get":{"tags":["ColdIQ Mailbox"],"x-credits-cost":{"amount":0,"unit":"call","billing_shape":"per_call"},"security":[{"bearerAuth":[]}],"summary":"List Mailbox Orders","description":"Every provisioning order (domain purchases, inbox creations, Microsoft orders, exports), newest first. Credits: free.","parameters":[{"schema":{"type":"string","enum":["submitted","processing","completed","partial","failed","timed_out"]},"required":false,"name":"status","in":"query"}],"responses":{"200":{"description":"Your orders, newest first","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/MailboxOrder"}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MailboxError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MailboxError"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/mailboxes/orders/{id}":{"get":{"tags":["ColdIQ Mailbox"],"x-credits-cost":{"amount":0,"unit":"call","billing_shape":"per_call"},"security":[{"bearerAuth":[]}],"summary":"Get Order Status","description":"Current state of one order. While it is pending this also polls the engine and finalizes the order (creating domains and mailboxes) once the work completed. Credits: free.","parameters":[{"schema":{"type":"string","example":"1"},"required":true,"name":"id","in":"path"}],"responses":{"200":{"description":"Current order state","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MailboxOrder"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MailboxError"}}}},"404":{"description":"Order not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MailboxError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MailboxError"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/mailboxes/orders/{id}/nameservers":{"get":{"tags":["ColdIQ Mailbox"],"x-credits-cost":{"amount":0,"unit":"call","billing_shape":"per_call"},"security":[{"bearerAuth":[]}],"summary":"Get Microsoft Order Nameservers","description":"The nameservers to set at your registrar for a Microsoft order on a transferred domain. Credits: free.","parameters":[{"schema":{"type":"string","example":"1"},"required":true,"name":"id","in":"path"}],"responses":{"200":{"description":"Nameservers to set at your registrar (transfer orders)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MicrosoftOrderNameservers"}}}},"400":{"description":"Not a Microsoft order","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MailboxError"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MailboxError"}}}},"404":{"description":"Order not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MailboxError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MailboxError"}}}},"502":{"description":"Mailbox service unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MailboxError"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/mailboxes/exports":{"post":{"tags":["ColdIQ Mailbox"],"x-credits-cost":{"amount":0,"unit":"call","billing_shape":"per_call"},"security":[{"bearerAuth":[]}],"summary":"Export Mailboxes To A Sending Tool","description":"Bulk-pushes Google inboxes into a sending tool in one job. Prefer POST /mailboxes/integrations/{sequencer} where the tool supports it — it reports per-inbox results and verifies each account. Credentials are forwarded for this export only, never stored. Poll the returned order for progress; a completed export means the push was SENT — verify the accounts appear in your sending tool. Credits: free.","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ExportMailboxesBody"}}}},"responses":{"202":{"description":"Export accepted — poll the order for completion","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MailboxOrderAccepted"}}}},"400":{"description":"Missing sequencer credentials, mailbox not ready, or a non-Google mailbox in the batch","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MailboxError"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MailboxError"}}}},"404":{"description":"Mailbox not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MailboxError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MailboxError"}}}},"502":{"description":"Mailbox service unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MailboxError"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/mailboxes":{"get":{"tags":["ColdIQ Mailbox"],"x-credits-cost":{"amount":0,"unit":"call","billing_shape":"per_call"},"security":[{"bearerAuth":[]}],"summary":"List Mailboxes","description":"Every inbox you own, with its status and sending-tool link. Never includes credentials. Credits: free.","parameters":[{"schema":{"type":"string"},"required":false,"name":"domain_id","in":"query"},{"schema":{"type":"string","enum":["pending","active","deleted"]},"required":false,"name":"status","in":"query"}],"responses":{"200":{"description":"Your mailboxes (never includes credentials)","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/Mailbox"}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MailboxError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MailboxError"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/mailboxes/{id}":{"get":{"tags":["ColdIQ Mailbox"],"x-credits-cost":{"amount":0,"unit":"call","billing_shape":"per_call"},"security":[{"bearerAuth":[]}],"summary":"Get Mailbox","description":"One inbox, with its status refreshed. Never includes credentials. Credits: free.","parameters":[{"schema":{"type":"string","example":"1"},"required":true,"name":"id","in":"path"}],"responses":{"200":{"description":"Mailbox details (never includes credentials)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Mailbox"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MailboxError"}}}},"404":{"description":"Mailbox not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MailboxError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MailboxError"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/mailboxes/{id}/credentials":{"get":{"tags":["ColdIQ Mailbox"],"x-credits-cost":{"amount":0,"unit":"call","billing_shape":"per_call"},"security":[{"bearerAuth":[]}],"summary":"Reveal Mailbox Credentials","description":"Returns live mailbox credentials (password, app password, optional one-time code). Treat the response as a secret: do not echo it into chat transcripts or shared channels. Credits: free.","parameters":[{"schema":{"type":"string","example":"1"},"required":true,"name":"id","in":"path"},{"schema":{"type":"string","enum":["1","true"],"description":"Also generate a one-time login code (Google mailboxes)"},"required":false,"description":"Also generate a one-time login code (Google mailboxes)","name":"totp","in":"query"}],"responses":{"200":{"description":"Login credentials for this mailbox","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MailboxCredentials"}}}},"400":{"description":"Mailbox not ready yet","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MailboxError"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MailboxError"}}}},"404":{"description":"Mailbox not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MailboxError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MailboxError"}}}},"502":{"description":"Mailbox service unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MailboxError"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/mailboxes/{id}/integrations":{"delete":{"tags":["ColdIQ Mailbox"],"x-credits-cost":{"amount":0,"unit":"call","billing_shape":"per_call"},"security":[{"bearerAuth":[]}],"summary":"Disconnect Mailbox From Its Sending Tool","description":"Removes the inbox from the sending tool it is linked to and clears the link. The inbox itself is kept. An inbox is linked to one tool at a time, so the tool is implied by the link. Credits: free.","parameters":[{"schema":{"type":"string","example":"1"},"required":true,"name":"id","in":"path"}],"responses":{"204":{"description":"Removed from the sending tool and unlinked"},"400":{"description":"Inbox is not connected","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MailboxError"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MailboxError"}}}},"404":{"description":"Mailbox not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MailboxError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MailboxError"}}}},"502":{"description":"Sending tool unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MailboxError"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/career-site-jobs/search":{"get":{"x-credits-cost":{"amount":0,"unit":"call","billing_shape":"per_call","rows_per_call":20},"summary":"List Career Site Job Listing API jobs","description":"Returns your most recent career site job search jobs (newest first), including their status and credit usage. Use the returned `jobId` values to poll for results. Credits: free.","tags":["Career Site Jobs"],"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"integer","minimum":1,"maximum":100,"default":20,"description":"Number of jobs to return (max 100)."},"required":false,"description":"Number of jobs to return (max 100).","name":"limit","in":"query"},{"schema":{"type":"integer","nullable":true,"minimum":0,"default":0,"description":"Number of jobs to skip for pagination."},"required":false,"description":"Number of jobs to skip for pagination.","name":"offset","in":"query"}],"responses":{"200":{"description":"List of your search jobs, newest first.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CareerSiteJobsListResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}},"post":{"x-credits-cost":{"amount":1.26,"unit":"job","billing_shape":"per_result"},"summary":"Career Site Job Listing API","description":"Start an async job to search real job postings scraped directly from 175k+ company career sites across 54 ATS platforms (Workday, Greenhouse, Ashby, Lever, and more). Supports filters on title, location, description, company domain, ATS platform, remote, agency exclusion, and AI-enriched fields. Returns a `jobId` immediately — poll `GET /career-site-jobs/search/{jobId}` for results. Credits: bills only for returned results, per job; reserved up-front for the requested size and settled to the actual count (see X-ColdIQ-Credits-Charged). Call get_endpoint_details for the live rate. Managed alternative: `POST /v1/jobs/search` (Search Jobs) runs this provider inside a ranked waterfall with charge-on-success billing and one normalized response shape, and falls back to the other providers for this capability on a miss. Call this endpoint directly when you specifically want this provider and no fallback.","tags":["Career Site Jobs"],"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"limit":{"type":"integer","minimum":10,"maximum":500,"default":10,"description":"Maximum number of jobs to return. Minimum 10, maximum 500."},"timeRange":{"type":"string","enum":["1h","24h","7d","6m"],"default":"7d","description":"Time range for job listings. Choose hourly (1h), daily (24h), weekly (7d), or last 6 months (6m). Run at the same interval to avoid duplicates."},"titleSearch":{"type":"array","items":{"type":"string"},"description":"Terms to search in job titles. Use :* for prefix matching (e.g. \"Soft:*\" matches \"Software\")."},"titleExclusionSearch":{"type":"array","items":{"type":"string"},"description":"Terms to exclude from job titles. Supports :* prefix matching."},"locationSearch":{"type":"array","items":{"type":"string"},"description":"Locations to search. Use exact \"City, State/Region, Country\" format with English names (e.g. \"San Francisco, California, United States\"). Supports :* prefix matching."},"locationExclusionSearch":{"type":"array","items":{"type":"string"},"description":"Locations to exclude. Use exact \"City, State/Region, Country\" format. Supports :* prefix matching."},"descriptionSearch":{"type":"array","items":{"type":"string"},"description":"Terms to search in job descriptions (includes title). Very intensive — be specific, combine with titleSearch, and limit to a few keywords. Supports :* prefix matching."},"descriptionExclusionSearch":{"type":"array","items":{"type":"string"},"description":"Terms to exclude from job descriptions (includes title). Supports :* prefix matching."},"organizationSearch":{"type":"array","items":{"type":"string"},"description":"Terms to search in organization names. Supports :* prefix matching."},"organizationExclusionSearch":{"type":"array","items":{"type":"string"},"description":"Terms to exclude from organization names. Supports :* prefix matching."},"domainFilter":{"type":"array","items":{"type":"string"},"description":"Company domains to include (exact match). Alternative to organizationSearch."},"domainExclusionFilter":{"type":"array","items":{"type":"string"},"description":"Company domains to exclude (exact match)."},"descriptionType":{"type":"string","enum":["text","html"],"description":"Format of the job description. Omit to exclude description from results."},"remote":{"type":"boolean","description":"Filter for remote jobs only. Sensitive — includes jobs with \"remote\" in title, description, or location. Use aiWorkArrangementFilter for more precise results."},"ats":{"type":"array","items":{"type":"string"},"description":"ATS platforms to include. Available options: adp, applicantpro, ashby, bamboohr, breezy, careerplug, comeet, csod, dayforce, dover, eightfold, firststage, freshteam, gem, gohire, greenhouse, hibob, hirebridge, hirehive, hireology, hiringthing, icims, isolved, jazzhr, jobvite, join.com, kula, lever.co, manatal, oraclecloud, pageup, paradox, paycom, paycor, paylocity, personio, phenompeople, pinpoint, polymer, recruitee, recooty, rippling, rival, smartrecruiters, successfactors, taleo, teamtailor, trakstar, trinet, ultipro, werecruit, workable, workday, zoho."},"atsExclusionFilter":{"type":"array","items":{"type":"string"},"description":"ATS platforms to exclude. Uses the same values as the ats filter."},"removeAgency":{"type":"boolean","description":"Filter out recruitment agencies."},"datePostedAfter":{"type":"string","description":"Filter jobs posted on or after this date. Format: \"2025-01-01\" or \"2025-01-01T14:00:00\" (UTC). Not recommended when polling on a regular interval."},"includeAi":{"type":"boolean","default":true,"description":"Include AI-enriched fields (work arrangement, salary, experience level, visa sponsorship, taxonomies). Over 99.9% of jobs are enriched."},"aiEmploymentTypeFilter":{"type":"array","items":{"type":"string","enum":["FULL_TIME","PART_TIME","CONTRACTOR","TEMPORARY","INTERN","VOLUNTEER","PER_DIEM","OTHER"]},"description":"BETA: Filter by employment type."},"aiWorkArrangementFilter":{"type":"array","items":{"type":"string","enum":["On-site","Hybrid","Remote OK","Remote Solely"]},"description":"BETA: Filter by work arrangement. Use \"Remote OK\" + \"Remote Solely\" to include all remote jobs."},"aiHasSalary":{"type":"boolean","description":"BETA: Filter for jobs with salary information (AI-enriched or raw salary from job schema)."},"aiExperienceLevelFilter":{"type":"array","items":{"type":"string","enum":["0-2","2-5","5-10","10+"]},"description":"BETA: Filter by years of experience."},"aiVisaSponsorshipFilter":{"type":"boolean","description":"BETA: Filter for jobs offering visa sponsorship."},"aiTaxonomiesFilter":{"type":"array","items":{"type":"string","enum":["Technology","Healthcare","Management & Leadership","Finance & Accounting","Human Resources","Sales","Marketing","Customer Service & Support","Education","Legal","Engineering","Science & Research","Trades","Construction","Manufacturing","Logistics","Creative & Media","Hospitality","Environmental & Sustainability","Retail","Data & Analytics","Software","Energy","Agriculture","Social Services","Administrative","Government & Public Sector","Art & Design","Food & Beverage","Transportation","Consulting","Sports & Recreation","Security & Safety"]},"description":"BETA: Filter by AI job taxonomies."},"aiTaxonomiesPrimaryFilter":{"type":"array","items":{"type":"string","enum":["Technology","Healthcare","Management & Leadership","Finance & Accounting","Human Resources","Sales","Marketing","Customer Service & Support","Education","Legal","Engineering","Science & Research","Trades","Construction","Manufacturing","Logistics","Creative & Media","Hospitality","Environmental & Sustainability","Retail","Data & Analytics","Software","Energy","Agriculture","Social Services","Administrative","Government & Public Sector","Art & Design","Food & Beverage","Transportation","Consulting","Sports & Recreation","Security & Safety"]},"description":"BETA: Filter by primary AI taxonomy."},"aiTaxonomiesExclusionFilter":{"type":"array","items":{"type":"string","enum":["Technology","Healthcare","Management & Leadership","Finance & Accounting","Human Resources","Sales","Marketing","Customer Service & Support","Education","Legal","Engineering","Science & Research","Trades","Construction","Manufacturing","Logistics","Creative & Media","Hospitality","Environmental & Sustainability","Retail","Data & Analytics","Software","Energy","Agriculture","Social Services","Administrative","Government & Public Sector","Art & Design","Food & Beverage","Transportation","Consulting","Sports & Recreation","Security & Safety"]},"description":"BETA: Exclude jobs by AI taxonomies. Warning: very broad — may exclude unintended jobs."},"populateAiRemoteLocation":{"type":"boolean","description":"Populate ai_remote_location with locations_derived when ai_remote_location is empty."},"populateAiRemoteLocationDerived":{"type":"boolean","description":"Populate ai_remote_location_derived with locations_derived when ai_remote_location_derived is empty."},"includeLinkedIn":{"type":"boolean","default":false,"description":"BETA: Include LinkedIn company data (employees, industry, URL). AI-mapped with 99% accuracy; over 95% of jobs have data."},"liIndustryFilter":{"type":"array","items":{"type":"string"},"description":"BETA: Filter by LinkedIn industry names (exact match)."},"liOrganizationEmployeesLte":{"type":"integer","minimum":0,"description":"BETA: Maximum number of employees in the company."},"liOrganizationEmployeesGte":{"type":"integer","minimum":0,"description":"BETA: Minimum number of employees in the company."}},"title":"CareerSiteJobsSearchRequest","example":{"titleSearch":["Account Executive"],"locationSearch":["New York, New York, United States"],"timeRange":"7d","limit":10,"includeAi":true,"removeAgency":true}}}}},"responses":{"202":{"description":"Job accepted. Poll the returned `jobId` for results.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CareerSiteJobsSubmitResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/career-site-jobs/search/{jobId}":{"get":{"x-credits-cost":{"amount":0,"unit":"call","billing_shape":"per_call"},"summary":"Get Career Site Job Listing API result","description":"Poll the status of a career site job search job. Returns `202` while in progress, `200` with results when done. Completed results are cached — repeated calls are free and instant. Credits: free.","tags":["Career Site Jobs"],"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"integer","minimum":0,"exclusiveMinimum":true,"maximum":2147483647},"required":true,"name":"jobId","in":"path"}],"responses":{"200":{"description":"Job status. When `status` is `done`, `jobs` contains the scraped job listings.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CareerSiteJobsPollResponse"}}}},"202":{"description":"Job is still running — poll again shortly.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CareerSiteJobsPollResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"404":{"description":"Job not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"410":{"description":"Job expired — credits refunded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/serper/search":{"post":{"summary":"Google Search","description":"Run a Google web search and get structured results including organic listings, knowledge graph, answer boxes, people-also-ask, and related searches. Credits: flat charge per call regardless of how many rows come back. Call get_endpoint_details for the live rate. Managed alternative: `POST /v1/web/search` (Web Search) runs this provider inside a ranked waterfall with charge-on-success billing and one normalized response shape, and falls back to the other providers for this capability on a miss. Call this endpoint directly when you specifically want this provider and no fallback.","tags":["Serper"],"x-credits-cost":{"amount":0.063,"unit":"call","billing_shape":"per_call"},"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SerperSearchRequest"}}}},"responses":{"200":{"description":"Google search results","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SerperResponse"}}}},"400":{"description":"Bad request (upstream validation error)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/serper/news":{"post":{"summary":"Google News Search","description":"Search Google News for recent articles. Use the `tbs` parameter to filter by recency (e.g. qdr:d for past day, qdr:w for past week). Credits: flat charge per call regardless of how many rows come back. Call get_endpoint_details for the live rate.","tags":["Serper"],"x-credits-cost":{"amount":0.063,"unit":"call","billing_shape":"per_call"},"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SerperNewsRequest"}}}},"responses":{"200":{"description":"News search results","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SerperResponse"}}}},"400":{"description":"Bad request (upstream validation error)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/serper/images":{"post":{"summary":"Google Images Search","description":"Search Google Images and get image URLs, dimensions, titles, and source pages. Credits: flat charge per call regardless of how many rows come back. Call get_endpoint_details for the live rate.","tags":["Serper"],"x-credits-cost":{"amount":0.063,"unit":"call","billing_shape":"per_call"},"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SerperImagesRequest"}}}},"responses":{"200":{"description":"Image search results","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SerperResponse"}}}},"400":{"description":"Bad request (upstream validation error)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/serper/videos":{"post":{"summary":"Google Videos Search","description":"Search Google Videos and get video titles, links, sources, durations, and thumbnails. Credits: flat charge per call regardless of how many rows come back. Call get_endpoint_details for the live rate.","tags":["Serper"],"x-credits-cost":{"amount":0.063,"unit":"call","billing_shape":"per_call"},"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SerperVideosRequest"}}}},"responses":{"200":{"description":"Video search results","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SerperResponse"}}}},"400":{"description":"Bad request (upstream validation error)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/serper/places":{"post":{"summary":"Google Places Search","description":"Search Google Maps / Places for businesses and locations. Returns name, address, coordinates, rating, phone, website, and type. Credits: flat charge per call regardless of how many rows come back. Call get_endpoint_details for the live rate.","tags":["Serper"],"x-credits-cost":{"amount":0.063,"unit":"call","billing_shape":"per_call"},"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SerperPlacesRequest"}}}},"responses":{"200":{"description":"Places search results","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SerperResponse"}}}},"400":{"description":"Bad request (upstream validation error)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/serper/shopping":{"post":{"summary":"Google Shopping Search","description":"Search Google Shopping for product listings with prices, sources, ratings, and delivery information. Credits: flat charge per call regardless of how many rows come back. Call get_endpoint_details for the live rate.","tags":["Serper"],"x-credits-cost":{"amount":0.063,"unit":"call","billing_shape":"per_call"},"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SerperShoppingRequest"}}}},"responses":{"200":{"description":"Shopping search results","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SerperResponse"}}}},"400":{"description":"Bad request (upstream validation error)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/serper/scholar":{"post":{"summary":"Google Scholar Search","description":"Search Google Scholar for academic papers and citations. Credits: flat charge per call regardless of how many rows come back. Call get_endpoint_details for the live rate.","tags":["Serper"],"x-credits-cost":{"amount":0.063,"unit":"call","billing_shape":"per_call"},"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SerperScholarRequest"}}}},"responses":{"200":{"description":"Scholar search results","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SerperResponse"}}}},"400":{"description":"Bad request (upstream validation error)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/serper/patents":{"post":{"summary":"Google Patents Search","description":"Search Google Patents for patent filings by keyword, inventor, or company. Credits: flat charge per call regardless of how many rows come back. Call get_endpoint_details for the live rate.","tags":["Serper"],"x-credits-cost":{"amount":0.063,"unit":"call","billing_shape":"per_call"},"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SerperPatentsRequest"}}}},"responses":{"200":{"description":"Patent search results","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SerperResponse"}}}},"400":{"description":"Bad request (upstream validation error)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/serper/autocomplete":{"post":{"summary":"Google Autocomplete","description":"Get Google search autocomplete suggestions for a partial query. Credits: flat charge per call regardless of how many rows come back. Call get_endpoint_details for the live rate.","tags":["Serper"],"x-credits-cost":{"amount":0.063,"unit":"call","billing_shape":"per_call"},"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SerperAutocompleteRequest"}}}},"responses":{"200":{"description":"Autocomplete suggestions","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SerperResponse"}}}},"400":{"description":"Bad request (upstream validation error)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/influencers-club/creators/enrich/email":{"post":{"summary":"Enrich by Email","description":"Look up a creator profile by their email address. Returns 40+ data points including follower counts, engagement rates, contact details, and cross-platform social profiles. Credits: flat charge per call regardless of how many rows come back. Call get_endpoint_details for the live rate.","tags":["Influencers Club"],"x-credits-cost":{"amount":125.58,"unit":"call","billing_shape":"per_call"},"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InfluencersClubEnrichByEmailRequest"}}}},"responses":{"200":{"description":"Creator profile","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InfluencersClubResponse"}}}},"400":{"description":"Bad request (upstream validation error)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/influencers-club/creators/enrich/handle/full":{"post":{"summary":"Enrich by Handle - Full","description":"Enrich a creator profile by platform handle with full processed data. Returns 40+ enriched data points including verified email, estimated income, audience demographics, and engagement metrics. Credits: flat charge per call regardless of how many rows come back. Call get_endpoint_details for the live rate.","tags":["Influencers Club"],"x-credits-cost":{"amount":125.58,"unit":"call","billing_shape":"per_call"},"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InfluencersClubEnrichByHandleFullRequest"}}}},"responses":{"200":{"description":"Enriched creator profile","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InfluencersClubResponse"}}}},"400":{"description":"Bad request (upstream validation error)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/influencers-club/creators/enrich/handle/raw":{"post":{"summary":"Enrich by Handle - Raw","description":"Enrich a creator profile by platform handle and return the unprocessed raw data directly from the platform. Credits: flat charge per call regardless of how many rows come back. Call get_endpoint_details for the live rate.","tags":["Influencers Club"],"x-credits-cost":{"amount":125.58,"unit":"call","billing_shape":"per_call"},"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InfluencersClubEnrichByHandleRawRequest"}}}},"responses":{"200":{"description":"Raw creator profile data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InfluencersClubResponse"}}}},"400":{"description":"Bad request (upstream validation error)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/influencers-club/discovery":{"post":{"summary":"Discovery","description":"Search and filter creators across platforms using audience demographics, engagement metrics, location, and AI-powered natural language queries. Returns paginated creator profiles. Credits: bills only for returned results, per result; reserved up-front for the requested size and settled to the actual count (see X-ColdIQ-Credits-Charged). Call get_endpoint_details for the live rate. Managed alternative: `POST /v1/influencers/find` (Find Influencers) runs this provider inside a ranked waterfall with charge-on-success billing and one normalized response shape, and falls back to the other providers for this capability on a miss. Call this endpoint directly when you specifically want this provider and no fallback.","tags":["Influencers Club"],"x-credits-cost":{"amount":125.58,"unit":"result","billing_shape":"per_result"},"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InfluencersClubDiscoveryRequest"}}}},"responses":{"200":{"description":"Matching creator profiles","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InfluencersClubResponse"}}}},"400":{"description":"Bad request (upstream validation error)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/influencers-club/discovery/creators/similar":{"post":{"summary":"Find Lookalikes","description":"Find creators similar to a given handle on the same platform. Returns ranked lookalike profiles based on content, audience, and engagement patterns. Credits: bills only for returned results, per result; reserved up-front for the requested size and settled to the actual count (see X-ColdIQ-Credits-Charged). Call get_endpoint_details for the live rate. Managed alternative: `POST /v1/influencers/find` (Find Influencers) runs this provider inside a ranked waterfall with charge-on-success billing and one normalized response shape, and falls back to the other providers for this capability on a miss. Call this endpoint directly when you specifically want this provider and no fallback.","tags":["Influencers Club"],"x-credits-cost":{"amount":125.58,"unit":"result","billing_shape":"per_result"},"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InfluencersClubFindSimilarCreatorsRequest"}}}},"responses":{"200":{"description":"Similar creator profiles","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InfluencersClubResponse"}}}},"400":{"description":"Bad request (upstream validation error)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/signalbase/funding-signals":{"get":{"summary":"Get Funding Signals","description":"Fetch funding signals with filtering, pagination, and search capabilities. Returns a list of companies with funding activity including round types, amounts, and investor information. Credits: flat charge per call regardless of how many rows come back. Call get_endpoint_details for the live rate. Managed alternative: `POST /v1/signals/find` (Find Signals) runs this provider inside a ranked waterfall with charge-on-success billing and one normalized response shape, and falls back to the other providers for this capability on a miss. Call this endpoint directly when you specifically want this provider and no fallback.","tags":["Signalbase"],"x-credits-cost":{"amount":3.5,"unit":"call","billing_shape":"per_call"},"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"integer","minimum":1,"example":1,"description":"Page number (default: 1)"},"required":false,"description":"Page number (default: 1)","name":"page","in":"query"},{"schema":{"type":"integer","minimum":1,"maximum":100,"example":20,"description":"Results per page (max: 100, default: 20)"},"required":false,"description":"Results per page (max: 100, default: 20)","name":"limit","in":"query"},{"schema":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$","example":"2025-01-01","description":"Start date (ISO 8601: YYYY-MM-DD)"},"required":false,"description":"Start date (ISO 8601: YYYY-MM-DD)","name":"dateFrom","in":"query"},{"schema":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$","description":"End date (ISO 8601: YYYY-MM-DD)"},"required":false,"description":"End date (ISO 8601: YYYY-MM-DD)","name":"dateTo","in":"query"},{"schema":{"type":"string","enum":["today","yesterday","last_7d","last_14d","last_30d","last_60d","last_90d","last_6m","last_1y","last_2y","this_week","this_month","this_quarter","this_year","last_week","last_month","last_quarter","last_year"],"description":"Relative date shortcut"},"required":false,"description":"Relative date shortcut","name":"date_preset","in":"query"},{"schema":{"type":"string","maxLength":256,"example":"US,GB","description":"Comma-separated country codes"},"required":false,"description":"Comma-separated country codes","name":"countries","in":"query"},{"schema":{"type":"string","maxLength":256,"description":"Pipe-separated category list"},"required":false,"description":"Pipe-separated category list","name":"categories","in":"query"},{"schema":{"type":"string","maxLength":256,"example":"Software","description":"Comma-separated industry names (exact match)"},"required":false,"description":"Comma-separated industry names (exact match)","name":"industry","in":"query"},{"schema":{"type":"string","maxLength":256,"example":"ai,saas","description":"Comma-separated subcategory IDs"},"required":false,"description":"Comma-separated subcategory IDs","name":"subcategories","in":"query"},{"schema":{"type":"string","maxLength":256,"example":"Seed,Series A","description":"Comma-separated round types"},"required":false,"description":"Comma-separated round types","name":"round","in":"query"},{"schema":{"type":"string","maxLength":256,"description":"Comma-separated round flavors: bridge, extension, secondary"},"required":false,"description":"Comma-separated round flavors: bridge, extension, secondary","name":"round_flavor","in":"query"},{"schema":{"type":"integer","nullable":true,"minimum":0,"description":"Minimum funding amount (USD cents)"},"required":false,"description":"Minimum funding amount (USD cents)","name":"amount_min","in":"query"},{"schema":{"type":"integer","nullable":true,"minimum":0,"description":"Maximum funding amount (USD cents)"},"required":false,"description":"Maximum funding amount (USD cents)","name":"amount_max","in":"query"},{"schema":{"type":"string","maxLength":16,"description":"Currency symbol filter"},"required":false,"description":"Currency symbol filter","name":"currency","in":"query"},{"schema":{"type":"string","maxLength":512,"example":"ColdIQ","description":"Search company name or industry keywords"},"required":false,"description":"Search company name or industry keywords","name":"search","in":"query"},{"schema":{"type":"string","maxLength":512,"description":"Partial match on company name"},"required":false,"description":"Partial match on company name","name":"company_name","in":"query"},{"schema":{"type":"string","maxLength":512,"description":"Partial match on investor name"},"required":false,"description":"Partial match on investor name","name":"investor_name","in":"query"},{"schema":{"type":"string","maxLength":256,"description":"Comma-separated: verified, unverified, pending"},"required":false,"description":"Comma-separated: verified, unverified, pending","name":"verification_status","in":"query"},{"schema":{"type":"integer","nullable":true,"minimum":0,"description":"Minimum employee count"},"required":false,"description":"Minimum employee count","name":"employee_count_min","in":"query"},{"schema":{"type":"integer","nullable":true,"minimum":0,"description":"Maximum employee count"},"required":false,"description":"Maximum employee count","name":"employee_count_max","in":"query"},{"schema":{"type":"integer","minimum":1800,"maximum":2100,"description":"Minimum founded year"},"required":false,"description":"Minimum founded year","name":"founded_year_min","in":"query"},{"schema":{"type":"integer","minimum":1800,"maximum":2100,"description":"Maximum founded year"},"required":false,"description":"Maximum founded year","name":"founded_year_max","in":"query"},{"schema":{"type":"string","enum":["occurred_at","discovered_at","amount","employee_count","founded_year"],"description":"Sort field (default: occurred_at)"},"required":false,"description":"Sort field (default: occurred_at)","name":"sort_by","in":"query"},{"schema":{"type":"string","enum":["asc","desc"],"description":"Sort direction (default: desc)"},"required":false,"description":"Sort direction (default: desc)","name":"sort_order","in":"query"},{"schema":{"type":"string","enum":["true"],"description":"Set to \"true\" to return only pagination metadata (no credits charged)"},"required":false,"description":"Set to \"true\" to return only pagination metadata (no credits charged)","name":"count","in":"query"}],"responses":{"200":{"description":"Funding signals","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SignalbaseResponse"}}}},"400":{"description":"Bad request (upstream validation error)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/signalbase/acquisition-signals":{"get":{"summary":"Get Acquisition Signals","description":"Fetch acquisition signals with filtering, pagination, and search capabilities. Returns acquisition events with acquired company details, acquiring company information, deal amounts, and source references. Credits: flat charge per call regardless of how many rows come back. Call get_endpoint_details for the live rate. Managed alternative: `POST /v1/signals/find` (Find Signals) runs this provider inside a ranked waterfall with charge-on-success billing and one normalized response shape, and falls back to the other providers for this capability on a miss. Call this endpoint directly when you specifically want this provider and no fallback.","tags":["Signalbase"],"x-credits-cost":{"amount":3.5,"unit":"call","billing_shape":"per_call"},"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"integer","minimum":1,"example":1,"description":"Page number (default: 1)"},"required":false,"description":"Page number (default: 1)","name":"page","in":"query"},{"schema":{"type":"integer","minimum":1,"maximum":100,"example":20,"description":"Results per page (max: 100, default: 20)"},"required":false,"description":"Results per page (max: 100, default: 20)","name":"limit","in":"query"},{"schema":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$","example":"2025-01-01","description":"Start date (ISO 8601: YYYY-MM-DD)"},"required":false,"description":"Start date (ISO 8601: YYYY-MM-DD)","name":"dateFrom","in":"query"},{"schema":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$","description":"End date (ISO 8601: YYYY-MM-DD)"},"required":false,"description":"End date (ISO 8601: YYYY-MM-DD)","name":"dateTo","in":"query"},{"schema":{"type":"string","enum":["today","yesterday","last_7d","last_14d","last_30d","last_60d","last_90d","last_6m","last_1y","last_2y","this_week","this_month","this_quarter","this_year","last_week","last_month","last_quarter","last_year"],"description":"Relative date shortcut"},"required":false,"description":"Relative date shortcut","name":"date_preset","in":"query"},{"schema":{"type":"string","maxLength":256,"example":"US,GB","description":"Comma-separated country codes"},"required":false,"description":"Comma-separated country codes","name":"countries","in":"query"},{"schema":{"type":"string","maxLength":256,"description":"Pipe-separated category list"},"required":false,"description":"Pipe-separated category list","name":"categories","in":"query"},{"schema":{"type":"string","maxLength":256,"description":"Comma-separated industry names (exact match)"},"required":false,"description":"Comma-separated industry names (exact match)","name":"industry","in":"query"},{"schema":{"type":"string","maxLength":256,"description":"Comma-separated subcategory IDs"},"required":false,"description":"Comma-separated subcategory IDs","name":"subcategories","in":"query"},{"schema":{"type":"string","maxLength":512,"example":"Microsoft","description":"Search company name or keywords"},"required":false,"description":"Search company name or keywords","name":"search","in":"query"},{"schema":{"type":"string","maxLength":512,"description":"Partial match on acquired company name"},"required":false,"description":"Partial match on acquired company name","name":"company_name","in":"query"},{"schema":{"type":"string","maxLength":512,"description":"Partial match on acquiring company name"},"required":false,"description":"Partial match on acquiring company name","name":"acquiring_company","in":"query"},{"schema":{"type":"integer","nullable":true,"minimum":0,"description":"Minimum deal amount (USD cents)"},"required":false,"description":"Minimum deal amount (USD cents)","name":"amount_min","in":"query"},{"schema":{"type":"integer","nullable":true,"minimum":0,"description":"Maximum deal amount (USD cents)"},"required":false,"description":"Maximum deal amount (USD cents)","name":"amount_max","in":"query"},{"schema":{"type":"string","maxLength":16,"description":"Currency symbol filter"},"required":false,"description":"Currency symbol filter","name":"currency","in":"query"},{"schema":{"type":"integer","nullable":true,"minimum":0,"description":"Minimum employee count"},"required":false,"description":"Minimum employee count","name":"employee_count_min","in":"query"},{"schema":{"type":"integer","nullable":true,"minimum":0,"description":"Maximum employee count"},"required":false,"description":"Maximum employee count","name":"employee_count_max","in":"query"},{"schema":{"type":"integer","minimum":1800,"maximum":2100,"description":"Minimum founded year"},"required":false,"description":"Minimum founded year","name":"founded_year_min","in":"query"},{"schema":{"type":"integer","minimum":1800,"maximum":2100,"description":"Maximum founded year"},"required":false,"description":"Maximum founded year","name":"founded_year_max","in":"query"},{"schema":{"type":"string","maxLength":256,"description":"Comma-separated: verified, unverified, pending"},"required":false,"description":"Comma-separated: verified, unverified, pending","name":"verification_status","in":"query"},{"schema":{"type":"string","enum":["occurred_at","discovered_at","amount","employee_count"],"description":"Sort field (default: occurred_at)"},"required":false,"description":"Sort field (default: occurred_at)","name":"sort_by","in":"query"},{"schema":{"type":"string","enum":["asc","desc"],"description":"Sort direction (default: desc)"},"required":false,"description":"Sort direction (default: desc)","name":"sort_order","in":"query"},{"schema":{"type":"string","enum":["true"],"description":"Set to \"true\" to return only pagination metadata (no credits charged)"},"required":false,"description":"Set to \"true\" to return only pagination metadata (no credits charged)","name":"count","in":"query"}],"responses":{"200":{"description":"Acquisition signals","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SignalbaseResponse"}}}},"400":{"description":"Bad request (upstream validation error)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/signalbase/job-change-signals":{"get":{"summary":"Get Job Change Signals","description":"Fetch job change signals with filtering, pagination, and search. Supports role-aware position filters, department and seniority filters, LinkedIn targeting, and field-specific search. Person names are GDPR-masked (first name + last initial only). Credits: flat charge per call regardless of how many rows come back. Call get_endpoint_details for the live rate. Managed alternative: `POST /v1/signals/find` (Find Signals) runs this provider inside a ranked waterfall with charge-on-success billing and one normalized response shape, and falls back to the other providers for this capability on a miss. Call this endpoint directly when you specifically want this provider and no fallback.","tags":["Signalbase"],"x-credits-cost":{"amount":3.5,"unit":"call","billing_shape":"per_call"},"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"integer","minimum":1,"example":1,"description":"Page number (default: 1)"},"required":false,"description":"Page number (default: 1)","name":"page","in":"query"},{"schema":{"type":"integer","minimum":1,"maximum":100,"example":20,"description":"Results per page (max: 100, default: 20)"},"required":false,"description":"Results per page (max: 100, default: 20)","name":"limit","in":"query"},{"schema":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$","example":"2025-01-01","description":"Start date (ISO 8601: YYYY-MM-DD)"},"required":false,"description":"Start date (ISO 8601: YYYY-MM-DD)","name":"dateFrom","in":"query"},{"schema":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$","description":"End date (ISO 8601: YYYY-MM-DD)"},"required":false,"description":"End date (ISO 8601: YYYY-MM-DD)","name":"dateTo","in":"query"},{"schema":{"type":"string","enum":["today","yesterday","last_7d","last_14d","last_30d","last_60d","last_90d","last_6m","last_1y","last_2y","this_week","this_month","this_quarter","this_year","last_week","last_month","last_quarter","last_year"],"description":"Relative date shortcut"},"required":false,"description":"Relative date shortcut","name":"date_preset","in":"query"},{"schema":{"type":"string","maxLength":512,"example":"ColdIQ","description":"Free-text search"},"required":false,"description":"Free-text search","name":"search","in":"query"},{"schema":{"type":"string","maxLength":256,"example":"US","description":"Comma-separated country codes"},"required":false,"description":"Comma-separated country codes","name":"countries","in":"query"},{"schema":{"type":"string","maxLength":256,"description":"City name filter"},"required":false,"description":"City name filter","name":"city","in":"query"},{"schema":{"type":"string","maxLength":512,"description":"Search by person name (GDPR-masked: first name + last initial)"},"required":false,"description":"Search by person name (GDPR-masked: first name + last initial)","name":"person_name","in":"query"},{"schema":{"type":"string","maxLength":512,"description":"Partial match on company name"},"required":false,"description":"Partial match on company name","name":"company_name","in":"query"},{"schema":{"type":"string","maxLength":512,"description":"Filter by person LinkedIn URL"},"required":false,"description":"Filter by person LinkedIn URL","name":"personLinkedinUrl","in":"query"},{"schema":{"type":"string","maxLength":512,"description":"Filter by company LinkedIn URL"},"required":false,"description":"Filter by company LinkedIn URL","name":"companyLinkedinUrl","in":"query"},{"schema":{"type":"string","maxLength":256,"description":"Filter by new role title"},"required":false,"description":"Filter by new role title","name":"new_role","in":"query"},{"schema":{"type":"string","maxLength":256,"example":"ceo,cto","description":"Comma-separated position filters"},"required":false,"description":"Comma-separated position filters","name":"positions","in":"query"},{"schema":{"type":"string","maxLength":256,"example":"engineering,product","description":"Comma-separated department filters"},"required":false,"description":"Comma-separated department filters","name":"departments","in":"query"},{"schema":{"type":"string","maxLength":256,"example":"c_level,vp","description":"Comma-separated seniority filters"},"required":false,"description":"Comma-separated seniority filters","name":"seniorities","in":"query"},{"schema":{"type":"string","maxLength":256,"description":"Source filter: linkedin, press_release, other"},"required":false,"description":"Source filter: linkedin, press_release, other","name":"source","in":"query"},{"schema":{"type":"string","maxLength":512,"description":"Keyword filter"},"required":false,"description":"Keyword filter","name":"keyword","in":"query"},{"schema":{"type":"string","enum":["occurred_at","discovered_at","person_name","company_name"],"description":"Sort field (default: occurred_at)"},"required":false,"description":"Sort field (default: occurred_at)","name":"sort_by","in":"query"},{"schema":{"type":"string","enum":["asc","desc"],"description":"Sort direction (default: desc)"},"required":false,"description":"Sort direction (default: desc)","name":"sort_order","in":"query"},{"schema":{"type":"string","enum":["true"],"description":"Set to \"true\" to return only pagination metadata (no credits charged)"},"required":false,"description":"Set to \"true\" to return only pagination metadata (no credits charged)","name":"count","in":"query"}],"responses":{"200":{"description":"Job change signals","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SignalbaseResponse"}}}},"400":{"description":"Bad request (upstream validation error)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/signalbase/hiring-signals":{"get":{"summary":"Get Hiring Signals","description":"Fetch hiring signals (open job postings) with filtering, pagination, and search. Supports role-aware position filters, department and seniority filters, location targeting, team size, and applicant range filtering. Credits: flat charge per call regardless of how many rows come back. Call get_endpoint_details for the live rate. Managed alternative: `POST /v1/signals/find` (Find Signals) runs this provider inside a ranked waterfall with charge-on-success billing and one normalized response shape, and falls back to the other providers for this capability on a miss. Call this endpoint directly when you specifically want this provider and no fallback.","tags":["Signalbase"],"x-credits-cost":{"amount":3.5,"unit":"call","billing_shape":"per_call"},"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"integer","minimum":1,"example":1,"description":"Page number (default: 1)"},"required":false,"description":"Page number (default: 1)","name":"page","in":"query"},{"schema":{"type":"integer","minimum":1,"maximum":100,"example":20,"description":"Results per page (max: 100, default: 20)"},"required":false,"description":"Results per page (max: 100, default: 20)","name":"limit","in":"query"},{"schema":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$","example":"2025-01-01","description":"Start date (ISO 8601: YYYY-MM-DD)"},"required":false,"description":"Start date (ISO 8601: YYYY-MM-DD)","name":"dateFrom","in":"query"},{"schema":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$","description":"End date (ISO 8601: YYYY-MM-DD)"},"required":false,"description":"End date (ISO 8601: YYYY-MM-DD)","name":"dateTo","in":"query"},{"schema":{"type":"string","enum":["today","yesterday","last_7d","last_14d","last_30d","last_60d","last_90d","last_6m","last_1y","last_2y","this_week","this_month","this_quarter","this_year","last_week","last_month","last_quarter","last_year"],"description":"Relative date shortcut"},"required":false,"description":"Relative date shortcut","name":"date_preset","in":"query"},{"schema":{"type":"string","maxLength":512,"example":"ColdIQ","description":"Free-text search across company, industry, job title, location, city"},"required":false,"description":"Free-text search across company, industry, job title, location, city","name":"search","in":"query"},{"schema":{"type":"string","maxLength":256,"example":"US,GB","description":"Comma-separated country codes"},"required":false,"description":"Comma-separated country codes","name":"countries","in":"query"},{"schema":{"type":"string","maxLength":256,"description":"Comma-separated state codes"},"required":false,"description":"Comma-separated state codes","name":"states","in":"query"},{"schema":{"type":"string","maxLength":256,"description":"City name filter"},"required":false,"description":"City name filter","name":"city","in":"query"},{"schema":{"type":"string","maxLength":256,"description":"Pipe-separated category list"},"required":false,"description":"Pipe-separated category list","name":"categories","in":"query"},{"schema":{"type":"string","maxLength":256,"example":"ai,saas","description":"Comma-separated subcategory IDs"},"required":false,"description":"Comma-separated subcategory IDs","name":"subcategories","in":"query"},{"schema":{"type":"string","maxLength":256,"example":"cto,engineering manager","description":"Comma-separated position filters"},"required":false,"description":"Comma-separated position filters","name":"positions","in":"query"},{"schema":{"type":"string","maxLength":256,"example":"engineering,product","description":"Comma-separated department filters"},"required":false,"description":"Comma-separated department filters","name":"departments","in":"query"},{"schema":{"type":"string","maxLength":256,"example":"c_level,director","description":"Comma-separated seniority filters"},"required":false,"description":"Comma-separated seniority filters","name":"seniorities","in":"query"},{"schema":{"type":"string","maxLength":64,"description":"Team size range: 1-10, 11-50, 51-200, 201-1000, 1000-plus"},"required":false,"description":"Team size range: 1-10, 11-50, 51-200, 201-1000, 1000-plus","name":"team_size","in":"query"},{"schema":{"type":"string","maxLength":64,"description":"Applicant range: 0-25, 26-50, 51-100, 101-200, 201-plus"},"required":false,"description":"Applicant range: 0-25, 26-50, 51-100, 101-200, 201-plus","name":"applicants","in":"query"},{"schema":{"type":"string","enum":["date_posted","created_at","title","company_name","location"],"description":"Sort field (default: created_at)"},"required":false,"description":"Sort field (default: created_at)","name":"sort_by","in":"query"},{"schema":{"type":"string","enum":["asc","desc"],"description":"Sort direction (default: desc)"},"required":false,"description":"Sort direction (default: desc)","name":"sort_order","in":"query"},{"schema":{"type":"string","enum":["true"],"description":"Set to \"true\" to return only pagination metadata (no credits charged)"},"required":false,"description":"Set to \"true\" to return only pagination metadata (no credits charged)","name":"count","in":"query"}],"responses":{"200":{"description":"Hiring signals","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SignalbaseResponse"}}}},"400":{"description":"Bad request (upstream validation error)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/signalbase/investors":{"get":{"summary":"Get Investors","description":"Fetch investor data with filtering, pagination, and search. Returns venture capital firms, angel investors, PE firms, corporate investors, accelerators, family offices, hedge funds, and crowdfunding platforms. Credits: flat charge per call regardless of how many rows come back. Call get_endpoint_details for the live rate.","tags":["Signalbase"],"x-credits-cost":{"amount":3.5,"unit":"call","billing_shape":"per_call"},"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"integer","minimum":1,"example":1,"description":"Page number (default: 1)"},"required":false,"description":"Page number (default: 1)","name":"page","in":"query"},{"schema":{"type":"integer","minimum":1,"maximum":100,"example":20,"description":"Results per page (max: 100, default: 20)"},"required":false,"description":"Results per page (max: 100, default: 20)","name":"limit","in":"query"},{"schema":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$","description":"Start date (ISO 8601: YYYY-MM-DD)"},"required":false,"description":"Start date (ISO 8601: YYYY-MM-DD)","name":"dateFrom","in":"query"},{"schema":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$","description":"End date (ISO 8601: YYYY-MM-DD)"},"required":false,"description":"End date (ISO 8601: YYYY-MM-DD)","name":"dateTo","in":"query"},{"schema":{"type":"string","enum":["today","yesterday","last_7d","last_14d","last_30d","last_60d","last_90d","last_6m","last_1y","last_2y","this_week","this_month","this_quarter","this_year","last_week","last_month","last_quarter","last_year"],"description":"Relative date shortcut"},"required":false,"description":"Relative date shortcut","name":"date_preset","in":"query"},{"schema":{"type":"string","maxLength":512,"example":"Sequoia","description":"Free-text search across investor names and types"},"required":false,"description":"Free-text search across investor names and types","name":"search","in":"query"},{"schema":{"type":"string","maxLength":256,"example":"US","description":"Comma-separated country codes"},"required":false,"description":"Comma-separated country codes","name":"countries","in":"query"},{"schema":{"type":"string","maxLength":256,"example":"vc","description":"Investor type: vc, angel, pe, corporate, government, accelerator, family_office, hedge_fund, crowdfunding"},"required":false,"description":"Investor type: vc, angel, pe, corporate, government, accelerator, family_office, hedge_fund, crowdfunding","name":"type","in":"query"},{"schema":{"type":"string","maxLength":256,"description":"Legacy pipe-separated investor types"},"required":false,"description":"Legacy pipe-separated investor types","name":"categories","in":"query"},{"schema":{"type":"string","maxLength":512,"description":"Location-based search for headquarters"},"required":false,"description":"Location-based search for headquarters","name":"headquarters","in":"query"},{"schema":{"type":"integer","nullable":true,"minimum":0,"description":"Minimum ticket size (USD)"},"required":false,"description":"Minimum ticket size (USD)","name":"ticket_size_min","in":"query"},{"schema":{"type":"integer","nullable":true,"minimum":0,"description":"Maximum ticket size (USD)"},"required":false,"description":"Maximum ticket size (USD)","name":"ticket_size_max","in":"query"},{"schema":{"type":"string","enum":["name","created_at","ticket_size_min","ticket_size_max"],"description":"Sort field (default: name)"},"required":false,"description":"Sort field (default: name)","name":"sort_by","in":"query"},{"schema":{"type":"string","enum":["asc","desc"],"description":"Sort direction (default: desc)"},"required":false,"description":"Sort direction (default: desc)","name":"sort_order","in":"query"},{"schema":{"type":"string","enum":["true"],"description":"Set to \"true\" to return only pagination metadata (no credits charged)"},"required":false,"description":"Set to \"true\" to return only pagination metadata (no credits charged)","name":"count","in":"query"}],"responses":{"200":{"description":"Investor data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SignalbaseResponse"}}}},"400":{"description":"Bad request (upstream validation error)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/signalbase/companies":{"get":{"summary":"Get Companies","description":"Browse and search companies with filtering, pagination, and sorting. Returns company profiles with industry, headcount, location, and metadata — independent of any signal data. Credits: flat charge per call regardless of how many rows come back. Call get_endpoint_details for the live rate. Managed alternative: `POST /v1/companies/search` (Search Companies) runs this provider inside a ranked waterfall with charge-on-success billing and one normalized response shape, and falls back to the other providers for this capability on a miss. Call this endpoint directly when you specifically want this provider and no fallback.","tags":["Signalbase"],"x-credits-cost":{"amount":3.5,"unit":"call","billing_shape":"per_call"},"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"integer","minimum":1,"example":1,"description":"Page number (default: 1)"},"required":false,"description":"Page number (default: 1)","name":"page","in":"query"},{"schema":{"type":"integer","minimum":1,"maximum":100,"example":20,"description":"Results per page (max: 100, default: 20)"},"required":false,"description":"Results per page (max: 100, default: 20)","name":"limit","in":"query"},{"schema":{"type":"string","maxLength":512,"example":"ColdIQ","description":"Free-text search across name, industry, description, keywords, specialties"},"required":false,"description":"Free-text search across name, industry, description, keywords, specialties","name":"search","in":"query"},{"schema":{"type":"string","maxLength":256,"example":"US,GB","description":"Comma-separated country codes"},"required":false,"description":"Comma-separated country codes","name":"countries","in":"query"},{"schema":{"type":"string","maxLength":256,"example":"Software","description":"Comma-separated industry names (exact match)"},"required":false,"description":"Comma-separated industry names (exact match)","name":"industry","in":"query"},{"schema":{"type":"integer","nullable":true,"minimum":0,"description":"Minimum employee count"},"required":false,"description":"Minimum employee count","name":"employee_count_min","in":"query"},{"schema":{"type":"integer","nullable":true,"minimum":0,"description":"Maximum employee count"},"required":false,"description":"Maximum employee count","name":"employee_count_max","in":"query"},{"schema":{"type":"integer","minimum":1800,"maximum":2100,"description":"Minimum founded year"},"required":false,"description":"Minimum founded year","name":"founded_year_min","in":"query"},{"schema":{"type":"integer","minimum":1800,"maximum":2100,"description":"Maximum founded year"},"required":false,"description":"Maximum founded year","name":"founded_year_max","in":"query"},{"schema":{"type":"string","enum":["name","employee_count","founded_year","created_at"],"description":"Sort field (default: name)"},"required":false,"description":"Sort field (default: name)","name":"sort_by","in":"query"},{"schema":{"type":"string","enum":["asc","desc"],"description":"Sort direction (default: desc)"},"required":false,"description":"Sort direction (default: desc)","name":"sort_order","in":"query"},{"schema":{"type":"string","enum":["true"],"description":"Set to \"true\" to return only pagination metadata (no credits charged)"},"required":false,"description":"Set to \"true\" to return only pagination metadata (no credits charged)","name":"count","in":"query"}],"responses":{"200":{"description":"Company profiles","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SignalbaseResponse"}}}},"400":{"description":"Bad request (upstream validation error)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/leadsfactory/contact-finder/searches":{"post":{"x-credits-cost":{"amount":0.35,"unit":"contact","billing_shape":"per_result"},"summary":"Find People — Create Search","description":"Find contacts by job title and seniority across a list of company LinkedIn URLs. Submit a list of companies + personas (e.g. \"Head of Sales, VP level\") and receive matching contacts progressively via webhook — one call per contact found. Cost: 1 credit per contact found, deducted as results arrive. Requires at least 1 credit to start. Credits: bills only for returned results, per contact; reserved up-front for the requested size and settled to the actual count (see X-ColdIQ-Credits-Charged). Call get_endpoint_details for the live rate. Managed alternative: `POST /v1/people/search` (Find People) runs this provider inside a ranked waterfall with charge-on-success billing and one normalized response shape, and falls back to the other providers for this capability on a miss. Call this endpoint directly when you specifically want this provider and no fallback.","tags":["LeadsFactory"],"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","example":"ColdIQ Outbound - Q2"},"company_linkedin_urls":{"type":"array","items":{"type":"string","format":"uri"},"maxItems":500,"example":["https://www.linkedin.com/company/microsoft","https://www.linkedin.com/company/google"]},"company_domains":{"type":"array","items":{"type":"string"},"maxItems":500,"example":["microsoft.com","google.com"]},"search":{"$ref":"#/components/schemas/LeadsFactorySearch"},"webhook_url":{"type":"string","format":"uri","example":"https://your-server.com/webhooks/leadsfactory"},"custom_metadata":{"type":"object","additionalProperties":{"nullable":true},"example":{"campaign_id":"q2-outbound"}},"send_webhook_on_no_results":{"type":"boolean"}},"required":["search"],"example":{"name":"ColdIQ Outbound - Q2","company_linkedin_urls":["https://www.linkedin.com/company/microsoft","https://www.linkedin.com/company/google"],"search":{"max_persona_results":3,"personas":[{"job_title":"Head of Sales","seniority":["Director","VP","C-suite"]}]}}}}}},"responses":{"201":{"description":"Search started — use the returned `id` (MongoDB ObjectId) to poll for status","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LeadsFactoryCreateSearchResponse"}}}},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/leadsfactory/contact-finder/searches/{id}":{"get":{"x-credits-cost":{"amount":0,"unit":"call","billing_shape":"per_call"},"summary":"Find People — Get Search Status","description":"Poll the status and progress of a Find People search. Pass the `id` (MongoDB ObjectId) field returned by Create Search — NOT the short `search_id` field, which the upstream poll endpoint does not accept. Add `?include_contacts=true` to also get back the contacts this search has delivered, in `delivered_contacts` — use it when you did not register a `webhook_url` at Create Search. Paginate with `contacts_limit` and `contacts_after` (`delivered_contacts_next_cursor` from the previous page). Credits: free.","tags":["LeadsFactory"],"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","example":"507f1f77bcf86cd799439011","description":"The MongoDB ObjectId from the `id` field of the Create Search response (not the short `search_id`)."},"required":true,"description":"The MongoDB ObjectId from the `id` field of the Create Search response (not the short `search_id`).","name":"id","in":"path"},{"schema":{"type":"string","description":"Return this search's delivered contacts in `delivered_contacts`. Accepts `true`, `1`, `yes`, `on`, or the bare flag. Defaults to false.","example":"true"},"required":false,"description":"Return this search's delivered contacts in `delivered_contacts`. Accepts `true`, `1`, `yes`, `on`, or the bare flag. Defaults to false.","name":"include_contacts","in":"query"},{"schema":{"type":"integer","minimum":1,"maximum":1000,"description":"Contacts per page (1–1000). Defaults to 500."},"required":false,"description":"Contacts per page (1–1000). Defaults to 500.","name":"contacts_limit","in":"query"},{"schema":{"type":"integer","nullable":true,"minimum":0,"description":"Pass `delivered_contacts_next_cursor` from the previous page to continue. Omit for the first page."},"required":false,"description":"Pass `delivered_contacts_next_cursor` from the previous page to continue. Omit for the first page.","name":"contacts_after","in":"query"}],"responses":{"200":{"description":"Search status and progress","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LeadsFactoryGetSearchResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Search not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/leadsfactory/sn-scraper/jobs":{"post":{"x-credits-cost":{"amount":0.35,"unit":"profile","billing_shape":"per_result"},"summary":"Sales Navigator Scraper — Start Job","description":"Scrape a LinkedIn Sales Navigator search URL using the LeadsFactory shared infrastructure account. Paste any Sales Navigator search URL and receive the full list of matching profiles via webhook when complete. Credits are reserved upfront based on max_profiles (default: 500, max: 500) and unused credits are refunded after the job finishes. Credits: bills only for returned results, per profile; reserved up-front for the requested size and settled to the actual count (see X-ColdIQ-Credits-Charged). Call get_endpoint_details for the live rate.","tags":["LeadsFactory"],"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"sales_nav_url":{"type":"string","format":"uri","example":"https://www.linkedin.com/sales/search/people?query=eyJmaWx0ZXJzIjpbeyJ0eXBlIjoiUkVHSU9OIiwidmFsdWVzIjpbeyJpZCI6IjEwMyIsInRleHQiOiJVbml0ZWQgU3RhdGVzIiwic2VsZWN0ZWQiOnRydWV9XX1dfQ%3D%3D"},"search_name":{"type":"string","example":"ColdIQ - Head of Sales US"},"max_profiles":{"type":"integer","minimum":0,"exclusiveMinimum":true,"maximum":500,"example":500,"description":"Maximum profiles to scrape (max 500). Defaults to 500 if not provided — up to 500 credits will be reserved."},"webhook_url":{"type":"string","format":"uri","example":"https://your-server.com/webhooks/sn-scraper"}},"required":["sales_nav_url"],"example":{"sales_nav_url":"https://www.linkedin.com/sales/search/people?query=eyJmaWx0ZXJzIjpbeyJ0eXBlIjoiUkVHSU9OIiwidmFsdWVzIjpbeyJpZCI6IjEwMyIsInRleHQiOiJVbml0ZWQgU3RhdGVzIiwic2VsZWN0ZWQiOnRydWV9XX1dfQ%3D%3D","search_name":"ColdIQ - Head of Sales US","max_profiles":500}}}}},"responses":{"201":{"description":"Scrape job started — use the returned job_id to poll for status","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LeadsFactoryStartScrapeResponse"}}}},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/leadsfactory/sn-scraper/jobs/{job_id}":{"get":{"x-credits-cost":{"amount":0,"unit":"call","billing_shape":"per_call"},"summary":"Sales Navigator Scraper — Get Job Status","description":"Poll the status and scraped profiles for a Sales Navigator scrape job. Credits: free.","tags":["LeadsFactory"],"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","example":"507f1f77bcf86cd799439011"},"required":true,"name":"job_id","in":"path"}],"responses":{"200":{"description":"Job status and scraped profiles","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LeadsFactoryGetJobResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Job not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/leadmagic/people/email-finder":{"post":{"summary":"Email Finder","description":"Find a person's work email address from their name and company (domain or name). Only a valid found email is charged. Credits: flat charge per call regardless of how many rows come back. Call get_endpoint_details for the live rate. Managed alternative: `POST /v1/email/find` (Find Email) runs this provider inside a ranked waterfall with charge-on-success billing and one normalized response shape, and falls back to the other providers for this capability on a miss. Call this endpoint directly when you specifically want this provider and no fallback.","tags":["LeadMagic"],"x-credits-cost":{"amount":4.16,"unit":"call","billing_shape":"per_call"},"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"first_name":{"type":"string","description":"First name of the person"},"last_name":{"type":"string","description":"Last name of the person"},"full_name":{"type":"string","description":"Full name (alternative to first_name + last_name)"},"domain":{"type":"string","description":"Company domain (required if company_name is not provided)"},"company_name":{"type":"string","description":"Company name (required if domain is not provided)"}},"title":"EmailFinderRequest","example":{"first_name":"Michel","last_name":"Lieben","domain":"coldiq.com"}}}}},"responses":{"200":{"description":"Email finder result","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LeadMagicResponse"}}}},"400":{"description":"Bad request (upstream validation error)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/leadmagic/people/email-validation":{"post":{"summary":"Email Validation","description":"Validate an email address deliverability (SMTP + MX checks) with company enrichment. Only definitive results (valid/invalid) are charged. Credits: flat charge per call regardless of how many rows come back. Call get_endpoint_details for the live rate. Managed alternative: `POST /v1/email/verify` (Verify Email) runs this provider inside a ranked waterfall with charge-on-success billing and one normalized response shape, and falls back to the other providers for this capability on a miss. Call this endpoint directly when you specifically want this provider and no fallback.","tags":["LeadMagic"],"x-credits-cost":{"amount":1.04,"unit":"call","billing_shape":"per_call"},"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"email":{"type":"string","description":"Email address to validate"}},"required":["email"],"title":"EmailValidationRequest","example":{"email":"michel@coldiq.com"}}}}},"responses":{"200":{"description":"Validation result","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LeadMagicResponse"}}}},"400":{"description":"Bad request (upstream validation error)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/leadmagic/people/personal-email-finder":{"post":{"summary":"Personal Email Finder","description":"Find personal email addresses from a B2B profile URL. Only a found email is charged. Credits: flat charge per call regardless of how many rows come back. Call get_endpoint_details for the live rate.","tags":["LeadMagic"],"x-credits-cost":{"amount":8.32,"unit":"call","billing_shape":"per_call"},"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"profile_url":{"type":"string","description":"B2B profile URL or username (full URL or slug)"}},"required":["profile_url"],"title":"PersonalEmailFinderRequest","example":{"profile_url":"https://www.linkedin.com/in/michel-lieben"}}}}},"responses":{"200":{"description":"Personal email result","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LeadMagicResponse"}}}},"400":{"description":"Bad request (upstream validation error)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/leadmagic/people/b2b-profile-email":{"post":{"summary":"B2B Person Profile to Email","description":"Find a validated work email address from a B2B profile URL. Only a found email is charged. Credits: flat charge per call regardless of how many rows come back. Call get_endpoint_details for the live rate.","tags":["LeadMagic"],"x-credits-cost":{"amount":20.79,"unit":"call","billing_shape":"per_call"},"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"profile_url":{"type":"string","description":"B2B profile URL or username (full URL or slug)"}},"required":["profile_url"],"title":"ProfileToEmailRequest","example":{"profile_url":"https://www.linkedin.com/in/michel-lieben"}}}}},"responses":{"200":{"description":"Profile-to-email result","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LeadMagicResponse"}}}},"400":{"description":"Bad request (upstream validation error)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/leadmagic/people/profile-search":{"post":{"summary":"B2B Person Profile","description":"Get full profile data (title, bio, work experience, education) from a B2B profile URL. Only a found profile is charged. Credits: flat charge per call regardless of how many rows come back. Call get_endpoint_details for the live rate. Managed alternative: `POST /v1/person/enrich` (Enrich Person) runs this provider inside a ranked waterfall with charge-on-success billing and one normalized response shape, and falls back to the other providers for this capability on a miss. Call this endpoint directly when you specifically want this provider and no fallback.","tags":["LeadMagic"],"x-credits-cost":{"amount":4.16,"unit":"call","billing_shape":"per_call"},"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"profile_url":{"type":"string","description":"B2B profile URL or username (full URL or slug)"}},"required":["profile_url"],"title":"ProfileSearchRequest","example":{"profile_url":"https://www.linkedin.com/in/michel-lieben"}}}}},"responses":{"200":{"description":"Profile data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LeadMagicResponse"}}}},"400":{"description":"Bad request (upstream validation error)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/leadmagic/people/b2b-profile":{"post":{"summary":"Email Address to B2B Person Profile","description":"Find a person's B2B profile URL from their work or personal email address. Only a found profile is charged. Credits: flat charge per call regardless of how many rows come back. Call get_endpoint_details for the live rate. Managed alternative: `POST /v1/person/enrich` (Enrich Person) runs this provider inside a ranked waterfall with charge-on-success billing and one normalized response shape, and falls back to the other providers for this capability on a miss. Call this endpoint directly when you specifically want this provider and no fallback.","tags":["LeadMagic"],"x-credits-cost":{"amount":41.58,"unit":"call","billing_shape":"per_call"},"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"work_email":{"type":"string","description":"Work email address (one of work_email or personal_email is required)"},"personal_email":{"type":"string","description":"Personal email address (one of work_email or personal_email is required)"}},"title":"EmailToProfileRequest","example":{"work_email":"michel@coldiq.com"}}}}},"responses":{"200":{"description":"Email-to-profile result","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LeadMagicResponse"}}}},"400":{"description":"Bad request (upstream validation error)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/leadmagic/people/mobile-finder":{"post":{"summary":"Mobile Finder","description":"Find a person's mobile phone number from their profile URL or email address. Only a found mobile is charged. Credits: flat charge per call regardless of how many rows come back. Call get_endpoint_details for the live rate. Managed alternative: `POST /v1/phone/find` (Find Phone) runs this provider inside a ranked waterfall with charge-on-success billing and one normalized response shape, and falls back to the other providers for this capability on a miss. Call this endpoint directly when you specifically want this provider and no fallback.","tags":["LeadMagic"],"x-credits-cost":{"amount":20.79,"unit":"call","billing_shape":"per_call"},"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"profile_url":{"type":"string","description":"B2B profile URL or username (one of profile_url, work_email, personal_email is required)"},"work_email":{"type":"string","description":"Work email address"},"personal_email":{"type":"string","description":"Personal email address"}},"title":"MobileFinderRequest","example":{"profile_url":"https://www.linkedin.com/in/michel-lieben"}}}}},"responses":{"200":{"description":"Mobile finder result","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LeadMagicResponse"}}}},"400":{"description":"Bad request (upstream validation error)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/leadmagic/people/job-change-detector":{"post":{"summary":"Job Change Detector","description":"Check whether a person still works at a company, with tenure stats and work history. Charged per check regardless of outcome. Credits: flat charge per call regardless of how many rows come back. Call get_endpoint_details for the live rate.","tags":["LeadMagic"],"x-credits-cost":{"amount":12.47,"unit":"call","billing_shape":"per_call"},"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"profile_url":{"type":"string","description":"B2B profile URL or username of the person to check"},"company_name":{"type":"string","description":"Expected company name (one of company_name or company_domain is required)"},"company_domain":{"type":"string","description":"Expected company domain (one of company_name or company_domain is required)"}},"required":["profile_url"],"title":"JobChangeDetectorRequest","example":{"profile_url":"https://www.linkedin.com/in/michel-lieben","company_domain":"coldiq.com"}}}}},"responses":{"200":{"description":"Job change detection result","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LeadMagicResponse"}}}},"400":{"description":"Bad request (upstream validation error)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/leadmagic/people/role-finder":{"post":{"summary":"Role Finder","description":"Find the first person matching a job title at a company. Only a found person is charged. Credits: flat charge per call regardless of how many rows come back. Call get_endpoint_details for the live rate.","tags":["LeadMagic"],"x-credits-cost":{"amount":8.32,"unit":"call","billing_shape":"per_call"},"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"job_title":{"type":"string","description":"Job title to find (e.g. \"Founder\", \"VP Sales\")"},"company_name":{"type":"string","description":"Company name (one of company_name or company_domain is required)"},"company_domain":{"type":"string","description":"Company domain (one of company_name or company_domain is required)"}},"required":["job_title"],"title":"RoleFinderRequest","example":{"job_title":"Founder","company_domain":"coldiq.com"}}}}},"responses":{"200":{"description":"Role finder result","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LeadMagicResponse"}}}},"400":{"description":"Bad request (upstream validation error)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/leadmagic/people/employee-finder":{"post":{"summary":"Employee Finder","description":"List employees of a company with names, titles, and profile URLs. Billed per employee returned; reserved for the requested limit and settled to the actual count. Credits: bills only for returned results, per employee; reserved up-front for the requested size and settled to the actual count (see X-ColdIQ-Credits-Charged). Call get_endpoint_details for the live rate. Managed alternative: `POST /v1/people/search` (Find People) runs this provider inside a ranked waterfall with charge-on-success billing and one normalized response shape, and falls back to the other providers for this capability on a miss. Call this endpoint directly when you specifically want this provider and no fallback.","tags":["LeadMagic"],"x-credits-cost":{"amount":0.21,"unit":"employee","billing_shape":"per_result"},"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"company_domain":{"type":"string","description":"Company domain (preferred; one of company_domain or company_name is required)"},"company_name":{"type":"string","description":"Company name"},"limit":{"type":"integer","minimum":1,"maximum":100,"description":"Max employees to return (default 10, max 100)"}},"title":"EmployeeFinderRequest","example":{"company_domain":"coldiq.com","limit":10}}}}},"responses":{"200":{"description":"Employee list","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LeadMagicResponse"}}}},"400":{"description":"Bad request (upstream validation error)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/leadmagic/companies/company-search":{"post":{"summary":"Company Search","description":"Get detailed company data (size, industry, funding, competitors) from a domain, name, or profile URL. Only a found company is charged. Credits: flat charge per call regardless of how many rows come back. Call get_endpoint_details for the live rate. Managed alternative: `POST /v1/company/enrich` (Enrich Company) runs this provider inside a ranked waterfall with charge-on-success billing and one normalized response shape, and falls back to the other providers for this capability on a miss. Call this endpoint directly when you specifically want this provider and no fallback.","tags":["LeadMagic"],"x-credits-cost":{"amount":4.16,"unit":"call","billing_shape":"per_call"},"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"profile_url":{"type":"string","description":"Company B2B profile URL or slug (one of profile_url, company_domain, company_name is required)"},"company_domain":{"type":"string","description":"Company domain"},"company_name":{"type":"string","description":"Company name"}},"title":"CompanySearchRequest","example":{"company_domain":"coldiq.com"}}}}},"responses":{"200":{"description":"Company data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LeadMagicResponse"}}}},"400":{"description":"Bad request (upstream validation error)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/leadmagic/companies/company-funding":{"post":{"summary":"Company Funding","description":"Get funding history, financials, leadership, and news for a company. Only found funding data is charged. Credits: flat charge per call regardless of how many rows come back. Call get_endpoint_details for the live rate.","tags":["LeadMagic"],"x-credits-cost":{"amount":16.63,"unit":"call","billing_shape":"per_call"},"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"company_name":{"type":"string","description":"Company name (one of company_name or company_domain is required)"},"company_domain":{"type":"string","description":"Company domain"}},"title":"CompanyFundingRequest","example":{"company_domain":"microsoft.com"}}}}},"responses":{"200":{"description":"Funding data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LeadMagicResponse"}}}},"400":{"description":"Bad request (upstream validation error)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/leadmagic/companies/competitors-search":{"post":{"summary":"Competitors Search","description":"Find competitors of a company with financial and operating metrics. Only found competitors are charged. Credits: flat charge per call regardless of how many rows come back. Call get_endpoint_details for the live rate.","tags":["LeadMagic"],"x-credits-cost":{"amount":20.79,"unit":"call","billing_shape":"per_call"},"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"company_domain":{"type":"string","description":"Company domain (one of company_domain, company_url, company_name is required)"},"company_url":{"type":"string","description":"Company B2B profile URL"},"company_name":{"type":"string","description":"Company name"}},"title":"CompetitorsSearchRequest","example":{"company_domain":"coldiq.com"}}}}},"responses":{"200":{"description":"Competitors list","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LeadMagicResponse"}}}},"400":{"description":"Bad request (upstream validation error)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/leadmagic/companies/technographics":{"post":{"summary":"Company Technographics","description":"List the technologies a company uses, detected from its domain. Only found technology data is charged. Credits: flat charge per call regardless of how many rows come back. Call get_endpoint_details for the live rate.","tags":["LeadMagic"],"x-credits-cost":{"amount":4.16,"unit":"call","billing_shape":"per_call"},"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"company_domain":{"type":"string","description":"Company domain to look up technologies for"}},"required":["company_domain"],"title":"TechnographicsRequest","example":{"company_domain":"coldiq.com"}}}}},"responses":{"200":{"description":"Technographics data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LeadMagicResponse"}}}},"400":{"description":"Bad request (upstream validation error)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/leadmagic/ads/google-ads-search":{"post":{"summary":"Google Ads Search","description":"Find Google ads a company is running. Billed per ad returned; reserved up-front for up to 50 ads and settled to the actual count. Credits: bills only for returned results, per ad; reserved up-front for the requested size and settled to the actual count (see X-ColdIQ-Credits-Charged). Call get_endpoint_details for the live rate.","tags":["LeadMagic"],"x-credits-cost":{"amount":4.16,"unit":"ad","billing_shape":"per_result"},"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"company_domain":{"type":"string","description":"Company domain (one of company_domain or company_name is required)"},"company_name":{"type":"string","description":"Company name"}},"title":"AdsSearchRequest","example":{"company_domain":"microsoft.com"}}}}},"responses":{"200":{"description":"Google ads results","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LeadMagicResponse"}}}},"400":{"description":"Bad request (upstream validation error)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/leadmagic/ads/meta-ads-search":{"post":{"summary":"Meta Ads Search","description":"Find Meta (Facebook/Instagram) ads a company is running. Billed per ad returned; reserved up-front for up to 50 ads and settled to the actual count. Credits: bills only for returned results, per ad; reserved up-front for the requested size and settled to the actual count (see X-ColdIQ-Credits-Charged). Call get_endpoint_details for the live rate.","tags":["LeadMagic"],"x-credits-cost":{"amount":4.16,"unit":"ad","billing_shape":"per_result"},"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"company_domain":{"type":"string","description":"Company domain (one of company_domain or company_name is required)"},"company_name":{"type":"string","description":"Company name"}},"title":"AdsSearchRequest","example":{"company_domain":"microsoft.com"}}}}},"responses":{"200":{"description":"Meta ads results","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LeadMagicResponse"}}}},"400":{"description":"Bad request (upstream validation error)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/leadmagic/ads/b2b-ads-search":{"post":{"summary":"B2B Search Ads","description":"Find B2B (LinkedIn-style) ads a company is running, with company context. Billed 1 base + 1 per ad returned (minimum 1 even with no ads, up to 50 ads); reserved up-front and settled to the actual count. Credits: bills only for returned results, per ad; reserved up-front for the requested size and settled to the actual count (see X-ColdIQ-Credits-Charged). Call get_endpoint_details for the live rate.","tags":["LeadMagic"],"x-credits-cost":{"amount":4.16,"unit":"ad","billing_shape":"per_result"},"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"company_domain":{"type":"string","description":"Company domain (one of company_domain or company_name is required)"},"company_name":{"type":"string","description":"Company name"}},"title":"AdsSearchRequest","example":{"company_domain":"microsoft.com"}}}}},"responses":{"200":{"description":"B2B ads results","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LeadMagicResponse"}}}},"400":{"description":"Bad request (upstream validation error)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/leadmagic/ads/b2b-ads-details":{"post":{"summary":"B2B Ad Details","description":"Get full details of a single B2B ad, including targeting and impressions, from its ad library URL or ID. Credits: flat charge per call regardless of how many rows come back. Call get_endpoint_details for the live rate.","tags":["LeadMagic"],"x-credits-cost":{"amount":8.32,"unit":"call","billing_shape":"per_call"},"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"ad_url":{"type":"string","description":"Ad library URL, /ad-library/detail/{id} path, or numeric ad ID"}},"required":["ad_url"],"title":"B2BAdDetailsRequest","example":{"ad_url":"https://www.linkedin.com/ad-library/detail/123456789"}}}}},"responses":{"200":{"description":"Ad details","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LeadMagicResponse"}}}},"400":{"description":"Bad request (upstream validation error)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/adyntel/facebook":{"post":{"summary":"Facebook & Instagram Ads","description":"Fetch the active Facebook & Instagram (Meta) ads for a company by domain or Facebook page URL. Returns one page of ads plus a `continuation_token` for the next page. Credits: flat charge per call regardless of how many rows come back. Call get_endpoint_details for the live rate. Managed alternative: `POST /v1/ads/search` (Search Ads) runs this provider inside a ranked waterfall with charge-on-success billing and one normalized response shape, and falls back to the other providers for this capability on a miss. Call this endpoint directly when you specifically want this provider and no fallback.","tags":["Adyntel"],"x-credits-cost":{"amount":1.85,"unit":"call","billing_shape":"per_call"},"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"company_domain":{"type":"string","description":"Company website without protocol or www (e.g. 'coldiq.com'). Provide this or facebook_url."},"facebook_url":{"type":"string","description":"Full Facebook page URL (must start with https://). Provide this or company_domain."},"country_code":{"type":"string","description":"ISO country code to filter ads (e.g. 'US')"},"media_type":{"type":"string","enum":["image","meme","image_and_meme","video"],"description":"Filter ads by creative media type"},"active_status":{"type":"string","enum":["active","inactive","all"],"description":"Which ads to return (default: active). \"all\" returns active + inactive."},"check_ugc":{"type":"boolean","description":"Detect user-generated-content style video ads. Requires media_type=video."},"continuation_token":{"type":"string","description":"Pagination token from a previous response to fetch the next 30 ads."}},"title":"FacebookAdsRequest","example":{"company_domain":"nike.com","country_code":"US"}}}}},"responses":{"200":{"description":"Meta ads for the company","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AdyntelResponse"}}}},"400":{"description":"Bad request (upstream validation error)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/adyntel/google":{"post":{"summary":"Google Ads","description":"Fetch the Google ads (Search, Display, Shopping creatives) running for a company domain, from the Google Ads Transparency Center. Returns one page plus a `continuation_token`. Credits: flat charge per call regardless of how many rows come back. Call get_endpoint_details for the live rate. Managed alternative: `POST /v1/ads/search` (Search Ads) runs this provider inside a ranked waterfall with charge-on-success billing and one normalized response shape, and falls back to the other providers for this capability on a miss. Call this endpoint directly when you specifically want this provider and no fallback.","tags":["Adyntel"],"x-credits-cost":{"amount":1.85,"unit":"call","billing_shape":"per_call"},"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"company_domain":{"type":"string","description":"Company website without protocol or www (e.g. 'coldiq.com')"},"media_type":{"type":"string","enum":["text","image","video"],"description":"Filter ads by creative format"},"continuation_token":{"type":"string","description":"Pagination token from a previous response to fetch the next page."}},"required":["company_domain"],"title":"GoogleAdsRequest","example":{"company_domain":"nike.com"}}}}},"responses":{"200":{"description":"Google ads for the domain","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AdyntelResponse"}}}},"400":{"description":"Bad request (upstream validation error)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/adyntel/linkedin":{"post":{"summary":"LinkedIn Ads","description":"Fetch the LinkedIn ads for a company by domain or LinkedIn page ID, from the LinkedIn Ad Library. Returns one page plus a `continuation_token`. Credits: flat charge per call regardless of how many rows come back. Call get_endpoint_details for the live rate. Managed alternative: `POST /v1/ads/search` (Search Ads) runs this provider inside a ranked waterfall with charge-on-success billing and one normalized response shape, and falls back to the other providers for this capability on a miss. Call this endpoint directly when you specifically want this provider and no fallback.","tags":["Adyntel"],"x-credits-cost":{"amount":1.85,"unit":"call","billing_shape":"per_call"},"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"company_domain":{"type":"string","description":"Company website without protocol or www (e.g. 'coldiq.com'). Provide this or linkedin_page_id."},"linkedin_page_id":{"type":"integer","description":"LinkedIn company page ID (numeric). Provide this or company_domain."},"date_filter":{"anyOf":[{"type":"string","enum":["last30d","month","year","lastyear"]},{"type":"object","properties":{"startdate":{"type":"string","description":"Range start (YYYY-MM-DD)"},"enddate":{"type":"string","description":"Range end (YYYY-MM-DD)"}},"required":["startdate","enddate"]}],"description":"Time window: a preset (last30d, month, year, lastyear) or a custom {startdate, enddate} range."},"continuation_token":{"type":"string","description":"Pagination token from a previous response to fetch the next page."}},"title":"LinkedInAdsRequest","example":{"company_domain":"salesforce.com"}}}}},"responses":{"200":{"description":"LinkedIn ads for the company","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AdyntelResponse"}}}},"400":{"description":"Bad request (upstream validation error)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/adyntel/linkedin-keyword-search":{"post":{"summary":"LinkedIn Keyword Search","description":"Search the LinkedIn Ad Library by keyword to discover ads across advertisers, optionally filtered by country and date window. Credits: flat charge per call regardless of how many rows come back. Call get_endpoint_details for the live rate.","tags":["Adyntel"],"x-credits-cost":{"amount":1.85,"unit":"call","billing_shape":"per_call"},"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"keyword":{"type":"string","description":"Search term for LinkedIn ads (a phrase, brand, or domain)"},"country":{"type":"string","description":"Two-letter country code (e.g. 'US')"},"dateOption":{"type":"string","enum":["current-month","current-year","last-30-days","last-year","custom-date-range"],"description":"Time filter. Use custom-date-range with startDate/endDate."},"startDate":{"type":"string","description":"YYYY-MM-DD — required when dateOption is custom-date-range"},"endDate":{"type":"string","description":"YYYY-MM-DD — required when dateOption is custom-date-range"},"continuation_token":{"type":"string","description":"Pagination token from a previous response."}},"required":["keyword"],"title":"LinkedInKeywordSearchRequest","example":{"keyword":"crm software","country":"US","dateOption":"last-30-days"}}}}},"responses":{"200":{"description":"Matching LinkedIn ads","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AdyntelResponse"}}}},"400":{"description":"Bad request (upstream validation error)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/adyntel/meta-ad-search":{"post":{"summary":"Meta Ad Search","description":"Search the Meta (Facebook & Instagram) ad library by keyword to discover ads across advertisers, optionally filtered by country. Credits: flat charge per call regardless of how many rows come back. Call get_endpoint_details for the live rate.","tags":["Adyntel"],"x-credits-cost":{"amount":1.85,"unit":"call","billing_shape":"per_call"},"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"keyword":{"type":"string","description":"Search term to find ads in the Meta ad library"},"country_code":{"type":"string","description":"ISO country code to filter results (e.g. 'US')"},"continuation_token":{"type":"string","description":"Pagination token from a previous response."}},"required":["keyword"],"title":"MetaAdSearchRequest","example":{"keyword":"running shoes","country_code":"US"}}}}},"responses":{"200":{"description":"Matching Meta ads","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AdyntelResponse"}}}},"400":{"description":"Bad request (upstream validation error)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/adyntel/tiktok-search":{"post":{"summary":"TikTok Ad Search","description":"Search the TikTok ad library by keyword to discover ads, optionally filtered by country (mostly European; US not supported). Credits: flat charge per call regardless of how many rows come back. Call get_endpoint_details for the live rate.","tags":["Adyntel"],"x-credits-cost":{"amount":1.85,"unit":"call","billing_shape":"per_call"},"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"keyword":{"type":"string","description":"Search term to find ads in the TikTok ad library"},"country_code":{"type":"string","description":"Two-letter country code (mostly European) or 'ALL'. US filtering is not supported; omit for all countries."}},"required":["keyword"],"title":"TikTokSearchRequest","example":{"keyword":"crm software","country_code":"GB"}}}}},"responses":{"200":{"description":"Matching TikTok ads","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AdyntelResponse"}}}},"400":{"description":"Bad request (upstream validation error)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/adyntel/tiktok-ad-details":{"post":{"summary":"TikTok Ad Details","description":"Fetch full details for a single TikTok ad — creative, advertiser, and targeting breakdown — by ad ID from a TikTok Ad Search result. Credits: flat charge per call regardless of how many rows come back. Call get_endpoint_details for the live rate.","tags":["Adyntel"],"x-credits-cost":{"amount":1.85,"unit":"call","billing_shape":"per_call"},"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","description":"Ad ID from a TikTok Ad Search result"}},"required":["id"],"title":"TikTokAdDetailsRequest","example":{"id":"1816440843906114"}}}}},"responses":{"200":{"description":"Detailed TikTok ad data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AdyntelResponse"}}}},"400":{"description":"Bad request (upstream validation error)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/adyntel/domain-keywords":{"post":{"summary":"Paid vs Organic Keywords","description":"Get a domain's paid vs organic keyword breakdown — ranking-position distribution, estimated traffic, ad budget, and average CPC. Credits: flat charge per call regardless of how many rows come back. Call get_endpoint_details for the live rate.","tags":["Adyntel"],"x-credits-cost":{"amount":1.85,"unit":"call","billing_shape":"per_call"},"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"company_domain":{"type":"string","description":"Company website without protocol or www (e.g. 'coldiq.com')"},"language":{"type":"string","description":"Language code to scope keyword rankings"},"limit":{"type":"integer","minimum":0,"exclusiveMinimum":true,"maximum":1000,"description":"Max keywords to analyse"}},"required":["company_domain"],"title":"DomainKeywordsRequest","example":{"company_domain":"coldiq.com"}}}}},"responses":{"200":{"description":"Paid vs organic keyword breakdown","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AdyntelResponse"}}}},"400":{"description":"Bad request (upstream validation error)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/bounceban/verify/single":{"post":{"summary":"Waterfall single verification","description":"Verify a single email in real time — resolves catch-all and risky addresses without sending. Charged from the provider's reported consumption: a catch-all/SEG-protected `unknown` result (score -1) bills 0. BILLING SHAPE: one synchronous call per email. Sibling route: POST /email/verify/bulk/submit (api \"email\") runs the SAME BounceBan backend asynchronously for up to 5,000 emails per job, bills per conclusively-verified email (an `unknown` verdict is free there too) and adds automatic Icypeas failover — materially cheaper per email at list scale, and it costs one request against your rate limit instead of one per address. Use this route only for interactive, one-off checks; price both on get_endpoint_details before verifying a list. Credits: bills only for returned results, per verification; reserved up-front for the requested size and settled to the actual count (see X-ColdIQ-Credits-Charged). Call get_endpoint_details for the live rate. Managed alternative: `POST /v1/email/verify` (Verify Email) runs this provider inside a ranked waterfall with charge-on-success billing and one normalized response shape, and falls back to the other providers for this capability on a miss. Call this endpoint directly when you specifically want this provider and no fallback.","x-credits-cost":{"amount":0.71,"unit":"verification","billing_shape":"per_result"},"tags":["BounceBan"],"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"email":{"type":"string","format":"email","description":"Email address to verify","example":"michel@coldiq.com"},"mode":{"type":"string","enum":["regular","deepverify"],"description":"Verification mode. `regular` (default) makes no company assumption; `deepverify` assumes the email domain is the owner's current company and improves accept-all resolution."},"disable_catchall_verify":{"anyOf":[{"type":"number","enum":[0]},{"type":"number","enum":[1]}],"description":"Set to 1 to skip catch-all SMTP verification (catch-all/SEG-protected addresses return `unknown` at 0 cost). Defaults to 0 — BounceBan verifies catch-alls, which is its specialty."}},"required":["email"],"title":"BounceBanSingleVerifyRequest","example":{"email":"michel@coldiq.com"}}}}},"responses":{"200":{"description":"Verification result","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BounceBanVerifyResponse"}}}},"400":{"description":"Bad request (upstream validation error)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"404":{"description":"Bulk task not found for this account","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/bounceban/verify/bulk":{"post":{"summary":"Create bulk task from a list of emails","description":"Submit a list of emails for asynchronous bulk verification. Credits are reserved upfront (per email) and settled when the task finishes — `unknown` results are refunded. Poll GET /bounceban/verify/bulk/status for progress and the settled charge. Credits: bills only for returned results, per email; reserved up-front for the requested size and settled to the actual count (see X-ColdIQ-Credits-Charged). Call get_endpoint_details for the live rate.","x-credits-cost":{"amount":0.71,"unit":"email","billing_shape":"per_result"},"tags":["BounceBan"],"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"emails":{"type":"array","items":{"type":"string","format":"email"},"minItems":1,"maxItems":1000,"description":"List of emails to verify (1–1000)"},"name":{"type":"string","description":"Optional label for the bulk task"},"mode":{"type":"string","enum":["regular","deepverify"],"description":"Verification mode. `regular` (default) makes no company assumption; `deepverify` assumes the email domain is the owner's current company and improves accept-all resolution."},"greylisting_bypass":{"type":"string","enum":["auto","speed","robust"],"description":"Greylisting retry strategy: `speed` (~1 min), `robust` (~5 min), or `auto` (default). Longer waits reduce risky/unknown counts on greylisted domains."},"disable_catchall_verify":{"anyOf":[{"type":"number","enum":[0]},{"type":"number","enum":[1]}],"description":"Set to 1 to skip catch-all SMTP verification (catch-alls return `unknown` at 0 cost)."}},"required":["emails"],"title":"BounceBanBulkCreateRequest","example":{"emails":["michel@coldiq.com","satya.nadella@microsoft.com","sundar@google.com"]}}}}},"responses":{"200":{"description":"Bulk task accepted","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BounceBanBulkCreateResponse"}}}},"400":{"description":"Bad request (upstream validation error)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"404":{"description":"Bulk task not found for this account","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/bounceban/verify/bulk/status":{"get":{"summary":"Get bulk task status","description":"Poll a bulk task for progress and per-state counts. Free. When the task is finished, the reserved credits are settled here (unknowns refunded). Credits: free.","x-credits-cost":{"amount":0,"unit":"call","billing_shape":"per_call"},"tags":["BounceBan"],"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","description":"Bulk task ID returned by the create endpoint","example":"a1b2c3d4e5f60718293a4b5c"},"required":true,"description":"Bulk task ID returned by the create endpoint","name":"id","in":"query"}],"responses":{"200":{"description":"Bulk task status","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BounceBanBulkStatusResponse"}}}},"400":{"description":"Bad request (upstream validation error)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"404":{"description":"Bulk task not found for this account","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/bounceban/verify/bulk/emails":{"post":{"summary":"Get results for specific emails","description":"Fetch verification results for up to 100 specific emails within a finished bulk task. Free. Credits: free.","x-credits-cost":{"amount":0,"unit":"call","billing_shape":"per_call"},"tags":["BounceBan"],"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","description":"Bulk task ID","example":"a1b2c3d4e5f60718293a4b5c"},"emails":{"type":"array","items":{"type":"string","format":"email"},"minItems":1,"maxItems":100,"description":"Emails to fetch results for (max 100). Only available once the task is finished."}},"required":["id","emails"],"title":"BounceBanBulkEmailsRequest","example":{"id":"a1b2c3d4e5f60718293a4b5c","emails":["michel@coldiq.com"]}}}}},"responses":{"200":{"description":"Per-email results","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BounceBanBulkResultsResponse"}}}},"400":{"description":"Bad request (upstream validation error)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"404":{"description":"Bulk task not found for this account","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/bounceban/verify/bulk/dump":{"get":{"summary":"Dump all results as JSON (paginated)","description":"Retrieve all results of a bulk task as paginated JSON. Free. Data is retained for 90 days. Credits: free.","x-credits-cost":{"amount":0,"unit":"call","billing_shape":"per_call"},"tags":["BounceBan"],"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","description":"Bulk task ID","example":"a1b2c3d4e5f60718293a4b5c"},"required":true,"description":"Bulk task ID","name":"id","in":"query"},{"schema":{"type":"string","enum":["deliverable","risky","undeliverable","unknown"],"description":"Filter results by verification state."},"required":false,"description":"Filter results by verification state.","name":"state","in":"query"},{"schema":{"type":"string","description":"Pagination cursor from the previous page (null when done)."},"required":false,"description":"Pagination cursor from the previous page (null when done).","name":"cursor","in":"query"},{"schema":{"type":"integer","minimum":100,"maximum":3000,"description":"Results per page (100–3000, default 100)."},"required":false,"description":"Results per page (100–3000, default 100).","name":"page_size","in":"query"},{"schema":{"type":"integer","nullable":true,"minimum":0,"maximum":1,"description":"Set to 1 to retrieve all results in one call (only for tasks with ≤20k emails)."},"required":false,"description":"Set to 1 to retrieve all results in one call (only for tasks with ≤20k emails).","name":"retrieve_all","in":"query"}],"responses":{"200":{"description":"Paginated results","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BounceBanBulkDumpResponse"}}}},"400":{"description":"Bad request (upstream validation error)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"404":{"description":"Bulk task not found for this account","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/harvestapi/linkedin/profile":{"get":{"summary":"Get Profile","description":"Scrape a LinkedIn profile by URL, public identifier, or profile ID. `main=true` returns the lighter main profile; `findEmail=true` also finds and SMTP-verifies the work email. The email part is not charged when the profile lacks the data to search. Credits: charged once per call, at a rate that depends on which fields you request (full, main, email) — it is NOT flat. Reserved up-front, settled to actual (see X-ColdIQ-Credits-Charged). Call get_endpoint_details for the live rate. Managed alternative: `POST /v1/person/enrich` (Enrich Person) runs this provider inside a ranked waterfall with charge-on-success billing and one normalized response shape, and falls back to the other providers for this capability on a miss. Call this endpoint directly when you specifically want this provider and no fallback.","x-credits-cost":{"unit":"call","rates":{"full":1.07,"main":0.67,"email":3.36},"billing_shape":"per_call_variable"},"tags":["HarvestAPI"],"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","maxLength":4000,"description":"LinkedIn profile URL.","example":"https://www.linkedin.com/in/michel-lieben"},"required":false,"description":"LinkedIn profile URL.","name":"url","in":"query"},{"schema":{"type":"string","maxLength":4000,"description":"Public identifier of the profile (the last part of the profile URL)."},"required":false,"description":"Public identifier of the profile (the last part of the profile URL).","name":"publicIdentifier","in":"query"},{"schema":{"type":"string","maxLength":4000,"description":"LinkedIn profile ID."},"required":false,"description":"LinkedIn profile ID.","name":"profileId","in":"query"},{"schema":{"type":"string","enum":["true","false"],"description":"Set to 'true' to return only the main version of the profile (up to 5 experiences, 2 educations, 2 skills). Charges less credit."},"required":false,"description":"Set to 'true' to return only the main version of the profile (up to 5 experiences, 2 educations, 2 skills). Charges less credit.","name":"main","in":"query"},{"schema":{"type":"string","enum":["true","false"],"description":"Set to 'true' to also find the profile's email. It performs SMTP verification and marks catch-all domains as `risky`. Charges more credit; the email part is not charged when the profile lacks the data to search."},"required":false,"description":"Set to 'true' to also find the profile's email. It performs SMTP verification and marks catch-all domains as `risky`. Charges more credit; the email part is not charged when the profile lacks the data to search.","name":"findEmail","in":"query"},{"schema":{"type":"string","enum":["true","false"],"description":"Use together with `findEmail` to skip SMTP verification and return all generated candidate emails."},"required":false,"description":"Use together with `findEmail` to skip SMTP verification and return all generated candidate emails.","name":"skipSmtp","in":"query"},{"schema":{"type":"string","enum":["true","false"],"description":"Also scrape the \"About this profile\" popup."},"required":false,"description":"Also scrape the \"About this profile\" popup.","name":"includeAboutProfile","in":"query"}],"responses":{"200":{"description":"HarvestAPI response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HarvestApiItemResponse"}}}},"400":{"description":"Bad request (upstream validation message)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"404":{"description":"Not found on LinkedIn","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Provider busy — retry after `retry_after_seconds` (not charged)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RateLimitError"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/harvestapi/linkedin/profile-search":{"get":{"summary":"Search LinkedIn profiles","description":"Search LinkedIn's basic people search by name, company, school, title, location, industry, or followers. Many non-name searches return anonymised \"LinkedIn Member\" rows; use Search Leads or Search Profile Services for title-based prospecting. Credits: flat charge per page of up to 10 results, whether or not the page comes back full. Call get_endpoint_details for the live rate.","x-credits-cost":{"unit":"10 results","amount":0.67,"billing_shape":"per_page","rows_per_call":10},"tags":["HarvestAPI"],"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","maxLength":4000,"description":"Search profiles by name.","example":"Michel Lieben"},"required":false,"description":"Search profiles by name.","name":"search","in":"query"},{"schema":{"type":"string","maxLength":4000,"description":"Current company ID or URL. One value or comma-separated."},"required":false,"description":"Current company ID or URL. One value or comma-separated.","name":"currentCompany","in":"query"},{"schema":{"type":"string","maxLength":4000,"description":"Past company ID or URL. One value or comma-separated."},"required":false,"description":"Past company ID or URL. One value or comma-separated.","name":"pastCompany","in":"query"},{"schema":{"type":"string","maxLength":4000,"description":"School ID or URL. One value or comma-separated."},"required":false,"description":"School ID or URL. One value or comma-separated.","name":"school","in":"query"},{"schema":{"type":"string","maxLength":4000,"description":"First name."},"required":false,"description":"First name.","name":"firstName","in":"query"},{"schema":{"type":"string","maxLength":4000,"description":"Last name."},"required":false,"description":"Last name.","name":"lastName","in":"query"},{"schema":{"type":"string","maxLength":4000,"description":"Job title."},"required":false,"description":"Job title.","name":"title","in":"query"},{"schema":{"type":"string","maxLength":4000,"description":"Location text."},"required":false,"description":"Location text.","name":"location","in":"query"},{"schema":{"type":"string","maxLength":4000,"description":"LinkedIn Geo ID (overrides `location`). Find it with Search GeoID."},"required":false,"description":"LinkedIn Geo ID (overrides `location`). Find it with Search GeoID.","name":"geoId","in":"query"},{"schema":{"type":"string","maxLength":4000,"description":"Industry ID. One value or comma-separated."},"required":false,"description":"Industry ID. One value or comma-separated.","name":"industryId","in":"query"},{"schema":{"type":"string","maxLength":4000,"description":"Keywords in the company name."},"required":false,"description":"Keywords in the company name.","name":"keywordsCompany","in":"query"},{"schema":{"type":"string","maxLength":4000,"description":"Keywords in the school name."},"required":false,"description":"Keywords in the school name.","name":"keywordsSchool","in":"query"},{"schema":{"type":"string","maxLength":4000,"description":"Only followers of this profile (URL or ID). One value or comma-separated."},"required":false,"description":"Only followers of this profile (URL or ID). One value or comma-separated.","name":"followerOf","in":"query"},{"schema":{"type":"integer","minimum":1,"maximum":100,"description":"Page number, starting at 1.","example":1},"required":false,"description":"Page number, starting at 1.","name":"page","in":"query"}],"responses":{"200":{"description":"HarvestAPI response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HarvestApiListResponse"}}}},"400":{"description":"Bad request (upstream validation message)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"404":{"description":"Not found on LinkedIn","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Provider busy — retry after `retry_after_seconds` (not charged)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RateLimitError"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/harvestapi/linkedin/service-search":{"get":{"summary":"Search Profile Services","description":"Search LinkedIn's service providers (people offering services) by keywords and location. Profiles are never anonymised here. Credits: flat charge per page of up to 10 results, whether or not the page comes back full. Call get_endpoint_details for the live rate.","x-credits-cost":{"unit":"10 results","amount":0.67,"billing_shape":"per_page","rows_per_call":10},"tags":["HarvestAPI"],"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","minLength":1,"maxLength":4000,"description":"Service keywords.","example":"cold email"},"required":true,"description":"Service keywords.","name":"search","in":"query"},{"schema":{"type":"string","maxLength":4000,"description":"Location text.","example":"Belgium"},"required":false,"description":"Location text.","name":"location","in":"query"},{"schema":{"type":"string","maxLength":4000,"description":"LinkedIn Geo ID (overrides `location`)."},"required":false,"description":"LinkedIn Geo ID (overrides `location`).","name":"geoId","in":"query"},{"schema":{"type":"integer","minimum":1,"maximum":100,"description":"Page number, starting at 1.","example":1},"required":false,"description":"Page number, starting at 1.","name":"page","in":"query"}],"responses":{"200":{"description":"HarvestAPI response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HarvestApiListResponse"}}}},"400":{"description":"Bad request (upstream validation message)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"404":{"description":"Not found on LinkedIn","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Provider busy — retry after `retry_after_seconds` (not charged)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RateLimitError"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/harvestapi/linkedin/profile-posts":{"get":{"summary":"Profile Posts","description":"Get the posts of a LinkedIn profile by profile URL, ID, or public identifier. Pass `pagination.paginationToken` back for the next page. Credits: flat charge per page of up to 50 results, whether or not the page comes back full. Call get_endpoint_details for the live rate.","x-credits-cost":{"unit":"50 results","amount":0.67,"billing_shape":"per_page","rows_per_call":50},"tags":["HarvestAPI"],"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","maxLength":4000,"description":"LinkedIn profile URL.","example":"https://www.linkedin.com/in/michel-lieben"},"required":false,"description":"LinkedIn profile URL.","name":"profile","in":"query"},{"schema":{"type":"string","maxLength":4000,"description":"LinkedIn profile ID (faster than the URL)."},"required":false,"description":"LinkedIn profile ID (faster than the URL).","name":"profileId","in":"query"},{"schema":{"type":"string","maxLength":4000,"description":"Public identifier of the profile (the last part of the profile URL)."},"required":false,"description":"Public identifier of the profile (the last part of the profile URL).","name":"profilePublicIdentifier","in":"query"},{"schema":{"type":"string","enum":["24h","week","month"],"description":"Only posts posted within this window (filtered after scraping)."},"required":false,"description":"Only posts posted within this window (filtered after scraping).","name":"postedLimit","in":"query"},{"schema":{"type":"string","enum":["1h","24h","week","month","3months","6months","year"],"description":"Post-filter by maximum posted date."},"required":false,"description":"Post-filter by maximum posted date.","name":"scrapePostedLimit","in":"query"},{"schema":{"type":"integer","minimum":1,"maximum":100,"description":"Page number, starting at 1.","example":1},"required":false,"description":"Page number, starting at 1.","name":"page","in":"query"},{"schema":{"type":"string","maxLength":4000,"description":"Token returned in `pagination.paginationToken` by the previous page. Pass it back with the next `page`."},"required":false,"description":"Token returned in `pagination.paginationToken` by the previous page. Pass it back with the next `page`.","name":"paginationToken","in":"query"}],"responses":{"200":{"description":"HarvestAPI response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HarvestApiListResponse"}}}},"400":{"description":"Bad request (upstream validation message)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"404":{"description":"Not found on LinkedIn","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Provider busy — retry after `retry_after_seconds` (not charged)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RateLimitError"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/harvestapi/linkedin/profile-comments":{"get":{"summary":"Profile comments","description":"Get the comments a LinkedIn profile wrote on posts. Pages after the first need the previous `paginationToken`. Credits: flat charge per page of up to 100 results, whether or not the page comes back full. Call get_endpoint_details for the live rate.","x-credits-cost":{"unit":"100 results","amount":0.67,"billing_shape":"per_page","rows_per_call":100},"tags":["HarvestAPI"],"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","maxLength":4000,"description":"LinkedIn profile URL.","example":"https://www.linkedin.com/in/michel-lieben"},"required":false,"description":"LinkedIn profile URL.","name":"profile","in":"query"},{"schema":{"type":"string","maxLength":4000,"description":"LinkedIn profile ID (faster than the URL)."},"required":false,"description":"LinkedIn profile ID (faster than the URL).","name":"profileId","in":"query"},{"schema":{"type":"string","enum":["24h","week","month"],"description":"Only comments posted within this window."},"required":false,"description":"Only comments posted within this window.","name":"postedLimit","in":"query"},{"schema":{"type":"integer","minimum":1,"maximum":100,"description":"Page number, starting at 1.","example":1},"required":false,"description":"Page number, starting at 1.","name":"page","in":"query"},{"schema":{"type":"string","maxLength":4000,"description":"Token returned in `pagination.paginationToken` by the previous page. Pass it back with the next `page`."},"required":false,"description":"Token returned in `pagination.paginationToken` by the previous page. Pass it back with the next `page`.","name":"paginationToken","in":"query"}],"responses":{"200":{"description":"HarvestAPI response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HarvestApiListResponse"}}}},"400":{"description":"Bad request (upstream validation message)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"404":{"description":"Not found on LinkedIn","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Provider busy — retry after `retry_after_seconds` (not charged)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RateLimitError"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/harvestapi/linkedin/profile-reactions":{"get":{"summary":"Profile reactions","description":"Get the reactions a LinkedIn profile left on posts. Pages after the first need the previous `paginationToken`. Credits: flat charge per page of up to 100 results, whether or not the page comes back full. Call get_endpoint_details for the live rate.","x-credits-cost":{"unit":"100 results","amount":0.67,"billing_shape":"per_page","rows_per_call":100},"tags":["HarvestAPI"],"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","maxLength":4000,"description":"LinkedIn profile URL.","example":"https://www.linkedin.com/in/michel-lieben"},"required":false,"description":"LinkedIn profile URL.","name":"profile","in":"query"},{"schema":{"type":"string","maxLength":4000,"description":"LinkedIn profile ID (faster than the URL)."},"required":false,"description":"LinkedIn profile ID (faster than the URL).","name":"profileId","in":"query"},{"schema":{"type":"integer","minimum":1,"maximum":100,"description":"Page number, starting at 1.","example":1},"required":false,"description":"Page number, starting at 1.","name":"page","in":"query"},{"schema":{"type":"string","maxLength":4000,"description":"Token returned in `pagination.paginationToken` by the previous page. Pass it back with the next `page`."},"required":false,"description":"Token returned in `pagination.paginationToken` by the previous page. Pass it back with the next `page`.","name":"paginationToken","in":"query"}],"responses":{"200":{"description":"HarvestAPI response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HarvestApiListResponse"}}}},"400":{"description":"Bad request (upstream validation message)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"404":{"description":"Not found on LinkedIn","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Provider busy — retry after `retry_after_seconds` (not charged)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RateLimitError"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/harvestapi/linkedin/lead-search":{"get":{"summary":"Search Leads","description":"Search LinkedIn leads (Sales Navigator lead search) with inclusion and exclusion filters on company, title, seniority, function, location, industry, headcount, and activity, or a Sales Navigator URL. No \"LinkedIn Member\" anonymisation. At least one filter is required; the page is charged even when it returns no leads. Credits: flat charge per page of up to 25 results, whether or not the page comes back full. Call get_endpoint_details for the live rate.","x-credits-cost":{"unit":"25 results","amount":16.8,"billing_shape":"per_page","rows_per_call":25},"tags":["HarvestAPI"],"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","maxLength":4000,"description":"Fuzzy search query; supports LinkedIn's search operators."},"required":false,"description":"Fuzzy search query; supports LinkedIn's search operators.","name":"search","in":"query"},{"schema":{"type":"string","maxLength":4000,"description":"Current company IDs or URLs, comma-separated (max 50).","example":"https://www.linkedin.com/company/coldlabs"},"required":false,"description":"Current company IDs or URLs, comma-separated (max 50).","name":"currentCompanies","in":"query"},{"schema":{"type":"string","maxLength":4000,"description":"Past company IDs or URLs, comma-separated (max 50)."},"required":false,"description":"Past company IDs or URLs, comma-separated (max 50).","name":"pastCompanies","in":"query"},{"schema":{"type":"string","maxLength":4000,"description":"Location texts, comma-separated (max 70)."},"required":false,"description":"Location texts, comma-separated (max 70).","name":"locations","in":"query"},{"schema":{"type":"string","maxLength":4000,"description":"LinkedIn Geo IDs, comma-separated (overrides `locations`)."},"required":false,"description":"LinkedIn Geo IDs, comma-separated (overrides `locations`).","name":"geoIds","in":"query"},{"schema":{"type":"string","maxLength":4000,"description":"School IDs or URLs, comma-separated (max 50)."},"required":false,"description":"School IDs or URLs, comma-separated (max 50).","name":"schools","in":"query"},{"schema":{"type":"string","maxLength":4000,"description":"Current job titles, comma-separated (max 70).","example":"Founder"},"required":false,"description":"Current job titles, comma-separated (max 70).","name":"currentJobTitles","in":"query"},{"schema":{"type":"string","maxLength":4000,"description":"Past job titles, comma-separated (max 70)."},"required":false,"description":"Past job titles, comma-separated (max 70).","name":"pastJobTitles","in":"query"},{"schema":{"type":"string","maxLength":4000,"description":"First names, comma-separated (max 70)."},"required":false,"description":"First names, comma-separated (max 70).","name":"firstNames","in":"query"},{"schema":{"type":"string","maxLength":4000,"description":"Last names, comma-separated (max 70)."},"required":false,"description":"Last names, comma-separated (max 70).","name":"lastNames","in":"query"},{"schema":{"type":"string","maxLength":4000,"description":"Industry IDs, comma-separated (max 70)."},"required":false,"description":"Industry IDs, comma-separated (max 70).","name":"industryIds","in":"query"},{"schema":{"type":"string","maxLength":4000,"description":"Years-at-current-company IDs, comma-separated."},"required":false,"description":"Years-at-current-company IDs, comma-separated.","name":"yearsAtCurrentCompanyIds","in":"query"},{"schema":{"type":"string","maxLength":4000,"description":"Years-of-experience IDs, comma-separated."},"required":false,"description":"Years-of-experience IDs, comma-separated.","name":"yearsOfExperienceIds","in":"query"},{"schema":{"type":"string","maxLength":4000,"description":"Seniority level IDs, comma-separated."},"required":false,"description":"Seniority level IDs, comma-separated.","name":"seniorityLevelIds","in":"query"},{"schema":{"type":"string","maxLength":4000,"description":"Job function IDs, comma-separated."},"required":false,"description":"Job function IDs, comma-separated.","name":"functionIds","in":"query"},{"schema":{"type":"string","enum":["true","false"],"description":"Only leads who changed jobs in the last 90 days."},"required":false,"description":"Only leads who changed jobs in the last 90 days.","name":"recentlyChangedJobs","in":"query"},{"schema":{"type":"string","enum":["true","false"],"description":"Only leads who posted on LinkedIn in the last 30 days."},"required":false,"description":"Only leads who posted on LinkedIn in the last 30 days.","name":"postedOnLinkedin","in":"query"},{"schema":{"type":"string","maxLength":4000,"description":"Profile languages, comma-separated."},"required":false,"description":"Profile languages, comma-separated.","name":"profileLanguages","in":"query"},{"schema":{"type":"string","maxLength":4000,"description":"Company headcount ranges, comma-separated."},"required":false,"description":"Company headcount ranges, comma-separated.","name":"companyHeadcount","in":"query"},{"schema":{"type":"string","maxLength":4000,"description":"Company headquarter locations, comma-separated (max 70)."},"required":false,"description":"Company headquarter locations, comma-separated (max 70).","name":"companyHeadquarterLocations","in":"query"},{"schema":{"type":"string","maxLength":4000,"description":"Locations to exclude, comma-separated."},"required":false,"description":"Locations to exclude, comma-separated.","name":"excludeLocations","in":"query"},{"schema":{"type":"string","maxLength":4000,"description":"Geo IDs to exclude, comma-separated."},"required":false,"description":"Geo IDs to exclude, comma-separated.","name":"excludeGeoIds","in":"query"},{"schema":{"type":"string","maxLength":4000,"description":"Current companies to exclude, comma-separated."},"required":false,"description":"Current companies to exclude, comma-separated.","name":"excludeCurrentCompanies","in":"query"},{"schema":{"type":"string","maxLength":4000,"description":"Past companies to exclude, comma-separated."},"required":false,"description":"Past companies to exclude, comma-separated.","name":"excludePastCompanies","in":"query"},{"schema":{"type":"string","maxLength":4000,"description":"Schools to exclude, comma-separated."},"required":false,"description":"Schools to exclude, comma-separated.","name":"excludeSchools","in":"query"},{"schema":{"type":"string","maxLength":4000,"description":"Current job titles to exclude, comma-separated."},"required":false,"description":"Current job titles to exclude, comma-separated.","name":"excludeCurrentJobTitles","in":"query"},{"schema":{"type":"string","maxLength":4000,"description":"Past job titles to exclude, comma-separated."},"required":false,"description":"Past job titles to exclude, comma-separated.","name":"excludePastJobTitles","in":"query"},{"schema":{"type":"string","maxLength":4000,"description":"Industry IDs to exclude, comma-separated."},"required":false,"description":"Industry IDs to exclude, comma-separated.","name":"excludeIndustryIds","in":"query"},{"schema":{"type":"string","maxLength":4000,"description":"Seniority level IDs to exclude, comma-separated."},"required":false,"description":"Seniority level IDs to exclude, comma-separated.","name":"excludeSeniorityLevelIds","in":"query"},{"schema":{"type":"string","maxLength":4000,"description":"Function IDs to exclude, comma-separated."},"required":false,"description":"Function IDs to exclude, comma-separated.","name":"excludeFunctionIds","in":"query"},{"schema":{"type":"string","maxLength":4000,"description":"Company headquarter locations to exclude, comma-separated."},"required":false,"description":"Company headquarter locations to exclude, comma-separated.","name":"excludeCompanyHeadquarterLocations","in":"query"},{"schema":{"type":"string","maxLength":4000,"description":"A LinkedIn Sales Navigator lead search URL. Overrides every other filter except `page`."},"required":false,"description":"A LinkedIn Sales Navigator lead search URL. Overrides every other filter except `page`.","name":"salesNavUrl","in":"query"},{"schema":{"type":"integer","minimum":1,"maximum":100,"description":"Page number, starting at 1.","example":1},"required":false,"description":"Page number, starting at 1.","name":"page","in":"query"},{"schema":{"type":"string","maxLength":4000,"description":"Any stable string you choose (e.g. a UUID). Requests with the same value are served by the same scraping resource, which keeps pagination consistent but is slower."},"required":false,"description":"Any stable string you choose (e.g. a UUID). Requests with the same value are served by the same scraping resource, which keeps pagination consistent but is slower.","name":"sessionId","in":"query"}],"responses":{"200":{"description":"HarvestAPI response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HarvestApiListResponse"}}}},"400":{"description":"Bad request (upstream validation message)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"404":{"description":"Not found on LinkedIn","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Provider busy — retry after `retry_after_seconds` (not charged)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RateLimitError"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/harvestapi/linkedin/account-search":{"get":{"summary":"Search Sales Navigator Accounts","description":"Search companies with Sales Navigator account filters: headquarters, industry, headcount and growth, revenue, followers, department headcount, hiring, funding and leadership-change activity, technologies, or a Sales Navigator URL. At least one filter is required; the page is charged even when it returns no accounts. Credits: flat charge per page of up to 25 results, whether or not the page comes back full. Call get_endpoint_details for the live rate.","x-credits-cost":{"unit":"25 results","amount":16.8,"billing_shape":"per_page","rows_per_call":25},"tags":["HarvestAPI"],"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","maxLength":4000,"description":"Company name keywords.","example":"ColdIQ"},"required":false,"description":"Company name keywords.","name":"search","in":"query"},{"schema":{"type":"string","maxLength":4000,"description":"Headquarter location texts, comma-separated."},"required":false,"description":"Headquarter location texts, comma-separated.","name":"headquarterLocations","in":"query"},{"schema":{"type":"string","maxLength":4000,"description":"Headquarter LinkedIn Geo IDs, comma-separated."},"required":false,"description":"Headquarter LinkedIn Geo IDs, comma-separated.","name":"headquarterGeoIds","in":"query"},{"schema":{"type":"string","maxLength":4000,"description":"Industry IDs, comma-separated."},"required":false,"description":"Industry IDs, comma-separated.","name":"industryIds","in":"query"},{"schema":{"type":"string","maxLength":4000,"description":"Headcount ranges, comma-separated: self-employed, 1-10, 11-50, 51-200, 201-500, 501-1000, 1001-5000, 5001-10000, 10001+.","example":"11-50"},"required":false,"description":"Headcount ranges, comma-separated: self-employed, 1-10, 11-50, 51-200, 201-500, 501-1000, 1001-5000, 5001-10000, 10001+.","name":"companyHeadcount","in":"query"},{"schema":{"type":"string","maxLength":4000,"description":"Headcount growth range in percent, format `min-max` (e.g. `1-10`)."},"required":false,"description":"Headcount growth range in percent, format `min-max` (e.g. `1-10`).","name":"companyHeadcountGrowth","in":"query"},{"schema":{"type":"string","maxLength":4000,"description":"Annual revenue range in millions, format `min-max;currency` (e.g. `1-10;USD`)."},"required":false,"description":"Annual revenue range in millions, format `min-max;currency` (e.g. `1-10;USD`).","name":"annualRevenue","in":"query"},{"schema":{"type":"string","maxLength":4000,"description":"Follower count ranges, comma-separated: 1-50, 51-100, 101-1000, 1001-5000, 5001+."},"required":false,"description":"Follower count ranges, comma-separated: 1-50, 51-100, 101-1000, 1001-5000, 5001+.","name":"numOfFollowers","in":"query"},{"schema":{"type":"string","maxLength":4000,"description":"Department headcount, format `min-max;department` (e.g. `1-10;Sales`)."},"required":false,"description":"Department headcount, format `min-max;department` (e.g. `1-10;Sales`).","name":"departmentHeadcount","in":"query"},{"schema":{"type":"string","maxLength":4000,"description":"Department headcount growth, format `min-max;department`."},"required":false,"description":"Department headcount growth, format `min-max;department`.","name":"departmentHeadcountGrowth","in":"query"},{"schema":{"type":"string","maxLength":4000,"description":"Job opportunity filters, comma-separated: HIRING_ON_LINKEDIN."},"required":false,"description":"Job opportunity filters, comma-separated: HIRING_ON_LINKEDIN.","name":"jobOpportunities","in":"query"},{"schema":{"type":"string","maxLength":4000,"description":"Account activities, comma-separated: SENIOR_LEADERSHIP_CHANGES_LAST_3_MONTHS, FUNDING_EVENTS_PAST_12_MONTHS."},"required":false,"description":"Account activities, comma-separated: SENIOR_LEADERSHIP_CHANGES_LAST_3_MONTHS, FUNDING_EVENTS_PAST_12_MONTHS.","name":"accountActivities","in":"query"},{"schema":{"type":"string","maxLength":4000,"description":"Fortune ranking bands, comma-separated: 50, 51_100, 101_250, 251_500."},"required":false,"description":"Fortune ranking bands, comma-separated: 50, 51_100, 101_250, 251_500.","name":"fortune","in":"query"},{"schema":{"type":"string","maxLength":4000,"description":"Postal codes, comma-separated."},"required":false,"description":"Postal codes, comma-separated.","name":"postalCodes","in":"query"},{"schema":{"type":"string","maxLength":4000,"description":"Technologies used, comma-separated."},"required":false,"description":"Technologies used, comma-separated.","name":"technologiesUsed","in":"query"},{"schema":{"type":"string","maxLength":4000,"description":"Headquarter locations to exclude, comma-separated."},"required":false,"description":"Headquarter locations to exclude, comma-separated.","name":"excludeHeadquarterLocations","in":"query"},{"schema":{"type":"string","maxLength":4000,"description":"Headquarter Geo IDs to exclude, comma-separated."},"required":false,"description":"Headquarter Geo IDs to exclude, comma-separated.","name":"excludeHeadquarterGeoIds","in":"query"},{"schema":{"type":"string","maxLength":4000,"description":"Industry IDs to exclude, comma-separated."},"required":false,"description":"Industry IDs to exclude, comma-separated.","name":"excludeIndustryIds","in":"query"},{"schema":{"type":"string","maxLength":4000,"description":"Headcount ranges to exclude, comma-separated."},"required":false,"description":"Headcount ranges to exclude, comma-separated.","name":"excludeCompanyHeadcount","in":"query"},{"schema":{"type":"string","maxLength":4000,"description":"A LinkedIn Sales Navigator account search URL. Overrides every other filter except `page`."},"required":false,"description":"A LinkedIn Sales Navigator account search URL. Overrides every other filter except `page`.","name":"salesNavUrl","in":"query"},{"schema":{"type":"integer","minimum":1,"maximum":100,"description":"Page number, starting at 1.","example":1},"required":false,"description":"Page number, starting at 1.","name":"page","in":"query"},{"schema":{"type":"string","maxLength":4000,"description":"Any stable string you choose (e.g. a UUID). Requests with the same value are served by the same scraping resource, which keeps pagination consistent but is slower."},"required":false,"description":"Any stable string you choose (e.g. a UUID). Requests with the same value are served by the same scraping resource, which keeps pagination consistent but is slower.","name":"sessionId","in":"query"}],"responses":{"200":{"description":"HarvestAPI response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HarvestApiListResponse"}}}},"400":{"description":"Bad request (upstream validation message)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"404":{"description":"Not found on LinkedIn","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Provider busy — retry after `retry_after_seconds` (not charged)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RateLimitError"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/harvestapi/linkedin/company":{"get":{"summary":"Get Company","description":"Scrape a LinkedIn company page by URL or universal name, or the best match for a company name. Returns description, headcount, locations, industries, followers, and more. Credits: flat charge per call regardless of how many rows come back. Call get_endpoint_details for the live rate.","x-credits-cost":{"unit":"call","amount":0.67,"billing_shape":"per_call"},"tags":["HarvestAPI"],"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","maxLength":4000,"description":"LinkedIn company URL.","example":"https://www.linkedin.com/company/coldlabs"},"required":false,"description":"LinkedIn company URL.","name":"url","in":"query"},{"schema":{"type":"string","maxLength":4000,"description":"Universal name of the company page (the last part of the company URL)."},"required":false,"description":"Universal name of the company page (the last part of the company URL).","name":"universalName","in":"query"},{"schema":{"type":"string","maxLength":4000,"description":"Company name; returns the most relevant LinkedIn search result."},"required":false,"description":"Company name; returns the most relevant LinkedIn search result.","name":"search","in":"query"}],"responses":{"200":{"description":"HarvestAPI response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HarvestApiItemResponse"}}}},"400":{"description":"Bad request (upstream validation message)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"404":{"description":"Not found on LinkedIn","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Provider busy — retry after `retry_after_seconds` (not charged)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RateLimitError"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/harvestapi/linkedin/company-search":{"get":{"summary":"Search Companies","description":"Search LinkedIn companies by name keywords, location, size, and industry. Credits: flat charge per page of up to 50 results, whether or not the page comes back full. Call get_endpoint_details for the live rate.","x-credits-cost":{"unit":"50 results","amount":0.67,"billing_shape":"per_page","rows_per_call":50},"tags":["HarvestAPI"],"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","maxLength":4000,"description":"Keywords in company names.","example":"ColdIQ"},"required":false,"description":"Keywords in company names.","name":"search","in":"query"},{"schema":{"type":"string","maxLength":4000,"description":"Location text."},"required":false,"description":"Location text.","name":"location","in":"query"},{"schema":{"type":"string","maxLength":4000,"description":"LinkedIn Geo ID (overrides `location`)."},"required":false,"description":"LinkedIn Geo ID (overrides `location`).","name":"geoId","in":"query"},{"schema":{"type":"string","maxLength":4000,"description":"Company size ranges, comma-separated: 1-10, 11-50, 51-200, 201-500, 501-1000, 1001-5000, 5001-10000, 10001+."},"required":false,"description":"Company size ranges, comma-separated: 1-10, 11-50, 51-200, 201-500, 501-1000, 1001-5000, 5001-10000, 10001+.","name":"companySize","in":"query"},{"schema":{"type":"string","maxLength":4000,"description":"Industry IDs, comma-separated."},"required":false,"description":"Industry IDs, comma-separated.","name":"industryId","in":"query"},{"schema":{"type":"integer","minimum":1,"maximum":100,"description":"Page number, starting at 1.","example":1},"required":false,"description":"Page number, starting at 1.","name":"page","in":"query"}],"responses":{"200":{"description":"HarvestAPI response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HarvestApiListResponse"}}}},"400":{"description":"Bad request (upstream validation message)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"404":{"description":"Not found on LinkedIn","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Provider busy — retry after `retry_after_seconds` (not charged)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RateLimitError"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/harvestapi/linkedin/company-posts":{"get":{"summary":"Company Posts","description":"Get the posts of a LinkedIn company page by URL, ID, or universal name. Pass `pagination.paginationToken` back for the next page. Credits: flat charge per page of up to 50 results, whether or not the page comes back full. Call get_endpoint_details for the live rate.","x-credits-cost":{"unit":"50 results","amount":0.67,"billing_shape":"per_page","rows_per_call":50},"tags":["HarvestAPI"],"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","maxLength":4000,"description":"LinkedIn company URL.","example":"https://www.linkedin.com/company/coldlabs"},"required":false,"description":"LinkedIn company URL.","name":"company","in":"query"},{"schema":{"type":"string","maxLength":4000,"description":"LinkedIn company ID (faster than the URL)."},"required":false,"description":"LinkedIn company ID (faster than the URL).","name":"companyId","in":"query"},{"schema":{"type":"string","maxLength":4000,"description":"Universal name of the company page (the last part of the company URL)."},"required":false,"description":"Universal name of the company page (the last part of the company URL).","name":"companyUniversalName","in":"query"},{"schema":{"type":"string","enum":["24h","week","month"],"description":"Only posts posted within this window (filtered after scraping)."},"required":false,"description":"Only posts posted within this window (filtered after scraping).","name":"postedLimit","in":"query"},{"schema":{"type":"string","enum":["1h","24h","week","month","3months","6months","year"],"description":"Post-filter by maximum posted date."},"required":false,"description":"Post-filter by maximum posted date.","name":"scrapePostedLimit","in":"query"},{"schema":{"type":"integer","minimum":1,"maximum":100,"description":"Page number, starting at 1.","example":1},"required":false,"description":"Page number, starting at 1.","name":"page","in":"query"},{"schema":{"type":"string","maxLength":4000,"description":"Token returned in `pagination.paginationToken` by the previous page. Pass it back with the next `page`."},"required":false,"description":"Token returned in `pagination.paginationToken` by the previous page. Pass it back with the next `page`.","name":"paginationToken","in":"query"}],"responses":{"200":{"description":"HarvestAPI response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HarvestApiListResponse"}}}},"400":{"description":"Bad request (upstream validation message)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"404":{"description":"Not found on LinkedIn","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Provider busy — retry after `retry_after_seconds` (not charged)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RateLimitError"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/harvestapi/linkedin/post-search":{"get":{"summary":"Search Posts","description":"Search LinkedIn posts by keywords, authors, companies, mentions, content type, group, and date. Credits: flat charge per page of up to 50 results, whether or not the page comes back full. Call get_endpoint_details for the live rate.","x-credits-cost":{"unit":"50 results","amount":0.67,"billing_shape":"per_page","rows_per_call":50},"tags":["HarvestAPI"],"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","maxLength":4000,"description":"Keywords in posts.","example":"ColdIQ"},"required":false,"description":"Keywords in posts.","name":"search","in":"query"},{"schema":{"type":"string","maxLength":4000,"description":"Authors' profile URLs, comma-separated."},"required":false,"description":"Authors' profile URLs, comma-separated.","name":"profile","in":"query"},{"schema":{"type":"string","maxLength":4000,"description":"Authors' profile IDs, comma-separated."},"required":false,"description":"Authors' profile IDs, comma-separated.","name":"profileId","in":"query"},{"schema":{"type":"string","maxLength":4000,"description":"Company URLs, comma-separated."},"required":false,"description":"Company URLs, comma-separated.","name":"company","in":"query"},{"schema":{"type":"string","maxLength":4000,"description":"Company IDs, comma-separated."},"required":false,"description":"Company IDs, comma-separated.","name":"companyId","in":"query"},{"schema":{"type":"string","maxLength":4000,"description":"Companies where the authors work (URLs or IDs), comma-separated."},"required":false,"description":"Companies where the authors work (URLs or IDs), comma-separated.","name":"authorsCompany","in":"query"},{"schema":{"type":"string","maxLength":4000,"description":"Industry IDs of the authors' companies, comma-separated."},"required":false,"description":"Industry IDs of the authors' companies, comma-separated.","name":"authorsIndustryId","in":"query"},{"schema":{"type":"string","maxLength":4000,"description":"Posts mentioning these profiles (URLs or IDs), comma-separated."},"required":false,"description":"Posts mentioning these profiles (URLs or IDs), comma-separated.","name":"mentioningMember","in":"query"},{"schema":{"type":"string","maxLength":4000,"description":"Posts mentioning these companies (URLs or IDs), comma-separated."},"required":false,"description":"Posts mentioning these companies (URLs or IDs), comma-separated.","name":"mentioningCompany","in":"query"},{"schema":{"type":"string","enum":["videos","images","live_videos","documents","collaborative_articles","jobs"],"description":"Content type."},"required":false,"description":"Content type.","name":"contentType","in":"query"},{"schema":{"type":"string","maxLength":4000,"description":"Keywords in the authors' profiles."},"required":false,"description":"Keywords in the authors' profiles.","name":"authorKeywords","in":"query"},{"schema":{"type":"string","maxLength":4000,"description":"LinkedIn group URL or ID."},"required":false,"description":"LinkedIn group URL or ID.","name":"group","in":"query"},{"schema":{"type":"string","enum":["24h","week","month"],"description":"Posted within this window (filtered by LinkedIn)."},"required":false,"description":"Posted within this window (filtered by LinkedIn).","name":"postedLimit","in":"query"},{"schema":{"type":"string","enum":["1h","24h","week","month","3months","6months","year"],"description":"Post-filter by maximum posted date."},"required":false,"description":"Post-filter by maximum posted date.","name":"scrapePostedLimit","in":"query"},{"schema":{"type":"string","enum":["relevance","date"],"description":"Sort order."},"required":false,"description":"Sort order.","name":"sortBy","in":"query"},{"schema":{"type":"integer","minimum":1,"maximum":100,"description":"Page number, starting at 1.","example":1},"required":false,"description":"Page number, starting at 1.","name":"page","in":"query"},{"schema":{"type":"string","maxLength":4000,"description":"Token returned in `pagination.paginationToken` by the previous page. Pass it back with the next `page`."},"required":false,"description":"Token returned in `pagination.paginationToken` by the previous page. Pass it back with the next `page`.","name":"paginationToken","in":"query"}],"responses":{"200":{"description":"HarvestAPI response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HarvestApiListResponse"}}}},"400":{"description":"Bad request (upstream validation message)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"404":{"description":"Not found on LinkedIn","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Provider busy — retry after `retry_after_seconds` (not charged)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RateLimitError"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/harvestapi/linkedin/post":{"get":{"summary":"Get post","description":"Get a LinkedIn post by URL: author, content, media, and engagement counts. Credits: flat charge per call regardless of how many rows come back. Call get_endpoint_details for the live rate.","x-credits-cost":{"unit":"call","amount":0.67,"billing_shape":"per_call"},"tags":["HarvestAPI"],"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","minLength":1,"maxLength":4000,"description":"LinkedIn post URL.","example":"https://www.linkedin.com/posts/michel-lieben_this-crm-setup-runs-my-7m-arr-agency-it-activity-7508479073296220161-pt3u"},"required":true,"description":"LinkedIn post URL.","name":"url","in":"query"}],"responses":{"200":{"description":"HarvestAPI response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HarvestApiItemResponse"}}}},"400":{"description":"Bad request (upstream validation message)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"404":{"description":"Not found on LinkedIn","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Provider busy — retry after `retry_after_seconds` (not charged)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RateLimitError"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/harvestapi/linkedin/post-comments":{"get":{"summary":"Post comments","description":"Get the comments on a LinkedIn post, with each commenter. Credits: flat charge per page of up to 100 results, whether or not the page comes back full. Call get_endpoint_details for the live rate.","x-credits-cost":{"unit":"100 results","amount":0.67,"billing_shape":"per_page","rows_per_call":100},"tags":["HarvestAPI"],"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","minLength":1,"maxLength":4000,"description":"LinkedIn post URL.","example":"https://www.linkedin.com/posts/michel-lieben_this-crm-setup-runs-my-7m-arr-agency-it-activity-7508479073296220161-pt3u"},"required":true,"description":"LinkedIn post URL.","name":"post","in":"query"},{"schema":{"type":"string","enum":["relevance","date"],"description":"Sort order."},"required":false,"description":"Sort order.","name":"sortBy","in":"query"},{"schema":{"type":"integer","minimum":1,"maximum":100,"description":"Page number, starting at 1.","example":1},"required":false,"description":"Page number, starting at 1.","name":"page","in":"query"},{"schema":{"type":"string","maxLength":4000,"description":"Required only when `sortBy` is 'relevance' and `page` > 1: the token from the previous page."},"required":false,"description":"Required only when `sortBy` is 'relevance' and `page` > 1: the token from the previous page.","name":"paginationToken","in":"query"}],"responses":{"200":{"description":"HarvestAPI response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HarvestApiListResponse"}}}},"400":{"description":"Bad request (upstream validation message)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"404":{"description":"Not found on LinkedIn","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Provider busy — retry after `retry_after_seconds` (not charged)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RateLimitError"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/harvestapi/linkedin/post-reactions":{"get":{"summary":"Post reactions","description":"Get the reactions on a LinkedIn post, with each reacting profile. Credits: flat charge per page of up to 100 results, whether or not the page comes back full. Call get_endpoint_details for the live rate.","x-credits-cost":{"unit":"100 results","amount":0.67,"billing_shape":"per_page","rows_per_call":100},"tags":["HarvestAPI"],"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","minLength":1,"maxLength":4000,"description":"LinkedIn post URL.","example":"https://www.linkedin.com/posts/michel-lieben_this-crm-setup-runs-my-7m-arr-agency-it-activity-7508479073296220161-pt3u"},"required":true,"description":"LinkedIn post URL.","name":"post","in":"query"},{"schema":{"type":"string","enum":["relevance","date"],"description":"Sort order."},"required":false,"description":"Sort order.","name":"sortBy","in":"query"},{"schema":{"type":"integer","minimum":1,"maximum":100,"description":"Page number, starting at 1.","example":1},"required":false,"description":"Page number, starting at 1.","name":"page","in":"query"}],"responses":{"200":{"description":"HarvestAPI response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HarvestApiListResponse"}}}},"400":{"description":"Bad request (upstream validation message)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"404":{"description":"Not found on LinkedIn","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Provider busy — retry after `retry_after_seconds` (not charged)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RateLimitError"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/harvestapi/linkedin/post-comment-replies":{"get":{"summary":"Comment replies","description":"Get the replies to a LinkedIn comment by comment URL. Credits: flat charge per page of up to 100 results, whether or not the page comes back full. Call get_endpoint_details for the live rate.","x-credits-cost":{"unit":"100 results","amount":0.67,"billing_shape":"per_page","rows_per_call":100},"tags":["HarvestAPI"],"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","minLength":1,"maxLength":4000,"description":"LinkedIn comment URL (the `linkedinUrl` of a comment).","example":"https://www.linkedin.com/feed/update/urn:li:activity:7508479073296220161?commentUrn=urn%3Ali%3Acomment%3A%28activity%3A7508479073296220161%2C7508507961330290688%29&dashCommentUrn=urn%3Ali%3Afsd_comment%3A%287508507961330290688%2Curn%3Ali%3Aactivity%3A7508479073296220161%29"},"required":true,"description":"LinkedIn comment URL (the `linkedinUrl` of a comment).","name":"url","in":"query"},{"schema":{"type":"string","maxLength":4000,"description":"Token returned in `pagination.paginationToken` by the previous page. Pass it back with the next `page`."},"required":false,"description":"Token returned in `pagination.paginationToken` by the previous page. Pass it back with the next `page`.","name":"paginationToken","in":"query"}],"responses":{"200":{"description":"HarvestAPI response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HarvestApiListResponse"}}}},"400":{"description":"Bad request (upstream validation message)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"404":{"description":"Not found on LinkedIn","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Provider busy — retry after `retry_after_seconds` (not charged)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RateLimitError"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/harvestapi/linkedin/comment-reactions":{"get":{"summary":"Comment reactions","description":"Get the reactions on a LinkedIn comment by comment URL. Credits: flat charge per page of up to 100 results, whether or not the page comes back full. Call get_endpoint_details for the live rate.","x-credits-cost":{"unit":"100 results","amount":0.67,"billing_shape":"per_page","rows_per_call":100},"tags":["HarvestAPI"],"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","minLength":1,"maxLength":4000,"description":"LinkedIn comment URL (the `linkedinUrl` of a comment).","example":"https://www.linkedin.com/feed/update/urn:li:activity:7508479073296220161?commentUrn=urn%3Ali%3Acomment%3A%28activity%3A7508479073296220161%2C7508507961330290688%29&dashCommentUrn=urn%3Ali%3Afsd_comment%3A%287508507961330290688%2Curn%3Ali%3Aactivity%3A7508479073296220161%29"},"required":true,"description":"LinkedIn comment URL (the `linkedinUrl` of a comment).","name":"url","in":"query"},{"schema":{"type":"integer","minimum":1,"maximum":100,"description":"Page number, starting at 1.","example":1},"required":false,"description":"Page number, starting at 1.","name":"page","in":"query"}],"responses":{"200":{"description":"HarvestAPI response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HarvestApiListResponse"}}}},"400":{"description":"Bad request (upstream validation message)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"404":{"description":"Not found on LinkedIn","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Provider busy — retry after `retry_after_seconds` (not charged)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RateLimitError"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/harvestapi/linkedin/ad-search":{"get":{"summary":"Search Ad Library","description":"Search LinkedIn's Ad Library by keyword, advertiser, country, and date, or an Ad Library search URL. Credits: flat charge per page of up to 24 results, whether or not the page comes back full. Call get_endpoint_details for the live rate.","x-credits-cost":{"unit":"24 results","amount":0.27,"billing_shape":"per_page","rows_per_call":24},"tags":["HarvestAPI"],"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","maxLength":4000,"description":"A LinkedIn Ad Library search URL. Overrides the other filters."},"required":false,"description":"A LinkedIn Ad Library search URL. Overrides the other filters.","name":"searchUrl","in":"query"},{"schema":{"type":"string","maxLength":4000,"description":"Keyword in the ad."},"required":false,"description":"Keyword in the ad.","name":"keyword","in":"query"},{"schema":{"type":"string","maxLength":4000,"description":"Company or advertiser name.","example":"ColdIQ"},"required":false,"description":"Company or advertiser name.","name":"accountOwner","in":"query"},{"schema":{"type":"string","maxLength":4000,"description":"Country codes, comma-separated (e.g. 'US,GB,FR'), or 'ALL'."},"required":false,"description":"Country codes, comma-separated (e.g. 'US,GB,FR'), or 'ALL'.","name":"countries","in":"query"},{"schema":{"type":"string","enum":["last-30-days","current-month","current-year","last-year","custom-date-range"],"description":"Date filter."},"required":false,"description":"Date filter.","name":"dateOption","in":"query"},{"schema":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$","description":"Start date (YYYY-MM-DD) for `dateOption` 'custom-date-range'."},"required":false,"description":"Start date (YYYY-MM-DD) for `dateOption` 'custom-date-range'.","name":"startdate","in":"query"},{"schema":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$","description":"End date (YYYY-MM-DD) for `dateOption` 'custom-date-range'."},"required":false,"description":"End date (YYYY-MM-DD) for `dateOption` 'custom-date-range'.","name":"enddate","in":"query"},{"schema":{"type":"string","maxLength":4000,"description":"Token returned in `pagination.paginationToken` by the previous page. Pass it back with the next `page`."},"required":false,"description":"Token returned in `pagination.paginationToken` by the previous page. Pass it back with the next `page`.","name":"paginationToken","in":"query"}],"responses":{"200":{"description":"HarvestAPI response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HarvestApiListResponse"}}}},"400":{"description":"Bad request (upstream validation message)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"404":{"description":"Not found on LinkedIn","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Provider busy — retry after `retry_after_seconds` (not charged)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RateLimitError"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/harvestapi/linkedin/ad":{"get":{"summary":"Get Ad Details","description":"Get a LinkedIn ad by ID or URL: advertiser, format, run dates, impressions, targeting, and creative variants. Credits: flat charge per call regardless of how many rows come back. Call get_endpoint_details for the live rate.","x-credits-cost":{"unit":"call","amount":0.27,"billing_shape":"per_call"},"tags":["HarvestAPI"],"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","maxLength":4000,"description":"LinkedIn Ad ID.","example":"1215686993"},"required":false,"description":"LinkedIn Ad ID.","name":"adId","in":"query"},{"schema":{"type":"string","maxLength":4000,"description":"LinkedIn Ad Library URL of the ad."},"required":false,"description":"LinkedIn Ad Library URL of the ad.","name":"url","in":"query"}],"responses":{"200":{"description":"HarvestAPI response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HarvestApiItemResponse"}}}},"400":{"description":"Bad request (upstream validation message)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"404":{"description":"Not found on LinkedIn","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Provider busy — retry after `retry_after_seconds` (not charged)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RateLimitError"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/harvestapi/linkedin/job":{"get":{"summary":"Get Job","description":"Get a LinkedIn job posting by ID or URL: description, company, applicants, hiring team, and apply method. Credits: flat charge per call regardless of how many rows come back. Call get_endpoint_details for the live rate.","x-credits-cost":{"unit":"call","amount":0.17,"billing_shape":"per_call"},"tags":["HarvestAPI"],"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","maxLength":4000,"description":"LinkedIn job ID.","example":"4468226183"},"required":false,"description":"LinkedIn job ID.","name":"jobId","in":"query"},{"schema":{"type":"string","maxLength":4000,"description":"LinkedIn job URL."},"required":false,"description":"LinkedIn job URL.","name":"url","in":"query"}],"responses":{"200":{"description":"HarvestAPI response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HarvestApiItemResponse"}}}},"400":{"description":"Bad request (upstream validation message)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"404":{"description":"Not found on LinkedIn","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Provider busy — retry after `retry_after_seconds` (not charged)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RateLimitError"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/harvestapi/linkedin/job-search":{"get":{"summary":"Search Jobs","description":"Search LinkedIn jobs by title, company, location, workplace type, employment type, salary, experience, industry, and date. Credits: flat charge per page of up to 25 results, whether or not the page comes back full. Call get_endpoint_details for the live rate.","x-credits-cost":{"unit":"25 results","amount":0.17,"billing_shape":"per_page","rows_per_call":25},"tags":["HarvestAPI"],"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","maxLength":4000,"description":"Job title keywords."},"required":false,"description":"Job title keywords.","name":"search","in":"query"},{"schema":{"type":"string","maxLength":4000,"description":"Company IDs, comma-separated.","example":"65826193"},"required":false,"description":"Company IDs, comma-separated.","name":"companyId","in":"query"},{"schema":{"type":"string","maxLength":4000,"description":"Location text."},"required":false,"description":"Location text.","name":"location","in":"query"},{"schema":{"type":"string","maxLength":4000,"description":"LinkedIn Geo ID (overrides `location`)."},"required":false,"description":"LinkedIn Geo ID (overrides `location`).","name":"geoId","in":"query"},{"schema":{"type":"string","enum":["relevance","date"],"description":"Sort order."},"required":false,"description":"Sort order.","name":"sortBy","in":"query"},{"schema":{"type":"string","maxLength":4000,"description":"Workplace types, comma-separated: office, hybrid, remote."},"required":false,"description":"Workplace types, comma-separated: office, hybrid, remote.","name":"workplaceType","in":"query"},{"schema":{"type":"string","maxLength":4000,"description":"Employment types, comma-separated: full-time, part-time, contract, temporary, internship."},"required":false,"description":"Employment types, comma-separated: full-time, part-time, contract, temporary, internship.","name":"employmentType","in":"query"},{"schema":{"type":"string","enum":["40k+","60k+","80k+","100k+","120k+","140k+","160k+","180k+","200k+"],"description":"Minimum salary band."},"required":false,"description":"Minimum salary band.","name":"salary","in":"query"},{"schema":{"type":"string","enum":["24h","week","month"],"description":"Posted within this window."},"required":false,"description":"Posted within this window.","name":"postedLimit","in":"query"},{"schema":{"type":"string","maxLength":4000,"description":"Experience levels, comma-separated: internship, entry, associate, mid-senior, director, executive."},"required":false,"description":"Experience levels, comma-separated: internship, entry, associate, mid-senior, director, executive.","name":"experienceLevel","in":"query"},{"schema":{"type":"string","maxLength":4000,"description":"Industry IDs, comma-separated."},"required":false,"description":"Industry IDs, comma-separated.","name":"industryId","in":"query"},{"schema":{"type":"string","maxLength":4000,"description":"Job function IDs, comma-separated."},"required":false,"description":"Job function IDs, comma-separated.","name":"functionId","in":"query"},{"schema":{"type":"string","enum":["true","false"],"description":"Only jobs with fewer than 10 applicants."},"required":false,"description":"Only jobs with fewer than 10 applicants.","name":"under10Applicants","in":"query"},{"schema":{"type":"string","enum":["true","false"],"description":"'true' for Easy Apply jobs only, 'false' to exclude them."},"required":false,"description":"'true' for Easy Apply jobs only, 'false' to exclude them.","name":"easyApply","in":"query"},{"schema":{"type":"integer","minimum":1,"maximum":100,"description":"Page number, starting at 1.","example":1},"required":false,"description":"Page number, starting at 1.","name":"page","in":"query"}],"responses":{"200":{"description":"HarvestAPI response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HarvestApiListResponse"}}}},"400":{"description":"Bad request (upstream validation message)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"404":{"description":"Not found on LinkedIn","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Provider busy — retry after `retry_after_seconds` (not charged)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RateLimitError"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/harvestapi/linkedin/group":{"get":{"summary":"Get Group","description":"Get a LinkedIn group by URL or ID: description, member count, rules, and admins. Credits: flat charge per call regardless of how many rows come back. Call get_endpoint_details for the live rate.","x-credits-cost":{"unit":"call","amount":0.34,"billing_shape":"per_call"},"tags":["HarvestAPI"],"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","maxLength":4000,"description":"LinkedIn group URL."},"required":false,"description":"LinkedIn group URL.","name":"url","in":"query"},{"schema":{"type":"string","maxLength":4000,"description":"LinkedIn group ID.","example":"1898033"},"required":false,"description":"LinkedIn group ID.","name":"groupId","in":"query"}],"responses":{"200":{"description":"HarvestAPI response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HarvestApiItemResponse"}}}},"400":{"description":"Bad request (upstream validation message)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"404":{"description":"Not found on LinkedIn","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Provider busy — retry after `retry_after_seconds` (not charged)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RateLimitError"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/harvestapi/linkedin/group-search":{"get":{"summary":"Search Groups","description":"Search LinkedIn groups by keywords. Credits: flat charge per page of up to 10 results, whether or not the page comes back full. Call get_endpoint_details for the live rate.","x-credits-cost":{"unit":"10 results","amount":0.34,"billing_shape":"per_page","rows_per_call":10},"tags":["HarvestAPI"],"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","minLength":1,"maxLength":4000,"description":"Group name keywords.","example":"sales"},"required":true,"description":"Group name keywords.","name":"search","in":"query"},{"schema":{"type":"integer","minimum":1,"maximum":100,"description":"Page number, starting at 1.","example":1},"required":false,"description":"Page number, starting at 1.","name":"page","in":"query"}],"responses":{"200":{"description":"HarvestAPI response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HarvestApiListResponse"}}}},"400":{"description":"Bad request (upstream validation message)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"404":{"description":"Not found on LinkedIn","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Provider busy — retry after `retry_after_seconds` (not charged)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RateLimitError"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/harvestapi/linkedin/geo-id-search":{"get":{"summary":"Search GeoID","description":"Find the LinkedIn Geo ID for a location text, for use in the `geoId` / `geoIds` filters of the other searches. Credits: flat charge per call regardless of how many rows come back. Call get_endpoint_details for the live rate.","x-credits-cost":{"unit":"call","amount":0.17,"billing_shape":"per_call"},"tags":["HarvestAPI"],"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","minLength":1,"maxLength":500,"description":"Location text.","example":"Brussels"},"required":true,"description":"Location text.","name":"search","in":"query"}],"responses":{"200":{"description":"HarvestAPI response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HarvestApiListResponse"}}}},"400":{"description":"Bad request (upstream validation message)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCreditsError"}}}},"404":{"description":"Not found on LinkedIn","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Provider busy — retry after `retry_after_seconds` (not charged)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RateLimitError"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/email/find":{"post":{"summary":"Find Email","description":"Find a person's professional email from name + company/domain, or a LinkedIn URL. BATCH UP TO 50 RECORDS PER REQUEST by sending `inputs: [...]` instead of `input: {...}` — the batch counts as ONE request against your rate limit, so batching is how you run a list without being throttled; never loop single calls over a list. Runs a managed provider waterfall by default; pin a provider with `provider`. Charged only on a found, valid email. Opt-in `resolve_current_employer: true`: on a miss with a linkedin_url, enrich the person to resolve their CURRENT employer's domain (stale or acquired input domains otherwise return nothing) and retry once — the enrich hop costs ~1 extra credit and is disclosed in `_meta.employer_resolution`.","tags":["GTM Verbs"],"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"examples":{"single":{"summary":"One record — synchronous","value":{"input":{"first_name":"Michel","last_name":"Lieben","domain":"coldiq.com"}}},"bulk":{"summary":"Up to 50 records in one request — counts as ONE call against your rate limit","value":{"inputs":[{"first_name":"Michel","last_name":"Lieben","domain":"coldiq.com"}]}}},"schema":{"type":"object","properties":{"input":{"$ref":"#/components/schemas/PersonIdentity"},"inputs":{"type":"array","items":{"$ref":"#/components/schemas/PersonIdentity"},"maxItems":50,"description":"Bulk mode — up to 50 records in ONE request, run in parallel (provide either `input` or `inputs`, never both). Prefer this over a loop of single calls. RATE LIMIT: the whole batch is ONE request against your per-account limit, however many rows it holds — the per-row provider calls run internally and are not counted. So 50 rows sent as one batch cost 1 request, while the same 50 rows sent one at a time cost 50. PARTIAL FAILURE: a row that finds nothing, or whose provider errors, never fails the batch — every row is still attempted, the call returns 200, and that row carries its own error in its `results[]` entry. Two whole-batch failures exist: 400 if ANY row fails schema validation (the array is validated before the batch runs, so no row is attempted — clean your rows first), and 402 when EVERY row ran out of credits. ORDER: `results[]` is index-aligned with `inputs[]` — `results[i]` is always the outcome of `inputs[i]`, regardless of which row finished first. SPEND CAP: `max_credits` applies PER ROW, not per batch — a cap of 5 on a 50-row batch permits up to 5 credits for each row. TIMEOUT: the batch runs under one wall-clock budget, so a very large batch of slow lookups can return with later rows marked `timed_out` (those are refunded); re-send only those rows."},"provider":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}],"description":"Provider routing. \"auto\" (default) runs a managed waterfall; a single slug pins one vendor; an array is your ordered fallback chain. Valid slugs for this verb: \"findymail\", \"prospeo\", \"leadmagic\", \"limadata-work-email\", \"apollo-people-match\", \"wiza\". These are routing slugs, not catalog provider names — a slug is often the vendor plus the capability it serves (the catalog lists \"limadata\"; this field takes \"limadata-work-email\"). An unrecognized slug returns 400 and lists the accepted set.","example":"auto"},"max_credits":{"type":"number","minimum":0,"exclusiveMinimum":true,"description":"Per-record spend cap. A provider that would hold more than this for the record up front is not called, and a provider that answers but costs more than this is rejected and refunded, so you never pay more than N credits for one record (a miss if nothing answers in budget). A search that finds nobody costs 0. Charges a provider makes after it answers (for example per contact delivered later) are not covered. Useful to keep a single pricey provider from dominating a large fan-out.","example":5},"soft_miss":{"type":"boolean","description":"Return a miss as HTTP 200 `{ \"found\": false, \"verdict\": \"not_found\", \"providers_tried\": N }` instead of 404. Use it when a 404 is indistinguishable from a real failure in your client (spreadsheet tools paint every non-2xx cell red, and \"re-run the errored cells\" then re-executes whole provider waterfalls for rows that will miss again). The verdict vocabulary matches the async sibling `/v1/jobs/{job_id}/results`. A miss is free either way. Only the \"no provider had it\" 404 converts — 400 (invalid input), 402 (out of credits) and 504 (`timed_out`, the waterfall was cut short so the miss is unproven) are unchanged. Default false.","example":true},"resolve_current_employer":{"type":"boolean","description":"On a miss with a linkedin_url: enrich the person to resolve their CURRENT employer's domain and retry the waterfall once with it — recovers stale/acquired input domains (extra ~1 credit for the enrich hop, disclosed in `_meta.employer_resolution`). Default false."}},"additionalProperties":false,"example":{"input":{"first_name":"Michel","last_name":"Lieben","domain":"coldiq.com"}}}}}},"responses":{"200":{"description":"Find Email — also the status of a miss when `soft_miss: true` was sent (body: `{ found: false, verdict: \"not_found\", providers_tried: N }`).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/VerbResponse"}}}},"400":{"description":"Invalid envelope, unrecognized field, out-of-range value, or unrecognized provider. Validation failures carry `code: \"invalid_input\"` and `issues[]` with a field `path` and the allowed value or range.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"No usable result found across providers. Send `soft_miss: true` to receive this as a 200 `{ found: false }` instead.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded — see the Retry-After header and the `limits` object in the body. A bulk `inputs[]` call counts as ONE request, so batching is the fix for a throttled loop.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/email/verify":{"post":{"summary":"Verify Email","description":"Check whether an email is deliverable, risky, catch-all, or invalid.","tags":["GTM Verbs"],"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"examples":{"single":{"summary":"One record — synchronous","value":{"input":{"email":"michel@coldiq.com"}}},"bulk":{"summary":"Up to 50 records in one request — counts as ONE call against your rate limit","value":{"inputs":[{"email":"michel@coldiq.com"}]}}},"schema":{"type":"object","properties":{"input":{"$ref":"#/components/schemas/EmailIdentity"},"inputs":{"type":"array","items":{"$ref":"#/components/schemas/EmailIdentity"},"maxItems":50,"description":"Bulk mode — up to 50 records in ONE request, run in parallel (provide either `input` or `inputs`, never both). Prefer this over a loop of single calls. RATE LIMIT: the whole batch is ONE request against your per-account limit, however many rows it holds — the per-row provider calls run internally and are not counted. So 50 rows sent as one batch cost 1 request, while the same 50 rows sent one at a time cost 50. PARTIAL FAILURE: a row that finds nothing, or whose provider errors, never fails the batch — every row is still attempted, the call returns 200, and that row carries its own error in its `results[]` entry. Two whole-batch failures exist: 400 if ANY row fails schema validation (the array is validated before the batch runs, so no row is attempted — clean your rows first), and 402 when EVERY row ran out of credits. ORDER: `results[]` is index-aligned with `inputs[]` — `results[i]` is always the outcome of `inputs[i]`, regardless of which row finished first. SPEND CAP: `max_credits` applies PER ROW, not per batch — a cap of 5 on a 50-row batch permits up to 5 credits for each row. TIMEOUT: the batch runs under one wall-clock budget, so a very large batch of slow lookups can return with later rows marked `timed_out` (those are refunded); re-send only those rows."},"provider":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}],"description":"Provider routing. \"auto\" (default) runs a managed waterfall; a single slug pins one vendor; an array is your ordered fallback chain. Valid slugs for this verb: \"bounceban\", \"leadmagic\", \"findymail\", \"instantly\", \"linkupapi-validate\". These are routing slugs, not catalog provider names — a slug is often the vendor plus the capability it serves (the catalog lists \"limadata\"; this field takes \"limadata-work-email\"). An unrecognized slug returns 400 and lists the accepted set.","example":"auto"},"max_credits":{"type":"number","minimum":0,"exclusiveMinimum":true,"description":"Per-record spend cap. A provider that would hold more than this for the record up front is not called, and a provider that answers but costs more than this is rejected and refunded, so you never pay more than N credits for one record (a miss if nothing answers in budget). A search that finds nobody costs 0. Charges a provider makes after it answers (for example per contact delivered later) are not covered. Useful to keep a single pricey provider from dominating a large fan-out.","example":5},"soft_miss":{"type":"boolean","description":"Return a miss as HTTP 200 `{ \"found\": false, \"verdict\": \"not_found\", \"providers_tried\": N }` instead of 404. Use it when a 404 is indistinguishable from a real failure in your client (spreadsheet tools paint every non-2xx cell red, and \"re-run the errored cells\" then re-executes whole provider waterfalls for rows that will miss again). The verdict vocabulary matches the async sibling `/v1/jobs/{job_id}/results`. A miss is free either way. Only the \"no provider had it\" 404 converts — 400 (invalid input), 402 (out of credits) and 504 (`timed_out`, the waterfall was cut short so the miss is unproven) are unchanged. Default false.","example":true}},"additionalProperties":false,"example":{"input":{"email":"michel@coldiq.com"}}}}}},"responses":{"200":{"description":"Verify Email — also the status of a miss when `soft_miss: true` was sent (body: `{ found: false, verdict: \"not_found\", providers_tried: N }`).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/VerbResponse"}}}},"400":{"description":"Invalid envelope, unrecognized field, out-of-range value, or unrecognized provider. Validation failures carry `code: \"invalid_input\"` and `issues[]` with a field `path` and the allowed value or range.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"No usable result found across providers. Send `soft_miss: true` to receive this as a 200 `{ found: false }` instead.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded — see the Retry-After header and the `limits` object in the body. A bulk `inputs[]` call counts as ONE request, so batching is the fix for a throttled loop.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/phone/find":{"post":{"summary":"Find Phone","description":"Find a mobile / direct-dial number from a LinkedIn URL, or name + company/domain. Managed waterfall by default.","tags":["GTM Verbs"],"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"examples":{"single":{"summary":"One record — synchronous","value":{"input":{"linkedin_url":"https://www.linkedin.com/in/michel-lieben"}}},"bulk":{"summary":"Up to 50 records in one request — counts as ONE call against your rate limit","value":{"inputs":[{"linkedin_url":"https://www.linkedin.com/in/michel-lieben"}]}}},"schema":{"type":"object","properties":{"input":{"$ref":"#/components/schemas/PersonIdentity"},"inputs":{"type":"array","items":{"$ref":"#/components/schemas/PersonIdentity"},"maxItems":50,"description":"Bulk mode — up to 50 records in ONE request, run in parallel (provide either `input` or `inputs`, never both). Prefer this over a loop of single calls. RATE LIMIT: the whole batch is ONE request against your per-account limit, however many rows it holds — the per-row provider calls run internally and are not counted. So 50 rows sent as one batch cost 1 request, while the same 50 rows sent one at a time cost 50. PARTIAL FAILURE: a row that finds nothing, or whose provider errors, never fails the batch — every row is still attempted, the call returns 200, and that row carries its own error in its `results[]` entry. Two whole-batch failures exist: 400 if ANY row fails schema validation (the array is validated before the batch runs, so no row is attempted — clean your rows first), and 402 when EVERY row ran out of credits. ORDER: `results[]` is index-aligned with `inputs[]` — `results[i]` is always the outcome of `inputs[i]`, regardless of which row finished first. SPEND CAP: `max_credits` applies PER ROW, not per batch — a cap of 5 on a 50-row batch permits up to 5 credits for each row. TIMEOUT: the batch runs under one wall-clock budget, so a very large batch of slow lookups can return with later rows marked `timed_out` (those are refunded); re-send only those rows."},"provider":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}],"description":"Provider routing. \"auto\" (default) runs a managed waterfall; a single slug pins one vendor; an array is your ordered fallback chain. Valid slugs for this verb: \"prospeo\", \"ai-ark\", \"leadmagic\", \"limadata\". These are routing slugs, not catalog provider names — a slug is often the vendor plus the capability it serves (the catalog lists \"limadata\"; this field takes \"limadata-work-email\"). An unrecognized slug returns 400 and lists the accepted set.","example":"auto"},"max_credits":{"type":"number","minimum":0,"exclusiveMinimum":true,"description":"Per-record spend cap. A provider that would hold more than this for the record up front is not called, and a provider that answers but costs more than this is rejected and refunded, so you never pay more than N credits for one record (a miss if nothing answers in budget). A search that finds nobody costs 0. Charges a provider makes after it answers (for example per contact delivered later) are not covered. Useful to keep a single pricey provider from dominating a large fan-out.","example":5},"soft_miss":{"type":"boolean","description":"Return a miss as HTTP 200 `{ \"found\": false, \"verdict\": \"not_found\", \"providers_tried\": N }` instead of 404. Use it when a 404 is indistinguishable from a real failure in your client (spreadsheet tools paint every non-2xx cell red, and \"re-run the errored cells\" then re-executes whole provider waterfalls for rows that will miss again). The verdict vocabulary matches the async sibling `/v1/jobs/{job_id}/results`. A miss is free either way. Only the \"no provider had it\" 404 converts — 400 (invalid input), 402 (out of credits) and 504 (`timed_out`, the waterfall was cut short so the miss is unproven) are unchanged. Default false.","example":true}},"additionalProperties":false,"example":{"input":{"linkedin_url":"https://www.linkedin.com/in/michel-lieben"}}}}}},"responses":{"200":{"description":"Find Phone — also the status of a miss when `soft_miss: true` was sent (body: `{ found: false, verdict: \"not_found\", providers_tried: N }`).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/VerbResponse"}}}},"400":{"description":"Invalid envelope, unrecognized field, out-of-range value, or unrecognized provider. Validation failures carry `code: \"invalid_input\"` and `issues[]` with a field `path` and the allowed value or range.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"No usable result found across providers. Send `soft_miss: true` to receive this as a 200 `{ found: false }` instead.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded — see the Retry-After header and the `limits` object in the body. A bulk `inputs[]` call counts as ONE request, so batching is the fix for a throttled loop.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/person/enrich":{"post":{"summary":"Enrich Person","description":"Attach a full profile (title, company, location, contact fields) from an email, LinkedIn URL, or name + company.","tags":["GTM Verbs"],"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"examples":{"single":{"summary":"One record — synchronous","value":{"input":{"linkedin_url":"https://www.linkedin.com/in/michel-lieben"}}},"bulk":{"summary":"Up to 50 records in one request — counts as ONE call against your rate limit","value":{"inputs":[{"linkedin_url":"https://www.linkedin.com/in/michel-lieben"}]}}},"schema":{"type":"object","properties":{"input":{"$ref":"#/components/schemas/EnrichPersonIdentity"},"inputs":{"type":"array","items":{"$ref":"#/components/schemas/EnrichPersonIdentity"},"maxItems":50,"description":"Bulk mode — up to 50 records in ONE request, run in parallel (provide either `input` or `inputs`, never both). Prefer this over a loop of single calls. RATE LIMIT: the whole batch is ONE request against your per-account limit, however many rows it holds — the per-row provider calls run internally and are not counted. So 50 rows sent as one batch cost 1 request, while the same 50 rows sent one at a time cost 50. PARTIAL FAILURE: a row that finds nothing, or whose provider errors, never fails the batch — every row is still attempted, the call returns 200, and that row carries its own error in its `results[]` entry. Two whole-batch failures exist: 400 if ANY row fails schema validation (the array is validated before the batch runs, so no row is attempted — clean your rows first), and 402 when EVERY row ran out of credits. ORDER: `results[]` is index-aligned with `inputs[]` — `results[i]` is always the outcome of `inputs[i]`, regardless of which row finished first. SPEND CAP: `max_credits` applies PER ROW, not per batch — a cap of 5 on a 50-row batch permits up to 5 credits for each row. TIMEOUT: the batch runs under one wall-clock budget, so a very large batch of slow lookups can return with later rows marked `timed_out` (those are refunded); re-send only those rows."},"provider":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}],"description":"Provider routing. \"auto\" (default) runs a managed waterfall; a single slug pins one vendor; an array is your ordered fallback chain. Valid slugs for this verb: \"harvestapi\", \"limadata-person\", \"prospeo-enrich-person\", \"leadmagic-profile-search\", \"findymail-business-profile\", \"linkupapi-profile-enrich\", \"ai-ark-reverse-lookup\", \"apollo-people-match\", \"leadmagic-b2b-profile\". These are routing slugs, not catalog provider names — a slug is often the vendor plus the capability it serves (the catalog lists \"limadata\"; this field takes \"limadata-work-email\"). An unrecognized slug returns 400 and lists the accepted set.","example":"auto"},"max_credits":{"type":"number","minimum":0,"exclusiveMinimum":true,"description":"Per-record spend cap. A provider that would hold more than this for the record up front is not called, and a provider that answers but costs more than this is rejected and refunded, so you never pay more than N credits for one record (a miss if nothing answers in budget). A search that finds nobody costs 0. Charges a provider makes after it answers (for example per contact delivered later) are not covered. Useful to keep a single pricey provider from dominating a large fan-out.","example":5},"soft_miss":{"type":"boolean","description":"Return a miss as HTTP 200 `{ \"found\": false, \"verdict\": \"not_found\", \"providers_tried\": N }` instead of 404. Use it when a 404 is indistinguishable from a real failure in your client (spreadsheet tools paint every non-2xx cell red, and \"re-run the errored cells\" then re-executes whole provider waterfalls for rows that will miss again). The verdict vocabulary matches the async sibling `/v1/jobs/{job_id}/results`. A miss is free either way. Only the \"no provider had it\" 404 converts — 400 (invalid input), 402 (out of credits) and 504 (`timed_out`, the waterfall was cut short so the miss is unproven) are unchanged. Default false.","example":true}},"additionalProperties":false,"example":{"input":{"linkedin_url":"https://www.linkedin.com/in/michel-lieben"}}}}}},"responses":{"200":{"description":"Enrich Person — also the status of a miss when `soft_miss: true` was sent (body: `{ found: false, verdict: \"not_found\", providers_tried: N }`).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/VerbResponse"}}}},"400":{"description":"Invalid envelope, unrecognized field, out-of-range value, or unrecognized provider. Validation failures carry `code: \"invalid_input\"` and `issues[]` with a field `path` and the allowed value or range.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"No usable result found across providers. Send `soft_miss: true` to receive this as a 200 `{ found: false }` instead.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded — see the Retry-After header and the `limits` object in the body. A bulk `inputs[]` call counts as ONE request, so batching is the fix for a throttled loop.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/company/enrich":{"post":{"summary":"Enrich Company","description":"Attach firmographics (headcount, revenue, industry, funding, tech stack) from a domain, name, or LinkedIn URL.","tags":["GTM Verbs"],"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"examples":{"single":{"summary":"One record — synchronous","value":{"input":{"domain":"coldiq.com"}}},"bulk":{"summary":"Up to 50 records in one request — counts as ONE call against your rate limit","value":{"inputs":[{"domain":"coldiq.com"}]}}},"schema":{"type":"object","properties":{"input":{"$ref":"#/components/schemas/CompanyIdentity"},"inputs":{"type":"array","items":{"$ref":"#/components/schemas/CompanyIdentity"},"maxItems":50,"description":"Bulk mode — up to 50 records in ONE request, run in parallel (provide either `input` or `inputs`, never both). Prefer this over a loop of single calls. RATE LIMIT: the whole batch is ONE request against your per-account limit, however many rows it holds — the per-row provider calls run internally and are not counted. So 50 rows sent as one batch cost 1 request, while the same 50 rows sent one at a time cost 50. PARTIAL FAILURE: a row that finds nothing, or whose provider errors, never fails the batch — every row is still attempted, the call returns 200, and that row carries its own error in its `results[]` entry. Two whole-batch failures exist: 400 if ANY row fails schema validation (the array is validated before the batch runs, so no row is attempted — clean your rows first), and 402 when EVERY row ran out of credits. ORDER: `results[]` is index-aligned with `inputs[]` — `results[i]` is always the outcome of `inputs[i]`, regardless of which row finished first. SPEND CAP: `max_credits` applies PER ROW, not per batch — a cap of 5 on a 50-row batch permits up to 5 credits for each row. TIMEOUT: the batch runs under one wall-clock budget, so a very large batch of slow lookups can return with later rows marked `timed_out` (those are refunded); re-send only those rows."},"provider":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}],"description":"Provider routing. \"auto\" (default) runs a managed waterfall; a single slug pins one vendor; an array is your ordered fallback chain. Valid slugs for this verb: \"limadata\", \"apollo\", \"prospeo\", \"openmart\", \"findymail\", \"icypeas\", \"discolike\", \"fullenrich-company\", \"leadmagic-company\", \"wiza\", \"builtwith\", \"linkupapi-by-url\". These are routing slugs, not catalog provider names — a slug is often the vendor plus the capability it serves (the catalog lists \"limadata\"; this field takes \"limadata-work-email\"). An unrecognized slug returns 400 and lists the accepted set.","example":"auto"},"max_credits":{"type":"number","minimum":0,"exclusiveMinimum":true,"description":"Per-record spend cap. A provider that would hold more than this for the record up front is not called, and a provider that answers but costs more than this is rejected and refunded, so you never pay more than N credits for one record (a miss if nothing answers in budget). A search that finds nobody costs 0. Charges a provider makes after it answers (for example per contact delivered later) are not covered. Useful to keep a single pricey provider from dominating a large fan-out.","example":5},"soft_miss":{"type":"boolean","description":"Return a miss as HTTP 200 `{ \"found\": false, \"verdict\": \"not_found\", \"providers_tried\": N }` instead of 404. Use it when a 404 is indistinguishable from a real failure in your client (spreadsheet tools paint every non-2xx cell red, and \"re-run the errored cells\" then re-executes whole provider waterfalls for rows that will miss again). The verdict vocabulary matches the async sibling `/v1/jobs/{job_id}/results`. A miss is free either way. Only the \"no provider had it\" 404 converts — 400 (invalid input), 402 (out of credits) and 504 (`timed_out`, the waterfall was cut short so the miss is unproven) are unchanged. Default false.","example":true}},"additionalProperties":false,"example":{"input":{"domain":"coldiq.com"}}}}}},"responses":{"200":{"description":"Enrich Company — also the status of a miss when `soft_miss: true` was sent (body: `{ found: false, verdict: \"not_found\", providers_tried: N }`).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/VerbResponse"}}}},"400":{"description":"Invalid envelope, unrecognized field, out-of-range value, or unrecognized provider. Validation failures carry `code: \"invalid_input\"` and `issues[]` with a field `path` and the allowed value or range.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"No usable result found across providers. Send `soft_miss: true` to receive this as a 200 `{ found: false }` instead.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded — see the Retry-After header and the `limits` object in the body. A bulk `inputs[]` call counts as ONE request, so batching is the fix for a throttled loop.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/people/search":{"post":{"summary":"Find People","description":"Find decision-makers at companies by title, seniority, department, domain, or LinkedIn company URL. Compact by default; set fields=\"verbose\" for the raw provider payload. Apollo results are obfuscated unless reveal=true (extra credit per person).","tags":["GTM Verbs"],"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"examples":{"single":{"summary":"One record — synchronous","value":{"input":{"company_domains":["coldiq.com"],"job_titles":["Head of Sales"]}}},"bulk":{"summary":"Up to 50 records in one request — counts as ONE call against your rate limit","value":{"inputs":[{"company_domains":["coldiq.com"],"job_titles":["Head of Sales"]}]}}},"schema":{"type":"object","properties":{"input":{"$ref":"#/components/schemas/FindPeopleInput"},"inputs":{"type":"array","items":{"$ref":"#/components/schemas/FindPeopleInput"},"maxItems":50,"description":"Bulk mode — up to 50 records in ONE request, run in parallel (provide either `input` or `inputs`, never both). Prefer this over a loop of single calls. RATE LIMIT: the whole batch is ONE request against your per-account limit, however many rows it holds — the per-row provider calls run internally and are not counted. So 50 rows sent as one batch cost 1 request, while the same 50 rows sent one at a time cost 50. PARTIAL FAILURE: a row that finds nothing, or whose provider errors, never fails the batch — every row is still attempted, the call returns 200, and that row carries its own error in its `results[]` entry. Two whole-batch failures exist: 400 if ANY row fails schema validation (the array is validated before the batch runs, so no row is attempted — clean your rows first), and 402 when EVERY row ran out of credits. ORDER: `results[]` is index-aligned with `inputs[]` — `results[i]` is always the outcome of `inputs[i]`, regardless of which row finished first. SPEND CAP: `max_credits` applies PER ROW, not per batch — a cap of 5 on a 50-row batch permits up to 5 credits for each row. TIMEOUT: the batch runs under one wall-clock budget, so a very large batch of slow lookups can return with later rows marked `timed_out` (those are refunded); re-send only those rows."},"provider":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}],"description":"Provider routing. \"auto\" (default) runs a managed waterfall; a single slug pins one vendor; an array is your ordered fallback chain. Valid slugs for this verb: \"ai-ark-people\", \"leadmagic\", \"findymail-search-employees\", \"prospeo-search-person\", \"linkupapi-search-profiles\", \"apollo\", \"fullenrich-people-search\", \"limadata-prospect-employees\", \"limadata-prospect-employees-batch\". These are routing slugs, not catalog provider names — a slug is often the vendor plus the capability it serves (the catalog lists \"limadata\"; this field takes \"limadata-work-email\"). An unrecognized slug returns 400 and lists the accepted set.","example":"auto"},"max_credits":{"type":"number","minimum":0,"exclusiveMinimum":true,"description":"Per-record spend cap. A provider that would hold more than this for the record up front is not called, and a provider that answers but costs more than this is rejected and refunded, so you never pay more than N credits for one record (a miss if nothing answers in budget). A search that finds nobody costs 0. Charges a provider makes after it answers (for example per contact delivered later) are not covered. Useful to keep a single pricey provider from dominating a large fan-out.","example":5},"soft_miss":{"type":"boolean","description":"Return a miss as HTTP 200 `{ \"found\": false, \"verdict\": \"not_found\", \"providers_tried\": N }` instead of 404. Use it when a 404 is indistinguishable from a real failure in your client (spreadsheet tools paint every non-2xx cell red, and \"re-run the errored cells\" then re-executes whole provider waterfalls for rows that will miss again). The verdict vocabulary matches the async sibling `/v1/jobs/{job_id}/results`. A miss is free either way. Only the \"no provider had it\" 404 converts — 400 (invalid input), 402 (out of credits) and 504 (`timed_out`, the waterfall was cut short so the miss is unproven) are unchanged. Default false.","example":true},"fields":{"type":"string","enum":["compact","verbose"],"description":"Response shape. \"compact\" (default) returns a small per-record object; \"verbose\" returns the raw provider payload.","example":"compact"},"reveal":{"type":"boolean","description":"Apollo-only: de-obfuscate names/emails via a follow-up match (extra credit per person)."}},"additionalProperties":false,"example":{"input":{"company_domains":["coldiq.com"],"job_titles":["Head of Sales"]}}}}}},"responses":{"200":{"description":"Find People — also the status of a miss when `soft_miss: true` was sent (body: `{ found: false, verdict: \"not_found\", providers_tried: N }`).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/VerbResponse"}}}},"400":{"description":"Invalid envelope, unrecognized field, out-of-range value, or unrecognized provider. Validation failures carry `code: \"invalid_input\"` and `issues[]` with a field `path` and the allowed value or range.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"No usable result found across providers. Send `soft_miss: true` to receive this as a 200 `{ found: false }` instead.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded — see the Retry-After header and the `limits` object in the body. A bulk `inputs[]` call counts as ONE request, so batching is the fix for a throttled loop.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/companies/search":{"post":{"summary":"Search Companies","description":"Build account lists by firmographics, tech stack, funding, geography, hiring, or keywords. To build a lookalike TAM from example accounts, pass similar_to_domains (seed company domains) — the request routes to DiscoLike's lookalike discovery over 70M companies, optionally narrowed by keywords / countries / employee range. For \"fast-growing\" targeting there is no exact workforce-growth % filter — pass min_workforce_growth_pct (or is_hiring / a recent funding filter) and the request is routed to active-hiring and recently-funded proxies, the practical signals for growth. Compact by default; set fields=\"verbose\" for the raw firmographic record.","tags":["GTM Verbs"],"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"examples":{"single":{"summary":"One record — synchronous","value":{"input":{"keywords":["SaaS"],"countries":["US"],"min_employees":50,"max_employees":200}}},"bulk":{"summary":"Up to 50 records in one request — counts as ONE call against your rate limit","value":{"inputs":[{"keywords":["SaaS"],"countries":["US"],"min_employees":50,"max_employees":200}]}}},"schema":{"type":"object","properties":{"input":{"$ref":"#/components/schemas/SearchCompaniesInput"},"inputs":{"type":"array","items":{"$ref":"#/components/schemas/SearchCompaniesInput"},"maxItems":50,"description":"Bulk mode — up to 50 records in ONE request, run in parallel (provide either `input` or `inputs`, never both). Prefer this over a loop of single calls. RATE LIMIT: the whole batch is ONE request against your per-account limit, however many rows it holds — the per-row provider calls run internally and are not counted. So 50 rows sent as one batch cost 1 request, while the same 50 rows sent one at a time cost 50. PARTIAL FAILURE: a row that finds nothing, or whose provider errors, never fails the batch — every row is still attempted, the call returns 200, and that row carries its own error in its `results[]` entry. Two whole-batch failures exist: 400 if ANY row fails schema validation (the array is validated before the batch runs, so no row is attempted — clean your rows first), and 402 when EVERY row ran out of credits. ORDER: `results[]` is index-aligned with `inputs[]` — `results[i]` is always the outcome of `inputs[i]`, regardless of which row finished first. SPEND CAP: `max_credits` applies PER ROW, not per batch — a cap of 5 on a 50-row batch permits up to 5 credits for each row. TIMEOUT: the batch runs under one wall-clock budget, so a very large batch of slow lookups can return with later rows marked `timed_out` (those are refunded); re-send only those rows."},"provider":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}],"description":"Provider routing. \"auto\" (default) runs a managed waterfall; a single slug pins one vendor; an array is your ordered fallback chain. Valid slugs for this verb: \"fullenrich\", \"theirstack\", \"signalbase\", \"limadata\", \"predictleads\", \"sumble\", \"linkupapi-search\", \"linkupapi-fundraising\", \"linkupapi-hiring\", \"prospeo-search-company\", \"ai-ark-companies\", \"apollo\", \"limadata-prospect-filter\", \"limadata-prospect-url\", \"discolike\". These are routing slugs, not catalog provider names — a slug is often the vendor plus the capability it serves (the catalog lists \"limadata\"; this field takes \"limadata-work-email\"). An unrecognized slug returns 400 and lists the accepted set.","example":"auto"},"max_credits":{"type":"number","minimum":0,"exclusiveMinimum":true,"description":"Per-record spend cap. A provider that would hold more than this for the record up front is not called, and a provider that answers but costs more than this is rejected and refunded, so you never pay more than N credits for one record (a miss if nothing answers in budget). A search that finds nobody costs 0. Charges a provider makes after it answers (for example per contact delivered later) are not covered. Useful to keep a single pricey provider from dominating a large fan-out.","example":5},"soft_miss":{"type":"boolean","description":"Return a miss as HTTP 200 `{ \"found\": false, \"verdict\": \"not_found\", \"providers_tried\": N }` instead of 404. Use it when a 404 is indistinguishable from a real failure in your client (spreadsheet tools paint every non-2xx cell red, and \"re-run the errored cells\" then re-executes whole provider waterfalls for rows that will miss again). The verdict vocabulary matches the async sibling `/v1/jobs/{job_id}/results`. A miss is free either way. Only the \"no provider had it\" 404 converts — 400 (invalid input), 402 (out of credits) and 504 (`timed_out`, the waterfall was cut short so the miss is unproven) are unchanged. Default false.","example":true},"fields":{"type":"string","enum":["compact","verbose"],"description":"Response shape. \"compact\" (default) returns a small per-record object; \"verbose\" returns the raw provider payload.","example":"compact"}},"additionalProperties":false,"example":{"input":{"keywords":["SaaS"],"countries":["US"],"min_employees":50,"max_employees":200}}}}}},"responses":{"200":{"description":"Search Companies — also the status of a miss when `soft_miss: true` was sent (body: `{ found: false, verdict: \"not_found\", providers_tried: N }`).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/VerbResponse"}}}},"400":{"description":"Invalid envelope, unrecognized field, out-of-range value, or unrecognized provider. Validation failures carry `code: \"invalid_input\"` and `issues[]` with a field `path` and the allowed value or range.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"No usable result found across providers. Send `soft_miss: true` to receive this as a 200 `{ found: false }` instead.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded — see the Retry-After header and the `limits` object in the body. A bulk `inputs[]` call counts as ONE request, so batching is the fix for a throttled loop.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/signals/find":{"post":{"summary":"Find Signals","description":"Surface buying signals — funding, acquisitions, hiring, job changes, news, or intent.","tags":["GTM Verbs"],"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"examples":{"single":{"summary":"One record — synchronous","value":{"input":{"signal_type":"funding","industries":["Software"]}}},"bulk":{"summary":"Up to 50 records in one request — counts as ONE call against your rate limit","value":{"inputs":[{"signal_type":"funding","industries":["Software"]}]}}},"schema":{"type":"object","properties":{"input":{"$ref":"#/components/schemas/FindSignalsInput"},"inputs":{"type":"array","items":{"$ref":"#/components/schemas/FindSignalsInput"},"maxItems":50,"description":"Bulk mode — up to 50 records in ONE request, run in parallel (provide either `input` or `inputs`, never both). Prefer this over a loop of single calls. RATE LIMIT: the whole batch is ONE request against your per-account limit, however many rows it holds — the per-row provider calls run internally and are not counted. So 50 rows sent as one batch cost 1 request, while the same 50 rows sent one at a time cost 50. PARTIAL FAILURE: a row that finds nothing, or whose provider errors, never fails the batch — every row is still attempted, the call returns 200, and that row carries its own error in its `results[]` entry. Two whole-batch failures exist: 400 if ANY row fails schema validation (the array is validated before the batch runs, so no row is attempted — clean your rows first), and 402 when EVERY row ran out of credits. ORDER: `results[]` is index-aligned with `inputs[]` — `results[i]` is always the outcome of `inputs[i]`, regardless of which row finished first. SPEND CAP: `max_credits` applies PER ROW, not per batch — a cap of 5 on a 50-row batch permits up to 5 credits for each row. TIMEOUT: the batch runs under one wall-clock budget, so a very large batch of slow lookups can return with later rows marked `timed_out` (those are refunded); re-send only those rows."},"provider":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}],"description":"Provider routing. \"auto\" (default) runs a managed waterfall; a single slug pins one vendor; an array is your ordered fallback chain. Valid slugs for this verb: \"signalbase-funding\", \"signalbase-acquisition\", \"theirstack-hiring\", \"signalbase-hiring\", \"signalbase-job-change\", \"theirstack-intent-discovery\", \"theirstack-buying-intents\", \"predictleads-financing\", \"predictleads-news\", \"predictleads-startup-posts\". These are routing slugs, not catalog provider names — a slug is often the vendor plus the capability it serves (the catalog lists \"limadata\"; this field takes \"limadata-work-email\"). An unrecognized slug returns 400 and lists the accepted set.","example":"auto"},"max_credits":{"type":"number","minimum":0,"exclusiveMinimum":true,"description":"Per-record spend cap. A provider that would hold more than this for the record up front is not called, and a provider that answers but costs more than this is rejected and refunded, so you never pay more than N credits for one record (a miss if nothing answers in budget). A search that finds nobody costs 0. Charges a provider makes after it answers (for example per contact delivered later) are not covered. Useful to keep a single pricey provider from dominating a large fan-out.","example":5},"soft_miss":{"type":"boolean","description":"Return a miss as HTTP 200 `{ \"found\": false, \"verdict\": \"not_found\", \"providers_tried\": N }` instead of 404. Use it when a 404 is indistinguishable from a real failure in your client (spreadsheet tools paint every non-2xx cell red, and \"re-run the errored cells\" then re-executes whole provider waterfalls for rows that will miss again). The verdict vocabulary matches the async sibling `/v1/jobs/{job_id}/results`. A miss is free either way. Only the \"no provider had it\" 404 converts — 400 (invalid input), 402 (out of credits) and 504 (`timed_out`, the waterfall was cut short so the miss is unproven) are unchanged. Default false.","example":true}},"additionalProperties":false,"example":{"input":{"signal_type":"funding","industries":["Software"]}}}}}},"responses":{"200":{"description":"Find Signals — also the status of a miss when `soft_miss: true` was sent (body: `{ found: false, verdict: \"not_found\", providers_tried: N }`).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/VerbResponse"}}}},"400":{"description":"Invalid envelope, unrecognized field, out-of-range value, or unrecognized provider. Validation failures carry `code: \"invalid_input\"` and `issues[]` with a field `path` and the allowed value or range.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"No usable result found across providers. Send `soft_miss: true` to receive this as a 200 `{ found: false }` instead.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded — see the Retry-After header and the `limits` object in the body. A bulk `inputs[]` call counts as ONE request, so batching is the fix for a throttled loop.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/ads/search":{"post":{"summary":"Search Ads","description":"Find active ads for a company or topic. Pin a platform (meta, google, linkedin, twitter) with `platform`.","tags":["GTM Verbs"],"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"examples":{"single":{"summary":"One record — synchronous","value":{"input":{"query":"ColdIQ","platform":"meta"}}},"bulk":{"summary":"Up to 50 records in one request — counts as ONE call against your rate limit","value":{"inputs":[{"query":"ColdIQ","platform":"meta"}]}}},"schema":{"type":"object","properties":{"input":{"$ref":"#/components/schemas/SearchAdsInput"},"inputs":{"type":"array","items":{"$ref":"#/components/schemas/SearchAdsInput"},"maxItems":50,"description":"Bulk mode — up to 50 records in ONE request, run in parallel (provide either `input` or `inputs`, never both). Prefer this over a loop of single calls. RATE LIMIT: the whole batch is ONE request against your per-account limit, however many rows it holds — the per-row provider calls run internally and are not counted. So 50 rows sent as one batch cost 1 request, while the same 50 rows sent one at a time cost 50. PARTIAL FAILURE: a row that finds nothing, or whose provider errors, never fails the batch — every row is still attempted, the call returns 200, and that row carries its own error in its `results[]` entry. Two whole-batch failures exist: 400 if ANY row fails schema validation (the array is validated before the batch runs, so no row is attempted — clean your rows first), and 402 when EVERY row ran out of credits. ORDER: `results[]` is index-aligned with `inputs[]` — `results[i]` is always the outcome of `inputs[i]`, regardless of which row finished first. SPEND CAP: `max_credits` applies PER ROW, not per batch — a cap of 5 on a 50-row batch permits up to 5 credits for each row. TIMEOUT: the batch runs under one wall-clock budget, so a very large batch of slow lookups can return with later rows marked `timed_out` (those are refunded); re-send only those rows."},"provider":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}],"description":"Provider routing. \"auto\" (default) runs a managed waterfall; a single slug pins one vendor; an array is your ordered fallback chain. Valid slugs for this verb: \"adyntel_google\", \"adyntel_linkedin\", \"adyntel_meta\", \"google_ads\", \"linkedin_ad_library\", \"meta_ads\", \"twitter_ads\". These are routing slugs, not catalog provider names — a slug is often the vendor plus the capability it serves (the catalog lists \"limadata\"; this field takes \"limadata-work-email\"). An unrecognized slug returns 400 and lists the accepted set.","example":"auto"},"max_credits":{"type":"number","minimum":0,"exclusiveMinimum":true,"description":"Per-record spend cap. A provider that would hold more than this for the record up front is not called, and a provider that answers but costs more than this is rejected and refunded, so you never pay more than N credits for one record (a miss if nothing answers in budget). A search that finds nobody costs 0. Charges a provider makes after it answers (for example per contact delivered later) are not covered. Useful to keep a single pricey provider from dominating a large fan-out.","example":5},"soft_miss":{"type":"boolean","description":"Return a miss as HTTP 200 `{ \"found\": false, \"verdict\": \"not_found\", \"providers_tried\": N }` instead of 404. Use it when a 404 is indistinguishable from a real failure in your client (spreadsheet tools paint every non-2xx cell red, and \"re-run the errored cells\" then re-executes whole provider waterfalls for rows that will miss again). The verdict vocabulary matches the async sibling `/v1/jobs/{job_id}/results`. A miss is free either way. Only the \"no provider had it\" 404 converts — 400 (invalid input), 402 (out of credits) and 504 (`timed_out`, the waterfall was cut short so the miss is unproven) are unchanged. Default false.","example":true}},"additionalProperties":false,"example":{"input":{"query":"ColdIQ","platform":"meta"}}}}}},"responses":{"200":{"description":"Search Ads — also the status of a miss when `soft_miss: true` was sent (body: `{ found: false, verdict: \"not_found\", providers_tried: N }`).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/VerbResponse"}}}},"400":{"description":"Invalid envelope, unrecognized field, out-of-range value, or unrecognized provider. Validation failures carry `code: \"invalid_input\"` and `issues[]` with a field `path` and the allowed value or range.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"No usable result found across providers. Send `soft_miss: true` to receive this as a 200 `{ found: false }` instead.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded — see the Retry-After header and the `limits` object in the body. A bulk `inputs[]` call counts as ONE request, so batching is the fix for a throttled loop.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/web/search":{"post":{"summary":"Web Search","description":"General web search for public facts, company resolution, pages, or context.","tags":["GTM Verbs"],"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"examples":{"single":{"summary":"One record — synchronous","value":{"input":{"query":"ColdIQ cold outreach platform"}}},"bulk":{"summary":"Up to 50 records in one request — counts as ONE call against your rate limit","value":{"inputs":[{"query":"ColdIQ cold outreach platform"}]}}},"schema":{"type":"object","properties":{"input":{"$ref":"#/components/schemas/SearchWebInput"},"inputs":{"type":"array","items":{"$ref":"#/components/schemas/SearchWebInput"},"maxItems":50,"description":"Bulk mode — up to 50 records in ONE request, run in parallel (provide either `input` or `inputs`, never both). Prefer this over a loop of single calls. RATE LIMIT: the whole batch is ONE request against your per-account limit, however many rows it holds — the per-row provider calls run internally and are not counted. So 50 rows sent as one batch cost 1 request, while the same 50 rows sent one at a time cost 50. PARTIAL FAILURE: a row that finds nothing, or whose provider errors, never fails the batch — every row is still attempted, the call returns 200, and that row carries its own error in its `results[]` entry. Two whole-batch failures exist: 400 if ANY row fails schema validation (the array is validated before the batch runs, so no row is attempted — clean your rows first), and 402 when EVERY row ran out of credits. ORDER: `results[]` is index-aligned with `inputs[]` — `results[i]` is always the outcome of `inputs[i]`, regardless of which row finished first. SPEND CAP: `max_credits` applies PER ROW, not per batch — a cap of 5 on a 50-row batch permits up to 5 credits for each row. TIMEOUT: the batch runs under one wall-clock budget, so a very large batch of slow lookups can return with later rows marked `timed_out` (those are refunded); re-send only those rows."},"provider":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}],"description":"Provider routing. \"auto\" (default) runs a managed waterfall; a single slug pins one vendor; an array is your ordered fallback chain. Valid slugs for this verb: \"serper\", \"limadata\", \"exa\", \"jina\". These are routing slugs, not catalog provider names — a slug is often the vendor plus the capability it serves (the catalog lists \"limadata\"; this field takes \"limadata-work-email\"). An unrecognized slug returns 400 and lists the accepted set.","example":"auto"},"max_credits":{"type":"number","minimum":0,"exclusiveMinimum":true,"description":"Per-record spend cap. A provider that would hold more than this for the record up front is not called, and a provider that answers but costs more than this is rejected and refunded, so you never pay more than N credits for one record (a miss if nothing answers in budget). A search that finds nobody costs 0. Charges a provider makes after it answers (for example per contact delivered later) are not covered. Useful to keep a single pricey provider from dominating a large fan-out.","example":5},"soft_miss":{"type":"boolean","description":"Return a miss as HTTP 200 `{ \"found\": false, \"verdict\": \"not_found\", \"providers_tried\": N }` instead of 404. Use it when a 404 is indistinguishable from a real failure in your client (spreadsheet tools paint every non-2xx cell red, and \"re-run the errored cells\" then re-executes whole provider waterfalls for rows that will miss again). The verdict vocabulary matches the async sibling `/v1/jobs/{job_id}/results`. A miss is free either way. Only the \"no provider had it\" 404 converts — 400 (invalid input), 402 (out of credits) and 504 (`timed_out`, the waterfall was cut short so the miss is unproven) are unchanged. Default false.","example":true}},"additionalProperties":false,"example":{"input":{"query":"ColdIQ cold outreach platform"}}}}}},"responses":{"200":{"description":"Web Search — also the status of a miss when `soft_miss: true` was sent (body: `{ found: false, verdict: \"not_found\", providers_tried: N }`).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/VerbResponse"}}}},"400":{"description":"Invalid envelope, unrecognized field, out-of-range value, or unrecognized provider. Validation failures carry `code: \"invalid_input\"` and `issues[]` with a field `path` and the allowed value or range.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"No usable result found across providers. Send `soft_miss: true` to receive this as a 200 `{ found: false }` instead.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded — see the Retry-After header and the `limits` object in the body. A bulk `inputs[]` call counts as ONE request, so batching is the fix for a throttled loop.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/web/fetch":{"post":{"summary":"Fetch Page Content","description":"Fetch and extract clean text (and optionally a summary) from one or more URLs.","tags":["GTM Verbs"],"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"examples":{"single":{"summary":"One record — synchronous","value":{"input":{"urls":["https://coldiq.com"]}}},"bulk":{"summary":"Up to 50 records in one request — counts as ONE call against your rate limit","value":{"inputs":[{"urls":["https://coldiq.com"]}]}}},"schema":{"type":"object","properties":{"input":{"$ref":"#/components/schemas/FetchPageInput"},"inputs":{"type":"array","items":{"$ref":"#/components/schemas/FetchPageInput"},"maxItems":50,"description":"Bulk mode — up to 50 records in ONE request, run in parallel (provide either `input` or `inputs`, never both). Prefer this over a loop of single calls. RATE LIMIT: the whole batch is ONE request against your per-account limit, however many rows it holds — the per-row provider calls run internally and are not counted. So 50 rows sent as one batch cost 1 request, while the same 50 rows sent one at a time cost 50. PARTIAL FAILURE: a row that finds nothing, or whose provider errors, never fails the batch — every row is still attempted, the call returns 200, and that row carries its own error in its `results[]` entry. Two whole-batch failures exist: 400 if ANY row fails schema validation (the array is validated before the batch runs, so no row is attempted — clean your rows first), and 402 when EVERY row ran out of credits. ORDER: `results[]` is index-aligned with `inputs[]` — `results[i]` is always the outcome of `inputs[i]`, regardless of which row finished first. SPEND CAP: `max_credits` applies PER ROW, not per batch — a cap of 5 on a 50-row batch permits up to 5 credits for each row. TIMEOUT: the batch runs under one wall-clock budget, so a very large batch of slow lookups can return with later rows marked `timed_out` (those are refunded); re-send only those rows."},"provider":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}],"description":"Provider routing. \"auto\" (default) runs a managed waterfall; a single slug pins one vendor; an array is your ordered fallback chain. Valid slugs for this verb: \"exa-contents\". These are routing slugs, not catalog provider names — a slug is often the vendor plus the capability it serves (the catalog lists \"limadata\"; this field takes \"limadata-work-email\"). An unrecognized slug returns 400 and lists the accepted set.","example":"auto"},"max_credits":{"type":"number","minimum":0,"exclusiveMinimum":true,"description":"Per-record spend cap. A provider that would hold more than this for the record up front is not called, and a provider that answers but costs more than this is rejected and refunded, so you never pay more than N credits for one record (a miss if nothing answers in budget). A search that finds nobody costs 0. Charges a provider makes after it answers (for example per contact delivered later) are not covered. Useful to keep a single pricey provider from dominating a large fan-out.","example":5},"soft_miss":{"type":"boolean","description":"Return a miss as HTTP 200 `{ \"found\": false, \"verdict\": \"not_found\", \"providers_tried\": N }` instead of 404. Use it when a 404 is indistinguishable from a real failure in your client (spreadsheet tools paint every non-2xx cell red, and \"re-run the errored cells\" then re-executes whole provider waterfalls for rows that will miss again). The verdict vocabulary matches the async sibling `/v1/jobs/{job_id}/results`. A miss is free either way. Only the \"no provider had it\" 404 converts — 400 (invalid input), 402 (out of credits) and 504 (`timed_out`, the waterfall was cut short so the miss is unproven) are unchanged. Default false.","example":true}},"additionalProperties":false,"example":{"input":{"urls":["https://coldiq.com"]}}}}}},"responses":{"200":{"description":"Fetch Page Content — also the status of a miss when `soft_miss: true` was sent (body: `{ found: false, verdict: \"not_found\", providers_tried: N }`).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/VerbResponse"}}}},"400":{"description":"Invalid envelope, unrecognized field, out-of-range value, or unrecognized provider. Validation failures carry `code: \"invalid_input\"` and `issues[]` with a field `path` and the allowed value or range.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"No usable result found across providers. Send `soft_miss: true` to receive this as a 200 `{ found: false }` instead.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded — see the Retry-After header and the `limits` object in the body. A bulk `inputs[]` call counts as ONE request, so batching is the fix for a throttled loop.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/jobs/search":{"post":{"summary":"Search Jobs","description":"Search live job postings by title, location, company, ATS, or LinkedIn-style filters.","tags":["GTM Verbs"],"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"examples":{"single":{"summary":"One record — synchronous","value":{"input":{"title_keywords":["Account Executive"],"locations":["New York, New York, United States"]}}},"bulk":{"summary":"Up to 50 records in one request — counts as ONE call against your rate limit","value":{"inputs":[{"title_keywords":["Account Executive"],"locations":["New York, New York, United States"]}]}}},"schema":{"type":"object","properties":{"input":{"$ref":"#/components/schemas/SearchJobsInput"},"inputs":{"type":"array","items":{"$ref":"#/components/schemas/SearchJobsInput"},"maxItems":50,"description":"Bulk mode — up to 50 records in ONE request, run in parallel (provide either `input` or `inputs`, never both). Prefer this over a loop of single calls. RATE LIMIT: the whole batch is ONE request against your per-account limit, however many rows it holds — the per-row provider calls run internally and are not counted. So 50 rows sent as one batch cost 1 request, while the same 50 rows sent one at a time cost 50. PARTIAL FAILURE: a row that finds nothing, or whose provider errors, never fails the batch — every row is still attempted, the call returns 200, and that row carries its own error in its `results[]` entry. Two whole-batch failures exist: 400 if ANY row fails schema validation (the array is validated before the batch runs, so no row is attempted — clean your rows first), and 402 when EVERY row ran out of credits. ORDER: `results[]` is index-aligned with `inputs[]` — `results[i]` is always the outcome of `inputs[i]`, regardless of which row finished first. SPEND CAP: `max_credits` applies PER ROW, not per batch — a cap of 5 on a 50-row batch permits up to 5 credits for each row. TIMEOUT: the batch runs under one wall-clock budget, so a very large batch of slow lookups can return with later rows marked `timed_out` (those are refunded); re-send only those rows."},"provider":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}],"description":"Provider routing. \"auto\" (default) runs a managed waterfall; a single slug pins one vendor; an array is your ordered fallback chain. Valid slugs for this verb: \"career_site_jobs\", \"linkedin_jobs_api\", \"theirstack-jobs\". These are routing slugs, not catalog provider names — a slug is often the vendor plus the capability it serves (the catalog lists \"limadata\"; this field takes \"limadata-work-email\"). An unrecognized slug returns 400 and lists the accepted set.","example":"auto"},"max_credits":{"type":"number","minimum":0,"exclusiveMinimum":true,"description":"Per-record spend cap. A provider that would hold more than this for the record up front is not called, and a provider that answers but costs more than this is rejected and refunded, so you never pay more than N credits for one record (a miss if nothing answers in budget). A search that finds nobody costs 0. Charges a provider makes after it answers (for example per contact delivered later) are not covered. Useful to keep a single pricey provider from dominating a large fan-out.","example":5},"soft_miss":{"type":"boolean","description":"Return a miss as HTTP 200 `{ \"found\": false, \"verdict\": \"not_found\", \"providers_tried\": N }` instead of 404. Use it when a 404 is indistinguishable from a real failure in your client (spreadsheet tools paint every non-2xx cell red, and \"re-run the errored cells\" then re-executes whole provider waterfalls for rows that will miss again). The verdict vocabulary matches the async sibling `/v1/jobs/{job_id}/results`. A miss is free either way. Only the \"no provider had it\" 404 converts — 400 (invalid input), 402 (out of credits) and 504 (`timed_out`, the waterfall was cut short so the miss is unproven) are unchanged. Default false.","example":true}},"additionalProperties":false,"example":{"input":{"title_keywords":["Account Executive"],"locations":["New York, New York, United States"]}}}}}},"responses":{"200":{"description":"Search Jobs — also the status of a miss when `soft_miss: true` was sent (body: `{ found: false, verdict: \"not_found\", providers_tried: N }`).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/VerbResponse"}}}},"400":{"description":"Invalid envelope, unrecognized field, out-of-range value, or unrecognized provider. Validation failures carry `code: \"invalid_input\"` and `issues[]` with a field `path` and the allowed value or range.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"No usable result found across providers. Send `soft_miss: true` to receive this as a 200 `{ found: false }` instead.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded — see the Retry-After header and the `limits` object in the body. A bulk `inputs[]` call counts as ONE request, so batching is the fix for a throttled loop.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/places/search":{"post":{"summary":"Search Places","description":"Find local businesses or places by category and geography.","tags":["GTM Verbs"],"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"examples":{"single":{"summary":"One record — synchronous","value":{"input":{"query":"marketing agencies in New York"}}},"bulk":{"summary":"Up to 50 records in one request — counts as ONE call against your rate limit","value":{"inputs":[{"query":"marketing agencies in New York"}]}}},"schema":{"type":"object","properties":{"input":{"$ref":"#/components/schemas/SearchPlacesInput"},"inputs":{"type":"array","items":{"$ref":"#/components/schemas/SearchPlacesInput"},"maxItems":50,"description":"Bulk mode — up to 50 records in ONE request, run in parallel (provide either `input` or `inputs`, never both). Prefer this over a loop of single calls. RATE LIMIT: the whole batch is ONE request against your per-account limit, however many rows it holds — the per-row provider calls run internally and are not counted. So 50 rows sent as one batch cost 1 request, while the same 50 rows sent one at a time cost 50. PARTIAL FAILURE: a row that finds nothing, or whose provider errors, never fails the batch — every row is still attempted, the call returns 200, and that row carries its own error in its `results[]` entry. Two whole-batch failures exist: 400 if ANY row fails schema validation (the array is validated before the batch runs, so no row is attempted — clean your rows first), and 402 when EVERY row ran out of credits. ORDER: `results[]` is index-aligned with `inputs[]` — `results[i]` is always the outcome of `inputs[i]`, regardless of which row finished first. SPEND CAP: `max_credits` applies PER ROW, not per batch — a cap of 5 on a 50-row batch permits up to 5 credits for each row. TIMEOUT: the batch runs under one wall-clock budget, so a very large batch of slow lookups can return with later rows marked `timed_out` (those are refunded); re-send only those rows."},"provider":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}],"description":"Provider routing. \"auto\" (default) runs a managed waterfall; a single slug pins one vendor; an array is your ordered fallback chain. Valid slugs for this verb: \"openmart\", \"google_maps\". These are routing slugs, not catalog provider names — a slug is often the vendor plus the capability it serves (the catalog lists \"limadata\"; this field takes \"limadata-work-email\"). An unrecognized slug returns 400 and lists the accepted set.","example":"auto"},"max_credits":{"type":"number","minimum":0,"exclusiveMinimum":true,"description":"Per-record spend cap. A provider that would hold more than this for the record up front is not called, and a provider that answers but costs more than this is rejected and refunded, so you never pay more than N credits for one record (a miss if nothing answers in budget). A search that finds nobody costs 0. Charges a provider makes after it answers (for example per contact delivered later) are not covered. Useful to keep a single pricey provider from dominating a large fan-out.","example":5},"soft_miss":{"type":"boolean","description":"Return a miss as HTTP 200 `{ \"found\": false, \"verdict\": \"not_found\", \"providers_tried\": N }` instead of 404. Use it when a 404 is indistinguishable from a real failure in your client (spreadsheet tools paint every non-2xx cell red, and \"re-run the errored cells\" then re-executes whole provider waterfalls for rows that will miss again). The verdict vocabulary matches the async sibling `/v1/jobs/{job_id}/results`. A miss is free either way. Only the \"no provider had it\" 404 converts — 400 (invalid input), 402 (out of credits) and 504 (`timed_out`, the waterfall was cut short so the miss is unproven) are unchanged. Default false.","example":true}},"additionalProperties":false,"example":{"input":{"query":"marketing agencies in New York"}}}}}},"responses":{"200":{"description":"Search Places — also the status of a miss when `soft_miss: true` was sent (body: `{ found: false, verdict: \"not_found\", providers_tried: N }`).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/VerbResponse"}}}},"400":{"description":"Invalid envelope, unrecognized field, out-of-range value, or unrecognized provider. Validation failures carry `code: \"invalid_input\"` and `issues[]` with a field `path` and the allowed value or range.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"No usable result found across providers. Send `soft_miss: true` to receive this as a 200 `{ found: false }` instead.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded — see the Retry-After header and the `limits` object in the body. A bulk `inputs[]` call counts as ONE request, so batching is the fix for a throttled loop.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/places/reviews":{"post":{"summary":"Get Place Reviews","description":"Retrieve reviews for one or more Google Maps places.","tags":["GTM Verbs"],"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"examples":{"single":{"summary":"One record — synchronous","value":{"input":{"place_urls":["https://www.google.com/maps/place/Microsoft"]}}},"bulk":{"summary":"Up to 50 records in one request — counts as ONE call against your rate limit","value":{"inputs":[{"place_urls":["https://www.google.com/maps/place/Microsoft"]}]}}},"schema":{"type":"object","properties":{"input":{"$ref":"#/components/schemas/PlaceReviewsInput"},"inputs":{"type":"array","items":{"$ref":"#/components/schemas/PlaceReviewsInput"},"maxItems":50,"description":"Bulk mode — up to 50 records in ONE request, run in parallel (provide either `input` or `inputs`, never both). Prefer this over a loop of single calls. RATE LIMIT: the whole batch is ONE request against your per-account limit, however many rows it holds — the per-row provider calls run internally and are not counted. So 50 rows sent as one batch cost 1 request, while the same 50 rows sent one at a time cost 50. PARTIAL FAILURE: a row that finds nothing, or whose provider errors, never fails the batch — every row is still attempted, the call returns 200, and that row carries its own error in its `results[]` entry. Two whole-batch failures exist: 400 if ANY row fails schema validation (the array is validated before the batch runs, so no row is attempted — clean your rows first), and 402 when EVERY row ran out of credits. ORDER: `results[]` is index-aligned with `inputs[]` — `results[i]` is always the outcome of `inputs[i]`, regardless of which row finished first. SPEND CAP: `max_credits` applies PER ROW, not per batch — a cap of 5 on a 50-row batch permits up to 5 credits for each row. TIMEOUT: the batch runs under one wall-clock budget, so a very large batch of slow lookups can return with later rows marked `timed_out` (those are refunded); re-send only those rows."},"provider":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}],"description":"Provider routing. \"auto\" (default) runs a managed waterfall; a single slug pins one vendor; an array is your ordered fallback chain. Valid slugs for this verb: \"google_maps_reviews\". These are routing slugs, not catalog provider names — a slug is often the vendor plus the capability it serves (the catalog lists \"limadata\"; this field takes \"limadata-work-email\"). An unrecognized slug returns 400 and lists the accepted set.","example":"auto"},"max_credits":{"type":"number","minimum":0,"exclusiveMinimum":true,"description":"Per-record spend cap. A provider that would hold more than this for the record up front is not called, and a provider that answers but costs more than this is rejected and refunded, so you never pay more than N credits for one record (a miss if nothing answers in budget). A search that finds nobody costs 0. Charges a provider makes after it answers (for example per contact delivered later) are not covered. Useful to keep a single pricey provider from dominating a large fan-out.","example":5},"soft_miss":{"type":"boolean","description":"Return a miss as HTTP 200 `{ \"found\": false, \"verdict\": \"not_found\", \"providers_tried\": N }` instead of 404. Use it when a 404 is indistinguishable from a real failure in your client (spreadsheet tools paint every non-2xx cell red, and \"re-run the errored cells\" then re-executes whole provider waterfalls for rows that will miss again). The verdict vocabulary matches the async sibling `/v1/jobs/{job_id}/results`. A miss is free either way. Only the \"no provider had it\" 404 converts — 400 (invalid input), 402 (out of credits) and 504 (`timed_out`, the waterfall was cut short so the miss is unproven) are unchanged. Default false.","example":true}},"additionalProperties":false,"example":{"input":{"place_urls":["https://www.google.com/maps/place/Microsoft"]}}}}}},"responses":{"200":{"description":"Get Place Reviews — also the status of a miss when `soft_miss: true` was sent (body: `{ found: false, verdict: \"not_found\", providers_tried: N }`).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/VerbResponse"}}}},"400":{"description":"Invalid envelope, unrecognized field, out-of-range value, or unrecognized provider. Validation failures carry `code: \"invalid_input\"` and `issues[]` with a field `path` and the allowed value or range.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"No usable result found across providers. Send `soft_miss: true` to receive this as a 200 `{ found: false }` instead.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded — see the Retry-After header and the `limits` object in the body. A bulk `inputs[]` call counts as ONE request, so batching is the fix for a throttled loop.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/influencers/find":{"post":{"summary":"Find Influencers","description":"Discover creators or influencers for a niche or audience across major social platforms.","tags":["GTM Verbs"],"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"examples":{"single":{"summary":"One record — synchronous","value":{"input":{"platform":"instagram","ai_search":"B2B sales creators in the US"}}},"bulk":{"summary":"Up to 50 records in one request — counts as ONE call against your rate limit","value":{"inputs":[{"platform":"instagram","ai_search":"B2B sales creators in the US"}]}}},"schema":{"type":"object","properties":{"input":{"$ref":"#/components/schemas/FindInfluencersInput"},"inputs":{"type":"array","items":{"$ref":"#/components/schemas/FindInfluencersInput"},"maxItems":50,"description":"Bulk mode — up to 50 records in ONE request, run in parallel (provide either `input` or `inputs`, never both). Prefer this over a loop of single calls. RATE LIMIT: the whole batch is ONE request against your per-account limit, however many rows it holds — the per-row provider calls run internally and are not counted. So 50 rows sent as one batch cost 1 request, while the same 50 rows sent one at a time cost 50. PARTIAL FAILURE: a row that finds nothing, or whose provider errors, never fails the batch — every row is still attempted, the call returns 200, and that row carries its own error in its `results[]` entry. Two whole-batch failures exist: 400 if ANY row fails schema validation (the array is validated before the batch runs, so no row is attempted — clean your rows first), and 402 when EVERY row ran out of credits. ORDER: `results[]` is index-aligned with `inputs[]` — `results[i]` is always the outcome of `inputs[i]`, regardless of which row finished first. SPEND CAP: `max_credits` applies PER ROW, not per batch — a cap of 5 on a 50-row batch permits up to 5 credits for each row. TIMEOUT: the batch runs under one wall-clock budget, so a very large batch of slow lookups can return with later rows marked `timed_out` (those are refunded); re-send only those rows."},"provider":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}],"description":"Provider routing. \"auto\" (default) runs a managed waterfall; a single slug pins one vendor; an array is your ordered fallback chain. Valid slugs for this verb: \"influencers_similar\", \"influencers_discovery\". These are routing slugs, not catalog provider names — a slug is often the vendor plus the capability it serves (the catalog lists \"limadata\"; this field takes \"limadata-work-email\"). An unrecognized slug returns 400 and lists the accepted set.","example":"auto"},"max_credits":{"type":"number","minimum":0,"exclusiveMinimum":true,"description":"Per-record spend cap. A provider that would hold more than this for the record up front is not called, and a provider that answers but costs more than this is rejected and refunded, so you never pay more than N credits for one record (a miss if nothing answers in budget). A search that finds nobody costs 0. Charges a provider makes after it answers (for example per contact delivered later) are not covered. Useful to keep a single pricey provider from dominating a large fan-out.","example":5},"soft_miss":{"type":"boolean","description":"Return a miss as HTTP 200 `{ \"found\": false, \"verdict\": \"not_found\", \"providers_tried\": N }` instead of 404. Use it when a 404 is indistinguishable from a real failure in your client (spreadsheet tools paint every non-2xx cell red, and \"re-run the errored cells\" then re-executes whole provider waterfalls for rows that will miss again). The verdict vocabulary matches the async sibling `/v1/jobs/{job_id}/results`. A miss is free either way. Only the \"no provider had it\" 404 converts — 400 (invalid input), 402 (out of credits) and 504 (`timed_out`, the waterfall was cut short so the miss is unproven) are unchanged. Default false.","example":true}},"additionalProperties":false,"example":{"input":{"platform":"instagram","ai_search":"B2B sales creators in the US"}}}}}},"responses":{"200":{"description":"Find Influencers — also the status of a miss when `soft_miss: true` was sent (body: `{ found: false, verdict: \"not_found\", providers_tried: N }`).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/VerbResponse"}}}},"400":{"description":"Invalid envelope, unrecognized field, out-of-range value, or unrecognized provider. Validation failures carry `code: \"invalid_input\"` and `issues[]` with a field `path` and the allowed value or range.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"No usable result found across providers. Send `soft_miss: true` to receive this as a 200 `{ found: false }` instead.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded — see the Retry-After header and the `limits` object in the body. A bulk `inputs[]` call counts as ONE request, so batching is the fix for a throttled loop.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/reddit/search":{"post":{"summary":"Search Reddit","description":"Search Reddit posts, comments, or communities for market research and buyer language.","tags":["GTM Verbs"],"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"examples":{"single":{"summary":"One record — synchronous","value":{"input":{"query":"cold email deliverability","search_community_name":"sales"}}},"bulk":{"summary":"Up to 50 records in one request — counts as ONE call against your rate limit","value":{"inputs":[{"query":"cold email deliverability","search_community_name":"sales"}]}}},"schema":{"type":"object","properties":{"input":{"$ref":"#/components/schemas/SearchRedditInput"},"inputs":{"type":"array","items":{"$ref":"#/components/schemas/SearchRedditInput"},"maxItems":50,"description":"Bulk mode — up to 50 records in ONE request, run in parallel (provide either `input` or `inputs`, never both). Prefer this over a loop of single calls. RATE LIMIT: the whole batch is ONE request against your per-account limit, however many rows it holds — the per-row provider calls run internally and are not counted. So 50 rows sent as one batch cost 1 request, while the same 50 rows sent one at a time cost 50. PARTIAL FAILURE: a row that finds nothing, or whose provider errors, never fails the batch — every row is still attempted, the call returns 200, and that row carries its own error in its `results[]` entry. Two whole-batch failures exist: 400 if ANY row fails schema validation (the array is validated before the batch runs, so no row is attempted — clean your rows first), and 402 when EVERY row ran out of credits. ORDER: `results[]` is index-aligned with `inputs[]` — `results[i]` is always the outcome of `inputs[i]`, regardless of which row finished first. SPEND CAP: `max_credits` applies PER ROW, not per batch — a cap of 5 on a 50-row batch permits up to 5 credits for each row. TIMEOUT: the batch runs under one wall-clock budget, so a very large batch of slow lookups can return with later rows marked `timed_out` (those are refunded); re-send only those rows."},"provider":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}],"description":"Provider routing. \"auto\" (default) runs a managed waterfall; a single slug pins one vendor; an array is your ordered fallback chain. Valid slugs for this verb: \"reddit\". These are routing slugs, not catalog provider names — a slug is often the vendor plus the capability it serves (the catalog lists \"limadata\"; this field takes \"limadata-work-email\"). An unrecognized slug returns 400 and lists the accepted set.","example":"auto"},"max_credits":{"type":"number","minimum":0,"exclusiveMinimum":true,"description":"Per-record spend cap. A provider that would hold more than this for the record up front is not called, and a provider that answers but costs more than this is rejected and refunded, so you never pay more than N credits for one record (a miss if nothing answers in budget). A search that finds nobody costs 0. Charges a provider makes after it answers (for example per contact delivered later) are not covered. Useful to keep a single pricey provider from dominating a large fan-out.","example":5},"soft_miss":{"type":"boolean","description":"Return a miss as HTTP 200 `{ \"found\": false, \"verdict\": \"not_found\", \"providers_tried\": N }` instead of 404. Use it when a 404 is indistinguishable from a real failure in your client (spreadsheet tools paint every non-2xx cell red, and \"re-run the errored cells\" then re-executes whole provider waterfalls for rows that will miss again). The verdict vocabulary matches the async sibling `/v1/jobs/{job_id}/results`. A miss is free either way. Only the \"no provider had it\" 404 converts — 400 (invalid input), 402 (out of credits) and 504 (`timed_out`, the waterfall was cut short so the miss is unproven) are unchanged. Default false.","example":true}},"additionalProperties":false,"example":{"input":{"query":"cold email deliverability","search_community_name":"sales"}}}}}},"responses":{"200":{"description":"Search Reddit — also the status of a miss when `soft_miss: true` was sent (body: `{ found: false, verdict: \"not_found\", providers_tried: N }`).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/VerbResponse"}}}},"400":{"description":"Invalid envelope, unrecognized field, out-of-range value, or unrecognized provider. Validation failures carry `code: \"invalid_input\"` and `issues[]` with a field `path` and the allowed value or range.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"No usable result found across providers. Send `soft_miss: true` to receive this as a 200 `{ found: false }` instead.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded — see the Retry-After header and the `limits` object in the body. A bulk `inputs[]` call counts as ONE request, so batching is the fix for a throttled loop.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/seo/search":{"post":{"summary":"Search SEO","description":"Run SERP, keyword, backlink, domain, labs, or on-page SEO research.","tags":["GTM Verbs"],"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"examples":{"single":{"summary":"One record — synchronous","value":{"input":{"category":"serp","keyword":"cold outreach software"}}},"bulk":{"summary":"Up to 50 records in one request — counts as ONE call against your rate limit","value":{"inputs":[{"category":"serp","keyword":"cold outreach software"}]}}},"schema":{"type":"object","properties":{"input":{"$ref":"#/components/schemas/SearchSeoInput"},"inputs":{"type":"array","items":{"$ref":"#/components/schemas/SearchSeoInput"},"maxItems":50,"description":"Bulk mode — up to 50 records in ONE request, run in parallel (provide either `input` or `inputs`, never both). Prefer this over a loop of single calls. RATE LIMIT: the whole batch is ONE request against your per-account limit, however many rows it holds — the per-row provider calls run internally and are not counted. So 50 rows sent as one batch cost 1 request, while the same 50 rows sent one at a time cost 50. PARTIAL FAILURE: a row that finds nothing, or whose provider errors, never fails the batch — every row is still attempted, the call returns 200, and that row carries its own error in its `results[]` entry. Two whole-batch failures exist: 400 if ANY row fails schema validation (the array is validated before the batch runs, so no row is attempted — clean your rows first), and 402 when EVERY row ran out of credits. ORDER: `results[]` is index-aligned with `inputs[]` — `results[i]` is always the outcome of `inputs[i]`, regardless of which row finished first. SPEND CAP: `max_credits` applies PER ROW, not per batch — a cap of 5 on a 50-row batch permits up to 5 credits for each row. TIMEOUT: the batch runs under one wall-clock budget, so a very large batch of slow lookups can return with later rows marked `timed_out` (those are refunded); re-send only those rows."},"provider":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}],"description":"Provider routing. \"auto\" (default) runs a managed waterfall; a single slug pins one vendor; an array is your ordered fallback chain. Valid slugs for this verb: \"kw_search_volume\", \"kw_trends\", \"serp_google\", \"serp_bing\", \"serp_youtube\", \"bl_summary\", \"bl_backlinks\", \"bl_referring\", \"domain_tech\", \"domain_whois\", \"labs_rank_overview\", \"labs_ranked_kw\", \"labs_competitors\", \"labs_kw_ideas\", \"page_lighthouse\", \"page_content\". These are routing slugs, not catalog provider names — a slug is often the vendor plus the capability it serves (the catalog lists \"limadata\"; this field takes \"limadata-work-email\"). An unrecognized slug returns 400 and lists the accepted set.","example":"auto"},"max_credits":{"type":"number","minimum":0,"exclusiveMinimum":true,"description":"Per-record spend cap. A provider that would hold more than this for the record up front is not called, and a provider that answers but costs more than this is rejected and refunded, so you never pay more than N credits for one record (a miss if nothing answers in budget). A search that finds nobody costs 0. Charges a provider makes after it answers (for example per contact delivered later) are not covered. Useful to keep a single pricey provider from dominating a large fan-out.","example":5},"soft_miss":{"type":"boolean","description":"Return a miss as HTTP 200 `{ \"found\": false, \"verdict\": \"not_found\", \"providers_tried\": N }` instead of 404. Use it when a 404 is indistinguishable from a real failure in your client (spreadsheet tools paint every non-2xx cell red, and \"re-run the errored cells\" then re-executes whole provider waterfalls for rows that will miss again). The verdict vocabulary matches the async sibling `/v1/jobs/{job_id}/results`. A miss is free either way. Only the \"no provider had it\" 404 converts — 400 (invalid input), 402 (out of credits) and 504 (`timed_out`, the waterfall was cut short so the miss is unproven) are unchanged. Default false.","example":true}},"additionalProperties":false,"example":{"input":{"category":"serp","keyword":"cold outreach software"}}}}}},"responses":{"200":{"description":"Search SEO — also the status of a miss when `soft_miss: true` was sent (body: `{ found: false, verdict: \"not_found\", providers_tried: N }`).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/VerbResponse"}}}},"400":{"description":"Invalid envelope, unrecognized field, out-of-range value, or unrecognized provider. Validation failures carry `code: \"invalid_input\"` and `issues[]` with a field `path` and the allowed value or range.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"No usable result found across providers. Send `soft_miss: true` to receive this as a 200 `{ found: false }` instead.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded — see the Retry-After header and the `limits` object in the body. A bulk `inputs[]` call counts as ONE request, so batching is the fix for a throttled loop.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/email/verify/bulk/submit":{"post":{"summary":"Bulk Verify Emails","description":"Verify up to 5,000 emails asynchronously. Returns a job_id immediately; poll POST /v1/jobs/{job_id}/results for status + verdicts. Charged per conclusively-verified email (catch_all/risky/disposable are conclusive and sendable; unknown is free). Runs on BounceBan by default (resolves catch-all/risky addresses, ~0.2 credits/verified) with automatic Icypeas failover (0.1 credits/verified) if the BounceBan submit fails; an explicit use_providers pin is strict and never silently switches backend. BILLING SHAPE: per conclusively-verified email across the whole job, and the entire job costs ONE request against your rate limit. Sibling route: POST /bounceban/verify/single is the synchronous single-address form of the same BounceBan backend — use it for interactive one-off checks, and this route for anything list-sized, where it is materially cheaper per email.","tags":["GTM Verbs"],"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"emails":{"type":"array","items":{"type":"string"},"minItems":1,"maxItems":5000,"description":"Emails to verify (1–5000)."},"use_providers":{"type":"array","items":{"type":"string"},"description":"Provider pin. Omit for the default: BounceBan (resolves catch-all/risky addresses, ~0.2 credits per conclusively-verified email) with AUTOMATIC failover to Icypeas (0.1 credits/verified) if the BounceBan submit fails. An explicit pin (\"bounceban\" or \"icypeas\") is strict — its backend's failure returns an error instead of switching. Any other verifier is rejected with guidance rather than silently ignored.","example":["bounceban"]},"webhook_url":{"type":"string","format":"uri","description":"Optional URL notified when the job completes."}},"required":["emails"],"additionalProperties":false,"example":{"emails":["michel@coldiq.com","jane@google.com"]}}}}},"responses":{"202":{"description":"Job accepted","content":{"application/json":{"schema":{"type":"object","properties":{"job_id":{"type":"number"},"status":{"type":"string"},"items_total":{"type":"number"},"credits_reserved":{"type":"number","description":"Worst-case credits held for this job upfront (settled to the actual charge on completion; the unused remainder is refunded). 0 for delegated per-row jobs."},"credits_balance_after":{"type":"number","description":"Indicative remaining balance after this reservation (auth-time snapshot − reserved)."},"low_balance_warning":{"type":"string","description":"Present when the balance after this reservation is low — top up to avoid a mid-run 402."}},"required":["job_id","status","items_total"]}}}},"400":{"description":"No valid emails","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/email/find/bulk/submit":{"post":{"summary":"Bulk Find Emails","description":"Find professional emails for up to 5,000 people asynchronously. Each row runs the same managed multi-provider waterfall as find_email (LinkedIn URL included). Returns a job_id immediately; poll POST /v1/jobs/{job_id}/results. Billing is per row, charge-on-success (misses are free; no upfront reservation); a located email the provider itself marks as a pattern guess comes back as verdict `guessed` and is FREE (verify before sending). Unsearchable rows (no linkedin_url and no full name + company signal) are returned as not_found and not charged.","tags":["GTM Verbs"],"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"people":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"first_name":{"type":"string"},"last_name":{"type":"string"},"domain":{"type":"string"},"company_name":{"type":"string","description":"Company name — company signal when the domain is unknown."},"linkedin_url":{"type":"string","description":"LinkedIn profile URL — searchable on its own, no name/domain needed."}},"additionalProperties":false},"minItems":1,"maxItems":5000,"description":"People to find emails for (1–5000). Searchable rows need a linkedin_url, OR first_name + last_name + (domain or company_name)."},"resolve_current_employer":{"type":"boolean","description":"Opt-in: when a row misses and has a linkedin_url, enrich the person to resolve their CURRENT employer's domain and retry once — recovers stale/acquired input domains (extra ~1 credit per resolved row). Default false."},"max_credits":{"type":"number","minimum":0,"exclusiveMinimum":true,"description":"Per-row spend cap. A provider that would find the email but costs more than this is skipped (the row comes back not_found rather than overspending)."},"webhook_url":{"type":"string","format":"uri"}},"required":["people"],"additionalProperties":false,"example":{"people":[{"id":"michel","first_name":"Michel","last_name":"Lieben","domain":"coldiq.com","linkedin_url":"https://www.linkedin.com/in/michel-lieben"}]}}}}},"responses":{"202":{"description":"Job accepted","content":{"application/json":{"schema":{"type":"object","properties":{"job_id":{"type":"number"},"status":{"type":"string"},"items_total":{"type":"number"},"credits_reserved":{"type":"number","description":"Worst-case credits held for this job upfront (settled to the actual charge on completion; the unused remainder is refunded). 0 for delegated per-row jobs."},"credits_balance_after":{"type":"number","description":"Indicative remaining balance after this reservation (auth-time snapshot − reserved)."},"low_balance_warning":{"type":"string","description":"Present when the balance after this reservation is low — top up to avoid a mid-run 402."}},"required":["job_id","status","items_total"]}}}},"400":{"description":"No searchable people","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/person/enrich/bulk/submit":{"post":{"summary":"Bulk Enrich People","description":"Enrich up to 5,000 people asynchronously. Returns a job_id immediately; poll POST /v1/jobs/{job_id}/results for status + per-row profiles. Each row runs the same managed waterfall as enrich_person; charged only per row a provider enriches (misses are free).","tags":["GTM Verbs"],"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"inputs":{"type":"array","items":{"$ref":"#/components/schemas/EnrichPersonBulkItem"},"minItems":1,"maxItems":5000,"description":"People to enrich (1–5000)."},"max_credits":{"type":"number","minimum":0,"exclusiveMinimum":true,"description":"Per-row spend cap. A provider that would enrich the row but costs more than this is skipped (row comes back not_found rather than overspending)."},"webhook_url":{"type":"string","format":"uri","description":"Optional URL notified when the job completes."}},"required":["inputs"],"additionalProperties":false,"example":{"inputs":[{"first_name":"Michel","last_name":"Lieben","domain":"coldiq.com"}]}}}}},"responses":{"202":{"description":"Job accepted","content":{"application/json":{"schema":{"type":"object","properties":{"job_id":{"type":"number"},"status":{"type":"string"},"items_total":{"type":"number"},"credits_reserved":{"type":"number","description":"Worst-case credits held for this job upfront (settled to the actual charge on completion; the unused remainder is refunded). 0 for delegated per-row jobs."},"credits_balance_after":{"type":"number","description":"Indicative remaining balance after this reservation (auth-time snapshot − reserved)."},"low_balance_warning":{"type":"string","description":"Present when the balance after this reservation is low — top up to avoid a mid-run 402."}},"required":["job_id","status","items_total"]}}}},"400":{"description":"No valid inputs","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/company/enrich/bulk/submit":{"post":{"summary":"Bulk Enrich Companies","description":"Enrich up to 5,000 companies asynchronously. Returns a job_id immediately; poll POST /v1/jobs/{job_id}/results for status + per-row firmographics. Each row runs the same managed waterfall as enrich_company; charged only per row a provider enriches (misses are free).","tags":["GTM Verbs"],"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"inputs":{"type":"array","items":{"$ref":"#/components/schemas/EnrichCompanyBulkItem"},"minItems":1,"maxItems":5000,"description":"Companies to enrich (1–5000)."},"max_credits":{"type":"number","minimum":0,"exclusiveMinimum":true,"description":"Per-row spend cap. A provider that would enrich the row but costs more than this is skipped (row comes back not_found rather than overspending)."},"webhook_url":{"type":"string","format":"uri","description":"Optional URL notified when the job completes."}},"required":["inputs"],"additionalProperties":false,"example":{"inputs":[{"domain":"coldiq.com"}]}}}}},"responses":{"202":{"description":"Job accepted","content":{"application/json":{"schema":{"type":"object","properties":{"job_id":{"type":"number"},"status":{"type":"string"},"items_total":{"type":"number"},"credits_reserved":{"type":"number","description":"Worst-case credits held for this job upfront (settled to the actual charge on completion; the unused remainder is refunded). 0 for delegated per-row jobs."},"credits_balance_after":{"type":"number","description":"Indicative remaining balance after this reservation (auth-time snapshot − reserved)."},"low_balance_warning":{"type":"string","description":"Present when the balance after this reservation is low — top up to avoid a mid-run 402."}},"required":["job_id","status","items_total"]}}}},"400":{"description":"No valid inputs","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/phone/find/bulk/submit":{"post":{"summary":"Bulk Find Phones","description":"Find direct/mobile phone numbers for up to 5,000 people asynchronously. Returns a job_id immediately; poll POST /v1/jobs/{job_id}/results. Each row runs the same managed waterfall as find_phone; charged only per row a provider returns a number (misses are free). Phone lookups are expensive (10+ credits each) — scope the list deliberately.","tags":["GTM Verbs"],"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"inputs":{"type":"array","items":{"$ref":"#/components/schemas/FindPhoneBulkItem"},"minItems":1,"maxItems":5000,"description":"People to find phone numbers for (1–5000)."},"max_credits":{"type":"number","minimum":0,"exclusiveMinimum":true,"description":"Per-row spend cap. A provider that would return a number but costs more than this is skipped (row comes back not_found rather than overspending). Phone lookups can be 10+ credits — this bounds them."},"webhook_url":{"type":"string","format":"uri","description":"Optional URL notified when the job completes."}},"required":["inputs"],"additionalProperties":false,"example":{"inputs":[{"first_name":"Michel","last_name":"Lieben","company_domain":"coldiq.com"}]}}}}},"responses":{"202":{"description":"Job accepted","content":{"application/json":{"schema":{"type":"object","properties":{"job_id":{"type":"number"},"status":{"type":"string"},"items_total":{"type":"number"},"credits_reserved":{"type":"number","description":"Worst-case credits held for this job upfront (settled to the actual charge on completion; the unused remainder is refunded). 0 for delegated per-row jobs."},"credits_balance_after":{"type":"number","description":"Indicative remaining balance after this reservation (auth-time snapshot − reserved)."},"low_balance_warning":{"type":"string","description":"Present when the balance after this reservation is low — top up to avoid a mid-run 402."}},"required":["job_id","status","items_total"]}}}},"400":{"description":"No valid inputs","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Provider unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/jobs/{job_id}/results":{"post":{"summary":"Get Bulk Job Results","description":"Poll any async bulk job (verify/find email, enrich person/company, find phone). Returns status, per-verdict summary counts, and one page of rows. Each row echoes its submitted `input` so verdicts map back to submissions regardless of order. Paginate by omitting `cursor` for the first page, then passing `page.next_cursor` verbatim until it is null (`cursor` is an inclusive start rowIndex — cursor=0 returns the first row).","tags":["GTM Verbs"],"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string"},"required":true,"name":"job_id","in":"path"}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"cursor":{"type":"integer"},"limit":{"type":"integer","minimum":1,"maximum":1000}}}}}},"responses":{"200":{"description":"Job status + page","content":{"application/json":{"schema":{"type":"object","properties":{"job_id":{"type":"number"},"kind":{"type":"string","nullable":true},"status":{"type":"string"},"items_total":{"type":"number"},"items_processed":{"type":"number"},"summary":{"type":"object","additionalProperties":{"type":"number"}},"coverage":{"type":"object","properties":{"conclusive":{"type":"number"},"skipped":{"type":"number"},"unverifiable":{"type":"number"},"failed":{"type":"number"},"pending":{"type":"number"}},"required":["conclusive","skipped","unverifiable","failed","pending"],"description":"Conclusive-vs-skipped rollup. `skipped` rows (per-row `result.reason` chunk_failed/not_returned/timed_out) were never conclusively checked and are safe to re-submit; `unverifiable` means the provider checked but couldn't determine; `failed` is a hard error (retry unlikely to help)."},"credits_reserved":{"type":"number","nullable":true,"description":"Worst-case credits held at submit (null for delegated per-row jobs)."},"credits_charged":{"type":"number","nullable":true,"description":"Actual credits charged — null until the job settles, then the settled cost."},"page":{"type":"object","properties":{"items":{"type":"array","items":{"type":"object","properties":{"row_index":{"type":"number"},"status":{"type":"string"},"verdict":{"type":"string","nullable":true},"result":{"nullable":true},"input":{"nullable":true}},"required":["row_index","status","verdict"]}},"next_cursor":{"type":"number","nullable":true,"description":"Inclusive start rowIndex for the next page (opaque — pass back verbatim). Null on the last page; omit `cursor` for the first page."}},"required":["items","next_cursor"]}},"required":["job_id","kind","status","items_total","items_processed","summary","coverage","credits_reserved","credits_charged","page"]}}}},"404":{"description":"Job not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/v1/jobs/{job_id}/cancel":{"post":{"summary":"Cancel Bulk Job","description":"Stop a running find/enrich/phone bulk job so it spends no more credits. Cancels FUTURE row processing only: rows already found/enriched (and charged) stay — you received those results — and one in-flight batch (≤ ~25 rows) may still complete. Returns items_processed (rows that actually ran) and items_cancelled (un-started rows stopped — never charged; they come back from /results as coverage.skipped with result.reason \"cancelled\" and are safe to re-submit). Idempotent: cancelling a finished or already-cancelled job returns its current status, not an error. NOTE: bulk VERIFY jobs run as a single provider-side batch that finishes in minutes with the worst-case cost reserved at submit (unknowns refunded on completion), so they cannot be cancelled midway (400).","tags":["GTM Verbs"],"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string"},"required":true,"name":"job_id","in":"path"}],"responses":{"200":{"description":"Job cancelled (or already terminal)","content":{"application/json":{"schema":{"type":"object","properties":{"job_id":{"type":"number"},"status":{"type":"string","description":"\"cancelled\" on success, or the job's current terminal status if it had already finished."},"items_total":{"type":"number"},"items_processed":{"type":"number","description":"Rows that actually produced a result (were processed/charged) — un-started rows are NOT counted here."},"items_cancelled":{"type":"number","description":"Un-started rows stopped by the cancel (never charged; safe to re-submit)."}},"required":["job_id","status","items_total","items_processed","items_cancelled"]}}}},"400":{"description":"This job kind cannot be cancelled","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Job not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/dashboard/billing/products":{"get":{"tags":["Dashboard"],"summary":"List credit packages","responses":{"200":{"description":"Available credit packages for purchase","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/CreditProduct"}}}}},"502":{"description":"Stripe unavailable","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}},"required":["error"]}}}}},"description":"","x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/dashboard/billing/checkout":{"post":{"tags":["Dashboard"],"summary":"Create checkout session","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CheckoutBody"}}}},"responses":{"200":{"description":"Checkout session created — redirect to the returned URL","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CheckoutResponse"}}}},"400":{"description":"Invalid price or product","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}},"required":["error"]}}}},"403":{"description":"An active subscription is required to buy credit packs","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string","enum":["subscription_required"]}},"required":["error","code"]}}}},"409":{"description":"This offer is limited to one purchase per user and has already been claimed","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string","enum":["already_redeemed"]}},"required":["error","code"]}}}},"502":{"description":"Stripe unavailable","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}},"required":["error"]}}}}},"description":"","x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/dashboard/billing/top-up/preview":{"post":{"tags":["Dashboard"],"summary":"Preview credit top-up","description":"Returns the server-verified amount and saved card. It does not create or confirm a payment.","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TopUpBody"}}}},"responses":{"200":{"description":"Top-up purchase summary","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TopUpPreviewResponse"}}}},"400":{"description":"Invalid price or product","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}},"required":["error"]}}}},"403":{"description":"An active subscription is required to buy credit packs","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string","enum":["subscription_required"]}},"required":["error","code"]}}}},"409":{"description":"The offer was claimed or no saved card is available","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string","enum":["already_redeemed","payment_method_required"]}},"required":["error","code"]}}}},"502":{"description":"Stripe unavailable","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}},"required":["error"]}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/dashboard/billing/top-up/payment-intent":{"post":{"tags":["Dashboard"],"summary":"Create credit top-up PaymentIntent","description":"Creates an unconfirmed, idempotent PaymentIntent for the saved card. The browser must confirm it with Stripe.js.","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TopUpPaymentIntentBody"}}}},"responses":{"200":{"description":"Unconfirmed PaymentIntent client secret","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TopUpPaymentIntentResponse"}}}},"400":{"description":"Invalid price or product","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}},"required":["error"]}}}},"403":{"description":"An active subscription is required to buy credit packs","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string","enum":["subscription_required"]}},"required":["error","code"]}}}},"409":{"description":"The offer, saved card, or reviewed quote is no longer available","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string","enum":["already_redeemed","payment_method_required","top_up_quote_conflict"]}},"required":["error","code"]}}}},"502":{"description":"Stripe unavailable","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}},"required":["error"]}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/dashboard/billing/plan-change/preview":{"post":{"tags":["Dashboard"],"summary":"Preview subscription plan change","description":"Returns the exact charge, saved card, credit adjustment, and effective date without changing the subscription.","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlanChangeBody"}}}},"responses":{"200":{"description":"Subscription plan change preview","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlanChangePreviewResponse"}}}},"400":{"description":"Invalid or unavailable plan, or the subscription is paused","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string","enum":["subscription_paused"]}},"required":["error"]}}}},"409":{"description":"The subscription or payment method cannot be changed in-app","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string","enum":["active_subscription_required","plan_change_conflict","payment_method_required"]}},"required":["error","code"]}}}},"502":{"description":"Stripe unavailable","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}},"required":["error"]}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/dashboard/billing/plan-change/confirm":{"post":{"tags":["Dashboard"],"summary":"Confirm subscription plan change","description":"Updates the existing subscription or schedules a lower plan for its renewal date.","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConfirmPlanChangeBody"}}}},"responses":{"200":{"description":"Plan change applied or scheduled","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConfirmPlanChangeResponse"}}}},"400":{"description":"Invalid or unavailable plan, or the subscription is paused","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string","enum":["subscription_paused"]}},"required":["error"]}}}},"409":{"description":"The subscription change could not be completed","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string","enum":["active_subscription_required","plan_change_conflict","payment_method_required","payment_failed"]}},"required":["error","code"]}}}},"502":{"description":"Stripe unavailable","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}},"required":["error"]}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/dashboard/billing/redeem":{"post":{"tags":["Dashboard"],"summary":"Redeem an offer code","description":"Resolves a promotion code to the pack it discounts and returns a Checkout URL with the discount ALREADY APPLIED — the user never sees a price and cannot reach Checkout having forgotten to enter the code. Used by the redeem link; the packs it sells are unlisted, so this is the only way to buy them.","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RedeemBody"}}}},"responses":{"200":{"description":"Checkout session created — redirect to the returned URL","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CheckoutResponse"}}}},"400":{"description":"Invalid request or product","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}},"required":["error"]}}}},"403":{"description":"This offer requires an active subscription or an eligible free-credit status","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string","enum":["subscription_required","free_credit_unavailable"]}},"required":["error","code"]}}}},"404":{"description":"Unknown, expired, or fully redeemed offer code","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string","enum":["offer_unavailable"]}},"required":["error","code"]}}}},"409":{"description":"This offer has already been claimed by this account","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string","enum":["already_redeemed"]}},"required":["error","code"]}}}},"502":{"description":"Stripe unavailable","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}},"required":["error"]}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/dashboard/billing/portal":{"post":{"tags":["Dashboard"],"summary":"Create billing portal session","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PortalBody"}}}},"responses":{"200":{"description":"Portal session created — redirect to the returned URL","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PortalResponse"}}}},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}},"required":["error"]}}}},"502":{"description":"Stripe unavailable","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}},"required":["error"]}}}}},"description":"","x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/dashboard/billing/subscriptions":{"get":{"tags":["Dashboard"],"summary":"List active subscriptions","parameters":[{"schema":{"type":"string","enum":["true"],"description":"Set to true only on billing-management screens that need a blocking Stripe refresh."},"required":false,"description":"Set to true only on billing-management screens that need a blocking Stripe refresh.","name":"refresh","in":"query"}],"responses":{"200":{"description":"User subscriptions","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/Subscription"}}}}}},"description":"","x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/dashboard/billing/pause":{"post":{"tags":["Dashboard"],"summary":"Pause subscription","description":"Freezes the credit plan: Stripe raises no invoice until the resume date, the credits already bought stay usable, and their expiry clock stops. One pause per 12 months, six months at most.","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PauseSubscriptionBody"}}}},"responses":{"200":{"description":"The subscription is paused","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PauseSubscriptionResponse"}}}},"400":{"description":"No active subscription, a pause longer than six months, or the 12-month limit","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SubscriptionPauseError"}}}},"403":{"description":"The caller does not own the billing account","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SubscriptionPauseError"}}}},"409":{"description":"The subscription is already paused","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SubscriptionPauseError"}}}},"502":{"description":"Stripe unavailable","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}},"required":["error"]}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/dashboard/billing/resume":{"post":{"tags":["Dashboard"],"summary":"Resume subscription","description":"Restarts billing before the planned resume date. The frozen credit expiry moves forward by the paused days when Stripe confirms the resume.","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResumeSubscriptionBody"}}}},"responses":{"200":{"description":"The subscription is resumed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResumeSubscriptionResponse"}}}},"400":{"description":"No active subscription","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SubscriptionPauseError"}}}},"403":{"description":"The caller does not own the billing account","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SubscriptionPauseError"}}}},"409":{"description":"The subscription is not paused","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SubscriptionPauseError"}}}},"502":{"description":"Stripe unavailable","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}},"required":["error"]}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/dashboard/billing/invoices":{"get":{"tags":["Dashboard"],"summary":"List billing invoices","parameters":[{"schema":{"type":"string","default":"6"},"required":false,"name":"limit","in":"query"},{"schema":{"type":"string","minLength":1,"maxLength":255},"required":false,"name":"startingAfter","in":"query"}],"responses":{"200":{"description":"Stripe invoices for the authenticated user, newest first","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BillingInvoicePage"}}}},"502":{"description":"Stripe unavailable","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}},"required":["error"]}}}}},"description":"","x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/dashboard/team":{"get":{"tags":["Team"],"summary":"Get your team and its members","responses":{"200":{"description":"Your team, or a null team if you have none yet","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Team"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TeamError"}}}}},"description":"","x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/dashboard/team/invitations":{"post":{"tags":["Team"],"summary":"Invite a member to your team","description":"Sends an invitation email (delivered by Clerk). Creates the team on the owner's first invite. The invitee joins under the workspace subscription — their usage bills the owner's credits. Owners and admins can invite; the role decides whether the invitee can manage members and billing.","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TeamInviteBody"}}}},"responses":{"201":{"description":"Invitation sent","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TeamInvitation"}}}},"400":{"description":"Invalid or duplicate invitation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TeamError"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TeamError"}}}},"403":{"description":"Only the workspace owner or an admin can do this","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TeamError"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/dashboard/team/invitations/{invitationId}":{"delete":{"tags":["Team"],"summary":"Revoke a pending invitation","parameters":[{"schema":{"type":"string"},"required":true,"name":"invitationId","in":"path"}],"responses":{"200":{"description":"Invitation revoked","content":{"application/json":{"schema":{"type":"object","properties":{"revoked":{"type":"boolean"}},"required":["revoked"]}}}},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TeamError"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TeamError"}}}},"403":{"description":"Only the workspace owner or an admin can do this","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TeamError"}}}},"404":{"description":"No team","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TeamError"}}}}},"description":"","x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/dashboard/team/members/{userId}":{"delete":{"tags":["Team"],"summary":"Remove a member from your team","description":"Revokes their membership and immediately deactivates the API keys they created in this team. Accepts a ColdIQ user id, or a Clerk user id for a member who accepted the invitation but has never signed in here.","parameters":[{"schema":{"type":"string","minLength":1},"required":true,"name":"userId","in":"path"}],"responses":{"200":{"description":"Member removed","content":{"application/json":{"schema":{"type":"object","properties":{"removed":{"type":"boolean"}},"required":["removed"]}}}},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TeamError"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TeamError"}}}},"403":{"description":"Only the workspace owner or an admin can do this","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TeamError"}}}},"404":{"description":"No such member","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TeamError"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}},"patch":{"tags":["Team"],"summary":"Change a member's role","description":"Promote a member to admin or demote an admin to member. The workspace owner's role can never be changed.","parameters":[{"schema":{"type":"integer","minimum":0,"exclusiveMinimum":true},"required":true,"name":"userId","in":"path"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TeamMemberRoleBody"}}}},"responses":{"200":{"description":"Role updated","content":{"application/json":{"schema":{"type":"object","properties":{"updated":{"type":"boolean"}},"required":["updated"]}}}},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TeamError"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TeamError"}}}},"403":{"description":"Only the workspace owner or an admin can do this","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TeamError"}}}},"404":{"description":"No such member","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TeamError"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/dashboard/team/usage":{"get":{"tags":["Team"],"summary":"Get this month's team usage per member","responses":{"200":{"description":"Usage grouped by member","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TeamUsage"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TeamError"}}}},"403":{"description":"Only the workspace owner or an admin can do this","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TeamError"}}}},"404":{"description":"No team","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TeamError"}}}}},"description":"","x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/dashboard/slack/connection":{"get":{"tags":["Slack"],"summary":"Get the Slack workspace connected to your team","description":"Shows the bound Slack workspace, who connected it and when. Any member of the team can read it. Returns `connected: false` with a null connection when the team has no workspace.","responses":{"200":{"description":"The binding, or a null connection when there is none","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SlackConnection"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SlackConnectionError"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}},"delete":{"tags":["Slack"],"summary":"Disconnect your team from Slack","description":"Marks the workspace revoked, so the bot answers nobody until someone reconnects it. Only the team owner and the person who connected the workspace can do this.","responses":{"200":{"description":"The workspace is disconnected","content":{"application/json":{"schema":{"type":"object","properties":{"disconnected":{"type":"boolean"}},"required":["disconnected"]}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SlackConnectionError"}}}},"403":{"description":"Only the team owner or the person who connected it can disconnect","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SlackConnectionError"}}}},"404":{"description":"Your team has no Slack workspace","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SlackConnectionError"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/dashboard/connections/providers":{"get":{"tags":["Connections"],"summary":"List connectable BYOK providers","responses":{"200":{"description":"Providers that accept your own API key, with their required fields","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/ConnectionProviderSpec"}}}}}},"description":"","x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/dashboard/connections":{"get":{"tags":["Connections"],"summary":"List your connected tools","responses":{"200":{"description":"The current user's connections (no secrets)","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/Connection"}}}}}},"description":"","x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/dashboard/connections/{provider}":{"put":{"tags":["Connections"],"summary":"Connect or update a tool","parameters":[{"schema":{"type":"string","example":"lemlist"},"required":true,"name":"provider","in":"path"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConnectProviderBody"}}}},"responses":{"200":{"description":"Credentials validated and stored","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConnectResult"}}}},"400":{"description":"Missing fields or invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConnectionError"}}}},"404":{"description":"Not a BYOK provider","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConnectionError"}}}}},"description":"","x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}},"patch":{"tags":["Connections"],"summary":"Update connection settings","parameters":[{"schema":{"type":"string","example":"lemlist"},"required":true,"name":"provider","in":"path"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConnectionSettingsBody"}}}},"responses":{"200":{"description":"Settings updated","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Connection"}}}},"400":{"description":"Setting not applicable to this provider","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConnectionError"}}}},"404":{"description":"No connection for this provider","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConnectionError"}}}}},"description":"","x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}},"delete":{"tags":["Connections"],"summary":"Disconnect a tool","parameters":[{"schema":{"type":"string","example":"lemlist"},"required":true,"name":"provider","in":"path"}],"responses":{"204":{"description":"Connection removed"},"404":{"description":"No connection for this provider","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConnectionError"}}}}},"description":"","x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/dashboard/connections/{provider}/validate":{"post":{"tags":["Connections"],"summary":"Re-validate a stored connection","parameters":[{"schema":{"type":"string","example":"lemlist"},"required":true,"name":"provider","in":"path"}],"responses":{"200":{"description":"Validation result (status updated)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConnectResult"}}}},"404":{"description":"No connection for this provider","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConnectionError"}}}}},"description":"","x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/dashboard/chats":{"get":{"tags":["Chats"],"summary":"List saved chats","parameters":[{"schema":{"type":"string","default":"1"},"required":false,"name":"page","in":"query"},{"schema":{"type":"string","default":"50"},"required":false,"name":"limit","in":"query"},{"schema":{"type":"string","enum":["active","archived"]},"required":false,"name":"status","in":"query"}],"responses":{"200":{"description":"Paginated saved chats for the authenticated user","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ChatListResponse"}}}}},"description":"","x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/dashboard/chats/{publicId}":{"get":{"tags":["Chats"],"summary":"Get a saved chat","parameters":[{"schema":{"type":"string","format":"uuid"},"required":true,"name":"publicId","in":"path"}],"responses":{"200":{"description":"Saved chat and messages","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ChatDetailResponse"}}}},"404":{"description":"Chat not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ChatError"}}}}},"description":"","x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}},"patch":{"tags":["Chats"],"summary":"Rename or archive a saved chat","parameters":[{"schema":{"type":"string","format":"uuid"},"required":true,"name":"publicId","in":"path"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ChatUpdateBody"}}}},"responses":{"200":{"description":"Updated chat","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ChatConversation"}}}},"404":{"description":"Chat not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ChatError"}}}}},"description":"","x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}},"delete":{"tags":["Chats"],"summary":"Delete a saved chat","parameters":[{"schema":{"type":"string","format":"uuid"},"required":true,"name":"publicId","in":"path"}],"responses":{"204":{"description":"Chat soft-deleted"},"404":{"description":"Chat not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ChatError"}}}}},"description":"","x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/dashboard/quota":{"get":{"tags":["Dashboard"],"summary":"Get remaining lookups","description":"The credit balance expressed as lookups. `emailsLeft` and `phonesLeft` come out of ONE shared pool, so they are alternatives: spending the balance on phone numbers leaves nothing for emails. Both are floored, because a part-funded lookup is not a lookup.","responses":{"200":{"description":"Remaining lookups","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Quota"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/dashboard/signup-context":{"post":{"tags":["Dashboard"],"summary":"Capture signup network context","responses":{"200":{"description":"Browser network context capture result","content":{"application/json":{"schema":{"type":"object","properties":{"captured":{"type":"boolean"},"status":{"type":"string","enum":["pending","eligible","withheld"]}},"required":["captured","status"]}}}}},"description":"","x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/dashboard/mailboxes/catalog":{"get":{"tags":["Mailboxes"],"summary":"Mailbox catalog — prices, limits and purchase availability","responses":{"200":{"description":"Providers, prices, limits, purchasable TLDs and the purchasing flag","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MailboxCatalog"}}}}},"description":"","x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/dashboard/mailboxes/domains/availability":{"get":{"tags":["Mailboxes"],"summary":"Check domain availability","parameters":[{"schema":{"type":"string","minLength":4,"maxLength":253,"example":"coldiq-outreach.com"},"required":true,"name":"domain","in":"query"}],"responses":{"200":{"description":"Whether the domain can be purchased","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MailboxDomainAvailability"}}}},"400":{"description":"Invalid domain name","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MailboxError"}}}},"502":{"description":"Mailbox service unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MailboxError"}}}}},"description":"","x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}},"post":{"tags":["Mailboxes"],"summary":"Check domain availability in bulk","description":"One upstream call for a whole grid of suggestions. Checking names one at a time is what made the registrar answer 500 to most of a batch (measured 2026-08-06), so the purchase flow asks for the batch. Every requested name comes back with a verdict: a name upstream does not answer for is reported unavailable, never omitted, since an unlisted name must not render as buyable.","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BulkMailboxDomainAvailabilityBody"}}}},"responses":{"200":{"description":"A verdict for every requested domain","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/MailboxDomainAvailability"}}}}},"400":{"description":"Invalid or unsupported domain name","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MailboxError"}}}},"502":{"description":"Mailbox service unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MailboxError"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/dashboard/mailboxes/domains":{"post":{"tags":["Mailboxes"],"summary":"Buy sending domains","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BuyMailboxDomainsBody"}}}},"responses":{"202":{"description":"Purchase accepted — poll the order for completion","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MailboxOrderAccepted"}}}},"400":{"description":"Invalid or unavailable domain(s)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MailboxError"}}}},"403":{"description":"Mailbox purchasing not enabled","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MailboxError"}}}},"502":{"description":"Mailbox service unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MailboxError"}}}},"503":{"description":"Mailbox capacity unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MailboxError"}}}}},"description":"","x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}},"get":{"tags":["Mailboxes"],"summary":"List your sending domains","parameters":[{"schema":{"type":"string","enum":["pending","active","deleted"]},"required":false,"name":"status","in":"query"},{"schema":{"type":"string","enum":["google","microsoft"]},"required":false,"name":"provider_type","in":"query"}],"responses":{"200":{"description":"Your domains","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/MailboxDomain"}}}}}},"description":"","x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/dashboard/mailboxes/domains/{id}":{"delete":{"tags":["Mailboxes"],"summary":"Delete a domain and its mailboxes","description":"Google only — Microsoft's upstream resource is order-scoped; use DELETE /mailboxes/orders/{id} for Microsoft domains.","parameters":[{"schema":{"type":"string","example":"1"},"required":true,"name":"id","in":"path"},{"schema":{"type":"string","description":"Must exactly match the domain name — deletion also removes every mailbox on it and cannot be undone"},"required":true,"description":"Must exactly match the domain name — deletion also removes every mailbox on it and cannot be undone","name":"confirm","in":"query"}],"responses":{"204":{"description":"Domain and its mailboxes deleted"},"400":{"description":"Confirmation mismatch, or a Microsoft domain (use the order-delete route)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MailboxError"}}}},"404":{"description":"Domain not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MailboxError"}}}},"409":{"description":"Billing could not be stopped — contact support before retrying","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MailboxError"}}}},"502":{"description":"Mailbox service unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MailboxError"}}}},"503":{"description":"Billing service unavailable — try again shortly","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MailboxError"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/dashboard/mailboxes/domains/{id}/mailboxes":{"delete":{"tags":["Mailboxes"],"summary":"Release every inbox on a domain, keeping the domain","description":"Google only — Google licenses individual inboxes cannot be removed one at a time (vendor-confirmed), so this is the honest replacement: it stops billing and releases every inbox on the domain while leaving the domain itself (and its already-paid year of registration) intact.","parameters":[{"schema":{"type":"string","example":"1"},"required":true,"name":"id","in":"path"},{"schema":{"type":"string","description":"Must exactly match the domain name — this removes every inbox on it and cannot be undone"},"required":true,"description":"Must exactly match the domain name — this removes every inbox on it and cannot be undone","name":"confirm","in":"query"}],"responses":{"204":{"description":"Every inbox on the domain released; the domain remains active"},"400":{"description":"Confirmation mismatch, domain not Google, or no mailboxes to release","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MailboxError"}}}},"404":{"description":"Domain not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MailboxError"}}}},"409":{"description":"Billing could not be stopped — contact support before retrying","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MailboxError"}}}},"502":{"description":"Mailbox service unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MailboxError"}}}},"503":{"description":"Billing service unavailable — try again shortly","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MailboxError"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/dashboard/mailboxes":{"post":{"tags":["Mailboxes"],"summary":"Create mailboxes on a domain","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateMailboxesBody"}}}},"responses":{"202":{"description":"Creation accepted — poll the order for completion","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MailboxOrderAccepted"}}}},"400":{"description":"Invalid mailboxes or domain not ready","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MailboxError"}}}},"403":{"description":"Mailbox purchasing not enabled","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MailboxError"}}}},"404":{"description":"Domain not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MailboxError"}}}},"502":{"description":"Mailbox service unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MailboxError"}}}},"503":{"description":"Mailbox capacity unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MailboxError"}}}}},"description":"","x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}},"get":{"tags":["Mailboxes"],"summary":"List your mailboxes","parameters":[{"schema":{"type":"string"},"required":false,"name":"domain_id","in":"query"},{"schema":{"type":"string","enum":["pending","active","deleted"]},"required":false,"name":"status","in":"query"}],"responses":{"200":{"description":"Your mailboxes (never includes credentials)","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/Mailbox"}}}}}},"description":"","x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/dashboard/mailboxes/quotes":{"post":{"tags":["Mailboxes"],"summary":"Price a mailbox order","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MailboxQuoteBody"}}}},"responses":{"200":{"description":"An authoritative, expiring quote for this configuration","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MailboxQuote"}}}},"400":{"description":"Invalid configuration","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MailboxError"}}}}},"description":"","x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/dashboard/mailboxes/purchases":{"post":{"tags":["Mailboxes"],"summary":"Create a mailbox purchase from a quote","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateMailboxPurchaseBody"}}}},"responses":{"201":{"description":"Purchase created (idempotent on the Idempotency-Key header or the idempotencyKey body field)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MailboxPurchaseCreated"}}}},"400":{"description":"Missing idempotency key or invalid quote","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MailboxError"}}}},"403":{"description":"Mailbox purchasing not enabled","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MailboxError"}}}},"404":{"description":"Quote not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MailboxError"}}}},"409":{"description":"Quote expired or already used","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MailboxError"}}}}},"description":"","x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}},"get":{"tags":["Mailboxes"],"summary":"List your mailbox purchases","responses":{"200":{"description":"Purchases, newest first — polling advances active ones","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/MailboxPurchaseListItem"}}}}}},"description":"","x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/dashboard/mailboxes/carts":{"post":{"tags":["Mailboxes"],"summary":"Create a combined mailbox order from several quotes","description":"One trip through the wizard, both providers. Each quote becomes its own purchase with its own Stripe subscription — Google inbox billing is released per DOMAIN and a Microsoft pack per ORDER, so a shared subscription would let one teardown cancel the other's inboxes. The purchases carry a common cartId and are returned in payment order; pay each client secret in turn. Idempotent on the Idempotency-Key header (or the idempotencyKey body field): a replay returns the same purchases.","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateMailboxCartBody"}}}},"responses":{"201":{"description":"Combined order created","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MailboxCartCreated"}}}},"400":{"description":"Missing idempotency key, or quotes that do not cover distinct providers","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MailboxError"}}}},"403":{"description":"Mailbox purchasing not enabled","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MailboxError"}}}},"404":{"description":"Quote not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MailboxError"}}}},"409":{"description":"Quote expired or already used","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MailboxError"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/dashboard/mailboxes/purchases/{purchaseId}":{"get":{"tags":["Mailboxes"],"summary":"Get one mailbox purchase","parameters":[{"schema":{"type":"string","minLength":1,"example":"purchase_2f7c1a9e"},"required":true,"name":"purchaseId","in":"path"}],"responses":{"200":{"description":"The purchase — polling drives its provisioning forward; carries the hosted checkout link while payment is pending","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MailboxPurchaseDetail"}}}},"404":{"description":"Purchase not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MailboxError"}}}}},"description":"","x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/dashboard/mailboxes/integrations":{"get":{"tags":["Mailboxes"],"summary":"List supported sending tools","description":"The sending tools inboxes can be pushed into, with the credential fields each one needs and the inbox types it accepts. Render the connect form from this — adding a tool is a backend-only change.","responses":{"200":{"description":"Supported tools","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/MailboxSequencer"}}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/dashboard/mailboxes/integrations/{sequencer}/connections":{"get":{"tags":["Mailboxes"],"summary":"List sending-tool connections","parameters":[{"schema":{"type":"string","description":"Sending tool key, from the integrations list (GET .../mailboxes/integrations)","example":"smartlead"},"required":true,"description":"Sending tool key, from the integrations list (GET .../mailboxes/integrations)","name":"sequencer","in":"path"}],"responses":{"200":{"description":"Named connections — keys stay encrypted server-side","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/MailboxSequencerConnection"}}}}},"404":{"description":"Unknown sending tool","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MailboxError"}}}}},"description":"","x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}},"post":{"tags":["Mailboxes"],"summary":"Save a sending-tool connection","parameters":[{"schema":{"type":"string","description":"Sending tool key, from the integrations list (GET .../mailboxes/integrations)","example":"smartlead"},"required":true,"description":"Sending tool key, from the integrations list (GET .../mailboxes/integrations)","name":"sequencer","in":"path"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateSequencerConnectionBody"}}}},"responses":{"201":{"description":"Connection stored, credentials encrypted at rest","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MailboxSequencerConnection"}}}},"400":{"description":"Setup token invalid or expired","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MailboxError"}}}},"404":{"description":"Unknown sending tool","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MailboxError"}}}}},"description":"","x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/dashboard/mailboxes/integrations/{sequencer}/connections/validate":{"post":{"tags":["Mailboxes"],"summary":"Validate sending-tool credentials","parameters":[{"schema":{"type":"string","description":"Sending tool key, from the integrations list (GET .../mailboxes/integrations)","example":"smartlead"},"required":true,"description":"Sending tool key, from the integrations list (GET .../mailboxes/integrations)","name":"sequencer","in":"path"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidateSequencerConnectionBody"}}}},"responses":{"200":{"description":"Workspace preview + a short-lived setup token; the raw credentials are never stored at this step","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MailboxSequencerConnectionPreview"}}}},"400":{"description":"The sending tool rejected the credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MailboxError"}}}},"404":{"description":"Unknown sending tool","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MailboxError"}}}}},"description":"","x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/dashboard/mailboxes/integrations/{sequencer}/connections/{connectionId}":{"delete":{"tags":["Mailboxes"],"summary":"Remove a sending-tool connection","parameters":[{"schema":{"type":"string","description":"Sending tool key, from the integrations list (GET .../mailboxes/integrations)","example":"smartlead"},"required":true,"description":"Sending tool key, from the integrations list (GET .../mailboxes/integrations)","name":"sequencer","in":"path"},{"schema":{"type":"string","example":"1"},"required":true,"name":"connectionId","in":"path"}],"responses":{"204":{"description":"ColdIQ's stored credentials deleted — inboxes already in the tool remain there"},"404":{"description":"Connection not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MailboxError"}}}},"409":{"description":"Inboxes are still being added through this connection","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MailboxError"}}}}},"description":"","x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/dashboard/mailboxes/integrations/{sequencer}":{"post":{"tags":["Mailboxes"],"summary":"Add inboxes to a sending tool","parameters":[{"schema":{"type":"string","description":"Sending tool key, from the integrations list (GET .../mailboxes/integrations)","example":"smartlead"},"required":true,"description":"Sending tool key, from the integrations list (GET .../mailboxes/integrations)","name":"sequencer","in":"path"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConnectMailboxesToSequencerBody"}}}},"responses":{"200":{"description":"Per-inbox results — partial failure is expected and reported","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MailboxSequencerBatchResult"}}}},"404":{"description":"Connection not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MailboxError"}}}},"502":{"description":"Mailbox service unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MailboxError"}}}}},"description":"","x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/dashboard/mailboxes/credentials.csv":{"get":{"tags":["Mailboxes"],"summary":"Download inbox credentials as CSV","description":"Sending credentials for your active inboxes, in the SMTP/IMAP column layout every sending tool's bulk importer understands. Use this for tools ColdIQ has no direct integration with — see GET /mailboxes/integrations for the ones it does. The file contains live passwords in plain text: it is generated on demand, never stored, and every download is logged. Inboxes whose password is still preparing are omitted rather than exported blank; the counts are returned in the X-Exported-Count and X-Skipped-Count headers. If any credential cannot be fetched upstream the whole download fails with a 502 — a partially filled credentials file would be indistinguishable from a complete one.","parameters":[{"schema":{"type":"string","description":"Comma-separated inbox ids. Omit to export every active inbox.","example":"1,2,3"},"required":false,"description":"Comma-separated inbox ids. Omit to export every active inbox.","name":"mailboxIds","in":"query"}],"responses":{"200":{"description":"CSV file","content":{"text/csv":{"schema":{"type":"string"}}}},"400":{"description":"Too many inboxes requested","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MailboxError"}}}},"403":{"description":"Only the workspace owner or an admin can export credentials, and never a read-only impersonation session","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MailboxError"}}}},"404":{"description":"Mailbox not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MailboxError"}}}},"502":{"description":"Credentials could not be fetched upstream","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MailboxError"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/dashboard/mailboxes/subscriptions":{"get":{"tags":["Mailboxes"],"summary":"List your mailbox subscriptions","description":"One row per live domain with its subscription's LIVE Stripe state. Domains from one multi-domain purchase share a single subscription — their rows carry the same stripeSubscriptionId, the shared billedQuantity, and each other's ids in siblingDomainIds. Compute a shared subscription's monthly total ONCE per stripeSubscriptionId (billedQuantity × unitAmount), and show per-domain inboxCount.","responses":{"200":{"description":"Your mailbox subscriptions, one row per domain","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/MailboxSubscription"}}}}},"502":{"description":"Billing service unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MailboxError"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/dashboard/mailboxes/orders":{"get":{"tags":["Mailboxes"],"summary":"List your mailbox orders","parameters":[{"schema":{"type":"string","enum":["submitted","processing","completed","partial","failed","timed_out"]},"required":false,"name":"status","in":"query"}],"responses":{"200":{"description":"Your orders, newest first","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/MailboxOrder"}}}}}},"description":"","x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/dashboard/mailboxes/{id}":{"get":{"tags":["Mailboxes"],"summary":"Get a mailbox","parameters":[{"schema":{"type":"string","example":"1"},"required":true,"name":"id","in":"path"}],"responses":{"200":{"description":"Mailbox details (never includes credentials)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Mailbox"}}}},"404":{"description":"Mailbox not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MailboxError"}}}}},"description":"","x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}},"delete":{"tags":["Mailboxes"],"summary":"Delete a mailbox","description":"Google inboxes cannot be deleted individually — Google licenses are managed at the domain level (vendor-confirmed). Delete the domain to release every inbox on it, or DELETE .../domains/{id}/mailboxes to release just the inboxes and keep the domain. Microsoft mailboxes are managed at the order level instead.","parameters":[{"schema":{"type":"string","example":"1"},"required":true,"name":"id","in":"path"}],"responses":{"204":{"description":"Mailbox deleted"},"400":{"description":"Mailbox cannot be deleted individually","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MailboxError"}}}},"404":{"description":"Mailbox not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MailboxError"}}}},"502":{"description":"Mailbox service unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MailboxError"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/dashboard/mailboxes/{id}/integrations":{"delete":{"tags":["Mailboxes"],"summary":"Remove an inbox from its sending tool","description":"An inbox is linked to one sending tool at a time, so the tool is implied by the link.","parameters":[{"schema":{"type":"string","example":"1"},"required":true,"name":"id","in":"path"}],"responses":{"204":{"description":"Removed from the sending tool and unlinked"},"400":{"description":"Inbox is not connected","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MailboxError"}}}},"404":{"description":"Mailbox not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MailboxError"}}}},"502":{"description":"Sending tool unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MailboxError"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/dashboard/mailboxes/{id}/credentials":{"get":{"tags":["Mailboxes"],"summary":"Reveal mailbox credentials","parameters":[{"schema":{"type":"string","example":"1"},"required":true,"name":"id","in":"path"},{"schema":{"type":"string","enum":["1","true"],"description":"Also generate a one-time login code (Google mailboxes)"},"required":false,"description":"Also generate a one-time login code (Google mailboxes)","name":"totp","in":"query"}],"responses":{"200":{"description":"Login credentials for this mailbox","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MailboxCredentials"}}}},"400":{"description":"Mailbox not ready yet","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MailboxError"}}}},"403":{"description":"A read-only impersonation session cannot reveal credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MailboxError"}}}},"404":{"description":"Mailbox not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MailboxError"}}}},"502":{"description":"Mailbox service unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MailboxError"}}}}},"description":"","x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/dashboard/mailboxes/orders/microsoft":{"post":{"tags":["Mailboxes"],"summary":"Order Microsoft mailboxes","description":"Orders a domain plus a batch of 100 Microsoft mailboxes. Auto mode generates the batch from the given names; manual mode requires exactly 100 mailboxes on the order domain.","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MicrosoftMailboxOrderBody"}}}},"responses":{"202":{"description":"Order accepted — poll the order for completion","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MailboxOrderAccepted"}}}},"400":{"description":"Invalid order","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MailboxError"}}}},"403":{"description":"Mailbox purchasing not enabled","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MailboxError"}}}},"404":{"description":"Sequencer connection not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MailboxError"}}}},"502":{"description":"Mailbox service unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MailboxError"}}}},"503":{"description":"Mailbox capacity unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MailboxError"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/dashboard/mailboxes/orders/{id}":{"get":{"tags":["Mailboxes"],"summary":"Get order status","description":"Returns the order; while it is pending this also polls the engine and finalizes the order (creating domains/mailboxes) when the work completed.","parameters":[{"schema":{"type":"string","example":"1"},"required":true,"name":"id","in":"path"}],"responses":{"200":{"description":"Current order state","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MailboxOrder"}}}},"404":{"description":"Order not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MailboxError"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}},"delete":{"tags":["Mailboxes"],"summary":"Delete a Microsoft order","parameters":[{"schema":{"type":"string","example":"1"},"required":true,"name":"id","in":"path"},{"schema":{"type":"string","description":"Must exactly match the order domain — deletion removes the domain and all its mailboxes"},"required":true,"description":"Must exactly match the order domain — deletion removes the domain and all its mailboxes","name":"confirm","in":"query"}],"responses":{"204":{"description":"Order, domain, and mailboxes deleted"},"400":{"description":"Not a Microsoft order or confirmation mismatch","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MailboxError"}}}},"404":{"description":"Order not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MailboxError"}}}},"502":{"description":"Mailbox service unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MailboxError"}}}},"503":{"description":"Billing service unavailable — try again shortly","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MailboxError"}}}}},"description":"","x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/dashboard/mailboxes/orders/{id}/nameservers":{"get":{"tags":["Mailboxes"],"summary":"Get Microsoft order nameservers","parameters":[{"schema":{"type":"string","example":"1"},"required":true,"name":"id","in":"path"}],"responses":{"200":{"description":"Nameservers to set at your registrar (transfer orders)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MicrosoftOrderNameservers"}}}},"400":{"description":"Not a Microsoft order","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MailboxError"}}}},"404":{"description":"Order not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MailboxError"}}}},"502":{"description":"Mailbox service unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MailboxError"}}}}},"description":"","x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/dashboard/mailboxes/domains/{id}/inboxes/stop-renewal":{"post":{"tags":["Mailboxes"],"summary":"Stop inbox billing at period end","description":"Sets the domain's inbox subscription to cancel at the end of the current billing period. The inboxes stay active until then and are released at period end; the domain itself is KEPT, since its registration year is already paid — this stops INBOX billing, not the domain registration. The domain stops renewing separately (ColdIQ contacts you before its registry expiry). Not available for domains sharing a subscription with siblings (release the inboxes instead). Microsoft inboxes are managed at the order level: use POST /mailboxes/orders/{id}/stop-renewal.","parameters":[{"schema":{"type":"string","example":"1"},"required":true,"name":"id","in":"path"}],"responses":{"200":{"description":"Inbox billing stops at period end","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MailboxRenewalState"}}}},"400":{"description":"No active inbox billing for this domain","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MailboxError"}}}},"404":{"description":"Domain not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MailboxError"}}}},"409":{"description":"Domain shares billing with sibling domains","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MailboxError"}}}},"503":{"description":"Billing service unavailable — try again shortly","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MailboxError"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/dashboard/mailboxes/domains/{id}/inboxes/resume":{"post":{"tags":["Mailboxes"],"summary":"Resume inbox billing","description":"Clears a pending cancel-at-period-end on the domain's inbox subscription — billing continues as before.","parameters":[{"schema":{"type":"string","example":"1"},"required":true,"name":"id","in":"path"}],"responses":{"200":{"description":"Inbox billing continues","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MailboxRenewalState"}}}},"400":{"description":"No active inbox billing for this domain","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MailboxError"}}}},"404":{"description":"Domain not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MailboxError"}}}},"409":{"description":"Domain shares billing with sibling domains","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MailboxError"}}}},"503":{"description":"Billing service unavailable — try again shortly","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MailboxError"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/dashboard/mailboxes/orders/{id}/stop-renewal":{"post":{"tags":["Mailboxes"],"summary":"Stop Microsoft order billing at period end","description":"Sets the Microsoft order's subscription to cancel at the end of the current billing period. The tenant and its inboxes stay active until then, then are released.","parameters":[{"schema":{"type":"string","example":"1"},"required":true,"name":"id","in":"path"}],"responses":{"200":{"description":"Order billing stops at period end","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MailboxRenewalState"}}}},"400":{"description":"No active billing for this order","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MailboxError"}}}},"404":{"description":"Order not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MailboxError"}}}},"503":{"description":"Billing service unavailable — try again shortly","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MailboxError"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/dashboard/mailboxes/orders/{id}/resume":{"post":{"tags":["Mailboxes"],"summary":"Resume Microsoft order billing","description":"Clears a pending cancel-at-period-end on the Microsoft order's subscription — billing continues and nothing is released.","parameters":[{"schema":{"type":"string","example":"1"},"required":true,"name":"id","in":"path"}],"responses":{"200":{"description":"Order billing continues","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MailboxRenewalState"}}}},"400":{"description":"No active billing for this order","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MailboxError"}}}},"404":{"description":"Order not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MailboxError"}}}},"503":{"description":"Billing service unavailable — try again shortly","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MailboxError"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/dashboard/mailboxes/exports":{"post":{"tags":["Mailboxes"],"summary":"Export mailboxes to a sequencer","description":"Bulk-pushes mailboxes into a sending tool in one job (Instantly, Smartlead, ReachInbox, EmailBison). Prefer POST /mailboxes/integrations/{sequencer} where the tool supports it — see GET /mailboxes/integrations: it reports per-inbox results, returns the account id needed to disconnect, and verifies the account before reporting it connected. This route can do none of those. Credentials are forwarded for this export only — never stored. Poll the returned order for progress. Note: a completed export means the push was SENT, not that the tool accepted it — verify the accounts appear in your sending tool. GOOGLE INBOXES ONLY: Microsoft inboxes are refused with a 400 — export those with the credentials CSV instead.","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ExportMailboxesBody"}}}},"responses":{"202":{"description":"Export accepted — poll the order for completion","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MailboxOrderAccepted"}}}},"400":{"description":"Missing sequencer credentials, mailbox not ready, or a non-Google mailbox in the batch","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MailboxError"}}}},"404":{"description":"Mailbox not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MailboxError"}}}},"502":{"description":"Mailbox service unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MailboxError"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/dashboard/visitor-id/websites":{"get":{"summary":"List websites","description":"Every website with a tracking pixel, newest first.","tags":["Dashboard"],"security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Your websites","content":{"application/json":{"schema":{"$ref":"#/components/schemas/VisitorIdWebsiteList"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Not signed in","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Not enough credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"No such website","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"That domain already has a pixel","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Busy, retry shortly","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Identification engine unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"At capacity","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}},"post":{"summary":"Add a website","description":"Set up identification for a website and get the pixel to install.","tags":["Dashboard"],"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"domain":{"type":"string","minLength":1,"description":"Website domain the tracking pixel will identify visitors for"},"name":{"type":"string","description":"Display name for the workspace (defaults to the domain)"}},"required":["domain"],"example":{"domain":"coldiq.com"}}}}},"responses":{"200":{"description":"Website already existed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/VisitorIdWebsite"}}}},"201":{"description":"Website added","content":{"application/json":{"schema":{"$ref":"#/components/schemas/VisitorIdWebsite"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Not signed in","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Not enough credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"No such website","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"That domain already has a pixel","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Busy, retry shortly","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Identification engine unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"At capacity","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/dashboard/visitor-id/websites/{website_id}":{"get":{"summary":"Get a website","description":"One website, with its embed code and whether the pixel has been seen in the last 7 days.","tags":["Dashboard"],"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"integer","nullable":true,"example":1},"required":false,"name":"website_id","in":"path"}],"responses":{"200":{"description":"Website","content":{"application/json":{"schema":{"$ref":"#/components/schemas/VisitorIdWebsite"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Not signed in","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Not enough credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"No such website","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"That domain already has a pixel","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Busy, retry shortly","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Identification engine unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"At capacity","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}},"patch":{"summary":"Update a website","tags":["Dashboard"],"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"integer","nullable":true,"example":1},"required":false,"name":"website_id","in":"path"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string"},"domain":{"type":"string","description":"Changing the domain re-provisions identification for the new site"},"monthly_limit_credits":{"type":"integer","minimum":6,"maximum":100000,"description":"The most this site may identify in one billing period, in credits. A company costs 1 and a person 6, so 300 is 300 companies, or 50 people, or any mix. Defaults to 300."}},"example":{"monthly_limit_credits":300}}}}},"responses":{"200":{"description":"Website updated","content":{"application/json":{"schema":{"$ref":"#/components/schemas/VisitorIdWebsite"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Not signed in","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Not enough credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"No such website","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"That domain already has a pixel","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Busy, retry shortly","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Identification engine unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"At capacity","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"description":"","x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}},"delete":{"summary":"Remove a website","description":"Stop identifying visitors there. Everything already identified stays readable.","tags":["Dashboard"],"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"integer","nullable":true,"example":1},"required":false,"name":"website_id","in":"path"}],"responses":{"200":{"description":"Website removed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/VisitorIdWebsite"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Not signed in","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Not enough credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"No such website","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"That domain already has a pixel","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Busy, retry shortly","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Identification engine unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"At capacity","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/dashboard/visitor-id/websites/{website_id}/resume":{"post":{"summary":"Resume identification","description":"Start identifying again after the site ran out of credits.","tags":["Dashboard"],"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"integer","nullable":true,"example":1},"required":false,"name":"website_id","in":"path"}],"responses":{"200":{"description":"Identifying again","content":{"application/json":{"schema":{"$ref":"#/components/schemas/VisitorIdWebsite"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Not signed in","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Not enough credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"No such website","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"That domain already has a pixel","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Busy, retry shortly","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Identification engine unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"At capacity","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/dashboard/visitor-id/websites/{website_id}/usage":{"get":{"summary":"Get usage","description":"People and companies identified this period, and what they cost.","tags":["Dashboard"],"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"integer","nullable":true,"example":1},"required":false,"name":"website_id","in":"path"}],"responses":{"200":{"description":"Usage this period","content":{"application/json":{"schema":{"$ref":"#/components/schemas/VisitorIdUsage"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Not signed in","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Not enough credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"No such website","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"That domain already has a pixel","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Busy, retry shortly","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Identification engine unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"At capacity","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/dashboard/visitor-id/websites/{website_id}/contacts":{"get":{"summary":"List identified people","tags":["Dashboard"],"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"integer","nullable":true,"example":1},"required":false,"name":"website_id","in":"path"},{"schema":{"type":"integer","minimum":1,"maximum":100,"example":50},"required":false,"name":"limit","in":"query"},{"schema":{"type":"string"},"required":false,"name":"cursor","in":"query"},{"schema":{"type":"string","description":"Free-form filter JSON, passed through to the identification engine"},"required":false,"description":"Free-form filter JSON, passed through to the identification engine","name":"filters","in":"query"},{"schema":{"type":"string"},"required":false,"name":"filter_set_id","in":"query"},{"schema":{"type":"string","example":"michel@coldiq.com"},"required":false,"name":"email","in":"query"},{"schema":{"type":"string"},"required":false,"name":"account_id","in":"query"}],"responses":{"200":{"description":"Identified data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/VisitorIdResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Not signed in","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Not enough credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"No such website","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"That domain already has a pixel","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Busy, retry shortly","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Identification engine unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"At capacity","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"description":"","x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/dashboard/visitor-id/websites/{website_id}/contacts/{contact_id}":{"get":{"summary":"Get an identified person","tags":["Dashboard"],"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"integer","nullable":true,"example":1},"required":false,"name":"website_id","in":"path"},{"schema":{"type":"string","example":"16d5ff0e-061d-4c6b-95e0-531a58fc3468"},"required":true,"name":"contact_id","in":"path"}],"responses":{"200":{"description":"Identified data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/VisitorIdResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Not signed in","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Not enough credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"No such website","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"That domain already has a pixel","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Busy, retry shortly","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Identification engine unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"At capacity","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"description":"","x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/dashboard/visitor-id/websites/{website_id}/accounts":{"get":{"summary":"List identified companies","tags":["Dashboard"],"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"integer","nullable":true,"example":1},"required":false,"name":"website_id","in":"path"},{"schema":{"type":"integer","minimum":1,"maximum":100,"example":50},"required":false,"name":"limit","in":"query"},{"schema":{"type":"string"},"required":false,"name":"cursor","in":"query"},{"schema":{"type":"string","description":"Free-form filter JSON, passed through to the identification engine"},"required":false,"description":"Free-form filter JSON, passed through to the identification engine","name":"filters","in":"query"},{"schema":{"type":"string"},"required":false,"name":"filter_set_id","in":"query"},{"schema":{"type":"string","example":"coldiq.com"},"required":false,"name":"domain","in":"query"}],"responses":{"200":{"description":"Identified data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/VisitorIdResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Not signed in","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Not enough credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"No such website","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"That domain already has a pixel","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Busy, retry shortly","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Identification engine unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"At capacity","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"description":"","x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/dashboard/visitor-id/websites/{website_id}/accounts/{account_id}":{"get":{"summary":"Get an identified company","tags":["Dashboard"],"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"integer","nullable":true,"example":1},"required":false,"name":"website_id","in":"path"},{"schema":{"type":"string","example":"681ce79e-8565-464d-83e3-e0e9d5a4f499"},"required":true,"name":"account_id","in":"path"}],"responses":{"200":{"description":"Identified data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/VisitorIdResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Not signed in","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Not enough credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"No such website","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"That domain already has a pixel","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Busy, retry shortly","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Identification engine unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"At capacity","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"description":"","x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/dashboard/visitor-id/websites/{website_id}/activity":{"get":{"summary":"Get visit activity","tags":["Dashboard"],"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"integer","nullable":true,"example":1},"required":false,"name":"website_id","in":"path"},{"schema":{"type":"string","example":"681ce79e-8565-464d-83e3-e0e9d5a4f499"},"required":false,"name":"account_id","in":"query"},{"schema":{"type":"string"},"required":false,"name":"contact_id","in":"query"},{"schema":{"type":"integer","minimum":1,"maximum":100,"example":50},"required":false,"name":"limit","in":"query"},{"schema":{"type":"string"},"required":false,"name":"cursor","in":"query"}],"responses":{"200":{"description":"Identified data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/VisitorIdResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Not signed in","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Not enough credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"No such website","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"That domain already has a pixel","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Busy, retry shortly","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Identification engine unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"At capacity","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"description":"","x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/dashboard/visitor-id/websites/{website_id}/scores":{"get":{"summary":"Get lead score","tags":["Dashboard"],"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"integer","nullable":true,"example":1},"required":false,"name":"website_id","in":"path"},{"schema":{"type":"string","example":"681ce79e-8565-464d-83e3-e0e9d5a4f499"},"required":false,"name":"account_id","in":"query"},{"schema":{"type":"string"},"required":false,"name":"contact_id","in":"query"},{"schema":{"type":"boolean","nullable":true},"required":false,"name":"include_history","in":"query"},{"schema":{"type":"integer","minimum":1,"maximum":100,"example":50},"required":false,"name":"limit","in":"query"},{"schema":{"type":"string"},"required":false,"name":"cursor","in":"query"}],"responses":{"200":{"description":"Identified data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/VisitorIdResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Not signed in","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Not enough credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"No such website","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"That domain already has a pixel","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Busy, retry shortly","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Identification engine unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"At capacity","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"description":"","x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/dashboard/visitor-id/websites/{website_id}/scores/recent":{"get":{"summary":"List recent lead scores","tags":["Dashboard"],"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"integer","nullable":true,"example":1},"required":false,"name":"website_id","in":"path"},{"schema":{"type":"integer","minimum":1,"maximum":100,"example":50},"required":false,"name":"limit","in":"query"},{"schema":{"type":"string"},"required":false,"name":"cursor","in":"query"}],"responses":{"200":{"description":"Identified data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/VisitorIdResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Not signed in","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Not enough credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"No such website","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"That domain already has a pixel","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Busy, retry shortly","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Identification engine unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"At capacity","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"description":"","x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/dashboard/visitor-id/websites/{website_id}/webhook":{"put":{"summary":"Set the event webhook","tags":["Dashboard"],"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"integer","nullable":true,"example":1},"required":false,"name":"website_id","in":"path"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"url":{"type":"string","format":"uri","description":"HTTPS endpoint that will receive identified-visitor events as JSON POSTs"},"events":{"type":"array","items":{"type":"string","enum":["contact.identified","account.identified","score.changed","tenant.limit_reached"]},"description":"Event types to forward (defaults to all)"}},"required":["url"],"example":{"url":"https://coldiq.com/api/visitor-events","events":["contact.identified","account.identified"]}}}}},"responses":{"200":{"description":"Webhook set","content":{"application/json":{"schema":{"$ref":"#/components/schemas/VisitorIdWebhookSubscription"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Not signed in","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Not enough credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"No such website","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"That domain already has a pixel","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Busy, retry shortly","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Identification engine unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"At capacity","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"description":"","x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}},"get":{"summary":"Get the event webhook","tags":["Dashboard"],"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"integer","nullable":true,"example":1},"required":false,"name":"website_id","in":"path"}],"responses":{"200":{"description":"Current webhook","content":{"application/json":{"schema":{"$ref":"#/components/schemas/VisitorIdWebhookSubscription"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Not signed in","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Not enough credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"No such website","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"That domain already has a pixel","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Busy, retry shortly","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Identification engine unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"At capacity","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"description":"","x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}},"delete":{"summary":"Remove the event webhook","tags":["Dashboard"],"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"integer","nullable":true,"example":1},"required":false,"name":"website_id","in":"path"}],"responses":{"200":{"description":"Webhook removed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/VisitorIdWebhookSubscription"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Not signed in","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Not enough credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"No such website","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"That domain already has a pixel","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Busy, retry shortly","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Identification engine unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"At capacity","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"description":"","x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/dashboard/me":{"get":{"tags":["Dashboard"],"summary":"Get user profile","responses":{"200":{"description":"User profile","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserProfile"}}}}},"description":"","x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/dashboard/api-keys":{"get":{"tags":["Dashboard"],"summary":"List API keys","responses":{"200":{"description":"API keys for the authenticated user","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/ApiKeyInfo"}}}}}},"description":"","x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}},"post":{"tags":["Dashboard"],"summary":"Create API key","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateApiKeyBody"}}}},"responses":{"201":{"description":"API key created — raw key shown only once","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiKeyCreated"}}}},"400":{"description":"Limit reached","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}},"required":["error"]}}}}},"description":"","x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/dashboard/api-keys/{id}":{"delete":{"tags":["Dashboard"],"summary":"Revoke API key","parameters":[{"schema":{"type":"string"},"required":true,"name":"id","in":"path"}],"responses":{"204":{"description":"Key revoked"},"404":{"description":"Key not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}},"required":["error"]}}}}},"description":"","x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/dashboard/credits":{"get":{"tags":["Dashboard"],"summary":"Get credit balance","responses":{"200":{"description":"Credit balance and monthly usage","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DashboardCredits"}}}}},"description":"","x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/dashboard/usage":{"get":{"tags":["Dashboard"],"summary":"Get usage history","parameters":[{"schema":{"type":"string","default":"1"},"required":false,"name":"page","in":"query"},{"schema":{"type":"string","default":"50"},"required":false,"name":"limit","in":"query"},{"schema":{"type":"string","description":"Filter to a single provider (e.g. \"apollo\")"},"required":false,"description":"Filter to a single provider (e.g. \"apollo\")","name":"provider","in":"query"},{"schema":{"type":"string","format":"date-time","description":"Only calls at or after this ISO 8601 timestamp"},"required":false,"description":"Only calls at or after this ISO 8601 timestamp","name":"from","in":"query"},{"schema":{"type":"string","format":"date-time","description":"Only calls at or before this ISO 8601 timestamp"},"required":false,"description":"Only calls at or before this ISO 8601 timestamp","name":"to","in":"query"}],"responses":{"200":{"description":"Paginated usage history","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UsageResponse"}}}},"400":{"description":"Invalid range","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}},"required":["error"]}}}}},"description":"","x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/dashboard/usage/export.csv":{"get":{"tags":["Dashboard"],"summary":"Export usage history as CSV","parameters":[{"schema":{"type":"string","description":"Filter to a single provider (e.g. \"apollo\")"},"required":false,"description":"Filter to a single provider (e.g. \"apollo\")","name":"provider","in":"query"},{"schema":{"type":"string","format":"date-time","description":"Start of range (ISO 8601). Defaults to 30 days before `to`."},"required":false,"description":"Start of range (ISO 8601). Defaults to 30 days before `to`.","name":"from","in":"query"},{"schema":{"type":"string","format":"date-time","description":"End of range (ISO 8601). Defaults to now."},"required":false,"description":"End of range (ISO 8601). Defaults to now.","name":"to","in":"query"}],"responses":{"200":{"description":"Every call in the range, newest first, one row per call","content":{"text/csv":{"schema":{"type":"string"}}}},"400":{"description":"Invalid range, range too long, or too many calls to export","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}},"required":["error"]}}}}},"description":"","x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/dashboard/usage/summary":{"get":{"tags":["Dashboard"],"summary":"Get usage summary","parameters":[{"schema":{"type":"string","format":"date-time","description":"Start of range (ISO 8601). Defaults to 30 days ago."},"required":false,"description":"Start of range (ISO 8601). Defaults to 30 days ago.","name":"from","in":"query"},{"schema":{"type":"string","format":"date-time","description":"End of range (ISO 8601). Defaults to now."},"required":false,"description":"End of range (ISO 8601). Defaults to now.","name":"to","in":"query"}],"responses":{"200":{"description":"Per-provider credit consumption breakdown","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UsageSummary"}}}},"400":{"description":"Invalid range","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}},"required":["error"]}}}}},"description":"","x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/dashboard/usage/summary/windows":{"get":{"tags":["Dashboard"],"summary":"Get usage summary for the 7, 30 and 90 day windows","responses":{"200":{"description":"Per-provider credit consumption for each rolling window ending now","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UsageSummaryWindows"}}}}},"description":"","x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/public/billing/products":{"get":{"tags":["Public"],"summary":"List credit packages (public)","description":"Unauthenticated mirror of `GET /dashboard/billing/products` — same shape, and the same data for every caller. Used by the public marketing site to render pricing without a Clerk session. Being cached and identity-free, it carries no per-user state: `alreadyClaimed` is absent, and `subscriptionRequired` reports the un-exempted value even for an account the authenticated listing would exempt. Read the dashboard route for a purchase decision.","security":[],"responses":{"200":{"description":"Available credit packages for purchase","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/CreditProduct"}}}}},"502":{"description":"Stripe unavailable","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}},"required":["error"]}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/public/billing/lite-products":{"get":{"tags":["Public"],"summary":"List Find Anything plans (public)","description":"The plans sold from the unlisted Find Anything landing page, and nothing else. They are deliberately absent from `GET /public/billing/products` and from every dashboard listing: they are cheap by design and carry no API key, no MCP and no bulk, so beside the GTM tiers they read as the same product for a fifth of the price. Each carries `lookupUnits`, so a page can turn the credit grant into its \"N emails or M phones\" promise without writing either number down.","security":[],"responses":{"200":{"description":"Find Anything plans available for purchase","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/CreditProduct"}}}}},"502":{"description":"Stripe unavailable","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}},"required":["error"]}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}},"/public/billing/campaign-checkout":{"post":{"tags":["Public"],"summary":"Create campaign checkout session","description":"Opens a Stripe Checkout session for a campaign plan WITHOUT a ColdIQ account: Stripe collects the email, and the account is created from the paid address once the payment lands. Only products flagged for public checkout, sold at their default price, are reachable. The server pre-applies the Coupon selected by Stripe Price metadata. A Price without Coupon metadata is charged at its existing amount. Everything else is rejected before any Stripe write.\n\nThe success and cancel URLs are server-built and cannot be supplied by the caller: the ORIGIN is fixed by the server, and the PATH comes from the purchased product's `landing_path` metadata, resolved against a server-side allowlist, so each campaign returns the buyer to its own page.\n\nThe optional `utmSource` records where the visitor came from. It is validated against a fixed list of known channels and dropped otherwise, then stamped on the Checkout Session so fulfilment can attribute the account. It is attribution only and never affects what the buyer receives, and since this endpoint is unauthenticated the claim is not verified: treat the stored channel as self-declared, and sign it before anything reads it to move money.","security":[],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CampaignCheckoutBody"}}}},"responses":{"200":{"description":"Checkout session created — redirect the buyer to the returned URL","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicCheckoutResponse"}}}},"400":{"description":"The price is unknown, is not the product default, or the product is not sold without an account","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}},"required":["error"]}}}},"429":{"description":"Too many checkout attempts from this address","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}},"required":["error"]}}}},"502":{"description":"Stripe unavailable","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}},"required":["error"]}}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}}},"x-rate-limit":{"scope":"billing account (shared across all API keys on the account)","requests_per_minute":120,"requests_per_hour":3000,"counts":"inbound HTTP requests. A single request that processes many records — a GTM verb called with inputs[], or a bulk job submit — counts as 1, not one per record.","on_exceeded":"HTTP 429 with a Retry-After header and retry_after_seconds in the body"}}