Ora API Reference ยท v1.0

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.

Base URL: https://allincode.com.au/api
๐Ÿ’ก All API endpoints are available to agency partners. To get your API key and partner credentials, email Paul or join the agency programme.

What you can do

The Ora API powers four core capabilities:

Authentication

API requests use an X-Ora-Key header for partner endpoints. Contact paul@allincode.com.au to get your key.

HTTP
// 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

POST /api/save-lead
Save a widget conversation as a lead in the Ora CRM. Called automatically by the Ora widget โ€” use this endpoint if you're building a custom integration.

Request body

ParameterTypeRequiredDescription
session_idstringrequiredUnique session identifier
page_urlstringoptionalURL where the conversation happened
messagesarrayoptionalFull conversation history as [{role, content}]
lead_namestringoptionalVisitor's name if captured
lead_emailstringoptionalVisitor's email if captured
lead_businessstringoptionalVisitor's business name if captured
message_countnumberoptionalNumber of messages exchanged
JavaScript
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 }
GET /api/zapier-webhook?action=leads
Returns the 10 most recent leads. Used by Zapier polling triggers but can be queried directly.
Response
[
  {
    "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"
  }
]
GET /api/zapier-webhook?action=hot-leads
Returns leads with 5+ messages โ€” these are your hot prospects who have had extended conversations with Ora.

WhatsApp & SMS

POST /api/whatsapp-inbound
SignalWire webhook for inbound WhatsApp and SMS messages. Ora processes the message, generates a response via Claude, saves the conversation to the CRM, and sends the reply. Set this as your SignalWire number's inbound message handler.
๐Ÿ“ฑ This endpoint is designed for SignalWire's TwiML-compatible webhook format. Set it as your number's inbound message URL in the SignalWire dashboard.

Query params

ParameterTypeDescription
brainstringBrain slug to use for this number (e.g., real-estate). Defaults to ora
POST /api/zapier-webhook?action=send-whatsapp
Send an outbound WhatsApp or SMS message to any number. Use this from Zapier to proactively reach out to leads.
ParameterTypeRequiredDescription
tostringrequiredRecipient phone number in E.164 format (+61412345678)
messagestringrequiredMessage body (plain text, max 1600 chars)
from_numberstringoptionalOverride sender number. Defaults to SIGNALWIRE_WHATSAPP_NUMBER

Calendar Booking

GET /api/book-meeting?action=availability
Returns available meeting slots for the next 7 days via Calendly, or a booking link if Calendly is not configured.
Response (Calendly configured)
{
  "ok": true,
  "method": "calendly",
  "slots": [
    { "start": "2026-04-06T09:00:00Z", "status": "available" },
    { "start": "2026-04-06T10:00:00Z", "status": "available" }
  ]
}
POST /api/book-meeting
Books a meeting โ€” saves the request to the Supabase CRM, sends an email notification to Paul, and returns a confirmation message for Ora to relay to the visitor.
ParameterTypeRequiredDescription
namestringrequiredVisitor's full name
emailstringrequiredVisitor's email address
messagestringoptionalWhat they want to discuss
preferred_timestringoptionalTheir preferred meeting time
phonestringoptionalPhone number
brain_slugstringoptionalWhich brain is booking (e.g., real-estate)

Zapier Integration

โšก Connect Ora to 5,000+ tools via Zapier. Use "Webhooks by Zapier" with the trigger URLs below โ€” no app submission required.

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.

Trigger URLs
# 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.

Action URLs
# 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

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.

Email Paul โ†’ WhatsApp