Outbound API

Outbound API documentation

Read-only REST API for pulling leads and patients out of HomeoAxis into your own systems (CRM, spreadsheet, Zapier, n8n). Authenticated by a per-organization API key.

Authentication

Every request is authenticated by a per-organization API key, sent as the X-Api-Key header (or an api_key query parameter, if your tool can’t set custom headers). The key scopes every response to that one clinic organization automatically — there is no way to read another organization’s data with a valid key.

Generate a key from inside HomeoAxis: Leads → Connect → Integrations → Outbound API Keys. Each key is shown once at creation time and stored hashed — keep it somewhere safe, since it can’t be retrieved again (only revoked and replaced).

curl https://homeoaxis.com/api/v1/integration/leads \
  -H "X-Api-Key: your_api_key_here"

Rate limit: 60 requests/minute per key. All endpoints are read-only (GET).

GET /api/v1/integration/leads

New enquiries captured by the clinic — website forms, ad webhooks, walk-ins, phone calls.

Query parameters

sinceISO date/datetimeOnly leads created on or after this timestamp.
statusstringFilter to one status: new, contacted, followup, converted, invalid.
per_pageintegerPage size, 1–100 (default 50).

Response fields (per lead)

idintegerLead ID.
namestringLead's name.
phonestringContact phone number.
emailstring | nullContact email, if given.
problemstring | nullReason for enquiry / chief complaint, if given.
sourcestring | nullHow the lead arrived — facebook, google, organic, referral, walkin, youtube, other.
statusstringnew, contacted, followup, converted, or invalid.
clinic_namestring | nullThe clinic the lead was captured for.
consultation_modestring | nullonline or in_person, if a preference was given.
preferred_datedate | nullRequested appointment date, if given.
preferred_timestring | nullRequested appointment time, if given.
created_atISO 8601When the lead was captured.

Example response

{
  "success": true,
  "message": "Success",
  "data": [
    {
      "id": 4021,
      "name": "Anita Sharma",
      "phone": "9876543210",
      "email": "anita@example.com",
      "problem": "Chronic migraine",
      "source": "google",
      "status": "new",
      "clinic_name": "Dr. Deepika's Homeopathy - Sector 62",
      "consultation_mode": "in_person",
      "preferred_date": "2026-09-20",
      "preferred_time": "17:30",
      "created_at": "2026-09-14T09:12:03+00:00"
    }
  ],
  "meta": { "current_page": 1, "last_page": 3, "per_page": 50, "total": 128 }
}

GET /api/v1/integration/patients

Patient records, enriched with billing and visit summary fields useful for outbound automation (payment reminders, recall campaigns).

Query parameters

sinceISO date/datetimeOnly patients created on or after this timestamp.
per_pageintegerPage size, 1–100 (default 50).

Response fields (per patient)

idintegerPatient ID.
namestringPatient's name.
phonestringContact phone number.
emailstring | nullContact email, if on file.
case_numberstringClinic case number.
genderstring | nullPatient's gender, if on file.
agenumber | nullPatient's age, if on file.
citystring | nullPatient's city, if on file.
created_atISO 8601When the patient record was created.
pending_invoiceobject{ outstanding_amount, invoice_count, oldest_due_date } across every unpaid, non-cancelled invoice.
last_consultation_idinteger | nullID of the most recent completed consultation.
last_visit_datedate | nullDate of the most recent completed consultation.
last_visit_clinicstring | nullClinic where the last visit happened.
next_followup_datedate | nullNearest upcoming follow-up date across all consultations, if any.

Errors

401Missing API key.No X-Api-Key header or api_key query parameter was sent.
401Invalid or revoked API key.The key doesn't match an active key on file.
403Not permitted.The key exists but isn't scoped to read this resource (leads or patients).

Need a key, or want to connect via Zapier instead?

Generate an API key from Leads → Connect → Integrations, or use the HomeoAxis Zapier integration for a no-code setup.

See plans