Documentation Index
Fetch the complete documentation index at: https://docs.arlohealth.ai/llms.txt
Use this file to discover all available pages before exploring further.
Overview
Arlo Health provides a REST API for all integrations. This is the primary interface used by backend services, mobile apps, and AI agents. Our MCP Tools wrap these REST endpoints to provide a convenient interface for AI agents that support Model Context Protocol.
Base URL
https://mcp.arlohealth.ai
All REST endpoints are prefixed with /rest/.
Authentication
Arlo uses OAuth 2.1 with PKCE for authentication. All REST endpoints (except discovery) require a valid Bearer token.
Discovery Endpoints
| Endpoint | Description |
|---|
/.well-known/mcp.json | MCP Server Card for capability discovery |
/.well-known/oauth-protected-resource | OAuth protected resource metadata (RFC 9728) |
/.well-known/oauth-authorization-server | OAuth authorization server metadata |
OAuth Flow
Making Authenticated Requests
Include your access token in the Authorization header:
curl -X GET https://mcp.arlohealth.ai/rest/profile \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN"
Available Endpoints
Consultations
| Method | Endpoint | Description |
|---|
| GET | /rest/consultations | List user’s consultations |
| POST | /rest/consultations | Start a new consultation |
| GET | /rest/consultations/{id} | Get consultation status and messages |
| DELETE | /rest/consultations/{id} | Cancel a consultation |
| POST | /rest/consultations/{id}/messages | Send a message |
| POST | /rest/consultations/{id}/confirm | Confirm provider connection |
| GET | /rest/consultations/{id}/notes | Get clinical notes |
| POST | /rest/consultations/{id}/media | Get upload URL for media |
| GET | /rest/consultations/{id}/media/{messageId} | Get media download URL |
Profile
| Method | Endpoint | Description |
|---|
| GET | /rest/profile | Get user profile |
| PATCH | /rest/profile/patient | Update patient information |
Subscriptions
| Method | Endpoint | Description |
|---|
| GET | /rest/subscription | Get subscription status |
| POST | /rest/subscription/setup | Create payment setup |
| POST | /rest/subscription/activate | Activate subscription |
| DELETE | /rest/subscription | Cancel subscription |
Prescriptions
| Method | Endpoint | Description |
|---|
| GET | /rest/prescriptions | List prescriptions |
| GET | /rest/prescriptions/{id} | Get prescription details |
| POST | /rest/prescriptions/{id}/pharmacy | Select pharmacy |
| GET | /rest/pharmacies | Search for pharmacies |
Webhooks
| Method | Endpoint | Description |
|---|
| GET | /rest/webhook | Get webhook status |
| POST | /rest/webhook | Register or update webhook |
Beta
| Method | Endpoint | Description |
|---|
| POST | /rest/beta/validate | Validate beta access code |
Quick Start Example
Here’s a complete example of starting a consultation:
# 1. Start a consultation
curl -X POST https://mcp.arlohealth.ai/rest/consultations \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"contextMessage": "I have had a sore throat for 3 days and it hurts to swallow. No fever but I feel tired."
}'
# Response:
# {
# "conversationId": "abc123",
# "status": "TRIAGING",
# "triageResponse": "I understand you have a sore throat. Can you tell me more about..."
# }
# 2. Send a follow-up message
curl -X POST https://mcp.arlohealth.ai/rest/consultations/abc123/messages \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"text": "No white patches, but my throat is red and swollen."
}'
# 3. Check consultation status
curl -X GET https://mcp.arlohealth.ai/rest/consultations/abc123 \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN"
Error Responses
All errors follow a consistent format:
{
"error": "error_code",
"reason": "Human-readable explanation",
"needsAuth": false
}
Common Error Codes
| Code | Description |
|---|
not_authenticated | User needs to sign up or sign in |
subscription_required | User needs to set up payment |
payment_hold_failed | Card declined or insufficient funds |
no_payment_gate | Consultation not in PAYMENT_REQUIRED status |
invalid_beta_code | Beta code is not valid |
Rate Limits
API requests are rate-limited to ensure service quality. Contact support if you need higher limits.
Support