Australian-made and AHPRA-native — built for AU cosmetic & aesthetics clinics.

Ruevii
Developers

Build on Ruevii.REST API, webhooks, embeds.

Public REST API, signed webhooks, and embeddable booking widgets. Authenticated with API keys, OAuth coming soon. Built for clinic partners, agencies and in-house product teams.

v1 stableAU data residencyOpenAPI 3.1

REST API

Every entity in the schema is queryable: clients, appointments, sales, conversations, messages, memberships and gift cards — JSON in, JSON out.

Webhooks

Signed delivery of events: appointment.created, sale.completed, message.received and more. Retries with exponential backoff.

Embeds

Drop-in booking widget, payment link, and intake form — branded to your clinic and embeddable on Squarespace, Webflow or vanilla HTML.

REST

Real columns, real enums, real responses.

Every endpoint mirrors the production schema. No translation layer, no opaque IDs — appointments hang off resources, clients are keyed by client_uuid, and money is integer cents. The same shapes your dashboard reads.

  • All endpoints under /v1 — versioned, never breaking
  • Cursor-based pagination on every list endpoint
  • Bearer-token auth, scoped per workspace
ruevii.app / v1/appointments
GET/v1/appointments?limit=2
Authorization:Bearer rk_live_a1b2…c9d0
200 OKapplication/json
{
  "data": [
    {
      "id": "apt_4f7c2a",
      "starts_at": "2026-06-04T10:30:00+10:00",
      "ends_at":   "2026-06-04T11:15:00+10:00",
      "status":    "confirmed",
      "client_uuid": "c_8a1d…",
      "resource_id": "res_nurse_eliza",
      "service_id": 142,
      "title": "Anti-wrinkle review — upper face"
    },
    {
      "id": "apt_4f7c2b",
      "starts_at": "2026-06-04T11:30:00+10:00",
      "ends_at":   "2026-06-04T12:00:00+10:00",
      "status":    "completed",
      "client_uuid": "c_91b2…",
      "resource_id": "res_room_2",
      "service_id": 207,
      "title": "Skin consult"
    }
  ],
  "next_cursor": "eyJpZCI6ImFwdF80ZjdjMmIifQ"
}
POST/v1/sales→ 201 Created
{
  "id":            "sale_2e9a",
  "sale_number":   "S-10428",
  "client_uuid":   "c_8a1d…",
  "subtotal_cents": 47818,
  "gst_cents":       4782,
  "total_cents":    52600,
  "status":        "COMPLETED",
  "payment_method":"EFT_POS",
  "paid_at":       "2026-06-02T14:08:11+10:00"
}

Events

Subscribe to what your stack cares about.

Webhooks fire the moment something changes in a clinic. Subscribe per event type, verify the signature, and let your stack react — sync to a data warehouse, post to Slack, or trigger your own automations.

  • HMAC-SHA256 signature in the X-Ruevii-Signature header
  • 30 event types across appointments, sales and conversations
  • Automatic retries for 24 hours with exponential backoff
ruevii.app / webhooks/deliveries
POSThttps://your-api.com/webhooks
X-Ruevii-Event:appointment.createdX-Ruevii-Signature:t=1717294091,v1=8f3c…
{
  "id":         "evt_01HQ9Z…",
  "type":       "appointment.created",
  "created_at": "2026-06-02T09:14:33+10:00",
  "clinic_id":  "cli_skin_co_syd",
  "data": {
    "id":          "apt_4f7c2a",
    "starts_at":   "2026-06-04T10:30:00+10:00",
    "ends_at":     "2026-06-04T11:15:00+10:00",
    "status":      "pending",
    "client_uuid": "c_8a1d…",
    "resource_id": "res_nurse_eliza",
    "service_id":  142,
    "title":       "Anti-wrinkle review — upper face",
    "ai_noshow_tier": "LOW"
  }
}
Recent events
  • sale.completedevt_01HQ9Y…200
  • message.receivedevt_01HQ9X…200
  • appointment.no_showevt_01HQ9W…200
  • payment_request.paidevt_01HQ9V…200
Auth

Auth that's boring, by design.Rate limits that scale with you.

Authentication

  • API keyScoped per workspace. Rotatable from the dashboard.
  • PermissionsRead-only, read-write, or per-resource scopes.
  • OAuth 2.0On the roadmap for partner-built apps. Q4 2026.

Rate limits

  • Free / Pro60 requests per minute per API key.
  • Practice600 requests per minute, burst to 1,200 for 10 seconds.
  • EnterpriseCustom limits — talk to your account manager.

429 responses include Retry-After in seconds.

99.95%

Uptime · last 12 months

<200ms

p50 response · AU edge

AU-hosted

Sydney region · data residency

We wired our reporting pipeline against the Ruevii API in an afternoon. Schemas matched the docs exactly — the only surprise was how little there was to debug.
Tom Bridges · Engineering lead, Atelier Cosmetic Group
SDKs

Type-safe clients.Generated from the schema you read.

Use the SDK in your language of choice, or call the REST API directly. Each SDK is generated from the same OpenAPI spec so the types match the wire format exactly.

  • 01TypeScript
    Beta

    npm i @ruevii/sdk · typed end-to-end against our OpenAPI schema

  • 02Python
    Coming soon

    pip install ruevii · for back-office scripts and data pipelines

  • 03Ruby
    Planned

    Q1 2027 — vote on the roadmap to bump priority

Build on a calmer clinic stack.Ship in an afternoon.