Skip to main content
VORAVORAhome

api/v1

Your data, on your terms, by the request

A public REST API with scoped keys, signed outbound webhooks, Discord announcements and an inbound lead endpoint. Every response masks client details, and every webhook is signed.

zsh
$ curl https://app.vorafinancial.io/api/v1/clients/search?query=jennings \
    -H "Authorization: Bearer vora_live_k3f9q2m8zt4w_…"

HTTP/2 200

{  "data": [{    "id": "7c2e…41aa",    "name": "Richard Jennings",    "state": "FL",    "phone_masked": "+1305****65",    "deals": [{      "policy_number": "SC4840715",      "status": { "code": "active", "label": "Active" },      "carrier": "American Amicable",      "annual_premium": "567.24"    }]  }],  "page": 1, "page_size": 25, "total": 1}

Example client. The response shape is the real one.

Delete the zap nobody remembers building

Most agencies wire their CRM to the floor with copies of copies. Vora sends the event itself, signed, with nothing personal in it.

your-agency-stack.md-3 +3
  • Before: A Zapier chain nobody remembers building copies deals into a sheet.
  • Before: The sheet has full client phone numbers in it, shared with a vendor.
  • Before: When a zap breaks, the floor stops seeing new deals and nobody notices for a week.
  • With Vora: Scoped API keys read exactly what they were granted, and client data comes back masked.
  • With Vora: Webhooks are signed, HTTPS only, and carry deal facts, never client details.
  • With Vora: New deals land in Discord the moment they post, with mentions switched off.

In from vendors and carriers. Out to wherever your team looks.

Signed, and scrubbed

HTTPS-only webhooks signed with HMAC, protected against server-side request forgery and free of client personal data.

POST https://hooks.your-agency.com/vora

deal.posted

Header, signed in your browser right now

X-Vora-Signature: t=1792710134,v1=computing

Your server, on receipt

{
  "v": 1,
  "event_id": "9b2f4c1e-7a0d-4e55-b6a1-3c8e2d71f0aa",
  "event": "deal.posted",
  "occurred_at": "2026-10-21T23:02:14Z",
  "deal": {
    "id": "c41d8e0a-52f3-4b7e-9e0d-1f6a2b9c7d34",
    "carrier": "American Amicable",
    "product": "Senior Choice Immediate",
    "monthly_premium": "63.69",
    "annual_premium": "764.28",
    "effective_date": "2026-11-01",
    "writing_agent_name": "Jordan Pierce"
  }
}

v1 signed at send…

v1 recomputed on receipt…

Signing the sample delivery

HMAC-SHA256 of “t.body”, the scheme Vora signs with, checked within five minutes of t. Change one character of the body and the delivery is rejected.

REST API

Read deals, clients, agents, the scoreboard and commissions, and upload reports, with scoped keys and up to 25 keys per agency. Client data is always masked in API responses.

  • Scoped keysEach key reads only what it was granted. Up to 25 per agency, and any key can be revoked.
  • Masked, alwaysNo email, birth date, SSN, address or full phone in any v1 response.
  • Fail closedRate limited per IP and per key. Keys go in the header, never in the URL.
GET/api/v1/dealsLive deals, newest change first, filtered by status, agent or dates.read:deals
GET/api/v1/clients/searchName search with each client's live deals. Phones masked.read:clients
GET/api/v1/agentsAgents with role, status, upline and position.read:agents
GET/api/v1/scoreboardRankings, as your privacy settings allow.read:scoreboard
GET/api/v1/commissions/summaryExpected, received, debt and net for a period.read:commissions
POST/api/v1/reports/{kind}/jobsUpload policy reports, statements and debt reports.ingest:reports
POST/api/leads/inboundLead vendors post leads; Vora dedupes, scrubs and routes them.lead key

The floor hears about it at 7:02pm, not Monday

Post new deals and approvals to your agency's Discord, plus a daily leaderboard that keeps the floor competitive.

Pick which channel gets sales, approvals and the leaderboard, write the message with placeholders, and choose whether client names appear at all. Mentions are always switched off, so a name can never ping the whole server.

#sales

VorabotToday at 7:02pm

New Deal Posted

Agent
Jordan Pierce
Carrier
American Amicable
Product
Senior Choice Immediate
Annual Premium
$764.28

Harborline Insurance Agency · Vora

#approvals

VorabotToday at 7:15pm

Application Approved

Agent
Keisha Monroe
Carrier
Mutual of Omaha
Product
Living Promise
Annual Premium
$1,128.00

Harborline Insurance Agency · Vora

Example posts from the default templates.

Press ⌘K and go

Press ⌘K to search agents, clients and policies or jump to any screen. About 160 help articles live inside the app, with search and Ask AI.

⌘KSearch agents, clients and policy numbers
⌘⇧NPost a deal from anywhere
⌥TJump to notifications
Command palette searching agents and clients from the dashboard
  • Scoped API keys
  • Masked client data in every response
  • HMAC-signed webhooks
  • Discord deal and leaderboard posts
  • Inbound leads endpoint
  • Command palette and shortcuts
See every integration

Wire Vora into the tools your floor already watches

Tell us what you connect today. We will set up your keys, webhooks and Discord channels with you.