REST API overview
Same data as MCP, but as standard HTTP. Useful for Zapier, custom ETL, or any tool that doesn't speak MCP.
Updated 2026-04-24 · Edit this page on GitHub
title: "REST API overview" description: "Same data as MCP, but as standard HTTP. Useful for Zapier, custom ETL, or any tool that doesn't speak MCP." order: 2 category: "api" updated_at: "2026-04-24"
Every MCP tool has an HTTP twin at /api/admin/v1/*. Same rlt_mcp_ token works on both surfaces; same 60-qph rate limit is shared across them.
Quick start
# 1. Grab your token from /admin/integrations/mcp (owner-only)
# 2. Fetch the OpenAPI spec (unauthenticated)
curl https://<tenant>.app.ralthealth.com/api/admin/v1/openapi.json
# 3. Call any endpoint with Bearer auth
curl -H "Authorization: Bearer rlt_mcp_..." \
https://<tenant>.app.ralthealth.com/api/admin/v1/health
Endpoints
| Method + Path | What |
|---|---|
GET /api/admin/v1/analytics/revenue-overview | Revenue Overview panel data |
GET /api/admin/v1/analytics/ytd-billables | YTD Billables panel data |
GET /api/admin/v1/analytics/yoy-comparison | YoY Comparison panel data |
GET /api/admin/v1/patient-flow | List appointments (anonymous P-XXXX codes) |
GET /api/admin/v1/patient-flow/{appointmentId} | Single appointment + transition history |
GET /api/admin/v1/billables | List billable events with filters |
GET /api/admin/v1/audit-log | Search audit log |
GET /api/admin/v1/modules | List enabled modules |
GET /api/admin/v1/integrations/status | Integration connection status |
GET /api/admin/v1/health | {ok, server_version, ...} |
GET /api/admin/v1/openapi.json | OpenAPI 3.1 spec (public) |
Common query params: window, start, end, provider, payer. Endpoint-specific params documented in the OpenAPI spec.
Authoritative docs
Full reference lives in the dashboard repo:
→ admin-api-integration.md on GitHub
Covers:
- All 10 endpoints with parameter details
- Response schemas
- Error format (RFC 7807 problem+json)
- Rate-limit mechanics
- PHI safeguard behavior
- OpenAPI client-generation recipes (TypeScript, Python)
- CORS policy
Client generation
Any OpenAPI 3.1 codegen tool works:
npx openapi-typescript https://<tenant>.app.ralthealth.com/api/admin/v1/openapi.json -o rounds-client.d.ts
or Python:
openapi-python-client generate --url https://<tenant>.app.ralthealth.com/api/admin/v1/openapi.json
No official SDK in v1 — customers own their clients.
Rate limits
Shared with MCP. 60 requests/hour per token across both surfaces combined. A token that hit MCP 40 times and REST 25 times in the same hour returns 429 on its 66th call.
Security + CORS
- Bearer auth required on every endpoint (except
/openapi.json) - Same-origin only; no CORS allowlist in v1 — call from your server, not a browser
- Every call writes to
mcp_query_log+audit_logwithrest:prefix intool_nameto distinguish from MCP
If you hit a problem
Most REST issues are in the dashboard operator runbook: → runbook.md § MCP server operations (REST + MCP share the troubleshooting paths)
Or email support@ralthealth.com.