Skip to main content

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

EndpointDescription
/.well-known/mcp.jsonMCP Server Card for capability discovery
/.well-known/oauth-protected-resourceOAuth protected resource metadata (RFC 9728)
/.well-known/oauth-authorization-serverOAuth 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

MethodEndpointDescription
GET/rest/consultationsList user’s consultations
POST/rest/consultationsStart a new consultation
GET/rest/consultations/{id}Get consultation status and messages
DELETE/rest/consultations/{id}Cancel a consultation
POST/rest/consultations/{id}/messagesSend a message
POST/rest/consultations/{id}/confirmConfirm provider connection
GET/rest/consultations/{id}/notesGet clinical notes
POST/rest/consultations/{id}/mediaGet upload URL for media
GET/rest/consultations/{id}/media/{messageId}Get media download URL

Profile

MethodEndpointDescription
GET/rest/profileGet user profile
PATCH/rest/profile/patientUpdate patient information

Subscriptions

MethodEndpointDescription
GET/rest/subscriptionGet subscription status
POST/rest/subscription/setupCreate payment setup
POST/rest/subscription/activateActivate subscription
DELETE/rest/subscriptionCancel subscription

Prescriptions

MethodEndpointDescription
GET/rest/prescriptionsList prescriptions
GET/rest/prescriptions/{id}Get prescription details
POST/rest/prescriptions/{id}/pharmacySelect pharmacy
GET/rest/pharmaciesSearch for pharmacies

Webhooks

MethodEndpointDescription
GET/rest/webhookGet webhook status
POST/rest/webhookRegister or update webhook

Beta

MethodEndpointDescription
POST/rest/beta/validateValidate 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

CodeDescription
not_authenticatedUser needs to sign up or sign in
subscription_requiredUser needs to set up payment
payment_hold_failedCard declined or insufficient funds
no_payment_gateConsultation not in PAYMENT_REQUIRED status
invalid_beta_codeBeta code is not valid

Rate Limits

API requests are rate-limited to ensure service quality. Contact support if you need higher limits.

Support