Ora API
The Ora API gives you programmatic access to Ora's lead capture, WhatsApp messaging, calendar booking, and Zapier integration. Use it to build custom integrations, connect Ora to your existing tools, or build on top of Ora for your clients.
What you can do
The Ora API powers four core capabilities:
- โ Lead capture โ save widget conversations, retrieve leads, flag hot prospects
- โ WhatsApp & SMS โ receive inbound messages, send outbound replies via SignalWire
- โ Calendar booking โ check availability, book meetings, notify via email
- โ Zapier โ connect Ora to 5,000+ tools via triggers and actions
Authentication
API requests use an X-Ora-Key header for partner endpoints. Contact paul@allincode.com.au to get your key.
// Include in all authenticated requests
X-Ora-Key: your_partner_key
Content-Type: application/json
Public endpoints (save-lead, whatsapp-inbound, book-meeting) do not require authentication but are rate-limited to 100 requests/minute per IP.
Lead Capture
Request body
| Parameter | Type | Required | Description |
|---|---|---|---|
| session_id | string | required | Unique session identifier |
| page_url | string | optional | URL where the conversation happened |
| messages | array | optional | Full conversation history as [{role, content}] |
| lead_name | string | optional | Visitor's name if captured |
| lead_email | string | optional | Visitor's email if captured |
| lead_business | string | optional | Visitor's business name if captured |
| message_count | number | optional | Number of messages exchanged |
const response = await fetch('https://allincode.com.au/api/save-lead', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({
session_id: 'conv_123',
lead_name: 'Sarah Johnson',
lead_email: 'sarah@example.com',
lead_business: 'Johnson Legal',
message_count: 8,
messages: [
{ role: 'user', content: 'How much does Ora cost?' },
{ role: 'assistant', content: 'Ora starts at $297/month...' }
]
})
});
const data = await response.json();
// { ok: true, status: 201 }
[
{
"id": "uuid",
"session_id": "widget_1234",
"name": "Sarah Johnson",
"email": "sarah@example.com",
"business": "Johnson Legal",
"message_count": 8,
"source": "ora_widget",
"created_at": "2026-04-05T09:00:00Z"
}
]
WhatsApp & SMS
Query params
| Parameter | Type | Description |
|---|---|---|
| brain | string | Brain slug to use for this number (e.g., real-estate). Defaults to ora |
| Parameter | Type | Required | Description |
|---|---|---|---|
| to | string | required | Recipient phone number in E.164 format (+61412345678) |
| message | string | required | Message body (plain text, max 1600 chars) |
| from_number | string | optional | Override sender number. Defaults to SIGNALWIRE_WHATSAPP_NUMBER |
Calendar Booking
{
"ok": true,
"method": "calendly",
"slots": [
{ "start": "2026-04-06T09:00:00Z", "status": "available" },
{ "start": "2026-04-06T10:00:00Z", "status": "available" }
]
}
| Parameter | Type | Required | Description |
|---|---|---|---|
| name | string | required | Visitor's full name |
| string | required | Visitor's email address | |
| message | string | optional | What they want to discuss |
| preferred_time | string | optional | Their preferred meeting time |
| phone | string | optional | Phone number |
| brain_slug | string | optional | Which brain is booking (e.g., real-estate) |
Zapier Integration
Setting up a Zapier trigger
In Zapier, create a new Zap โ choose "Webhooks by Zapier" โ "Polling" โ paste the trigger URL. Zapier will poll every 5 minutes for new data.
# New lead captured (any widget conversation)
GET https://allincode.com.au/api/zapier-webhook?action=leads
# Hot lead flagged (5+ message conversations)
GET https://allincode.com.au/api/zapier-webhook?action=hot-leads
Setting up a Zapier action
In Zapier, choose "Webhooks by Zapier" โ "POST" โ paste the action URL and map your fields.
# Send a WhatsApp/SMS message
POST https://allincode.com.au/api/zapier-webhook?action=send-whatsapp
Body: { to, message }
# Add a note to a lead
POST https://allincode.com.au/api/zapier-webhook?action=create-note
Body: { session_id, note }
# Book a meeting
POST https://allincode.com.au/api/book-meeting
Body: { name, email, message }
Example Zapier workflows
- โ New Ora lead โ Add to HubSpot CRM as contact
- โ Hot lead flagged โ Send WhatsApp message to sales team
- โ New lead email captured โ Add to Mailchimp list
- โ Meeting booked โ Create Google Calendar event
- โ Hot lead โ Send Slack notification to sales channel
Need help?
API support is available to all agency partners. If you're hitting rate limits, need a higher quota, or want to discuss a custom integration, reach out directly.