WEBEE API Reference
The WEBEE REST API gives you programmatic access to agents, contacts, calls, bookings, campaigns, analytics, and billing — all workspace-scoped and secured by API key.
https://app.webespokeai.com/api/v1Authentication
All requests require a WEBEE API key issued from Settings → Developer API. Keys are workspace-scoped.
Pass your key in the Authorization header on every request:
Authorization: Bearer wbee_xxxxxxxxxxxxxxxxxxxxxxxx
curl "https://app.webespokeai.com/api/v1/agents" \ -H "Authorization: Bearer wbee_your_key_here"
Agents
List, deploy, test, and archive your WEBEE AI agents.
Leads
Create and list leads in your CRM pipeline.
Contacts
Full CRUD for contacts — search, create, and update with pipeline stage tracking.
Calls
Trigger outbound calls, list call logs, and pull detailed analytics.
Bookings
Create and manage calendar bookings captured by your agents.
Campaigns
Enrol contacts into outbound campaigns and monitor performance metrics.
Analytics
High-level workspace metrics and AI-driven growth recommendations.
Billing & Costs
Access billing plan details, provider cost breakdowns, call profitability, and usage metrics.
Knowledge
Upload documents and text to power your agent's knowledge base.
Webhooks
Subscribe to real-time events. All payloads are signed with HMAC-SHA256.
lead.createdlead.updatedcall.startedcall.completedcall.failedbooking.createdbooking.updatedbooking.cancelledcampaign.completeddocument.uploadedagent.deployed{
"event": "lead.created",
"workspace_id": "wsp_xxxxxxxxxxxx",
"timestamp": "2026-06-17T10:00:00.000Z",
"data": { /* resource object */ }
}import crypto from "node:crypto";
function verifyWebeeWebhook(rawBody, signature, secret) {
const expected = "sha256=" + crypto
.createHmac("sha256", secret)
.update(rawBody)
.digest("hex");
return crypto.timingSafeEqual(
Buffer.from(signature),
Buffer.from(expected),
);
}
// Express
app.post("/webhooks/webee", express.raw({ type: "*/*" }), (req, res) => {
const sig = req.headers["x-webee-signature"];
const secret = process.env.WEBEE_WEBHOOK_SECRET;
if (!verifyWebeeWebhook(req.body.toString(), sig, secret))
return res.status(403).send("Invalid signature");
const event = JSON.parse(req.body.toString());
// handle event.event ...
res.sendStatus(200);
});Errors
WEBEE uses standard HTTP status codes. All error responses follow the same JSON shape.
{
"error": "Agent not found",
"status": 404
}Ready to integrate?
Generate your first API key from the Developer API settings inside your workspace.
Get your API key