# SDR Autopilot > SDR Autopilot is an AI SDR and B2B outbound automation platform for technical founders and small SaaS teams. It analyzes what a company sells, proposes ideal customer profile segments, finds relevant companies and decision-makers, drafts personalized cold email, provides managed sending infrastructure, manages outbound workflows under plan prospect capacity, and classifies replies. This file is the short guide for AI agents: product facts, auth, discovery URLs, and the public REST + MCP surface. Prefer https://sdrautopilot.com/openapi.json for exact schemas and https://sdrautopilot.com/llms-full.txt for fuller endpoint detail. ## Product (for citation) - **Name:** SDR Autopilot - **Category:** AI SDR and B2B outbound automation platform - **Audience:** Technical founders, bootstrapped B2B SaaS companies, and small teams - **What it does:** analyzes what a company sells, proposes ideal customer profile segments, finds relevant companies and decision-makers, drafts personalized cold email, provides managed sending infrastructure, manages outbound workflows under plan prospect capacity, and classifies replies - **How to start:** Paste a company website on the homepage — no account required. Explore Free with no card: ICP segments and outreach previews. Identities and sending unlock when you upgrade to a paid plan. - **Pricing:** Free Explore (no card, no sending, identities hidden) → Founder $49.00/mo for 500 new prospects included per billing period (founding $39.00 for the first 6 billing periods for the first 25 customers; additional capacity $0.20/prospect via top-up) → Growth $149.00/mo for 2,000 new prospects included per billing period (additional capacity $0.15/prospect via top-up). Follow-ups are free. Managed warmed sending is included on paid plans — no need to buy or warm your own mailboxes. Inbox placement is never guaranteed. - **Sending:** Paid plans include managed warmed sending (a shared pool of managed warmed mailboxes) — no need to buy or warm your own mailboxes. Warm-up improves sender readiness; it does not guarantee inbox placement or instant fleet capacity. Free Explore previews never send. - **AI agents / MCP:** Hosted MCP at /mcp (Streamable HTTP) authenticates with a project API key and exposes campaign control, budgets, inbox, hot leads, replies, and suppressions for compatible AI assistants including Claude. Prospect finding and plain-English campaign steering remain in the product UI. ## Authentication - All API and MCP requests need `X-API-Key: ` or `Authorization: Bearer ` (create a key in the app under API & agents — requires a CURRENT ACTIVE paid Founder/Growth plan). - Base URL: https://sdrautopilot.com - Keys are project-scoped: every call is already limited to the project the key belongs to. - Identity, inbox, hot-leads, reply, and campaign-start tools/endpoints require CURRENT ACTIVE paid Founder/Growth entitlement (`402` + `paid_required` when not entitled — including Free, past_due, and canceled). Historical reached identities may still appear in the authenticated app UI; API/MCP always require current active paid. ## Discovery (load these) - [Product homepage](https://sdrautopilot.com/): what SDR Autopilot is, who it's for, how pricing and sending work - [Quick agent guide](https://sdrautopilot.com/llms.txt): also at https://sdrautopilot.com/api/llms.txt - [Full agent guide](https://sdrautopilot.com/llms-full.txt): also at https://sdrautopilot.com/api/llms-full.txt - [OpenAPI schema](https://sdrautopilot.com/openapi.json): also at https://sdrautopilot.com/api/openapi.json - [Human API docs](https://sdrautopilot.com/api/docs): endpoint list for humans - [Hosted MCP](https://sdrautopilot.com/mcp): Streamable HTTP, stateless — same API key as Bearer or X-API-Key - [Contact](https://sdrautopilot.com/contact) - [Terms](https://sdrautopilot.com/terms) - [Privacy](https://sdrautopilot.com/privacy) ## How the product model maps to the API - **Project** — one workspace per product you run outreach for. Holds campaigns, an internal daily spend safety budget (`daily_budget_cents`), plan prospect capacity (retail), and an autopilot flag. - **Campaign** — a targeted audience segment. Has its own internal daily spend safety budget, a lead pool, a lifecycle status, and an inbox. - **Lead / inbox** — people the campaign contacted and their replies. You answer per lead (`person_id`). Identity and reply endpoints require CURRENT ACTIVE paid Founder/Growth. - **Budgets vs capacity** — `daily_budget_cents` / `daily_limit_cents` are internal estimated-spend safety caps in cents. Retail billing is Free Explore → Founder/Growth by new prospects reached (included capacity + optional top-ups). Do not treat the cents fields as the subscription price. Ids chain top-down: list projects → take `project_id` → list campaigns → take `campaign_id` → use it for inbox, analytics, budget, start/stop. **Autopilot** on SDR Autopilot is the project auto-scaler (pause/scale budgets from cost-per-lead). Start, stop, and budget edits always work re: autopilot — they do not return 409 while autopilot is ON. Start still requires paid send entitlement. ## Campaign statuses - `not_started` — created, pipeline not launched. - `starting` — pipeline is running (research → competitors → people → outreach). - `running` — launched; sending within budget and schedule. - `paused` — not sending (`substatus` like `paused_manual` or `paused_high_cost`). `start` resumes. - `failed` — a pipeline stage failed; `start` retries. - `archived` — hidden; start/stop/budget return 409. ## Workflows Every call: `-H "X-API-Key: "` against the base URL. **1 — Get your bearings.** - `GET https://sdrautopilot.com/api/v1/projects` → your project. - `GET https://sdrautopilot.com/api/v1/campaigns` → every campaign with emails_sent, replies, hot_leads, spend, budget. - `GET https://sdrautopilot.com/api/v1/projects/{project_id}/analytics?period=7d` → totals + per-campaign breakdown. **2 — Start / stop.** - `POST https://sdrautopilot.com/api/v1/campaigns/{campaign_id}/stop` — pause sending. - `POST https://sdrautopilot.com/api/v1/campaigns/{campaign_id}/start` — launch, resume, or retry. **3 — Answer the inbox.** - `GET https://sdrautopilot.com/api/v1/campaigns/{campaign_id}/inbox?tab=need_reply` - `GET https://sdrautopilot.com/api/v1/campaigns/{campaign_id}/inbox/{person_id}` - `POST https://sdrautopilot.com/api/v1/campaigns/{campaign_id}/inbox/{person_id}/reply` body `{"body_text":"..."}` **3b — Hot leads → CRM.** - `GET https://sdrautopilot.com/api/v1/hot-leads?since=` — poll ~every 10 minutes. Remember the newest `became_hot_at` as the next `since`. **4 — Budgets.** - `PATCH https://sdrautopilot.com/api/v1/projects/{project_id}/budget` `{"daily_budget_cents":10000}` - `PATCH https://sdrautopilot.com/api/v1/campaigns/{campaign_id}/budget` `{"daily_limit_cents":500}` **5 — Suppress (do-not-contact).** - `POST https://sdrautopilot.com/api/v1/suppressions` `{"type":"person","email":"jane@acme.com"}` or `{"type":"domain","domain":"acme.com"}`. `type` is required. ## REST endpoints - `GET /api/v1/projects` — List projects for this API key - `GET /api/v1/projects/{project_id}/analytics` — Project analytics - `GET /api/v1/projects/{project_id}/budget` — Get project daily budget - `PATCH /api/v1/projects/{project_id}/budget` — Set project daily budget - `GET /api/v1/projects/{project_id}/autopilot` — Get autopilot setting - `PATCH /api/v1/projects/{project_id}/autopilot` — Set autopilot - `GET /api/v1/campaigns` — List campaigns - `GET /api/v1/campaigns/{campaign_id}` — Get campaign definition - `GET /api/v1/campaigns/{campaign_id}/leads` — List campaign leads - `GET /api/v1/campaigns/{campaign_id}/analytics` — Campaign analytics - `PATCH /api/v1/campaigns/{campaign_id}/budget` — Set campaign daily budget - `POST /api/v1/campaigns/{campaign_id}/start` — Start or resume a campaign - `POST /api/v1/campaigns/{campaign_id}/stop` — Pause a campaign - `GET /api/v1/campaigns/{campaign_id}/inbox` — List inbox conversations - `GET /api/v1/campaigns/{campaign_id}/inbox/{person_id}` — Read a conversation thread - `POST /api/v1/campaigns/{campaign_id}/inbox/{person_id}/reply` — Reply in a thread - `GET /api/v1/hot-leads` — List hot leads - `POST /api/v1/suppressions` — Add a suppression ## Hosted MCP tools These tools call the same operations as `/api/v1/*` (do not invent endpoints). - `list_projects` — The project this API key belongs to. - `get_project_analytics` — Project totals and per-campaign breakdown. - `get_project_budget` — Daily budget in cents. - `set_project_budget` — Set the project daily budget in cents (0 pauses spend). - `get_autopilot` — Whether project autopilot / auto-scaler is on. - `set_autopilot` — Turn project autopilot on or off. - `list_campaigns` — Campaigns with status and stats for a short how-each-is-doing summary. - `get_campaign` — Campaign definition (offer, audience, budget, status). - `get_campaign_leads` — People targeted by a campaign. - `get_campaign_analytics` — Period-filtered campaign stats. - `set_campaign_budget` — Per-campaign daily spend cap in cents. - `start_campaign` — Launch, resume, or retry a campaign. Idempotent if already running. - `stop_campaign` — Pause sending. Idempotent. - `list_inbox` — Inbox conversations for a campaign. - `get_inbox_thread` — Full conversation plus lead profile. - `reply_to_lead` — Send body_text on the existing thread. Recipient and subject are filled in. - `get_hot_leads` — Hot replies as enriched contacts. Poll with since (ISO 8601). - `add_suppression` — Suppress a person or domain. type is required. ## Honest limitations (not in this API) - No public search/enrich, campaign CSV-import, lead-notes, named suppress-lists, billing top-up, or Explee-style data-platform endpoints. - No `phone` on people — the field is always `null`. - Emails are visible on the API (we do not hide them until the lead replies). - Autopilot does not lock start/budget the way Explee's agent-owned mode does. ## Errors - `401` missing/invalid key. - `402` + `{ "code": "paid_required" }` when the project lacks CURRENT ACTIVE paid Founder/Growth entitlement for identities, replies, or starting outreach (Free Explore, past_due, canceled). - `404` unknown id in this project (never reveals another project's ids). - `409` archived campaign, or a reply that is not allowed. - `400` validation (see `details` / `error`).