> ## 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.

# Profile

> Read patient profiles, capabilities, and update patient information

## `get_user_profile`

Returns the account's `tier`, `capabilities`, `connections`, `patients`, region support, and health-record counts.

| Field             | Meaning                                                                                                                                        |
| ----------------- | ---------------------------------------------------------------------------------------------------------------------------------------------- |
| `tier`            | `connected` means the patient is signed in. `linked` means an insurance connection for the account holder is ready.                            |
| `capabilities`    | Readiness for conversations, prescriptions, care actions, pricing, network status, claims, and visits.                                         |
| `connections`     | Linked sources for each patient profile, with an `id`, `patientId`, `source`, and status such as `importing`, `ready`, `failed`, or `expired`. |
| `patients`        | Account-holder and dependent profiles. Use a profile's `patientId` when an action targets that person.                                         |
| `healthRecords`   | Counts and connection summary only. Call `get_health_records` to read records.                                                                 |
| `regionSupported` | Whether the patient's home state is a region Arlo serves; care uses the patient's physical location at care time.                              |

Each entry in `capabilities` has `ready: true`, or `ready: false` with `needs`; some entries also include `better`. The source labels explain how an input can be supplied:

| Source    | Supply the input with                                        |
| --------- | ------------------------------------------------------------ |
| `params`  | The relevant tool call; pricing plan details use `planHints` |
| `profile` | `update_patient_info`                                        |
| `link`    | `connect_insurance`                                          |
| `payPage` | The Stripe page linked from the visit payment gate           |

`capabilities.visit.atPayment` lists the identity fields still needed at the payment page. A provider visit needs first name, last name, date of birth, gender, and a home address. The payment page collects missing values; save them in the profile first to avoid entering them there.

### Example response

```json theme={null}
{
    "accountId": "account_example",
    "status": "ONBOARDED",
    "tier": "linked",
    "capabilities": {
        "conversations": { "ready": true },
        "prescriptions": { "ready": true },
        "careRequests": { "ready": true },
        "pricing": { "ready": true, "better": { "plan": ["Example plan"] } },
        "networkStatus": { "ready": true },
        "claims": { "ready": true },
        "visit": { "ready": true, "atPayment": [] }
    },
    "connections": [
        {
            "id": "connection_example",
            "type": "insurance",
            "patientId": "patient_example",
            "source": "Example insurer",
            "status": "ready",
            "linkedAt": "2026-01-01T00:00:00.000Z",
            "lastSyncAt": "2026-01-01T00:00:00.000Z",
            "expiresAt": "2026-12-31T00:00:00.000Z",
            "coverage": {
                "payer": "Example insurer",
                "plan": "Example plan",
                "periodEnd": "2026-12-31"
            }
        }
    ],
    "patients": [
        {
            "patientId": "patient_example",
            "firstName": "Example",
            "lastName": "Patient",
            "displayName": "Example Patient",
            "gender": "Female",
            "phone": "[redacted]",
            "email": "patient@example.com",
            "birthDate": { "year": 1990, "month": 3, "day": 15 },
            "isDefault": true,
            "address": "100 Example St",
            "address2": "",
            "city": "Example City",
            "state": "CA",
            "country": "US",
            "zip": "00000",
            "medications": [{ "title": "Example medication", "description": "Example details" }],
            "conditions": [{ "title": "Example condition", "description": "Example details" }],
            "allergies": [{ "title": "Example allergy", "severity": "low" }]
        }
    ],
    "regionSupported": true,
    "healthRecords": {
        "connected": true,
        "payer": "Example insurer",
        "importedAt": "2026-01-01T00:00:00.000Z",
        "lastSyncedAt": "2026-01-01T00:00:00.000Z",
        "syncStatus": "ready",
        "syncInProgress": false,
        "syncNote": null,
        "hasRecords": true,
        "totalRecords": 2,
        "recordCounts": {
            "coverage": 1,
            "conditions": 0,
            "medications": 1,
            "allergies": 0,
            "immunizations": 0,
            "visits": 0,
            "claims": 0,
            "labs": 0,
            "vitals": 0
        },
        "note": "Example record summary."
    }
}
```

## `update_patient_info`

Updates patient demographics, contact details, or medical history. Fields are optional; use `patientId` from `get_user_profile` to target a dependent. Without it, the account's default patient is updated.

| Parameter                                     | Type    | Details                                                                                       |
| --------------------------------------------- | ------- | --------------------------------------------------------------------------------------------- |
| `patientId`                                   | string  | Patient profile to update                                                                     |
| `firstName`, `lastName`, `displayName`        | string  | Patient name and preferred display name                                                       |
| `birthDate`                                   | object  | `year`, `month`, and `day`                                                                    |
| `gender`                                      | string  | `Female`, `Male`, or `Other`                                                                  |
| `phone`                                       | string  | US phone number; prescriptions are delivered by SMS                                           |
| `email`                                       | string  | Email address                                                                                 |
| `address`, `address2`, `city`, `state`, `zip` | string  | Home address; `state` is not the care region                                                  |
| `country`                                     | string  | `US`                                                                                          |
| `medications`, `conditions`, `allergies`      | array   | Medical-history entries                                                                       |
| `replaceMedicalHistory`                       | boolean | Defaults to `false`; when true, stores each supplied medical-history list exactly as provided |

Medical-history lists merge by title by default: matching titles are updated, additional titles are appended, and unmentioned entries remain. Set `replaceMedicalHistory: true` when supplying a complete list.

The result includes `success`, `patientId`, and `updatedFields`. Medical-history field names in `updatedFields` use `medication`, `condition`, and `allergy`.

### Example response

```json theme={null}
{
    "success": true,
    "patientId": "patient_example",
    "updatedFields": ["firstName", "lastName"]
}
```
