{"openapi":"3.1.0","info":{"title":"Warmd Connector API","version":"2026-09-21","summary":"Warmd as a tool for your own AI agent: Meta Muse, Claude, ChatGPT or any MCP client.","description":"Every operation acts AS the person who issued the key, inside their workspace, with their permissions.\n\nAuthenticate with `Authorization: Bearer <key>`; keys start with `wmd_agent_`. In Muse, store the key as `WARMD_API_KEY` in the Secure Credentials Store.\n\nScopes: `read` (Look things up: leads, conversations, tasks, calendar, reports, the Brain.) · `write` (Change records inside Warmd: add leads, notes, tasks and deals; draft replies for the Inbox; pause campaigns; propose memories.) · `send` (Actions that contact a lead: send an approved draft, book / move / cancel an appointment, resume a campaign. Every send still passes the compliance Gate.).\n\nThe same tools are available over MCP (streamable HTTP) at https://warmdapi-production.up.railway.app/v1/mcp. Human setup guide: https://warmd.ai/connect/muse. Agent brief: https://warmd.ai/connectors/muse.md.","contact":{"url":"https://warmd.ai/connect/muse"}},"servers":[{"url":"https://warmdapi-production.up.railway.app"}],"security":[{"bearerAuth":[]}],"tags":[{"name":"connector"},{"name":"Workspace"},{"name":"Inbox"},{"name":"Leads"},{"name":"Conversations"},{"name":"Drafts"},{"name":"Tasks"},{"name":"Deals"},{"name":"Calendar"},{"name":"Campaigns"},{"name":"Automations"},{"name":"Forms"},{"name":"Reports"},{"name":"The Brain"}],"paths":{"/v1/connector":{"get":{"operationId":"connector_catalogue","summary":"The tool catalogue this key may call, with JSON Schemas","tags":["connector"],"responses":{"200":{"description":"The catalogue","content":{"application/json":{"schema":{"type":"object"}}}}}}},"/v1/connector/me":{"get":{"operationId":"connector_me","summary":"Who this key acts for (same result as the workspace.me tool)","tags":["connector"],"responses":{"200":{"description":"The principal","content":{"application/json":{"schema":{"type":"object","required":["ok","result"],"properties":{"ok":{"type":"boolean","const":true},"result":{"type":"object","additionalProperties":true,"description":"The tool result (see each tool’s `returns`)."}}}}}}}}},"/v1/connector/tools/workspace.me":{"post":{"operationId":"workspace_me","summary":"Who am I","description":"Call this first. Returns the person you are acting for (name, email, role), their workspace (business name, timezone), which scopes this key holds and which permissions the person has. Use the timezone for every date you show them.\n\nScope: `read`\n\nReturns: `{ user, workspace, scopes, permissions, connector_version }`","tags":["Workspace"],"parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":false},"example":{}}}},"responses":{"200":{"description":"The tool ran","content":{"application/json":{"schema":{"type":"object","required":["ok","result"],"properties":{"ok":{"type":"boolean","const":true},"result":{"type":"object","additionalProperties":true,"description":"The tool result (see each tool’s `returns`)."}}}}}},"400":{"description":"invalid_input or rejected","content":{"application/json":{"schema":{"type":"object","required":["ok","error"],"properties":{"ok":{"type":"boolean","const":false},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["invalid_input","unknown_tool","scope_missing","permission_missing","not_found","rejected","rate_limited","unauthorized","internal"]},"message":{"type":"string"},"details":{"description":"Structured detail, e.g. zod issues for invalid_input."}}}}}}}},"401":{"description":"Missing, revoked or wrong-kind key","content":{"application/json":{"schema":{"type":"object","required":["ok","error"],"properties":{"ok":{"type":"boolean","const":false},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["invalid_input","unknown_tool","scope_missing","permission_missing","not_found","rejected","rate_limited","unauthorized","internal"]},"message":{"type":"string"},"details":{"description":"Structured detail, e.g. zod issues for invalid_input."}}}}}}}},"403":{"description":"scope_missing or permission_missing","content":{"application/json":{"schema":{"type":"object","required":["ok","error"],"properties":{"ok":{"type":"boolean","const":false},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["invalid_input","unknown_tool","scope_missing","permission_missing","not_found","rejected","rate_limited","unauthorized","internal"]},"message":{"type":"string"},"details":{"description":"Structured detail, e.g. zod issues for invalid_input."}}}}}}}},"404":{"description":"not_found","content":{"application/json":{"schema":{"type":"object","required":["ok","error"],"properties":{"ok":{"type":"boolean","const":false},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["invalid_input","unknown_tool","scope_missing","permission_missing","not_found","rejected","rate_limited","unauthorized","internal"]},"message":{"type":"string"},"details":{"description":"Structured detail, e.g. zod issues for invalid_input."}}}}}}}},"429":{"description":"rate_limited: honour Retry-After","content":{"application/json":{"schema":{"type":"object","required":["ok","error"],"properties":{"ok":{"type":"boolean","const":false},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["invalid_input","unknown_tool","scope_missing","permission_missing","not_found","rejected","rate_limited","unauthorized","internal"]},"message":{"type":"string"},"details":{"description":"Structured detail, e.g. zod issues for invalid_input."}}}}}}}}}}},"/v1/connector/tools/inbox.needs_you":{"post":{"operationId":"inbox_needs_you","summary":"What needs a human","description":"Everything waiting on the person right now: conversations Warmd’s AI handed over (taken_over), strangers who texted or called in (new_strangers), anonymous website chats (anonymous_intake), and AI-drafted replies awaiting approval (drafts_awaiting_approval). This is the morning check-in and the \"anything urgent?\" answer.\n\nScope: `read` · Permission: `conversations:read:assigned`\n\nReturns: `{ taken_over[], new_strangers[], anonymous_intake[], drafts_awaiting_approval[] }`","tags":["Inbox"],"parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":false},"example":{}}}},"responses":{"200":{"description":"The tool ran","content":{"application/json":{"schema":{"type":"object","required":["ok","result"],"properties":{"ok":{"type":"boolean","const":true},"result":{"type":"object","additionalProperties":true,"description":"The tool result (see each tool’s `returns`)."}}}}}},"400":{"description":"invalid_input or rejected","content":{"application/json":{"schema":{"type":"object","required":["ok","error"],"properties":{"ok":{"type":"boolean","const":false},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["invalid_input","unknown_tool","scope_missing","permission_missing","not_found","rejected","rate_limited","unauthorized","internal"]},"message":{"type":"string"},"details":{"description":"Structured detail, e.g. zod issues for invalid_input."}}}}}}}},"401":{"description":"Missing, revoked or wrong-kind key","content":{"application/json":{"schema":{"type":"object","required":["ok","error"],"properties":{"ok":{"type":"boolean","const":false},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["invalid_input","unknown_tool","scope_missing","permission_missing","not_found","rejected","rate_limited","unauthorized","internal"]},"message":{"type":"string"},"details":{"description":"Structured detail, e.g. zod issues for invalid_input."}}}}}}}},"403":{"description":"scope_missing or permission_missing","content":{"application/json":{"schema":{"type":"object","required":["ok","error"],"properties":{"ok":{"type":"boolean","const":false},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["invalid_input","unknown_tool","scope_missing","permission_missing","not_found","rejected","rate_limited","unauthorized","internal"]},"message":{"type":"string"},"details":{"description":"Structured detail, e.g. zod issues for invalid_input."}}}}}}}},"404":{"description":"not_found","content":{"application/json":{"schema":{"type":"object","required":["ok","error"],"properties":{"ok":{"type":"boolean","const":false},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["invalid_input","unknown_tool","scope_missing","permission_missing","not_found","rejected","rate_limited","unauthorized","internal"]},"message":{"type":"string"},"details":{"description":"Structured detail, e.g. zod issues for invalid_input."}}}}}}}},"429":{"description":"rate_limited: honour Retry-After","content":{"application/json":{"schema":{"type":"object","required":["ok","error"],"properties":{"ok":{"type":"boolean","const":false},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["invalid_input","unknown_tool","scope_missing","permission_missing","not_found","rejected","rate_limited","unauthorized","internal"]},"message":{"type":"string"},"details":{"description":"Structured detail, e.g. zod issues for invalid_input."}}}}}}}}}}},"/v1/connector/tools/leads.search":{"post":{"operationId":"leads_search","summary":"Find leads","description":"Find leads by name, phone digits or email fragment, and/or filter by status, age or ownership. Returns only leads the person may see, newest first. Search BEFORE creating a lead so you never add a duplicate.\n\nScope: `read` · Permission: `leads:read:assigned`\n\nReturns: `{ leads: [{ lead_id, name, phone, email, status, assigned_user_id, customer_since, created_at }] }`","tags":["Leads"],"parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"q":{"type":"string","maxLength":120,"description":"Name, phone digits or email fragment"},"status":{"type":"string","enum":["new","contacted","engaged","qualified","booked","showed","lost","opted_out","dnc"]},"older_than_days":{"type":"integer","minimum":1,"maximum":3650,"description":"Only leads created at least this many days ago (\"every lead older than 50 days\")"},"unassigned":{"type":"boolean","description":"Only leads nobody owns yet"},"limit":{"type":"integer","minimum":1,"maximum":200,"description":"Default 20"}},"additionalProperties":false},"example":{"q":"Ortiz","limit":5}}}},"responses":{"200":{"description":"The tool ran","content":{"application/json":{"schema":{"type":"object","required":["ok","result"],"properties":{"ok":{"type":"boolean","const":true},"result":{"type":"object","additionalProperties":true,"description":"The tool result (see each tool’s `returns`)."}}}}}},"400":{"description":"invalid_input or rejected","content":{"application/json":{"schema":{"type":"object","required":["ok","error"],"properties":{"ok":{"type":"boolean","const":false},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["invalid_input","unknown_tool","scope_missing","permission_missing","not_found","rejected","rate_limited","unauthorized","internal"]},"message":{"type":"string"},"details":{"description":"Structured detail, e.g. zod issues for invalid_input."}}}}}}}},"401":{"description":"Missing, revoked or wrong-kind key","content":{"application/json":{"schema":{"type":"object","required":["ok","error"],"properties":{"ok":{"type":"boolean","const":false},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["invalid_input","unknown_tool","scope_missing","permission_missing","not_found","rejected","rate_limited","unauthorized","internal"]},"message":{"type":"string"},"details":{"description":"Structured detail, e.g. zod issues for invalid_input."}}}}}}}},"403":{"description":"scope_missing or permission_missing","content":{"application/json":{"schema":{"type":"object","required":["ok","error"],"properties":{"ok":{"type":"boolean","const":false},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["invalid_input","unknown_tool","scope_missing","permission_missing","not_found","rejected","rate_limited","unauthorized","internal"]},"message":{"type":"string"},"details":{"description":"Structured detail, e.g. zod issues for invalid_input."}}}}}}}},"404":{"description":"not_found","content":{"application/json":{"schema":{"type":"object","required":["ok","error"],"properties":{"ok":{"type":"boolean","const":false},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["invalid_input","unknown_tool","scope_missing","permission_missing","not_found","rejected","rate_limited","unauthorized","internal"]},"message":{"type":"string"},"details":{"description":"Structured detail, e.g. zod issues for invalid_input."}}}}}}}},"429":{"description":"rate_limited: honour Retry-After","content":{"application/json":{"schema":{"type":"object","required":["ok","error"],"properties":{"ok":{"type":"boolean","const":false},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["invalid_input","unknown_tool","scope_missing","permission_missing","not_found","rejected","rate_limited","unauthorized","internal"]},"message":{"type":"string"},"details":{"description":"Structured detail, e.g. zod issues for invalid_input."}}}}}}}}}}},"/v1/connector/tools/leads.get":{"post":{"operationId":"leads_get","summary":"One lead in depth","description":"A single lead: contact fields, status, owner, the conversation summary and latest messages, what the Brain remembers about them, and their open deals. Use after leads.search when the person asks about someone specific.\n\nScope: `read` · Permission: `leads:read:assigned`\n\nReturns: `{ lead, conversation: { summary, extracted, ai_paused, recent[] }, remembered[], open_deals[] }`","tags":["Leads"],"parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"lead_id":{"type":"string","format":"uuid","description":"The lead id"}},"required":["lead_id"],"additionalProperties":false},"example":{"lead_id":"5c3d3b20-9c1a-4a1d-8a52-2b0f4d7e9a10"}}}},"responses":{"200":{"description":"The tool ran","content":{"application/json":{"schema":{"type":"object","required":["ok","result"],"properties":{"ok":{"type":"boolean","const":true},"result":{"type":"object","additionalProperties":true,"description":"The tool result (see each tool’s `returns`)."}}}}}},"400":{"description":"invalid_input or rejected","content":{"application/json":{"schema":{"type":"object","required":["ok","error"],"properties":{"ok":{"type":"boolean","const":false},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["invalid_input","unknown_tool","scope_missing","permission_missing","not_found","rejected","rate_limited","unauthorized","internal"]},"message":{"type":"string"},"details":{"description":"Structured detail, e.g. zod issues for invalid_input."}}}}}}}},"401":{"description":"Missing, revoked or wrong-kind key","content":{"application/json":{"schema":{"type":"object","required":["ok","error"],"properties":{"ok":{"type":"boolean","const":false},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["invalid_input","unknown_tool","scope_missing","permission_missing","not_found","rejected","rate_limited","unauthorized","internal"]},"message":{"type":"string"},"details":{"description":"Structured detail, e.g. zod issues for invalid_input."}}}}}}}},"403":{"description":"scope_missing or permission_missing","content":{"application/json":{"schema":{"type":"object","required":["ok","error"],"properties":{"ok":{"type":"boolean","const":false},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["invalid_input","unknown_tool","scope_missing","permission_missing","not_found","rejected","rate_limited","unauthorized","internal"]},"message":{"type":"string"},"details":{"description":"Structured detail, e.g. zod issues for invalid_input."}}}}}}}},"404":{"description":"not_found","content":{"application/json":{"schema":{"type":"object","required":["ok","error"],"properties":{"ok":{"type":"boolean","const":false},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["invalid_input","unknown_tool","scope_missing","permission_missing","not_found","rejected","rate_limited","unauthorized","internal"]},"message":{"type":"string"},"details":{"description":"Structured detail, e.g. zod issues for invalid_input."}}}}}}}},"429":{"description":"rate_limited: honour Retry-After","content":{"application/json":{"schema":{"type":"object","required":["ok","error"],"properties":{"ok":{"type":"boolean","const":false},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["invalid_input","unknown_tool","scope_missing","permission_missing","not_found","rejected","rate_limited","unauthorized","internal"]},"message":{"type":"string"},"details":{"description":"Structured detail, e.g. zod issues for invalid_input."}}}}}}}}}}},"/v1/connector/tools/leads.timeline":{"post":{"operationId":"leads_timeline","summary":"Lead activity timeline","description":"The unified history of one lead, newest first: texts, calls, notes, tasks, bookings, deals, consent and compliance events. Answers \"what happened with X?\" and \"why did we stop texting Y?\".\n\nScope: `read` · Permission: `leads:read:assigned`\n\nReturns: `{ events: [{ kind, at, body?, channel?, title?, status?, reason? }], withheld: [kinds the person may not read] }`","tags":["Leads"],"parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"lead_id":{"type":"string","format":"uuid","description":"The lead id"},"limit":{"type":"integer","minimum":1,"maximum":60,"description":"Default 30"}},"required":["lead_id"],"additionalProperties":false},"example":{"lead_id":"5c3d3b20-9c1a-4a1d-8a52-2b0f4d7e9a10","limit":20}}}},"responses":{"200":{"description":"The tool ran","content":{"application/json":{"schema":{"type":"object","required":["ok","result"],"properties":{"ok":{"type":"boolean","const":true},"result":{"type":"object","additionalProperties":true,"description":"The tool result (see each tool’s `returns`)."}}}}}},"400":{"description":"invalid_input or rejected","content":{"application/json":{"schema":{"type":"object","required":["ok","error"],"properties":{"ok":{"type":"boolean","const":false},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["invalid_input","unknown_tool","scope_missing","permission_missing","not_found","rejected","rate_limited","unauthorized","internal"]},"message":{"type":"string"},"details":{"description":"Structured detail, e.g. zod issues for invalid_input."}}}}}}}},"401":{"description":"Missing, revoked or wrong-kind key","content":{"application/json":{"schema":{"type":"object","required":["ok","error"],"properties":{"ok":{"type":"boolean","const":false},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["invalid_input","unknown_tool","scope_missing","permission_missing","not_found","rejected","rate_limited","unauthorized","internal"]},"message":{"type":"string"},"details":{"description":"Structured detail, e.g. zod issues for invalid_input."}}}}}}}},"403":{"description":"scope_missing or permission_missing","content":{"application/json":{"schema":{"type":"object","required":["ok","error"],"properties":{"ok":{"type":"boolean","const":false},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["invalid_input","unknown_tool","scope_missing","permission_missing","not_found","rejected","rate_limited","unauthorized","internal"]},"message":{"type":"string"},"details":{"description":"Structured detail, e.g. zod issues for invalid_input."}}}}}}}},"404":{"description":"not_found","content":{"application/json":{"schema":{"type":"object","required":["ok","error"],"properties":{"ok":{"type":"boolean","const":false},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["invalid_input","unknown_tool","scope_missing","permission_missing","not_found","rejected","rate_limited","unauthorized","internal"]},"message":{"type":"string"},"details":{"description":"Structured detail, e.g. zod issues for invalid_input."}}}}}}}},"429":{"description":"rate_limited: honour Retry-After","content":{"application/json":{"schema":{"type":"object","required":["ok","error"],"properties":{"ok":{"type":"boolean","const":false},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["invalid_input","unknown_tool","scope_missing","permission_missing","not_found","rejected","rate_limited","unauthorized","internal"]},"message":{"type":"string"},"details":{"description":"Structured detail, e.g. zod issues for invalid_input."}}}}}}}}}}},"/v1/connector/tools/leads.sources":{"post":{"operationId":"leads_sources","summary":"Lead sources","description":"The workspace’s lead sources (how leads arrive: a form, a purchased list, referrals, Zapier…) with their consent classification. leads.create needs a source_id, because the source is the record of how the person agreed to be contacted. If none fits, ask the person which source to use rather than guessing.\n\nScope: `read` · Permission: `leads:read:assigned`\n\nReturns: `{ sources: [{ source_id, name, kind, consent_classification }] }`","tags":["Leads"],"parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":false},"example":{}}}},"responses":{"200":{"description":"The tool ran","content":{"application/json":{"schema":{"type":"object","required":["ok","result"],"properties":{"ok":{"type":"boolean","const":true},"result":{"type":"object","additionalProperties":true,"description":"The tool result (see each tool’s `returns`)."}}}}}},"400":{"description":"invalid_input or rejected","content":{"application/json":{"schema":{"type":"object","required":["ok","error"],"properties":{"ok":{"type":"boolean","const":false},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["invalid_input","unknown_tool","scope_missing","permission_missing","not_found","rejected","rate_limited","unauthorized","internal"]},"message":{"type":"string"},"details":{"description":"Structured detail, e.g. zod issues for invalid_input."}}}}}}}},"401":{"description":"Missing, revoked or wrong-kind key","content":{"application/json":{"schema":{"type":"object","required":["ok","error"],"properties":{"ok":{"type":"boolean","const":false},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["invalid_input","unknown_tool","scope_missing","permission_missing","not_found","rejected","rate_limited","unauthorized","internal"]},"message":{"type":"string"},"details":{"description":"Structured detail, e.g. zod issues for invalid_input."}}}}}}}},"403":{"description":"scope_missing or permission_missing","content":{"application/json":{"schema":{"type":"object","required":["ok","error"],"properties":{"ok":{"type":"boolean","const":false},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["invalid_input","unknown_tool","scope_missing","permission_missing","not_found","rejected","rate_limited","unauthorized","internal"]},"message":{"type":"string"},"details":{"description":"Structured detail, e.g. zod issues for invalid_input."}}}}}}}},"404":{"description":"not_found","content":{"application/json":{"schema":{"type":"object","required":["ok","error"],"properties":{"ok":{"type":"boolean","const":false},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["invalid_input","unknown_tool","scope_missing","permission_missing","not_found","rejected","rate_limited","unauthorized","internal"]},"message":{"type":"string"},"details":{"description":"Structured detail, e.g. zod issues for invalid_input."}}}}}}}},"429":{"description":"rate_limited: honour Retry-After","content":{"application/json":{"schema":{"type":"object","required":["ok","error"],"properties":{"ok":{"type":"boolean","const":false},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["invalid_input","unknown_tool","scope_missing","permission_missing","not_found","rejected","rate_limited","unauthorized","internal"]},"message":{"type":"string"},"details":{"description":"Structured detail, e.g. zod issues for invalid_input."}}}}}}}}}}},"/v1/connector/tools/leads.create":{"post":{"operationId":"leads_create","summary":"Add a lead","description":"Add a new lead. Requires a phone number and a source_id (see leads.sources). Search first: an existing phone number returns the existing lead instead of a duplicate. ⚠ If the workspace runs a speed-to-lead campaign, Warmd may text the new lead within seconds, exactly as it would for a lead from any other source; say so when you report back.\n\nScope: `write` · Permission: `leads:create`\n\nReturns: `{ lead_id, status, created: boolean, speed_to_lead: { activated, campaign_id? } }`","tags":["Leads"],"parameters":[{"name":"Idempotency-Key","in":"header","required":false,"schema":{"type":"string","maxLength":128},"description":"Same meaning as the `idempotency_key` body field; the body field wins if both are sent."}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"first_name":{"type":"string","maxLength":80},"last_name":{"type":"string","maxLength":80},"phone":{"type":"string","minLength":7,"maxLength":32},"email":{"type":"string","format":"email","maxLength":254},"source_id":{"type":"string","format":"uuid","description":"Which lead source this person came through (leads.sources)"},"state":{"type":"string","minLength":2,"maxLength":2},"custom_fields":{"type":"object","additionalProperties":{}},"idempotency_key":{"type":"string","minLength":1,"maxLength":128,"description":"Optional. Any unique string you choose (a UUID is ideal). Repeating a call with the same key returns the first result instead of acting twice, so set it whenever you retry."}},"required":["phone","source_id"],"additionalProperties":false},"example":{"first_name":"Renee","last_name":"Ortiz","phone":"+12025550143","email":"renee@example.com","source_id":"0f1c9a3e-8d0b-4f6c-9e1a-7b2c5d4e3f21"}}}},"responses":{"200":{"description":"The tool ran","content":{"application/json":{"schema":{"type":"object","required":["ok","result"],"properties":{"ok":{"type":"boolean","const":true},"result":{"type":"object","additionalProperties":true,"description":"The tool result (see each tool’s `returns`)."}}}}}},"400":{"description":"invalid_input or rejected","content":{"application/json":{"schema":{"type":"object","required":["ok","error"],"properties":{"ok":{"type":"boolean","const":false},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["invalid_input","unknown_tool","scope_missing","permission_missing","not_found","rejected","rate_limited","unauthorized","internal"]},"message":{"type":"string"},"details":{"description":"Structured detail, e.g. zod issues for invalid_input."}}}}}}}},"401":{"description":"Missing, revoked or wrong-kind key","content":{"application/json":{"schema":{"type":"object","required":["ok","error"],"properties":{"ok":{"type":"boolean","const":false},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["invalid_input","unknown_tool","scope_missing","permission_missing","not_found","rejected","rate_limited","unauthorized","internal"]},"message":{"type":"string"},"details":{"description":"Structured detail, e.g. zod issues for invalid_input."}}}}}}}},"403":{"description":"scope_missing or permission_missing","content":{"application/json":{"schema":{"type":"object","required":["ok","error"],"properties":{"ok":{"type":"boolean","const":false},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["invalid_input","unknown_tool","scope_missing","permission_missing","not_found","rejected","rate_limited","unauthorized","internal"]},"message":{"type":"string"},"details":{"description":"Structured detail, e.g. zod issues for invalid_input."}}}}}}}},"404":{"description":"not_found","content":{"application/json":{"schema":{"type":"object","required":["ok","error"],"properties":{"ok":{"type":"boolean","const":false},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["invalid_input","unknown_tool","scope_missing","permission_missing","not_found","rejected","rate_limited","unauthorized","internal"]},"message":{"type":"string"},"details":{"description":"Structured detail, e.g. zod issues for invalid_input."}}}}}}}},"429":{"description":"rate_limited: honour Retry-After","content":{"application/json":{"schema":{"type":"object","required":["ok","error"],"properties":{"ok":{"type":"boolean","const":false},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["invalid_input","unknown_tool","scope_missing","permission_missing","not_found","rejected","rate_limited","unauthorized","internal"]},"message":{"type":"string"},"details":{"description":"Structured detail, e.g. zod issues for invalid_input."}}}}}}}}}}},"/v1/connector/tools/leads.update":{"post":{"operationId":"leads_update","summary":"Edit a lead","description":"Correct a lead’s name, email, state or custom fields. The phone number, status and source cannot be changed here on purpose: the phone is the identity a consent record attests to, and status moves happen through conversations, bookings and deals. An empty string clears a field; custom_fields merge.\n\nScope: `write` · Permission: `leads:update`\n\nReturns: `{ lead_id, updated: true }`","tags":["Leads"],"parameters":[{"name":"Idempotency-Key","in":"header","required":false,"schema":{"type":"string","maxLength":128},"description":"Same meaning as the `idempotency_key` body field; the body field wins if both are sent."}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"lead_id":{"type":"string","format":"uuid","description":"The lead id"},"first_name":{"type":"string","maxLength":80},"last_name":{"type":"string","maxLength":80},"email":{"anyOf":[{"type":"string","format":"email","maxLength":254},{"type":"string","const":""}]},"state":{"anyOf":[{"type":"string","minLength":2,"maxLength":2},{"type":"string","const":""}]},"custom_fields":{"type":"object","additionalProperties":{"anyOf":[{},{"type":"null"}]}},"idempotency_key":{"type":"string","minLength":1,"maxLength":128,"description":"Optional. Any unique string you choose (a UUID is ideal). Repeating a call with the same key returns the first result instead of acting twice, so set it whenever you retry."}},"required":["lead_id"],"additionalProperties":false},"example":{"lead_id":"5c3d3b20-9c1a-4a1d-8a52-2b0f4d7e9a10","email":"renee.ortiz@example.com"}}}},"responses":{"200":{"description":"The tool ran","content":{"application/json":{"schema":{"type":"object","required":["ok","result"],"properties":{"ok":{"type":"boolean","const":true},"result":{"type":"object","additionalProperties":true,"description":"The tool result (see each tool’s `returns`)."}}}}}},"400":{"description":"invalid_input or rejected","content":{"application/json":{"schema":{"type":"object","required":["ok","error"],"properties":{"ok":{"type":"boolean","const":false},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["invalid_input","unknown_tool","scope_missing","permission_missing","not_found","rejected","rate_limited","unauthorized","internal"]},"message":{"type":"string"},"details":{"description":"Structured detail, e.g. zod issues for invalid_input."}}}}}}}},"401":{"description":"Missing, revoked or wrong-kind key","content":{"application/json":{"schema":{"type":"object","required":["ok","error"],"properties":{"ok":{"type":"boolean","const":false},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["invalid_input","unknown_tool","scope_missing","permission_missing","not_found","rejected","rate_limited","unauthorized","internal"]},"message":{"type":"string"},"details":{"description":"Structured detail, e.g. zod issues for invalid_input."}}}}}}}},"403":{"description":"scope_missing or permission_missing","content":{"application/json":{"schema":{"type":"object","required":["ok","error"],"properties":{"ok":{"type":"boolean","const":false},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["invalid_input","unknown_tool","scope_missing","permission_missing","not_found","rejected","rate_limited","unauthorized","internal"]},"message":{"type":"string"},"details":{"description":"Structured detail, e.g. zod issues for invalid_input."}}}}}}}},"404":{"description":"not_found","content":{"application/json":{"schema":{"type":"object","required":["ok","error"],"properties":{"ok":{"type":"boolean","const":false},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["invalid_input","unknown_tool","scope_missing","permission_missing","not_found","rejected","rate_limited","unauthorized","internal"]},"message":{"type":"string"},"details":{"description":"Structured detail, e.g. zod issues for invalid_input."}}}}}}}},"429":{"description":"rate_limited: honour Retry-After","content":{"application/json":{"schema":{"type":"object","required":["ok","error"],"properties":{"ok":{"type":"boolean","const":false},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["invalid_input","unknown_tool","scope_missing","permission_missing","not_found","rejected","rate_limited","unauthorized","internal"]},"message":{"type":"string"},"details":{"description":"Structured detail, e.g. zod issues for invalid_input."}}}}}}}}}}},"/v1/connector/tools/leads.note":{"post":{"operationId":"leads_note","summary":"Add a note","description":"Leave a note on a lead’s record, attributed to the person you act for. Use it for anything they tell you about a lead that Warmd should keep (\"spoke at the game, wants a quote in March\").\n\nScope: `write` · Permission: `notes:write`\n\nReturns: `{ note_id, created: true }`","tags":["Leads"],"parameters":[{"name":"Idempotency-Key","in":"header","required":false,"schema":{"type":"string","maxLength":128},"description":"Same meaning as the `idempotency_key` body field; the body field wins if both are sent."}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"lead_id":{"type":"string","format":"uuid","description":"The lead id"},"body":{"type":"string","minLength":1,"maxLength":20000},"idempotency_key":{"type":"string","minLength":1,"maxLength":128,"description":"Optional. Any unique string you choose (a UUID is ideal). Repeating a call with the same key returns the first result instead of acting twice, so set it whenever you retry."}},"required":["lead_id","body"],"additionalProperties":false},"example":{"lead_id":"5c3d3b20-9c1a-4a1d-8a52-2b0f4d7e9a10","body":"Met at the Rotary lunch; wants a home + auto bundle quote in March."}}}},"responses":{"200":{"description":"The tool ran","content":{"application/json":{"schema":{"type":"object","required":["ok","result"],"properties":{"ok":{"type":"boolean","const":true},"result":{"type":"object","additionalProperties":true,"description":"The tool result (see each tool’s `returns`)."}}}}}},"400":{"description":"invalid_input or rejected","content":{"application/json":{"schema":{"type":"object","required":["ok","error"],"properties":{"ok":{"type":"boolean","const":false},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["invalid_input","unknown_tool","scope_missing","permission_missing","not_found","rejected","rate_limited","unauthorized","internal"]},"message":{"type":"string"},"details":{"description":"Structured detail, e.g. zod issues for invalid_input."}}}}}}}},"401":{"description":"Missing, revoked or wrong-kind key","content":{"application/json":{"schema":{"type":"object","required":["ok","error"],"properties":{"ok":{"type":"boolean","const":false},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["invalid_input","unknown_tool","scope_missing","permission_missing","not_found","rejected","rate_limited","unauthorized","internal"]},"message":{"type":"string"},"details":{"description":"Structured detail, e.g. zod issues for invalid_input."}}}}}}}},"403":{"description":"scope_missing or permission_missing","content":{"application/json":{"schema":{"type":"object","required":["ok","error"],"properties":{"ok":{"type":"boolean","const":false},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["invalid_input","unknown_tool","scope_missing","permission_missing","not_found","rejected","rate_limited","unauthorized","internal"]},"message":{"type":"string"},"details":{"description":"Structured detail, e.g. zod issues for invalid_input."}}}}}}}},"404":{"description":"not_found","content":{"application/json":{"schema":{"type":"object","required":["ok","error"],"properties":{"ok":{"type":"boolean","const":false},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["invalid_input","unknown_tool","scope_missing","permission_missing","not_found","rejected","rate_limited","unauthorized","internal"]},"message":{"type":"string"},"details":{"description":"Structured detail, e.g. zod issues for invalid_input."}}}}}}}},"429":{"description":"rate_limited: honour Retry-After","content":{"application/json":{"schema":{"type":"object","required":["ok","error"],"properties":{"ok":{"type":"boolean","const":false},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["invalid_input","unknown_tool","scope_missing","permission_missing","not_found","rejected","rate_limited","unauthorized","internal"]},"message":{"type":"string"},"details":{"description":"Structured detail, e.g. zod issues for invalid_input."}}}}}}}}}}},"/v1/connector/tools/conversations.read":{"post":{"operationId":"conversations_read","summary":"Read a conversation","description":"The recent messages between the business and one lead, oldest to newest, with who sent each (the lead, a person, or Warmd’s AI), plus the running summary and whether the AI is paused on this lead. Read this before drafting a reply.\n\nScope: `read` · Permission: `conversations:read:assigned`\n\nReturns: `{ conversation_id, ai_paused, summary, messages: [{ direction, channel, body, ai_generated, at }] }`","tags":["Conversations"],"parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"lead_id":{"type":"string","format":"uuid","description":"The lead id"},"limit":{"type":"integer","minimum":1,"maximum":50,"description":"Default 20 most recent"}},"required":["lead_id"],"additionalProperties":false},"example":{"lead_id":"5c3d3b20-9c1a-4a1d-8a52-2b0f4d7e9a10"}}}},"responses":{"200":{"description":"The tool ran","content":{"application/json":{"schema":{"type":"object","required":["ok","result"],"properties":{"ok":{"type":"boolean","const":true},"result":{"type":"object","additionalProperties":true,"description":"The tool result (see each tool’s `returns`)."}}}}}},"400":{"description":"invalid_input or rejected","content":{"application/json":{"schema":{"type":"object","required":["ok","error"],"properties":{"ok":{"type":"boolean","const":false},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["invalid_input","unknown_tool","scope_missing","permission_missing","not_found","rejected","rate_limited","unauthorized","internal"]},"message":{"type":"string"},"details":{"description":"Structured detail, e.g. zod issues for invalid_input."}}}}}}}},"401":{"description":"Missing, revoked or wrong-kind key","content":{"application/json":{"schema":{"type":"object","required":["ok","error"],"properties":{"ok":{"type":"boolean","const":false},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["invalid_input","unknown_tool","scope_missing","permission_missing","not_found","rejected","rate_limited","unauthorized","internal"]},"message":{"type":"string"},"details":{"description":"Structured detail, e.g. zod issues for invalid_input."}}}}}}}},"403":{"description":"scope_missing or permission_missing","content":{"application/json":{"schema":{"type":"object","required":["ok","error"],"properties":{"ok":{"type":"boolean","const":false},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["invalid_input","unknown_tool","scope_missing","permission_missing","not_found","rejected","rate_limited","unauthorized","internal"]},"message":{"type":"string"},"details":{"description":"Structured detail, e.g. zod issues for invalid_input."}}}}}}}},"404":{"description":"not_found","content":{"application/json":{"schema":{"type":"object","required":["ok","error"],"properties":{"ok":{"type":"boolean","const":false},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["invalid_input","unknown_tool","scope_missing","permission_missing","not_found","rejected","rate_limited","unauthorized","internal"]},"message":{"type":"string"},"details":{"description":"Structured detail, e.g. zod issues for invalid_input."}}}}}}}},"429":{"description":"rate_limited: honour Retry-After","content":{"application/json":{"schema":{"type":"object","required":["ok","error"],"properties":{"ok":{"type":"boolean","const":false},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["invalid_input","unknown_tool","scope_missing","permission_missing","not_found","rejected","rate_limited","unauthorized","internal"]},"message":{"type":"string"},"details":{"description":"Structured detail, e.g. zod issues for invalid_input."}}}}}}}}}}},"/v1/connector/tools/conversations.draft_reply":{"post":{"operationId":"conversations_draft_reply","summary":"Draft a text reply","description":"Write a text message to a lead as a DRAFT. Nothing is sent: the draft appears in the person’s Warmd Inbox for them to approve, edit or discard, or you can send it with drafts.send if this key holds the send scope and the person told you to. Keep it short (an SMS), in the business’s voice, never quote prices you were not given.\n\nScope: `write` · Permission: `conversations:reply`\n\nReturns: `{ draft_id, placed_in_inbox: true }`","tags":["Conversations"],"parameters":[{"name":"Idempotency-Key","in":"header","required":false,"schema":{"type":"string","maxLength":128},"description":"Same meaning as the `idempotency_key` body field; the body field wins if both are sent."}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"lead_id":{"type":"string","format":"uuid","description":"The lead id"},"body":{"type":"string","minLength":1,"maxLength":1000,"description":"The message text, as it would be sent"},"idempotency_key":{"type":"string","minLength":1,"maxLength":128,"description":"Optional. Any unique string you choose (a UUID is ideal). Repeating a call with the same key returns the first result instead of acting twice, so set it whenever you retry."}},"required":["lead_id","body"],"additionalProperties":false},"example":{"lead_id":"5c3d3b20-9c1a-4a1d-8a52-2b0f4d7e9a10","body":"Hi Renee, it’s Sam from Ortiz Insurance. Thursday at 2 still works on my end. Want me to send a calendar invite?"}}}},"responses":{"200":{"description":"The tool ran","content":{"application/json":{"schema":{"type":"object","required":["ok","result"],"properties":{"ok":{"type":"boolean","const":true},"result":{"type":"object","additionalProperties":true,"description":"The tool result (see each tool’s `returns`)."}}}}}},"400":{"description":"invalid_input or rejected","content":{"application/json":{"schema":{"type":"object","required":["ok","error"],"properties":{"ok":{"type":"boolean","const":false},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["invalid_input","unknown_tool","scope_missing","permission_missing","not_found","rejected","rate_limited","unauthorized","internal"]},"message":{"type":"string"},"details":{"description":"Structured detail, e.g. zod issues for invalid_input."}}}}}}}},"401":{"description":"Missing, revoked or wrong-kind key","content":{"application/json":{"schema":{"type":"object","required":["ok","error"],"properties":{"ok":{"type":"boolean","const":false},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["invalid_input","unknown_tool","scope_missing","permission_missing","not_found","rejected","rate_limited","unauthorized","internal"]},"message":{"type":"string"},"details":{"description":"Structured detail, e.g. zod issues for invalid_input."}}}}}}}},"403":{"description":"scope_missing or permission_missing","content":{"application/json":{"schema":{"type":"object","required":["ok","error"],"properties":{"ok":{"type":"boolean","const":false},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["invalid_input","unknown_tool","scope_missing","permission_missing","not_found","rejected","rate_limited","unauthorized","internal"]},"message":{"type":"string"},"details":{"description":"Structured detail, e.g. zod issues for invalid_input."}}}}}}}},"404":{"description":"not_found","content":{"application/json":{"schema":{"type":"object","required":["ok","error"],"properties":{"ok":{"type":"boolean","const":false},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["invalid_input","unknown_tool","scope_missing","permission_missing","not_found","rejected","rate_limited","unauthorized","internal"]},"message":{"type":"string"},"details":{"description":"Structured detail, e.g. zod issues for invalid_input."}}}}}}}},"429":{"description":"rate_limited: honour Retry-After","content":{"application/json":{"schema":{"type":"object","required":["ok","error"],"properties":{"ok":{"type":"boolean","const":false},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["invalid_input","unknown_tool","scope_missing","permission_missing","not_found","rejected","rate_limited","unauthorized","internal"]},"message":{"type":"string"},"details":{"description":"Structured detail, e.g. zod issues for invalid_input."}}}}}}}}}}},"/v1/connector/tools/drafts.pending":{"post":{"operationId":"drafts_pending","summary":"Drafts awaiting approval","description":"Every drafted text still waiting on a human (written by Warmd’s AI or by you), with the lead it is for and when it expires. Read a draft back to the person before sending it.\n\nScope: `read` · Permission: `conversations:read:assigned`\n\nReturns: `{ drafts: [{ draft_id, lead_id, lead, body, created_at, expires_at }] }`","tags":["Drafts"],"parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":false},"example":{}}}},"responses":{"200":{"description":"The tool ran","content":{"application/json":{"schema":{"type":"object","required":["ok","result"],"properties":{"ok":{"type":"boolean","const":true},"result":{"type":"object","additionalProperties":true,"description":"The tool result (see each tool’s `returns`)."}}}}}},"400":{"description":"invalid_input or rejected","content":{"application/json":{"schema":{"type":"object","required":["ok","error"],"properties":{"ok":{"type":"boolean","const":false},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["invalid_input","unknown_tool","scope_missing","permission_missing","not_found","rejected","rate_limited","unauthorized","internal"]},"message":{"type":"string"},"details":{"description":"Structured detail, e.g. zod issues for invalid_input."}}}}}}}},"401":{"description":"Missing, revoked or wrong-kind key","content":{"application/json":{"schema":{"type":"object","required":["ok","error"],"properties":{"ok":{"type":"boolean","const":false},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["invalid_input","unknown_tool","scope_missing","permission_missing","not_found","rejected","rate_limited","unauthorized","internal"]},"message":{"type":"string"},"details":{"description":"Structured detail, e.g. zod issues for invalid_input."}}}}}}}},"403":{"description":"scope_missing or permission_missing","content":{"application/json":{"schema":{"type":"object","required":["ok","error"],"properties":{"ok":{"type":"boolean","const":false},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["invalid_input","unknown_tool","scope_missing","permission_missing","not_found","rejected","rate_limited","unauthorized","internal"]},"message":{"type":"string"},"details":{"description":"Structured detail, e.g. zod issues for invalid_input."}}}}}}}},"404":{"description":"not_found","content":{"application/json":{"schema":{"type":"object","required":["ok","error"],"properties":{"ok":{"type":"boolean","const":false},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["invalid_input","unknown_tool","scope_missing","permission_missing","not_found","rejected","rate_limited","unauthorized","internal"]},"message":{"type":"string"},"details":{"description":"Structured detail, e.g. zod issues for invalid_input."}}}}}}}},"429":{"description":"rate_limited: honour Retry-After","content":{"application/json":{"schema":{"type":"object","required":["ok","error"],"properties":{"ok":{"type":"boolean","const":false},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["invalid_input","unknown_tool","scope_missing","permission_missing","not_found","rejected","rate_limited","unauthorized","internal"]},"message":{"type":"string"},"details":{"description":"Structured detail, e.g. zod issues for invalid_input."}}}}}}}}}}},"/v1/connector/tools/drafts.send":{"post":{"operationId":"drafts_send","summary":"Send an approved draft","description":"Send a pending draft to the lead as written. Only when the person has explicitly approved THAT draft. The text leaves through Warmd’s compliance Gate, which may refuse (opted out, no consent, outside legal hours). Report the outcome honestly rather than retrying. Sends an SMS from the business’s number.\n\nScope: `send` · Permission: `conversations:reply`\n\nReturns: `{ status: \"sent\" | \"blocked\" | \"rescheduled\", reason?, resume_at? }`","tags":["Drafts"],"parameters":[{"name":"Idempotency-Key","in":"header","required":false,"schema":{"type":"string","maxLength":128},"description":"Same meaning as the `idempotency_key` body field; the body field wins if both are sent."}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"draft_id":{"type":"string","format":"uuid","description":"The draft to send"},"idempotency_key":{"type":"string","minLength":1,"maxLength":128,"description":"Optional. Any unique string you choose (a UUID is ideal). Repeating a call with the same key returns the first result instead of acting twice, so set it whenever you retry."}},"required":["draft_id"],"additionalProperties":false},"example":{"draft_id":"9d8f2f3a-2c4b-4e1f-b9a7-3f2e1d0c9b8a"}}}},"responses":{"200":{"description":"The tool ran","content":{"application/json":{"schema":{"type":"object","required":["ok","result"],"properties":{"ok":{"type":"boolean","const":true},"result":{"type":"object","additionalProperties":true,"description":"The tool result (see each tool’s `returns`)."}}}}}},"400":{"description":"invalid_input or rejected","content":{"application/json":{"schema":{"type":"object","required":["ok","error"],"properties":{"ok":{"type":"boolean","const":false},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["invalid_input","unknown_tool","scope_missing","permission_missing","not_found","rejected","rate_limited","unauthorized","internal"]},"message":{"type":"string"},"details":{"description":"Structured detail, e.g. zod issues for invalid_input."}}}}}}}},"401":{"description":"Missing, revoked or wrong-kind key","content":{"application/json":{"schema":{"type":"object","required":["ok","error"],"properties":{"ok":{"type":"boolean","const":false},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["invalid_input","unknown_tool","scope_missing","permission_missing","not_found","rejected","rate_limited","unauthorized","internal"]},"message":{"type":"string"},"details":{"description":"Structured detail, e.g. zod issues for invalid_input."}}}}}}}},"403":{"description":"scope_missing or permission_missing","content":{"application/json":{"schema":{"type":"object","required":["ok","error"],"properties":{"ok":{"type":"boolean","const":false},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["invalid_input","unknown_tool","scope_missing","permission_missing","not_found","rejected","rate_limited","unauthorized","internal"]},"message":{"type":"string"},"details":{"description":"Structured detail, e.g. zod issues for invalid_input."}}}}}}}},"404":{"description":"not_found","content":{"application/json":{"schema":{"type":"object","required":["ok","error"],"properties":{"ok":{"type":"boolean","const":false},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["invalid_input","unknown_tool","scope_missing","permission_missing","not_found","rejected","rate_limited","unauthorized","internal"]},"message":{"type":"string"},"details":{"description":"Structured detail, e.g. zod issues for invalid_input."}}}}}}}},"429":{"description":"rate_limited: honour Retry-After","content":{"application/json":{"schema":{"type":"object","required":["ok","error"],"properties":{"ok":{"type":"boolean","const":false},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["invalid_input","unknown_tool","scope_missing","permission_missing","not_found","rejected","rate_limited","unauthorized","internal"]},"message":{"type":"string"},"details":{"description":"Structured detail, e.g. zod issues for invalid_input."}}}}}}}}}}},"/v1/connector/tools/drafts.discard":{"post":{"operationId":"drafts_discard","summary":"Discard a draft","description":"Throw away a pending draft the person does not want sent. Nothing reaches the lead.\n\nScope: `write` · Permission: `conversations:reply`\n\nReturns: `{ discarded: true }`","tags":["Drafts"],"parameters":[{"name":"Idempotency-Key","in":"header","required":false,"schema":{"type":"string","maxLength":128},"description":"Same meaning as the `idempotency_key` body field; the body field wins if both are sent."}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"draft_id":{"type":"string","format":"uuid","description":"The draft to discard"},"idempotency_key":{"type":"string","minLength":1,"maxLength":128,"description":"Optional. Any unique string you choose (a UUID is ideal). Repeating a call with the same key returns the first result instead of acting twice, so set it whenever you retry."}},"required":["draft_id"],"additionalProperties":false},"example":{"draft_id":"9d8f2f3a-2c4b-4e1f-b9a7-3f2e1d0c9b8a"}}}},"responses":{"200":{"description":"The tool ran","content":{"application/json":{"schema":{"type":"object","required":["ok","result"],"properties":{"ok":{"type":"boolean","const":true},"result":{"type":"object","additionalProperties":true,"description":"The tool result (see each tool’s `returns`)."}}}}}},"400":{"description":"invalid_input or rejected","content":{"application/json":{"schema":{"type":"object","required":["ok","error"],"properties":{"ok":{"type":"boolean","const":false},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["invalid_input","unknown_tool","scope_missing","permission_missing","not_found","rejected","rate_limited","unauthorized","internal"]},"message":{"type":"string"},"details":{"description":"Structured detail, e.g. zod issues for invalid_input."}}}}}}}},"401":{"description":"Missing, revoked or wrong-kind key","content":{"application/json":{"schema":{"type":"object","required":["ok","error"],"properties":{"ok":{"type":"boolean","const":false},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["invalid_input","unknown_tool","scope_missing","permission_missing","not_found","rejected","rate_limited","unauthorized","internal"]},"message":{"type":"string"},"details":{"description":"Structured detail, e.g. zod issues for invalid_input."}}}}}}}},"403":{"description":"scope_missing or permission_missing","content":{"application/json":{"schema":{"type":"object","required":["ok","error"],"properties":{"ok":{"type":"boolean","const":false},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["invalid_input","unknown_tool","scope_missing","permission_missing","not_found","rejected","rate_limited","unauthorized","internal"]},"message":{"type":"string"},"details":{"description":"Structured detail, e.g. zod issues for invalid_input."}}}}}}}},"404":{"description":"not_found","content":{"application/json":{"schema":{"type":"object","required":["ok","error"],"properties":{"ok":{"type":"boolean","const":false},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["invalid_input","unknown_tool","scope_missing","permission_missing","not_found","rejected","rate_limited","unauthorized","internal"]},"message":{"type":"string"},"details":{"description":"Structured detail, e.g. zod issues for invalid_input."}}}}}}}},"429":{"description":"rate_limited: honour Retry-After","content":{"application/json":{"schema":{"type":"object","required":["ok","error"],"properties":{"ok":{"type":"boolean","const":false},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["invalid_input","unknown_tool","scope_missing","permission_missing","not_found","rejected","rate_limited","unauthorized","internal"]},"message":{"type":"string"},"details":{"description":"Structured detail, e.g. zod issues for invalid_input."}}}}}}}}}}},"/v1/connector/tools/tasks.mine":{"post":{"operationId":"tasks_mine","summary":"My open tasks","description":"The person’s open follow-up tasks (and unassigned ones on leads they can see), with due dates and the lead each is about. Overdue first.\n\nScope: `read` · Permission: `tasks:read`\n\nReturns: `{ tasks: [{ task_id, lead_id, lead, title, notes, due_at, completed_at, source }] }`","tags":["Tasks"],"parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"include_completed":{"type":"boolean","description":"Also list recently completed tasks"}},"additionalProperties":false},"example":{}}}},"responses":{"200":{"description":"The tool ran","content":{"application/json":{"schema":{"type":"object","required":["ok","result"],"properties":{"ok":{"type":"boolean","const":true},"result":{"type":"object","additionalProperties":true,"description":"The tool result (see each tool’s `returns`)."}}}}}},"400":{"description":"invalid_input or rejected","content":{"application/json":{"schema":{"type":"object","required":["ok","error"],"properties":{"ok":{"type":"boolean","const":false},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["invalid_input","unknown_tool","scope_missing","permission_missing","not_found","rejected","rate_limited","unauthorized","internal"]},"message":{"type":"string"},"details":{"description":"Structured detail, e.g. zod issues for invalid_input."}}}}}}}},"401":{"description":"Missing, revoked or wrong-kind key","content":{"application/json":{"schema":{"type":"object","required":["ok","error"],"properties":{"ok":{"type":"boolean","const":false},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["invalid_input","unknown_tool","scope_missing","permission_missing","not_found","rejected","rate_limited","unauthorized","internal"]},"message":{"type":"string"},"details":{"description":"Structured detail, e.g. zod issues for invalid_input."}}}}}}}},"403":{"description":"scope_missing or permission_missing","content":{"application/json":{"schema":{"type":"object","required":["ok","error"],"properties":{"ok":{"type":"boolean","const":false},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["invalid_input","unknown_tool","scope_missing","permission_missing","not_found","rejected","rate_limited","unauthorized","internal"]},"message":{"type":"string"},"details":{"description":"Structured detail, e.g. zod issues for invalid_input."}}}}}}}},"404":{"description":"not_found","content":{"application/json":{"schema":{"type":"object","required":["ok","error"],"properties":{"ok":{"type":"boolean","const":false},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["invalid_input","unknown_tool","scope_missing","permission_missing","not_found","rejected","rate_limited","unauthorized","internal"]},"message":{"type":"string"},"details":{"description":"Structured detail, e.g. zod issues for invalid_input."}}}}}}}},"429":{"description":"rate_limited: honour Retry-After","content":{"application/json":{"schema":{"type":"object","required":["ok","error"],"properties":{"ok":{"type":"boolean","const":false},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["invalid_input","unknown_tool","scope_missing","permission_missing","not_found","rejected","rate_limited","unauthorized","internal"]},"message":{"type":"string"},"details":{"description":"Structured detail, e.g. zod issues for invalid_input."}}}}}}}}}}},"/v1/connector/tools/tasks.create":{"post":{"operationId":"tasks_create","summary":"Create a task","description":"Create a follow-up task on a lead, assigned to the person you act for. Use an absolute due_at (ISO 8601 with offset) computed in their timezone; omit it for \"at some point\".\n\nScope: `write` · Permission: `tasks:write`\n\nReturns: `{ task_id, created: true }`","tags":["Tasks"],"parameters":[{"name":"Idempotency-Key","in":"header","required":false,"schema":{"type":"string","maxLength":128},"description":"Same meaning as the `idempotency_key` body field; the body field wins if both are sent."}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"lead_id":{"type":"string","format":"uuid","description":"The lead this task is about"},"title":{"type":"string","minLength":1,"maxLength":300},"notes":{"type":"string","maxLength":5000},"due_at":{"type":"string","format":"date-time","description":"When it is due, ISO 8601 with offset"},"idempotency_key":{"type":"string","minLength":1,"maxLength":128,"description":"Optional. Any unique string you choose (a UUID is ideal). Repeating a call with the same key returns the first result instead of acting twice, so set it whenever you retry."}},"required":["lead_id","title"],"additionalProperties":false},"example":{"lead_id":"5c3d3b20-9c1a-4a1d-8a52-2b0f4d7e9a10","title":"Call Renee about the bundle quote","due_at":"2026-09-23T14:00:00-04:00"}}}},"responses":{"200":{"description":"The tool ran","content":{"application/json":{"schema":{"type":"object","required":["ok","result"],"properties":{"ok":{"type":"boolean","const":true},"result":{"type":"object","additionalProperties":true,"description":"The tool result (see each tool’s `returns`)."}}}}}},"400":{"description":"invalid_input or rejected","content":{"application/json":{"schema":{"type":"object","required":["ok","error"],"properties":{"ok":{"type":"boolean","const":false},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["invalid_input","unknown_tool","scope_missing","permission_missing","not_found","rejected","rate_limited","unauthorized","internal"]},"message":{"type":"string"},"details":{"description":"Structured detail, e.g. zod issues for invalid_input."}}}}}}}},"401":{"description":"Missing, revoked or wrong-kind key","content":{"application/json":{"schema":{"type":"object","required":["ok","error"],"properties":{"ok":{"type":"boolean","const":false},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["invalid_input","unknown_tool","scope_missing","permission_missing","not_found","rejected","rate_limited","unauthorized","internal"]},"message":{"type":"string"},"details":{"description":"Structured detail, e.g. zod issues for invalid_input."}}}}}}}},"403":{"description":"scope_missing or permission_missing","content":{"application/json":{"schema":{"type":"object","required":["ok","error"],"properties":{"ok":{"type":"boolean","const":false},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["invalid_input","unknown_tool","scope_missing","permission_missing","not_found","rejected","rate_limited","unauthorized","internal"]},"message":{"type":"string"},"details":{"description":"Structured detail, e.g. zod issues for invalid_input."}}}}}}}},"404":{"description":"not_found","content":{"application/json":{"schema":{"type":"object","required":["ok","error"],"properties":{"ok":{"type":"boolean","const":false},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["invalid_input","unknown_tool","scope_missing","permission_missing","not_found","rejected","rate_limited","unauthorized","internal"]},"message":{"type":"string"},"details":{"description":"Structured detail, e.g. zod issues for invalid_input."}}}}}}}},"429":{"description":"rate_limited: honour Retry-After","content":{"application/json":{"schema":{"type":"object","required":["ok","error"],"properties":{"ok":{"type":"boolean","const":false},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["invalid_input","unknown_tool","scope_missing","permission_missing","not_found","rejected","rate_limited","unauthorized","internal"]},"message":{"type":"string"},"details":{"description":"Structured detail, e.g. zod issues for invalid_input."}}}}}}}}}}},"/v1/connector/tools/tasks.complete":{"post":{"operationId":"tasks_complete","summary":"Complete a task","description":"Mark a task done. The completion time is stamped by Warmd, not chosen by you.\n\nScope: `write` · Permission: `tasks:write`\n\nReturns: `{ task_id, completed: true }`","tags":["Tasks"],"parameters":[{"name":"Idempotency-Key","in":"header","required":false,"schema":{"type":"string","maxLength":128},"description":"Same meaning as the `idempotency_key` body field; the body field wins if both are sent."}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"task_id":{"type":"string","format":"uuid","description":"The task id"},"idempotency_key":{"type":"string","minLength":1,"maxLength":128,"description":"Optional. Any unique string you choose (a UUID is ideal). Repeating a call with the same key returns the first result instead of acting twice, so set it whenever you retry."}},"required":["task_id"],"additionalProperties":false},"example":{"task_id":"3a2b1c0d-4e5f-4a6b-8c7d-9e0f1a2b3c4d"}}}},"responses":{"200":{"description":"The tool ran","content":{"application/json":{"schema":{"type":"object","required":["ok","result"],"properties":{"ok":{"type":"boolean","const":true},"result":{"type":"object","additionalProperties":true,"description":"The tool result (see each tool’s `returns`)."}}}}}},"400":{"description":"invalid_input or rejected","content":{"application/json":{"schema":{"type":"object","required":["ok","error"],"properties":{"ok":{"type":"boolean","const":false},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["invalid_input","unknown_tool","scope_missing","permission_missing","not_found","rejected","rate_limited","unauthorized","internal"]},"message":{"type":"string"},"details":{"description":"Structured detail, e.g. zod issues for invalid_input."}}}}}}}},"401":{"description":"Missing, revoked or wrong-kind key","content":{"application/json":{"schema":{"type":"object","required":["ok","error"],"properties":{"ok":{"type":"boolean","const":false},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["invalid_input","unknown_tool","scope_missing","permission_missing","not_found","rejected","rate_limited","unauthorized","internal"]},"message":{"type":"string"},"details":{"description":"Structured detail, e.g. zod issues for invalid_input."}}}}}}}},"403":{"description":"scope_missing or permission_missing","content":{"application/json":{"schema":{"type":"object","required":["ok","error"],"properties":{"ok":{"type":"boolean","const":false},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["invalid_input","unknown_tool","scope_missing","permission_missing","not_found","rejected","rate_limited","unauthorized","internal"]},"message":{"type":"string"},"details":{"description":"Structured detail, e.g. zod issues for invalid_input."}}}}}}}},"404":{"description":"not_found","content":{"application/json":{"schema":{"type":"object","required":["ok","error"],"properties":{"ok":{"type":"boolean","const":false},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["invalid_input","unknown_tool","scope_missing","permission_missing","not_found","rejected","rate_limited","unauthorized","internal"]},"message":{"type":"string"},"details":{"description":"Structured detail, e.g. zod issues for invalid_input."}}}}}}}},"429":{"description":"rate_limited: honour Retry-After","content":{"application/json":{"schema":{"type":"object","required":["ok","error"],"properties":{"ok":{"type":"boolean","const":false},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["invalid_input","unknown_tool","scope_missing","permission_missing","not_found","rejected","rate_limited","unauthorized","internal"]},"message":{"type":"string"},"details":{"description":"Structured detail, e.g. zod issues for invalid_input."}}}}}}}}}}},"/v1/connector/tools/deals.pipeline":{"post":{"operationId":"deals_pipeline","summary":"Pipeline by stage","description":"Open deals grouped by stage with counts and totals (integer cents; unpriced deals are counted separately, never as zero). The \"how is my pipeline?\" answer.\n\nScope: `read` · Permission: `deals:read`\n\nReturns: `{ stages: [{ stage, deal_count, total_cents, unpriced_count }] }`","tags":["Deals"],"parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":false},"example":{}}}},"responses":{"200":{"description":"The tool ran","content":{"application/json":{"schema":{"type":"object","required":["ok","result"],"properties":{"ok":{"type":"boolean","const":true},"result":{"type":"object","additionalProperties":true,"description":"The tool result (see each tool’s `returns`)."}}}}}},"400":{"description":"invalid_input or rejected","content":{"application/json":{"schema":{"type":"object","required":["ok","error"],"properties":{"ok":{"type":"boolean","const":false},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["invalid_input","unknown_tool","scope_missing","permission_missing","not_found","rejected","rate_limited","unauthorized","internal"]},"message":{"type":"string"},"details":{"description":"Structured detail, e.g. zod issues for invalid_input."}}}}}}}},"401":{"description":"Missing, revoked or wrong-kind key","content":{"application/json":{"schema":{"type":"object","required":["ok","error"],"properties":{"ok":{"type":"boolean","const":false},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["invalid_input","unknown_tool","scope_missing","permission_missing","not_found","rejected","rate_limited","unauthorized","internal"]},"message":{"type":"string"},"details":{"description":"Structured detail, e.g. zod issues for invalid_input."}}}}}}}},"403":{"description":"scope_missing or permission_missing","content":{"application/json":{"schema":{"type":"object","required":["ok","error"],"properties":{"ok":{"type":"boolean","const":false},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["invalid_input","unknown_tool","scope_missing","permission_missing","not_found","rejected","rate_limited","unauthorized","internal"]},"message":{"type":"string"},"details":{"description":"Structured detail, e.g. zod issues for invalid_input."}}}}}}}},"404":{"description":"not_found","content":{"application/json":{"schema":{"type":"object","required":["ok","error"],"properties":{"ok":{"type":"boolean","const":false},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["invalid_input","unknown_tool","scope_missing","permission_missing","not_found","rejected","rate_limited","unauthorized","internal"]},"message":{"type":"string"},"details":{"description":"Structured detail, e.g. zod issues for invalid_input."}}}}}}}},"429":{"description":"rate_limited: honour Retry-After","content":{"application/json":{"schema":{"type":"object","required":["ok","error"],"properties":{"ok":{"type":"boolean","const":false},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["invalid_input","unknown_tool","scope_missing","permission_missing","not_found","rejected","rate_limited","unauthorized","internal"]},"message":{"type":"string"},"details":{"description":"Structured detail, e.g. zod issues for invalid_input."}}}}}}}}}}},"/v1/connector/tools/deals.create":{"post":{"operationId":"deals_create","summary":"Create a deal","description":"Open a deal on a lead. value_cents is INTEGER CENTS ($1,200 is 120000); leave it out if the person has not priced it. Do not invent a value.\n\nScope: `write` · Permission: `deals:write`\n\nReturns: `{ deal_id, created: true }`","tags":["Deals"],"parameters":[{"name":"Idempotency-Key","in":"header","required":false,"schema":{"type":"string","maxLength":128},"description":"Same meaning as the `idempotency_key` body field; the body field wins if both are sent."}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"lead_id":{"type":"string","format":"uuid"},"title":{"type":"string","minLength":1,"maxLength":300},"value_cents":{"anyOf":[{"type":"integer","minimum":-10000000000,"maximum":10000000000},{"type":"null"}]},"stage":{"type":"string","enum":["new","qualified","proposal","negotiation","closing"]},"expected_close_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}]},"owner_user_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}]},"idempotency_key":{"type":"string","minLength":1,"maxLength":128,"description":"Optional. Any unique string you choose (a UUID is ideal). Repeating a call with the same key returns the first result instead of acting twice, so set it whenever you retry."}},"required":["lead_id","title"],"additionalProperties":false},"example":{"lead_id":"5c3d3b20-9c1a-4a1d-8a52-2b0f4d7e9a10","title":"Home + auto bundle","value_cents":240000,"stage":"proposal"}}}},"responses":{"200":{"description":"The tool ran","content":{"application/json":{"schema":{"type":"object","required":["ok","result"],"properties":{"ok":{"type":"boolean","const":true},"result":{"type":"object","additionalProperties":true,"description":"The tool result (see each tool’s `returns`)."}}}}}},"400":{"description":"invalid_input or rejected","content":{"application/json":{"schema":{"type":"object","required":["ok","error"],"properties":{"ok":{"type":"boolean","const":false},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["invalid_input","unknown_tool","scope_missing","permission_missing","not_found","rejected","rate_limited","unauthorized","internal"]},"message":{"type":"string"},"details":{"description":"Structured detail, e.g. zod issues for invalid_input."}}}}}}}},"401":{"description":"Missing, revoked or wrong-kind key","content":{"application/json":{"schema":{"type":"object","required":["ok","error"],"properties":{"ok":{"type":"boolean","const":false},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["invalid_input","unknown_tool","scope_missing","permission_missing","not_found","rejected","rate_limited","unauthorized","internal"]},"message":{"type":"string"},"details":{"description":"Structured detail, e.g. zod issues for invalid_input."}}}}}}}},"403":{"description":"scope_missing or permission_missing","content":{"application/json":{"schema":{"type":"object","required":["ok","error"],"properties":{"ok":{"type":"boolean","const":false},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["invalid_input","unknown_tool","scope_missing","permission_missing","not_found","rejected","rate_limited","unauthorized","internal"]},"message":{"type":"string"},"details":{"description":"Structured detail, e.g. zod issues for invalid_input."}}}}}}}},"404":{"description":"not_found","content":{"application/json":{"schema":{"type":"object","required":["ok","error"],"properties":{"ok":{"type":"boolean","const":false},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["invalid_input","unknown_tool","scope_missing","permission_missing","not_found","rejected","rate_limited","unauthorized","internal"]},"message":{"type":"string"},"details":{"description":"Structured detail, e.g. zod issues for invalid_input."}}}}}}}},"429":{"description":"rate_limited: honour Retry-After","content":{"application/json":{"schema":{"type":"object","required":["ok","error"],"properties":{"ok":{"type":"boolean","const":false},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["invalid_input","unknown_tool","scope_missing","permission_missing","not_found","rejected","rate_limited","unauthorized","internal"]},"message":{"type":"string"},"details":{"description":"Structured detail, e.g. zod issues for invalid_input."}}}}}}}}}}},"/v1/connector/tools/deals.update":{"post":{"operationId":"deals_update","summary":"Update a deal","description":"Move a deal to another stage (new, qualified, proposal, negotiation, closing), change its value or title, or close it by setting status to won or lost (open | won | lost).\n\nScope: `write` · Permission: `deals:write`\n\nReturns: `{ deal_id, updated: true }`","tags":["Deals"],"parameters":[{"name":"Idempotency-Key","in":"header","required":false,"schema":{"type":"string","maxLength":128},"description":"Same meaning as the `idempotency_key` body field; the body field wins if both are sent."}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"deal_id":{"type":"string","format":"uuid","description":"The deal id"},"title":{"type":"string","minLength":1,"maxLength":300},"value_cents":{"anyOf":[{"type":"integer","minimum":-10000000000,"maximum":10000000000},{"type":"null"}]},"stage":{"type":"string","enum":["new","qualified","proposal","negotiation","closing"]},"status":{"type":"string","enum":["open","won","lost"]},"expected_close_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}]},"owner_user_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}]},"idempotency_key":{"type":"string","minLength":1,"maxLength":128,"description":"Optional. Any unique string you choose (a UUID is ideal). Repeating a call with the same key returns the first result instead of acting twice, so set it whenever you retry."}},"required":["deal_id"],"additionalProperties":false},"example":{"deal_id":"7e6d5c4b-3a2f-4e1d-9c8b-7a6f5e4d3c2b","stage":"proposal"}}}},"responses":{"200":{"description":"The tool ran","content":{"application/json":{"schema":{"type":"object","required":["ok","result"],"properties":{"ok":{"type":"boolean","const":true},"result":{"type":"object","additionalProperties":true,"description":"The tool result (see each tool’s `returns`)."}}}}}},"400":{"description":"invalid_input or rejected","content":{"application/json":{"schema":{"type":"object","required":["ok","error"],"properties":{"ok":{"type":"boolean","const":false},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["invalid_input","unknown_tool","scope_missing","permission_missing","not_found","rejected","rate_limited","unauthorized","internal"]},"message":{"type":"string"},"details":{"description":"Structured detail, e.g. zod issues for invalid_input."}}}}}}}},"401":{"description":"Missing, revoked or wrong-kind key","content":{"application/json":{"schema":{"type":"object","required":["ok","error"],"properties":{"ok":{"type":"boolean","const":false},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["invalid_input","unknown_tool","scope_missing","permission_missing","not_found","rejected","rate_limited","unauthorized","internal"]},"message":{"type":"string"},"details":{"description":"Structured detail, e.g. zod issues for invalid_input."}}}}}}}},"403":{"description":"scope_missing or permission_missing","content":{"application/json":{"schema":{"type":"object","required":["ok","error"],"properties":{"ok":{"type":"boolean","const":false},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["invalid_input","unknown_tool","scope_missing","permission_missing","not_found","rejected","rate_limited","unauthorized","internal"]},"message":{"type":"string"},"details":{"description":"Structured detail, e.g. zod issues for invalid_input."}}}}}}}},"404":{"description":"not_found","content":{"application/json":{"schema":{"type":"object","required":["ok","error"],"properties":{"ok":{"type":"boolean","const":false},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["invalid_input","unknown_tool","scope_missing","permission_missing","not_found","rejected","rate_limited","unauthorized","internal"]},"message":{"type":"string"},"details":{"description":"Structured detail, e.g. zod issues for invalid_input."}}}}}}}},"429":{"description":"rate_limited: honour Retry-After","content":{"application/json":{"schema":{"type":"object","required":["ok","error"],"properties":{"ok":{"type":"boolean","const":false},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["invalid_input","unknown_tool","scope_missing","permission_missing","not_found","rejected","rate_limited","unauthorized","internal"]},"message":{"type":"string"},"details":{"description":"Structured detail, e.g. zod issues for invalid_input."}}}}}}}}}}},"/v1/connector/tools/calendar.upcoming":{"post":{"operationId":"calendar_upcoming","summary":"Upcoming appointments","description":"Booked appointments over the next N days (default 7), each with the lead and a time already rendered in the workspace timezone.\n\nScope: `read` · Permission: `calendar:read:own`\n\nReturns: `{ timezone, appointments: [{ booking_id, lead_id, lead, starts_at, when, status }] }`","tags":["Calendar"],"parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"days":{"type":"integer","minimum":1,"maximum":30}},"additionalProperties":false},"example":{"days":7}}}},"responses":{"200":{"description":"The tool ran","content":{"application/json":{"schema":{"type":"object","required":["ok","result"],"properties":{"ok":{"type":"boolean","const":true},"result":{"type":"object","additionalProperties":true,"description":"The tool result (see each tool’s `returns`)."}}}}}},"400":{"description":"invalid_input or rejected","content":{"application/json":{"schema":{"type":"object","required":["ok","error"],"properties":{"ok":{"type":"boolean","const":false},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["invalid_input","unknown_tool","scope_missing","permission_missing","not_found","rejected","rate_limited","unauthorized","internal"]},"message":{"type":"string"},"details":{"description":"Structured detail, e.g. zod issues for invalid_input."}}}}}}}},"401":{"description":"Missing, revoked or wrong-kind key","content":{"application/json":{"schema":{"type":"object","required":["ok","error"],"properties":{"ok":{"type":"boolean","const":false},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["invalid_input","unknown_tool","scope_missing","permission_missing","not_found","rejected","rate_limited","unauthorized","internal"]},"message":{"type":"string"},"details":{"description":"Structured detail, e.g. zod issues for invalid_input."}}}}}}}},"403":{"description":"scope_missing or permission_missing","content":{"application/json":{"schema":{"type":"object","required":["ok","error"],"properties":{"ok":{"type":"boolean","const":false},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["invalid_input","unknown_tool","scope_missing","permission_missing","not_found","rejected","rate_limited","unauthorized","internal"]},"message":{"type":"string"},"details":{"description":"Structured detail, e.g. zod issues for invalid_input."}}}}}}}},"404":{"description":"not_found","content":{"application/json":{"schema":{"type":"object","required":["ok","error"],"properties":{"ok":{"type":"boolean","const":false},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["invalid_input","unknown_tool","scope_missing","permission_missing","not_found","rejected","rate_limited","unauthorized","internal"]},"message":{"type":"string"},"details":{"description":"Structured detail, e.g. zod issues for invalid_input."}}}}}}}},"429":{"description":"rate_limited: honour Retry-After","content":{"application/json":{"schema":{"type":"object","required":["ok","error"],"properties":{"ok":{"type":"boolean","const":false},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["invalid_input","unknown_tool","scope_missing","permission_missing","not_found","rejected","rate_limited","unauthorized","internal"]},"message":{"type":"string"},"details":{"description":"Structured detail, e.g. zod issues for invalid_input."}}}}}}}}}}},"/v1/connector/tools/calendar.slots":{"post":{"operationId":"calendar_slots","summary":"Available slots","description":"Times the business can be booked, honouring working hours, the connected calendar’s busy times and existing bookings. Offer these to the person; book one with calendar.book using its start_iso exactly.\n\nScope: `read` · Permission: `calendar:read:own`\n\nReturns: `{ timezone, slots: [{ start_iso, label }] }`","tags":["Calendar"],"parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"from_iso":{"type":"string","format":"date-time","description":"Earliest acceptable start (default: now)"}},"additionalProperties":false},"example":{}}}},"responses":{"200":{"description":"The tool ran","content":{"application/json":{"schema":{"type":"object","required":["ok","result"],"properties":{"ok":{"type":"boolean","const":true},"result":{"type":"object","additionalProperties":true,"description":"The tool result (see each tool’s `returns`)."}}}}}},"400":{"description":"invalid_input or rejected","content":{"application/json":{"schema":{"type":"object","required":["ok","error"],"properties":{"ok":{"type":"boolean","const":false},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["invalid_input","unknown_tool","scope_missing","permission_missing","not_found","rejected","rate_limited","unauthorized","internal"]},"message":{"type":"string"},"details":{"description":"Structured detail, e.g. zod issues for invalid_input."}}}}}}}},"401":{"description":"Missing, revoked or wrong-kind key","content":{"application/json":{"schema":{"type":"object","required":["ok","error"],"properties":{"ok":{"type":"boolean","const":false},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["invalid_input","unknown_tool","scope_missing","permission_missing","not_found","rejected","rate_limited","unauthorized","internal"]},"message":{"type":"string"},"details":{"description":"Structured detail, e.g. zod issues for invalid_input."}}}}}}}},"403":{"description":"scope_missing or permission_missing","content":{"application/json":{"schema":{"type":"object","required":["ok","error"],"properties":{"ok":{"type":"boolean","const":false},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["invalid_input","unknown_tool","scope_missing","permission_missing","not_found","rejected","rate_limited","unauthorized","internal"]},"message":{"type":"string"},"details":{"description":"Structured detail, e.g. zod issues for invalid_input."}}}}}}}},"404":{"description":"not_found","content":{"application/json":{"schema":{"type":"object","required":["ok","error"],"properties":{"ok":{"type":"boolean","const":false},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["invalid_input","unknown_tool","scope_missing","permission_missing","not_found","rejected","rate_limited","unauthorized","internal"]},"message":{"type":"string"},"details":{"description":"Structured detail, e.g. zod issues for invalid_input."}}}}}}}},"429":{"description":"rate_limited: honour Retry-After","content":{"application/json":{"schema":{"type":"object","required":["ok","error"],"properties":{"ok":{"type":"boolean","const":false},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["invalid_input","unknown_tool","scope_missing","permission_missing","not_found","rejected","rate_limited","unauthorized","internal"]},"message":{"type":"string"},"details":{"description":"Structured detail, e.g. zod issues for invalid_input."}}}}}}}}}}},"/v1/connector/tools/calendar.book":{"post":{"operationId":"calendar_book","summary":"Book an appointment","description":"Book a lead into a slot from calendar.slots. Creates the appointment, adds it to the connected calendar, and texts the lead a confirmation through the compliance Gate. Only with the person’s explicit go-ahead for that lead and that time.\n\nScope: `send` · Permission: `calendar:book`\n\nReturns: `{ booking_id, starts_at, ends_at, status }`","tags":["Calendar"],"parameters":[{"name":"Idempotency-Key","in":"header","required":false,"schema":{"type":"string","maxLength":128},"description":"Same meaning as the `idempotency_key` body field; the body field wins if both are sent."}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"lead_id":{"type":"string","format":"uuid","description":"The lead to book"},"start_iso":{"type":"string","format":"date-time","description":"A start_iso returned by calendar.slots"},"duration_minutes":{"type":"integer","minimum":10,"maximum":240},"idempotency_key":{"type":"string","minLength":1,"maxLength":128,"description":"Optional. Any unique string you choose (a UUID is ideal). Repeating a call with the same key returns the first result instead of acting twice, so set it whenever you retry."}},"required":["lead_id","start_iso"],"additionalProperties":false},"example":{"lead_id":"5c3d3b20-9c1a-4a1d-8a52-2b0f4d7e9a10","start_iso":"2026-09-24T18:00:00.000Z"}}}},"responses":{"200":{"description":"The tool ran","content":{"application/json":{"schema":{"type":"object","required":["ok","result"],"properties":{"ok":{"type":"boolean","const":true},"result":{"type":"object","additionalProperties":true,"description":"The tool result (see each tool’s `returns`)."}}}}}},"400":{"description":"invalid_input or rejected","content":{"application/json":{"schema":{"type":"object","required":["ok","error"],"properties":{"ok":{"type":"boolean","const":false},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["invalid_input","unknown_tool","scope_missing","permission_missing","not_found","rejected","rate_limited","unauthorized","internal"]},"message":{"type":"string"},"details":{"description":"Structured detail, e.g. zod issues for invalid_input."}}}}}}}},"401":{"description":"Missing, revoked or wrong-kind key","content":{"application/json":{"schema":{"type":"object","required":["ok","error"],"properties":{"ok":{"type":"boolean","const":false},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["invalid_input","unknown_tool","scope_missing","permission_missing","not_found","rejected","rate_limited","unauthorized","internal"]},"message":{"type":"string"},"details":{"description":"Structured detail, e.g. zod issues for invalid_input."}}}}}}}},"403":{"description":"scope_missing or permission_missing","content":{"application/json":{"schema":{"type":"object","required":["ok","error"],"properties":{"ok":{"type":"boolean","const":false},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["invalid_input","unknown_tool","scope_missing","permission_missing","not_found","rejected","rate_limited","unauthorized","internal"]},"message":{"type":"string"},"details":{"description":"Structured detail, e.g. zod issues for invalid_input."}}}}}}}},"404":{"description":"not_found","content":{"application/json":{"schema":{"type":"object","required":["ok","error"],"properties":{"ok":{"type":"boolean","const":false},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["invalid_input","unknown_tool","scope_missing","permission_missing","not_found","rejected","rate_limited","unauthorized","internal"]},"message":{"type":"string"},"details":{"description":"Structured detail, e.g. zod issues for invalid_input."}}}}}}}},"429":{"description":"rate_limited: honour Retry-After","content":{"application/json":{"schema":{"type":"object","required":["ok","error"],"properties":{"ok":{"type":"boolean","const":false},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["invalid_input","unknown_tool","scope_missing","permission_missing","not_found","rejected","rate_limited","unauthorized","internal"]},"message":{"type":"string"},"details":{"description":"Structured detail, e.g. zod issues for invalid_input."}}}}}}}}}}},"/v1/connector/tools/calendar.reschedule":{"post":{"operationId":"calendar_reschedule","summary":"Move an appointment","description":"Move a booked appointment to a new start (from calendar.slots). Updates the external calendar event and notifies the lead.\n\nScope: `send` · Permission: `calendar:book`\n\nReturns: `{ booking_id, starts_at, ends_at, status }`","tags":["Calendar"],"parameters":[{"name":"Idempotency-Key","in":"header","required":false,"schema":{"type":"string","maxLength":128},"description":"Same meaning as the `idempotency_key` body field; the body field wins if both are sent."}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"booking_id":{"type":"string","format":"uuid","description":"The booking to move"},"start_iso":{"type":"string","format":"date-time","description":"The new start, from calendar.slots"},"idempotency_key":{"type":"string","minLength":1,"maxLength":128,"description":"Optional. Any unique string you choose (a UUID is ideal). Repeating a call with the same key returns the first result instead of acting twice, so set it whenever you retry."}},"required":["booking_id","start_iso"],"additionalProperties":false},"example":{"booking_id":"c1b2a3d4-e5f6-4a7b-8c9d-0e1f2a3b4c5d","start_iso":"2026-09-25T15:00:00.000Z"}}}},"responses":{"200":{"description":"The tool ran","content":{"application/json":{"schema":{"type":"object","required":["ok","result"],"properties":{"ok":{"type":"boolean","const":true},"result":{"type":"object","additionalProperties":true,"description":"The tool result (see each tool’s `returns`)."}}}}}},"400":{"description":"invalid_input or rejected","content":{"application/json":{"schema":{"type":"object","required":["ok","error"],"properties":{"ok":{"type":"boolean","const":false},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["invalid_input","unknown_tool","scope_missing","permission_missing","not_found","rejected","rate_limited","unauthorized","internal"]},"message":{"type":"string"},"details":{"description":"Structured detail, e.g. zod issues for invalid_input."}}}}}}}},"401":{"description":"Missing, revoked or wrong-kind key","content":{"application/json":{"schema":{"type":"object","required":["ok","error"],"properties":{"ok":{"type":"boolean","const":false},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["invalid_input","unknown_tool","scope_missing","permission_missing","not_found","rejected","rate_limited","unauthorized","internal"]},"message":{"type":"string"},"details":{"description":"Structured detail, e.g. zod issues for invalid_input."}}}}}}}},"403":{"description":"scope_missing or permission_missing","content":{"application/json":{"schema":{"type":"object","required":["ok","error"],"properties":{"ok":{"type":"boolean","const":false},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["invalid_input","unknown_tool","scope_missing","permission_missing","not_found","rejected","rate_limited","unauthorized","internal"]},"message":{"type":"string"},"details":{"description":"Structured detail, e.g. zod issues for invalid_input."}}}}}}}},"404":{"description":"not_found","content":{"application/json":{"schema":{"type":"object","required":["ok","error"],"properties":{"ok":{"type":"boolean","const":false},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["invalid_input","unknown_tool","scope_missing","permission_missing","not_found","rejected","rate_limited","unauthorized","internal"]},"message":{"type":"string"},"details":{"description":"Structured detail, e.g. zod issues for invalid_input."}}}}}}}},"429":{"description":"rate_limited: honour Retry-After","content":{"application/json":{"schema":{"type":"object","required":["ok","error"],"properties":{"ok":{"type":"boolean","const":false},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["invalid_input","unknown_tool","scope_missing","permission_missing","not_found","rejected","rate_limited","unauthorized","internal"]},"message":{"type":"string"},"details":{"description":"Structured detail, e.g. zod issues for invalid_input."}}}}}}}}}}},"/v1/connector/tools/calendar.cancel":{"post":{"operationId":"calendar_cancel","summary":"Cancel an appointment","description":"Cancel a booked appointment and remove its calendar event. Irreversible, so confirm with the person first.\n\nScope: `send` · Permission: `calendar:book`\n\nReturns: `{ booking_id, status: \"canceled\" }`","tags":["Calendar"],"parameters":[{"name":"Idempotency-Key","in":"header","required":false,"schema":{"type":"string","maxLength":128},"description":"Same meaning as the `idempotency_key` body field; the body field wins if both are sent."}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"booking_id":{"type":"string","format":"uuid","description":"The booking to cancel"},"idempotency_key":{"type":"string","minLength":1,"maxLength":128,"description":"Optional. Any unique string you choose (a UUID is ideal). Repeating a call with the same key returns the first result instead of acting twice, so set it whenever you retry."}},"required":["booking_id"],"additionalProperties":false},"example":{"booking_id":"c1b2a3d4-e5f6-4a7b-8c9d-0e1f2a3b4c5d"}}}},"responses":{"200":{"description":"The tool ran","content":{"application/json":{"schema":{"type":"object","required":["ok","result"],"properties":{"ok":{"type":"boolean","const":true},"result":{"type":"object","additionalProperties":true,"description":"The tool result (see each tool’s `returns`)."}}}}}},"400":{"description":"invalid_input or rejected","content":{"application/json":{"schema":{"type":"object","required":["ok","error"],"properties":{"ok":{"type":"boolean","const":false},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["invalid_input","unknown_tool","scope_missing","permission_missing","not_found","rejected","rate_limited","unauthorized","internal"]},"message":{"type":"string"},"details":{"description":"Structured detail, e.g. zod issues for invalid_input."}}}}}}}},"401":{"description":"Missing, revoked or wrong-kind key","content":{"application/json":{"schema":{"type":"object","required":["ok","error"],"properties":{"ok":{"type":"boolean","const":false},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["invalid_input","unknown_tool","scope_missing","permission_missing","not_found","rejected","rate_limited","unauthorized","internal"]},"message":{"type":"string"},"details":{"description":"Structured detail, e.g. zod issues for invalid_input."}}}}}}}},"403":{"description":"scope_missing or permission_missing","content":{"application/json":{"schema":{"type":"object","required":["ok","error"],"properties":{"ok":{"type":"boolean","const":false},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["invalid_input","unknown_tool","scope_missing","permission_missing","not_found","rejected","rate_limited","unauthorized","internal"]},"message":{"type":"string"},"details":{"description":"Structured detail, e.g. zod issues for invalid_input."}}}}}}}},"404":{"description":"not_found","content":{"application/json":{"schema":{"type":"object","required":["ok","error"],"properties":{"ok":{"type":"boolean","const":false},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["invalid_input","unknown_tool","scope_missing","permission_missing","not_found","rejected","rate_limited","unauthorized","internal"]},"message":{"type":"string"},"details":{"description":"Structured detail, e.g. zod issues for invalid_input."}}}}}}}},"429":{"description":"rate_limited: honour Retry-After","content":{"application/json":{"schema":{"type":"object","required":["ok","error"],"properties":{"ok":{"type":"boolean","const":false},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["invalid_input","unknown_tool","scope_missing","permission_missing","not_found","rejected","rate_limited","unauthorized","internal"]},"message":{"type":"string"},"details":{"description":"Structured detail, e.g. zod issues for invalid_input."}}}}}}}}}}},"/v1/connector/tools/campaigns.list":{"post":{"operationId":"campaigns_list","summary":"List campaigns","description":"The workspace’s outreach campaigns with their status (draft, running, paused, completed…) and playbook.\n\nScope: `read` · Permission: `campaigns:read`\n\nReturns: `{ campaigns: [{ campaign_id, name, status, playbook, play, created_at }] }`","tags":["Campaigns"],"parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":false},"example":{}}}},"responses":{"200":{"description":"The tool ran","content":{"application/json":{"schema":{"type":"object","required":["ok","result"],"properties":{"ok":{"type":"boolean","const":true},"result":{"type":"object","additionalProperties":true,"description":"The tool result (see each tool’s `returns`)."}}}}}},"400":{"description":"invalid_input or rejected","content":{"application/json":{"schema":{"type":"object","required":["ok","error"],"properties":{"ok":{"type":"boolean","const":false},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["invalid_input","unknown_tool","scope_missing","permission_missing","not_found","rejected","rate_limited","unauthorized","internal"]},"message":{"type":"string"},"details":{"description":"Structured detail, e.g. zod issues for invalid_input."}}}}}}}},"401":{"description":"Missing, revoked or wrong-kind key","content":{"application/json":{"schema":{"type":"object","required":["ok","error"],"properties":{"ok":{"type":"boolean","const":false},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["invalid_input","unknown_tool","scope_missing","permission_missing","not_found","rejected","rate_limited","unauthorized","internal"]},"message":{"type":"string"},"details":{"description":"Structured detail, e.g. zod issues for invalid_input."}}}}}}}},"403":{"description":"scope_missing or permission_missing","content":{"application/json":{"schema":{"type":"object","required":["ok","error"],"properties":{"ok":{"type":"boolean","const":false},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["invalid_input","unknown_tool","scope_missing","permission_missing","not_found","rejected","rate_limited","unauthorized","internal"]},"message":{"type":"string"},"details":{"description":"Structured detail, e.g. zod issues for invalid_input."}}}}}}}},"404":{"description":"not_found","content":{"application/json":{"schema":{"type":"object","required":["ok","error"],"properties":{"ok":{"type":"boolean","const":false},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["invalid_input","unknown_tool","scope_missing","permission_missing","not_found","rejected","rate_limited","unauthorized","internal"]},"message":{"type":"string"},"details":{"description":"Structured detail, e.g. zod issues for invalid_input."}}}}}}}},"429":{"description":"rate_limited: honour Retry-After","content":{"application/json":{"schema":{"type":"object","required":["ok","error"],"properties":{"ok":{"type":"boolean","const":false},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["invalid_input","unknown_tool","scope_missing","permission_missing","not_found","rejected","rate_limited","unauthorized","internal"]},"message":{"type":"string"},"details":{"description":"Structured detail, e.g. zod issues for invalid_input."}}}}}}}}}}},"/v1/connector/tools/campaigns.stats":{"post":{"operationId":"campaigns_stats","summary":"Campaign performance","description":"How one campaign is doing: enrolled, contacted, engaged, booked, and what the Gate blocked.\n\nScope: `read` · Permission: `campaigns:read`\n\nReturns: `{ ...campaign stats }`","tags":["Campaigns"],"parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"campaign_id":{"type":"string","format":"uuid","description":"The campaign id"}},"required":["campaign_id"],"additionalProperties":false},"example":{"campaign_id":"a9b8c7d6-e5f4-4a3b-9c2d-1e0f9a8b7c6d"}}}},"responses":{"200":{"description":"The tool ran","content":{"application/json":{"schema":{"type":"object","required":["ok","result"],"properties":{"ok":{"type":"boolean","const":true},"result":{"type":"object","additionalProperties":true,"description":"The tool result (see each tool’s `returns`)."}}}}}},"400":{"description":"invalid_input or rejected","content":{"application/json":{"schema":{"type":"object","required":["ok","error"],"properties":{"ok":{"type":"boolean","const":false},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["invalid_input","unknown_tool","scope_missing","permission_missing","not_found","rejected","rate_limited","unauthorized","internal"]},"message":{"type":"string"},"details":{"description":"Structured detail, e.g. zod issues for invalid_input."}}}}}}}},"401":{"description":"Missing, revoked or wrong-kind key","content":{"application/json":{"schema":{"type":"object","required":["ok","error"],"properties":{"ok":{"type":"boolean","const":false},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["invalid_input","unknown_tool","scope_missing","permission_missing","not_found","rejected","rate_limited","unauthorized","internal"]},"message":{"type":"string"},"details":{"description":"Structured detail, e.g. zod issues for invalid_input."}}}}}}}},"403":{"description":"scope_missing or permission_missing","content":{"application/json":{"schema":{"type":"object","required":["ok","error"],"properties":{"ok":{"type":"boolean","const":false},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["invalid_input","unknown_tool","scope_missing","permission_missing","not_found","rejected","rate_limited","unauthorized","internal"]},"message":{"type":"string"},"details":{"description":"Structured detail, e.g. zod issues for invalid_input."}}}}}}}},"404":{"description":"not_found","content":{"application/json":{"schema":{"type":"object","required":["ok","error"],"properties":{"ok":{"type":"boolean","const":false},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["invalid_input","unknown_tool","scope_missing","permission_missing","not_found","rejected","rate_limited","unauthorized","internal"]},"message":{"type":"string"},"details":{"description":"Structured detail, e.g. zod issues for invalid_input."}}}}}}}},"429":{"description":"rate_limited: honour Retry-After","content":{"application/json":{"schema":{"type":"object","required":["ok","error"],"properties":{"ok":{"type":"boolean","const":false},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["invalid_input","unknown_tool","scope_missing","permission_missing","not_found","rejected","rate_limited","unauthorized","internal"]},"message":{"type":"string"},"details":{"description":"Structured detail, e.g. zod issues for invalid_input."}}}}}}}}}}},"/v1/connector/tools/campaigns.pause":{"post":{"operationId":"campaigns_pause","summary":"Pause a campaign","description":"Stop a running campaign from sending further touches. Safe and reversible.\n\nScope: `write` · Permission: `campaigns:pause`\n\nReturns: `{ campaign_id, status }`","tags":["Campaigns"],"parameters":[{"name":"Idempotency-Key","in":"header","required":false,"schema":{"type":"string","maxLength":128},"description":"Same meaning as the `idempotency_key` body field; the body field wins if both are sent."}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"campaign_id":{"type":"string","format":"uuid","description":"The campaign id"},"idempotency_key":{"type":"string","minLength":1,"maxLength":128,"description":"Optional. Any unique string you choose (a UUID is ideal). Repeating a call with the same key returns the first result instead of acting twice, so set it whenever you retry."}},"required":["campaign_id"],"additionalProperties":false},"example":{"campaign_id":"a9b8c7d6-e5f4-4a3b-9c2d-1e0f9a8b7c6d"}}}},"responses":{"200":{"description":"The tool ran","content":{"application/json":{"schema":{"type":"object","required":["ok","result"],"properties":{"ok":{"type":"boolean","const":true},"result":{"type":"object","additionalProperties":true,"description":"The tool result (see each tool’s `returns`)."}}}}}},"400":{"description":"invalid_input or rejected","content":{"application/json":{"schema":{"type":"object","required":["ok","error"],"properties":{"ok":{"type":"boolean","const":false},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["invalid_input","unknown_tool","scope_missing","permission_missing","not_found","rejected","rate_limited","unauthorized","internal"]},"message":{"type":"string"},"details":{"description":"Structured detail, e.g. zod issues for invalid_input."}}}}}}}},"401":{"description":"Missing, revoked or wrong-kind key","content":{"application/json":{"schema":{"type":"object","required":["ok","error"],"properties":{"ok":{"type":"boolean","const":false},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["invalid_input","unknown_tool","scope_missing","permission_missing","not_found","rejected","rate_limited","unauthorized","internal"]},"message":{"type":"string"},"details":{"description":"Structured detail, e.g. zod issues for invalid_input."}}}}}}}},"403":{"description":"scope_missing or permission_missing","content":{"application/json":{"schema":{"type":"object","required":["ok","error"],"properties":{"ok":{"type":"boolean","const":false},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["invalid_input","unknown_tool","scope_missing","permission_missing","not_found","rejected","rate_limited","unauthorized","internal"]},"message":{"type":"string"},"details":{"description":"Structured detail, e.g. zod issues for invalid_input."}}}}}}}},"404":{"description":"not_found","content":{"application/json":{"schema":{"type":"object","required":["ok","error"],"properties":{"ok":{"type":"boolean","const":false},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["invalid_input","unknown_tool","scope_missing","permission_missing","not_found","rejected","rate_limited","unauthorized","internal"]},"message":{"type":"string"},"details":{"description":"Structured detail, e.g. zod issues for invalid_input."}}}}}}}},"429":{"description":"rate_limited: honour Retry-After","content":{"application/json":{"schema":{"type":"object","required":["ok","error"],"properties":{"ok":{"type":"boolean","const":false},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["invalid_input","unknown_tool","scope_missing","permission_missing","not_found","rejected","rate_limited","unauthorized","internal"]},"message":{"type":"string"},"details":{"description":"Structured detail, e.g. zod issues for invalid_input."}}}}}}}}}}},"/v1/connector/tools/campaigns.resume":{"post":{"operationId":"campaigns_resume","summary":"Resume a campaign","description":"Restart a paused campaign. Touches to enrolled leads resume, so this needs the send scope and the person’s explicit instruction.\n\nScope: `send` · Permission: `campaigns:launch`\n\nReturns: `{ campaign_id, status }`","tags":["Campaigns"],"parameters":[{"name":"Idempotency-Key","in":"header","required":false,"schema":{"type":"string","maxLength":128},"description":"Same meaning as the `idempotency_key` body field; the body field wins if both are sent."}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"campaign_id":{"type":"string","format":"uuid","description":"The campaign id"},"idempotency_key":{"type":"string","minLength":1,"maxLength":128,"description":"Optional. Any unique string you choose (a UUID is ideal). Repeating a call with the same key returns the first result instead of acting twice, so set it whenever you retry."}},"required":["campaign_id"],"additionalProperties":false},"example":{"campaign_id":"a9b8c7d6-e5f4-4a3b-9c2d-1e0f9a8b7c6d"}}}},"responses":{"200":{"description":"The tool ran","content":{"application/json":{"schema":{"type":"object","required":["ok","result"],"properties":{"ok":{"type":"boolean","const":true},"result":{"type":"object","additionalProperties":true,"description":"The tool result (see each tool’s `returns`)."}}}}}},"400":{"description":"invalid_input or rejected","content":{"application/json":{"schema":{"type":"object","required":["ok","error"],"properties":{"ok":{"type":"boolean","const":false},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["invalid_input","unknown_tool","scope_missing","permission_missing","not_found","rejected","rate_limited","unauthorized","internal"]},"message":{"type":"string"},"details":{"description":"Structured detail, e.g. zod issues for invalid_input."}}}}}}}},"401":{"description":"Missing, revoked or wrong-kind key","content":{"application/json":{"schema":{"type":"object","required":["ok","error"],"properties":{"ok":{"type":"boolean","const":false},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["invalid_input","unknown_tool","scope_missing","permission_missing","not_found","rejected","rate_limited","unauthorized","internal"]},"message":{"type":"string"},"details":{"description":"Structured detail, e.g. zod issues for invalid_input."}}}}}}}},"403":{"description":"scope_missing or permission_missing","content":{"application/json":{"schema":{"type":"object","required":["ok","error"],"properties":{"ok":{"type":"boolean","const":false},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["invalid_input","unknown_tool","scope_missing","permission_missing","not_found","rejected","rate_limited","unauthorized","internal"]},"message":{"type":"string"},"details":{"description":"Structured detail, e.g. zod issues for invalid_input."}}}}}}}},"404":{"description":"not_found","content":{"application/json":{"schema":{"type":"object","required":["ok","error"],"properties":{"ok":{"type":"boolean","const":false},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["invalid_input","unknown_tool","scope_missing","permission_missing","not_found","rejected","rate_limited","unauthorized","internal"]},"message":{"type":"string"},"details":{"description":"Structured detail, e.g. zod issues for invalid_input."}}}}}}}},"429":{"description":"rate_limited: honour Retry-After","content":{"application/json":{"schema":{"type":"object","required":["ok","error"],"properties":{"ok":{"type":"boolean","const":false},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["invalid_input","unknown_tool","scope_missing","permission_missing","not_found","rejected","rate_limited","unauthorized","internal"]},"message":{"type":"string"},"details":{"description":"Structured detail, e.g. zod issues for invalid_input."}}}}}}}}}}},"/v1/connector/tools/automations.list":{"post":{"operationId":"automations_list","summary":"List automations","description":"The workspace’s automations (flows that act when something happens to a lead) with their trigger, their status (draft, active, paused) and how many people are in each. Answers \"what is running?\".\n\nScope: `read` · Permission: `automations:read`\n\nReturns: `{ automations: [{ automation_id, name, status, trigger, active_enrollments }] }`","tags":["Automations"],"parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":false},"example":{}}}},"responses":{"200":{"description":"The tool ran","content":{"application/json":{"schema":{"type":"object","required":["ok","result"],"properties":{"ok":{"type":"boolean","const":true},"result":{"type":"object","additionalProperties":true,"description":"The tool result (see each tool’s `returns`)."}}}}}},"400":{"description":"invalid_input or rejected","content":{"application/json":{"schema":{"type":"object","required":["ok","error"],"properties":{"ok":{"type":"boolean","const":false},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["invalid_input","unknown_tool","scope_missing","permission_missing","not_found","rejected","rate_limited","unauthorized","internal"]},"message":{"type":"string"},"details":{"description":"Structured detail, e.g. zod issues for invalid_input."}}}}}}}},"401":{"description":"Missing, revoked or wrong-kind key","content":{"application/json":{"schema":{"type":"object","required":["ok","error"],"properties":{"ok":{"type":"boolean","const":false},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["invalid_input","unknown_tool","scope_missing","permission_missing","not_found","rejected","rate_limited","unauthorized","internal"]},"message":{"type":"string"},"details":{"description":"Structured detail, e.g. zod issues for invalid_input."}}}}}}}},"403":{"description":"scope_missing or permission_missing","content":{"application/json":{"schema":{"type":"object","required":["ok","error"],"properties":{"ok":{"type":"boolean","const":false},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["invalid_input","unknown_tool","scope_missing","permission_missing","not_found","rejected","rate_limited","unauthorized","internal"]},"message":{"type":"string"},"details":{"description":"Structured detail, e.g. zod issues for invalid_input."}}}}}}}},"404":{"description":"not_found","content":{"application/json":{"schema":{"type":"object","required":["ok","error"],"properties":{"ok":{"type":"boolean","const":false},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["invalid_input","unknown_tool","scope_missing","permission_missing","not_found","rejected","rate_limited","unauthorized","internal"]},"message":{"type":"string"},"details":{"description":"Structured detail, e.g. zod issues for invalid_input."}}}}}}}},"429":{"description":"rate_limited: honour Retry-After","content":{"application/json":{"schema":{"type":"object","required":["ok","error"],"properties":{"ok":{"type":"boolean","const":false},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["invalid_input","unknown_tool","scope_missing","permission_missing","not_found","rejected","rate_limited","unauthorized","internal"]},"message":{"type":"string"},"details":{"description":"Structured detail, e.g. zod issues for invalid_input."}}}}}}}}}}},"/v1/connector/tools/forms.list":{"post":{"operationId":"forms_list","summary":"List forms","description":"The workspace’s lead capture forms with their status (draft, published, disabled) and public link. Answers \"which forms do we have?\" and gives the form to name when sending one.\n\nScope: `read` · Permission: `forms:read`\n\nReturns: `{ forms: [{ form_id, name, slug, status, url }] }`","tags":["Forms"],"parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":false},"example":{}}}},"responses":{"200":{"description":"The tool ran","content":{"application/json":{"schema":{"type":"object","required":["ok","result"],"properties":{"ok":{"type":"boolean","const":true},"result":{"type":"object","additionalProperties":true,"description":"The tool result (see each tool’s `returns`)."}}}}}},"400":{"description":"invalid_input or rejected","content":{"application/json":{"schema":{"type":"object","required":["ok","error"],"properties":{"ok":{"type":"boolean","const":false},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["invalid_input","unknown_tool","scope_missing","permission_missing","not_found","rejected","rate_limited","unauthorized","internal"]},"message":{"type":"string"},"details":{"description":"Structured detail, e.g. zod issues for invalid_input."}}}}}}}},"401":{"description":"Missing, revoked or wrong-kind key","content":{"application/json":{"schema":{"type":"object","required":["ok","error"],"properties":{"ok":{"type":"boolean","const":false},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["invalid_input","unknown_tool","scope_missing","permission_missing","not_found","rejected","rate_limited","unauthorized","internal"]},"message":{"type":"string"},"details":{"description":"Structured detail, e.g. zod issues for invalid_input."}}}}}}}},"403":{"description":"scope_missing or permission_missing","content":{"application/json":{"schema":{"type":"object","required":["ok","error"],"properties":{"ok":{"type":"boolean","const":false},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["invalid_input","unknown_tool","scope_missing","permission_missing","not_found","rejected","rate_limited","unauthorized","internal"]},"message":{"type":"string"},"details":{"description":"Structured detail, e.g. zod issues for invalid_input."}}}}}}}},"404":{"description":"not_found","content":{"application/json":{"schema":{"type":"object","required":["ok","error"],"properties":{"ok":{"type":"boolean","const":false},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["invalid_input","unknown_tool","scope_missing","permission_missing","not_found","rejected","rate_limited","unauthorized","internal"]},"message":{"type":"string"},"details":{"description":"Structured detail, e.g. zod issues for invalid_input."}}}}}}}},"429":{"description":"rate_limited: honour Retry-After","content":{"application/json":{"schema":{"type":"object","required":["ok","error"],"properties":{"ok":{"type":"boolean","const":false},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["invalid_input","unknown_tool","scope_missing","permission_missing","not_found","rejected","rate_limited","unauthorized","internal"]},"message":{"type":"string"},"details":{"description":"Structured detail, e.g. zod issues for invalid_input."}}}}}}}}}}},"/v1/connector/tools/reports.summary":{"post":{"operationId":"reports_summary","summary":"Funnel summary","description":"The workspace funnel over the last N days (default 7): leads in, contacted, engaged, qualified, booked, showed, deals won, speed-to-lead p50/p95 in seconds, and a per-day series. Quote the numbers as given; do not compute rates the result does not contain.\n\nScope: `read` · Permission: `analytics:read:own`\n\nReturns: `{ leads_ingested, contacted, engaged, qualified, booked, showed, contact_rate, booked_rate, time_to_first_touch_p50_s, time_to_first_touch_p95_s, deals_won, deals_won_value_cents, series[] }`","tags":["Reports"],"parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"days":{"type":"integer","minimum":1,"maximum":90}},"additionalProperties":false},"example":{"days":7}}}},"responses":{"200":{"description":"The tool ran","content":{"application/json":{"schema":{"type":"object","required":["ok","result"],"properties":{"ok":{"type":"boolean","const":true},"result":{"type":"object","additionalProperties":true,"description":"The tool result (see each tool’s `returns`)."}}}}}},"400":{"description":"invalid_input or rejected","content":{"application/json":{"schema":{"type":"object","required":["ok","error"],"properties":{"ok":{"type":"boolean","const":false},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["invalid_input","unknown_tool","scope_missing","permission_missing","not_found","rejected","rate_limited","unauthorized","internal"]},"message":{"type":"string"},"details":{"description":"Structured detail, e.g. zod issues for invalid_input."}}}}}}}},"401":{"description":"Missing, revoked or wrong-kind key","content":{"application/json":{"schema":{"type":"object","required":["ok","error"],"properties":{"ok":{"type":"boolean","const":false},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["invalid_input","unknown_tool","scope_missing","permission_missing","not_found","rejected","rate_limited","unauthorized","internal"]},"message":{"type":"string"},"details":{"description":"Structured detail, e.g. zod issues for invalid_input."}}}}}}}},"403":{"description":"scope_missing or permission_missing","content":{"application/json":{"schema":{"type":"object","required":["ok","error"],"properties":{"ok":{"type":"boolean","const":false},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["invalid_input","unknown_tool","scope_missing","permission_missing","not_found","rejected","rate_limited","unauthorized","internal"]},"message":{"type":"string"},"details":{"description":"Structured detail, e.g. zod issues for invalid_input."}}}}}}}},"404":{"description":"not_found","content":{"application/json":{"schema":{"type":"object","required":["ok","error"],"properties":{"ok":{"type":"boolean","const":false},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["invalid_input","unknown_tool","scope_missing","permission_missing","not_found","rejected","rate_limited","unauthorized","internal"]},"message":{"type":"string"},"details":{"description":"Structured detail, e.g. zod issues for invalid_input."}}}}}}}},"429":{"description":"rate_limited: honour Retry-After","content":{"application/json":{"schema":{"type":"object","required":["ok","error"],"properties":{"ok":{"type":"boolean","const":false},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["invalid_input","unknown_tool","scope_missing","permission_missing","not_found","rejected","rate_limited","unauthorized","internal"]},"message":{"type":"string"},"details":{"description":"Structured detail, e.g. zod issues for invalid_input."}}}}}}}}}}},"/v1/connector/tools/briefings.latest":{"post":{"operationId":"briefings_latest","summary":"Today’s briefing","description":"Warmd’s most recent morning briefing for the workspace: a short narrative plus the numbers it was written from. Null before the first one is written. Good opening for a daily check-in.\n\nScope: `read` · Permission: `analytics:read:all`\n\nReturns: `{ briefing: { local_date, narrative, data } | null }`","tags":["Reports"],"parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":false},"example":{}}}},"responses":{"200":{"description":"The tool ran","content":{"application/json":{"schema":{"type":"object","required":["ok","result"],"properties":{"ok":{"type":"boolean","const":true},"result":{"type":"object","additionalProperties":true,"description":"The tool result (see each tool’s `returns`)."}}}}}},"400":{"description":"invalid_input or rejected","content":{"application/json":{"schema":{"type":"object","required":["ok","error"],"properties":{"ok":{"type":"boolean","const":false},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["invalid_input","unknown_tool","scope_missing","permission_missing","not_found","rejected","rate_limited","unauthorized","internal"]},"message":{"type":"string"},"details":{"description":"Structured detail, e.g. zod issues for invalid_input."}}}}}}}},"401":{"description":"Missing, revoked or wrong-kind key","content":{"application/json":{"schema":{"type":"object","required":["ok","error"],"properties":{"ok":{"type":"boolean","const":false},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["invalid_input","unknown_tool","scope_missing","permission_missing","not_found","rejected","rate_limited","unauthorized","internal"]},"message":{"type":"string"},"details":{"description":"Structured detail, e.g. zod issues for invalid_input."}}}}}}}},"403":{"description":"scope_missing or permission_missing","content":{"application/json":{"schema":{"type":"object","required":["ok","error"],"properties":{"ok":{"type":"boolean","const":false},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["invalid_input","unknown_tool","scope_missing","permission_missing","not_found","rejected","rate_limited","unauthorized","internal"]},"message":{"type":"string"},"details":{"description":"Structured detail, e.g. zod issues for invalid_input."}}}}}}}},"404":{"description":"not_found","content":{"application/json":{"schema":{"type":"object","required":["ok","error"],"properties":{"ok":{"type":"boolean","const":false},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["invalid_input","unknown_tool","scope_missing","permission_missing","not_found","rejected","rate_limited","unauthorized","internal"]},"message":{"type":"string"},"details":{"description":"Structured detail, e.g. zod issues for invalid_input."}}}}}}}},"429":{"description":"rate_limited: honour Retry-After","content":{"application/json":{"schema":{"type":"object","required":["ok","error"],"properties":{"ok":{"type":"boolean","const":false},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["invalid_input","unknown_tool","scope_missing","permission_missing","not_found","rejected","rate_limited","unauthorized","internal"]},"message":{"type":"string"},"details":{"description":"Structured detail, e.g. zod issues for invalid_input."}}}}}}}}}}},"/v1/connector/tools/brain.search":{"post":{"operationId":"brain_search","summary":"Search the Brain","description":"Search the business’s own knowledge base (its documents, website, FAQs and confirmed memories) for an answer. Returns passages with the file they came from and a low_confidence flag; when it is low, say you are not sure rather than filling the gap yourself.\n\nScope: `read` · Permission: `brain:read`\n\nReturns: `{ passages: [{ file, text }], low_confidence }`","tags":["The Brain"],"parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"query":{"type":"string","minLength":1,"maxLength":500}},"required":["query"],"additionalProperties":false},"example":{"query":"Do we bundle home and auto?"}}}},"responses":{"200":{"description":"The tool ran","content":{"application/json":{"schema":{"type":"object","required":["ok","result"],"properties":{"ok":{"type":"boolean","const":true},"result":{"type":"object","additionalProperties":true,"description":"The tool result (see each tool’s `returns`)."}}}}}},"400":{"description":"invalid_input or rejected","content":{"application/json":{"schema":{"type":"object","required":["ok","error"],"properties":{"ok":{"type":"boolean","const":false},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["invalid_input","unknown_tool","scope_missing","permission_missing","not_found","rejected","rate_limited","unauthorized","internal"]},"message":{"type":"string"},"details":{"description":"Structured detail, e.g. zod issues for invalid_input."}}}}}}}},"401":{"description":"Missing, revoked or wrong-kind key","content":{"application/json":{"schema":{"type":"object","required":["ok","error"],"properties":{"ok":{"type":"boolean","const":false},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["invalid_input","unknown_tool","scope_missing","permission_missing","not_found","rejected","rate_limited","unauthorized","internal"]},"message":{"type":"string"},"details":{"description":"Structured detail, e.g. zod issues for invalid_input."}}}}}}}},"403":{"description":"scope_missing or permission_missing","content":{"application/json":{"schema":{"type":"object","required":["ok","error"],"properties":{"ok":{"type":"boolean","const":false},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["invalid_input","unknown_tool","scope_missing","permission_missing","not_found","rejected","rate_limited","unauthorized","internal"]},"message":{"type":"string"},"details":{"description":"Structured detail, e.g. zod issues for invalid_input."}}}}}}}},"404":{"description":"not_found","content":{"application/json":{"schema":{"type":"object","required":["ok","error"],"properties":{"ok":{"type":"boolean","const":false},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["invalid_input","unknown_tool","scope_missing","permission_missing","not_found","rejected","rate_limited","unauthorized","internal"]},"message":{"type":"string"},"details":{"description":"Structured detail, e.g. zod issues for invalid_input."}}}}}}}},"429":{"description":"rate_limited: honour Retry-After","content":{"application/json":{"schema":{"type":"object","required":["ok","error"],"properties":{"ok":{"type":"boolean","const":false},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["invalid_input","unknown_tool","scope_missing","permission_missing","not_found","rejected","rate_limited","unauthorized","internal"]},"message":{"type":"string"},"details":{"description":"Structured detail, e.g. zod issues for invalid_input."}}}}}}}}}}},"/v1/connector/tools/brain.remember":{"post":{"operationId":"brain_remember","summary":"Propose a memory","description":"Suggest something the Brain should know about the business (kind: fact | preference | instruction | style) or about one lead (pass lead_id). It lands as a PROPOSAL the owner confirms inside Warmd. Nothing you say becomes the business’s policy on its own. Tell the person it is waiting for their confirmation.\n\nScope: `write` · Permission: `brain:write`\n\nReturns: `{ memory_id, status: \"proposed\" | \"duplicate\" }`","tags":["The Brain"],"parameters":[{"name":"Idempotency-Key","in":"header","required":false,"schema":{"type":"string","maxLength":128},"description":"Same meaning as the `idempotency_key` body field; the body field wins if both are sent."}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"content":{"type":"string","minLength":3,"maxLength":600},"kind":{"type":"string","enum":["fact","preference","instruction","style"],"description":"Default fact"},"scope":{"type":"string","enum":["tenant","user"],"description":"tenant (default): about the business. user: a preference of the person themselves."},"lead_id":{"type":"string","format":"uuid","description":"Only for a fact about one lead"},"idempotency_key":{"type":"string","minLength":1,"maxLength":128,"description":"Optional. Any unique string you choose (a UUID is ideal). Repeating a call with the same key returns the first result instead of acting twice, so set it whenever you retry."}},"required":["content"],"additionalProperties":false},"example":{"content":"We are closed on Fridays after 1pm.","kind":"fact"}}}},"responses":{"200":{"description":"The tool ran","content":{"application/json":{"schema":{"type":"object","required":["ok","result"],"properties":{"ok":{"type":"boolean","const":true},"result":{"type":"object","additionalProperties":true,"description":"The tool result (see each tool’s `returns`)."}}}}}},"400":{"description":"invalid_input or rejected","content":{"application/json":{"schema":{"type":"object","required":["ok","error"],"properties":{"ok":{"type":"boolean","const":false},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["invalid_input","unknown_tool","scope_missing","permission_missing","not_found","rejected","rate_limited","unauthorized","internal"]},"message":{"type":"string"},"details":{"description":"Structured detail, e.g. zod issues for invalid_input."}}}}}}}},"401":{"description":"Missing, revoked or wrong-kind key","content":{"application/json":{"schema":{"type":"object","required":["ok","error"],"properties":{"ok":{"type":"boolean","const":false},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["invalid_input","unknown_tool","scope_missing","permission_missing","not_found","rejected","rate_limited","unauthorized","internal"]},"message":{"type":"string"},"details":{"description":"Structured detail, e.g. zod issues for invalid_input."}}}}}}}},"403":{"description":"scope_missing or permission_missing","content":{"application/json":{"schema":{"type":"object","required":["ok","error"],"properties":{"ok":{"type":"boolean","const":false},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["invalid_input","unknown_tool","scope_missing","permission_missing","not_found","rejected","rate_limited","unauthorized","internal"]},"message":{"type":"string"},"details":{"description":"Structured detail, e.g. zod issues for invalid_input."}}}}}}}},"404":{"description":"not_found","content":{"application/json":{"schema":{"type":"object","required":["ok","error"],"properties":{"ok":{"type":"boolean","const":false},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["invalid_input","unknown_tool","scope_missing","permission_missing","not_found","rejected","rate_limited","unauthorized","internal"]},"message":{"type":"string"},"details":{"description":"Structured detail, e.g. zod issues for invalid_input."}}}}}}}},"429":{"description":"rate_limited: honour Retry-After","content":{"application/json":{"schema":{"type":"object","required":["ok","error"],"properties":{"ok":{"type":"boolean","const":false},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["invalid_input","unknown_tool","scope_missing","permission_missing","not_found","rejected","rate_limited","unauthorized","internal"]},"message":{"type":"string"},"details":{"description":"Structured detail, e.g. zod issues for invalid_input."}}}}}}}}}}}},"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer","description":"A Warmd agent key (wmd_agent_…), issued at https://warmd.ai/settings?tab=Connections."}},"schemas":{"ToolResult":{"type":"object","required":["ok","result"],"properties":{"ok":{"type":"boolean","const":true},"result":{"type":"object","additionalProperties":true,"description":"The tool result (see each tool’s `returns`)."}}},"ToolError":{"type":"object","required":["ok","error"],"properties":{"ok":{"type":"boolean","const":false},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["invalid_input","unknown_tool","scope_missing","permission_missing","not_found","rejected","rate_limited","unauthorized","internal"]},"message":{"type":"string"},"details":{"description":"Structured detail, e.g. zod issues for invalid_input."}}}}}}},"x-connector":{"version":"2026-09-21","tool_count":35,"mcp_url":"https://warmdapi-production.up.railway.app/v1/mcp","brief_url":"https://warmd.ai/connectors/muse.md"}}