curl --request GET \
--url https://mcp.arlohealth.ai/api/profile \
--header 'Authorization: Bearer <token>'import requests
url = "https://mcp.arlohealth.ai/api/profile"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://mcp.arlohealth.ai/api/profile', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://mcp.arlohealth.ai/api/profile",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://mcp.arlohealth.ai/api/profile"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://mcp.arlohealth.ai/api/profile")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://mcp.arlohealth.ai/api/profile")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"accountId": "<string>",
"status": "<string>",
"tier": "connected",
"capabilities": {},
"connections": [
{
"id": "<string>",
"type": "insurance",
"patientId": "<string>",
"source": "<string>",
"status": "importing",
"linkedAt": "<string>",
"lastSyncAt": "<string>",
"expiresAt": "<string>",
"coverage": {}
}
],
"patients": [
{
"patientId": "<string>",
"firstName": "<string>",
"lastName": "<string>",
"displayName": "<string>",
"gender": "Female",
"phone": "<string>",
"email": "jsmith@example.com",
"birthDate": {
"year": 123,
"month": 123,
"day": 123
},
"isDefault": true,
"address": "<string>",
"address2": "<string>",
"city": "<string>",
"state": "<string>",
"country": "US",
"zip": "<string>",
"medications": [
{
"title": "<string>",
"description": "<string>"
}
],
"conditions": [
{
"title": "<string>",
"description": "<string>"
}
],
"allergies": [
{
"title": "<string>",
"severity": "<string>"
}
]
}
],
"regionSupported": true,
"regionNote": "<string>",
"healthRecords": {}
}{
"error": "<string>",
"needsAuth": true
}Get Profile
Returns the account, patients, tier, capabilities, connections and health-record counts.
curl --request GET \
--url https://mcp.arlohealth.ai/api/profile \
--header 'Authorization: Bearer <token>'import requests
url = "https://mcp.arlohealth.ai/api/profile"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://mcp.arlohealth.ai/api/profile', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://mcp.arlohealth.ai/api/profile",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://mcp.arlohealth.ai/api/profile"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://mcp.arlohealth.ai/api/profile")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://mcp.arlohealth.ai/api/profile")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"accountId": "<string>",
"status": "<string>",
"tier": "connected",
"capabilities": {},
"connections": [
{
"id": "<string>",
"type": "insurance",
"patientId": "<string>",
"source": "<string>",
"status": "importing",
"linkedAt": "<string>",
"lastSyncAt": "<string>",
"expiresAt": "<string>",
"coverage": {}
}
],
"patients": [
{
"patientId": "<string>",
"firstName": "<string>",
"lastName": "<string>",
"displayName": "<string>",
"gender": "Female",
"phone": "<string>",
"email": "jsmith@example.com",
"birthDate": {
"year": 123,
"month": 123,
"day": 123
},
"isDefault": true,
"address": "<string>",
"address2": "<string>",
"city": "<string>",
"state": "<string>",
"country": "US",
"zip": "<string>",
"medications": [
{
"title": "<string>",
"description": "<string>"
}
],
"conditions": [
{
"title": "<string>",
"description": "<string>"
}
],
"allergies": [
{
"title": "<string>",
"severity": "<string>"
}
]
}
],
"regionSupported": true,
"regionNote": "<string>",
"healthRecords": {}
}{
"error": "<string>",
"needsAuth": true
}Authorizations
OAuth 2.1 with PKCE
Response
User profile
The account, its patients, and what it can do right now. Nothing on the
profile gates the account: capabilities says what is ready and what
each capability still needs, and capabilities.visit.atPayment lists
what the visit payment link collects at booking unless saved first.
ONBOARDED for every first-party account from signup.
linked = at least one insurance connection is ready for the account holder.
connected, linked Per capability (conversations, prescriptions, careRequests, pricing,
networkStatus, claims, visit): { ready: true } or { ready: false, needs: { field: [sources] } }, plus optional better. Sources:
params (pass it on the call), profile (PATCH /api/profile/patient),
link (POST /api/connections/insurance), payPage (the visit payment
link collects it).
Show child attributes
Show child attributes
Every linked source on the account, one entry per patient profile per source.
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Record counts per category from the account holder's connected insurance; never the records themselves.
Was this page helpful?