
Developers
An open, agent‑first platform.
Set ShowPilot up from code, build and publish agents through the API, and give your own agents our knowledge, visitor data and tools. On every plan.
- REST API73 operations, one OpenAPI 3.1 spec
- MCP serverFor Claude, Cursor or your own agent, over OAuth
- Webhooks22 signed events, plus a live stream
- Page SDKIdentify, hand context, open, listen
01Set up from code
Configure your workspace with the API.
Everything your team sets up in the app has an endpoint: what the agent knows, how it talks, what it offers and who hears about it. Keep it in version control and run it again whenever it changes.
- Add sites and pages to knowledge, and choose how each base stays current
- Write the agent’s script and skills as documents, check the change, then publish
- Create offers, save segments of visitors, subscribe webhooks
- Practise against a sandbox seeded with sample data, and reset it any time
# Ground the agent in your docs site
curl -X POST $API/knowledge/bases/$BASE/sources \
-H "Authorization: Bearer $KEY" \
-H "Idempotency-Key: docs-site" \
-d '{ "url": "https://acme.com/docs", "includeSubpages": true }'
# See the lint and diff first. Nothing is written.
curl -X POST $API/agents/$AGENT/script/propose -d @script.json
# Apply it, then publish a new revision
curl -X PUT $API/agents/$AGENT/script -d @script.json
curl -X POST $API/agents/$AGENT/publishYou create your workspace and agents in the app. Everything after that can run from code.
02Use our services
Give your own agents ShowPilot’s tools.
The retrieval, visitor data and account signals behind our agents are open to yours. Call them from a support bot, an internal assistant or your own agent framework.
- Ask: a grounded answer with citations, and a plain “not covered” when your sources don’t say
- Retrieve: ranked chunks with sources, to run under your own model
- Visitors and accounts: who asked what, a company’s people and questions, who is sales-ready
- Every endpoint as a tool definition for Anthropic and OpenAI function calling
POST /v1/knowledge/ask
Authorization: Bearer spk_live_…
{ "question": "Do you integrate with HubSpot?",
"agentId": "6f1c…" }
200 OK
{ "answer": "Yes. Contacts and deals sync both ways…",
"citations": [
{ "title": "Integrations",
"url": "https://acme.com/integrations",
"quote": "Our HubSpot app syncs contacts and deals…" } ] }03Agent-first
Built for AI agents to operate.
Connect Claude, Cursor or your own agent to the MCP server and it can reach every operation in the API, with guardrails designed for software that writes on your behalf.
- Whole documents with a version, so an edit applies to what the agent actually read
- Propose before apply: every edit can be linted and diffed without writing anything
- Signs in with OAuth and gets your role’s scopes; visitor identities stay masked
- Five ready skills: weekly review, answer the gaps, brief an account, launch an offer, follow up on leads
$ claude mcp add --transport http showpilot \
https://api.showpilot.com/mcp
> What did buyers ask this week that we couldn't answer?
⚙ find_knowledge_gaps 41 questions
Grouped into 6 topics. Pricing for agencies is
the biggest: 12 asks, no source covers it.
> Which accounts should sales call today?
⚙ find_sales_ready_accounts 5 accountsOne visit, through every surface.
A buyer asks, DecisionIQ picks the next step, your endpoint hears about it, and your assistant can act on it. The same events, end to end.
1A visitor asks on your site
How does routing work for a 200-person sales team?
Here’s the routing tour. I can book you with Jordan, who covers teams your size.
2DecisionIQ picks the next step
- Play the routing tour0.86
- Offer a meeting with Jordan0.71
- Ask about their timeline0.38
3A webhook lands on your endpoint
POST /hooks/showpilot
X-ShowPilot-Event: meeting.booked
X-ShowPilot-Signature: sha256=9f2c…
{
"type": "meeting.booked",
"data": {
"company": "Acme Example",
"rep": "Jordan",
"intent": "hot"
}
}4Your AI assistant asks over MCP
Who’s ready for a rep this week?
⚙ showpilot · find_sales_ready_accounts
Acme Example: hot intent, watched the routing tour, meeting booked with Jordan for Thursday.
React to what your agents do.
Push what happens into your own systems, and pass what your app knows back to the agent on the page.
Webhooks and the event stream
DocsMeetings booked, leads identified, follow-ups opened. Signed, retried, replayable, or read as server-sent events.
POST https://yourapp.example/hooks/showpilot
X-ShowPilot-Event: meeting.booked
X-ShowPilot-Signature: sha256=…
GET /v1/events/stream # the same events, liveThe Page SDK
DocsTell the agent who a signed-in visitor is, hand it what your app knows, open it, and hear what happens.
showpilot.identify({ userId: 'u_42', signature, timestamp })
showpilot.context({ plan: 'team', stage: 'renewal' })
showpilot.open()
showpilot.on('meeting.booked', (e) => track(e))The whole platform, one API.
Fifteen resources, generated from one spec, with a try-it panel for test keys on every page of the reference.
Start in the sandbox
Every workspace has one, seeded with sample visitors, leads and tours. Create a test key in Settings → API keys. New to ShowPilot? We’ll set up your workspace.
- AgentsRead, edit and publish scripts
- SkillsThe moves agents can run
- KnowledgeSources, refresh, ask, retrieve
- VisitorsJourneys, search by question
- SegmentsFilters, members, who moved
- ConversationsEvery message, masked by default
- LeadsOwner, status, CRM link
- Follow-upsAnswer what the agent couldn’t
- OffersCreate and change offers
- Tours and hubsSpecs, publish, sittings
- MeetingsWhat was booked, with whom
- InsightsPulse, gaps, sales-ready accounts
- EventsThe log, from any cursor
- WebhooksSubscriptions, deliveries, replay
- SandboxSample data for test keys
What you can count on.
- Additive versioning
- Version 1 only gains fields and endpoints. A breaking change would ship as a new version.
- Safe retries
- Send an Idempotency-Key with any write and a retry returns the first result instead of doing it twice.
- Clear limits
- Burst to 60 calls per key, refilling one a second, with X-RateLimit headers on every response.
- Keys that can’t overreach
- Each key gets only the scopes you turn on, read and write kept separate, stored only as a hash.
- Webhooks you can rely on
- At-least-once delivery, an event ID to dedupe on, up to five attempts with backoff, and replay from the log.
- Your data stays yours
- Isolated per workspace and never used to train models. Assistants on OAuth never see unmasked transcripts.
Questions developers ask.
Which plans include the API and MCP server?
Every plan. The REST API, webhooks, Page SDK and MCP server all come with the platform.
What can I set up through the API?
Everything that shapes an agent you already have: add knowledge, write the script and skills, publish, create offers and segments, and subscribe webhooks. Your workspace and agents are created in the app, and file uploads to knowledge happen there too.
Can my own agent use ShowPilot’s knowledge?
Yes. The knowledge ask endpoint returns a grounded answer with citations, and retrieve returns ranked chunks for your own model. Both search exactly what an agent sees, or the bases you name, and need only a query-scoped key.
How do I authenticate?
With an API key sent as a Bearer token, scoped to what you turn on. Test keys run against a sandbox with sample data. AI assistants connect to the MCP server with OAuth instead.
Are there SDKs?
TypeScript and Python clients generated from the same spec, available on request while they’re in preview, plus ready-made tool files for Anthropic and OpenAI function calling.
Will the API change under me?
No. Version 1 only adds fields and endpoints. A breaking change would ship as a new version.

Start building.
Read the docs and try it with a test key, or we’ll set up your workspace and walk you through it.
Built by a small team that works with every customer.