API, webhooks and the AI connector
Connect Storypole PRO to your own programs, to Zapier (and the thousands of apps it reaches), and to AI assistants like Claude and ChatGPT.
1. Make an API key
In Storypole PRO: Setup → API & integrations → API keys. Choose Read (look things up) or Read and write (also add and change). The key is shown once — keep it like a password. Turn it off any time.
Send it on every request:
Authorization: Bearer sp_live_…
2. The REST API
Every screen in Storypole PRO runs on this API, so anything you can do in the app you can do with a key. JSON in, JSON out. Base address: https://www.storypolepro.com
| Request | What it does |
|---|---|
GET /api/bids | Jobs and bids (?status=won) |
GET /api/bids/{id} | One job |
POST /api/bids | Add a bid: { project, organization_id, address, due_date } |
GET /api/bids/{id}/schedule | The job's schedule |
GET /api/bids/{id}/budget | Budget, POs and job costs |
GET /api/bids/{id}/daily-logs, POST … | Daily logs |
GET /api/bids/{id}/todos, POST … | To-dos and punch list |
GET /api/invoices | Invoices |
GET /api/leads, POST /api/leads | Leads: { name, email, phone, project_type, message } |
GET /api/organizations?type=builder|sub|supplier | Customers, subs, suppliers |
GET /api/insurance/board | Each sub's insurance status |
GET /api/change-orders, /api/rfis, /api/submittals | Change orders, RFIs, submittals |
Errors come back as { "error": "…" } with an HTTP status. A Read key gets 403 on anything that changes data.
3. Webhooks
Storypole PRO can POST to your address the moment something happens. Add one in API & integrations → Webhooks, or subscribe with a key: POST /api/hooks { "target_url": "https://…", "event": "lead.created" } (Zapier's REST hooks) and DELETE /api/hooks/{id}.
| Event | When |
|---|---|
lead.created | A new lead — from your website form or entered |
bid.won | A bid is won |
proposal.signed | A proposal is signed |
change_order.approved | A change order is approved |
payment.received | A payment is recorded or paid online |
daily_log.created | A daily log is written |
selection.chosen | The customer makes a selection |
receipt.approved | A receipt is approved into job costs |
Each delivery: { "id", "event", "created_at", "data": { … } }, signed with your webhook's secret: X-Storypole-Signature: sha256=HMAC_SHA256(secret, body). Sample data: GET /api/hooks/sample/{event}.
4. The AI connector (MCP)
Let Claude, ChatGPT or any assistant that supports the Model Context Protocol work with your account: “What's behind schedule this week?”, “Which invoices are past due?”, “Add a daily log for Lot 7: block to 8 courses, 6 on site.”
Connector address: https://www.storypolepro.com/api/mcp — authorization header Bearer with your API key. A Read key can only look things up.
Tools: list_jobs, get_job, get_job_schedule, get_job_budget, get_daily_logs, list_invoices, list_leads, list_todos, list_change_orders, insurance_status, and with a write key create_lead, add_daily_log, add_todo.
5. Zapier
Use Zapier's Webhooks by Zapier: “Catch Hook” to start a Zap from any Storypole PRO event above, and “Custom Request” with your API key to add leads, logs and to-dos from other apps.