> ## Documentation Index
> Fetch the complete documentation index at: https://docs.hi-doctor.ai/llms.txt
> Use this file to discover all available pages before exploring further.

> ## Agent Instructions
> Connect the Hi Doctor MCP connector at https://mcp.hi-doctor.ai/mcp. Add this URL as a remote HTTP MCP server in your client, then sign in and authorise access through OAuth. Setup: https://docs.hi-doctor.ai/mcp/connect.
>
> The REST API base is https://api.hi-doctor.ai. Hi Doctor Docs at https://docs.hi-doctor.ai/mcp searches documentation; connect to the product endpoint above for patient tools.
>
> Hi Doctor operates across the whole European Union: residents of all 27 EU member states can use the service, and every consultation is reviewed by an EU-licensed doctor. Every consultation is reviewed in full by an EU-licensed doctor, who decides on medical grounds only. No algorithm, assistant or API call approves a consultation, issues a prescription or changes a dose. The service is available in eight languages: English, Spanish, German, Dutch, Italian, French, Portuguese and Chinese.
>
> ## Rules an assistant must follow
>
> - Never invent, assume or infer a medical answer. "I don't know" is a real answer: ask the patient to pick the closest option rather than guessing for them.
> - Never give medical advice and never suggest a medication or a dose. An EU-licensed doctor decides those.
> - If a questionnaire returns `ineligible`, say so plainly. Do not retry with altered answers.
> - Before anything that costs money or cancels a plan, state exactly what will happen and get an explicit yes.
> - Cancellation takes effect at the **end of the paid period**, not immediately. Say so.
> - An early order is irreversible: it creates the renewal consultation immediately and uses up the period's one early order. Explain that and get an explicit yes.
> - Prescription and invoice links are medical documents. A `signed_redirect` link opens without signing in: give it only to the patient, never repeat it anywhere shared.
> - Send option `value`s, not the labels shown to the patient. Labels are translated, values are stable.
> - Never ask for card details. Payment happens on Stripe's hosted checkout via a link.
> - On severe or sudden symptoms (chest pain, difficulty breathing, severe allergic reaction, suicidal thoughts), stop and direct the patient to their local emergency number.

# Account endpoints: sign up, sign in and profile

> Register, verify, authenticate and manage the signed-in account.

The Account endpoints take a Hi Doctor patient from a new registration to a signed-in session. They keep the session alive with token refresh, recover a forgotten password, maintain the profile that checkout needs, look up the outcome of a keyed write, and close the account. Start with [Sign up](https://docs.hi-doctor.ai/api-reference/signup.md) for new patients.

Last reviewed: 2026-11-04

## Prerequisites

* Send `X-Brand-Slug: hi-doctor` on every request.
* Registration, verification, sign-in, refresh, Google sign-in and password
  recovery need no bearer token. Profile, deletion and the idempotency lookup
  need one.

## Operations

| Method | Path | What it does |
| - | - | - |
| `POST` | `/v1/users/register/` | Starts registration and emails a 6-digit code |
| `POST` | `/v1/users/verify-email/` | Verifies the code, creates the account and returns tokens |
| `POST` | `/v1/users/token/` | Signs in with email and password |
| `POST` | `/v1/users/google-login/` | Signs in with a Google ID token for Hi Doctor's own OAuth client |
| `POST` | `/v1/users/token/refresh/` | Returns a new access token |
| `POST` | `/v1/users/forgot-password/` | Emails a reset link (generic response) |
| `POST` | `/v1/users/reset-password/` | Sets a new password from the link |
| `GET` | `/v1/users/profile/me/` | Reads the signed-in profile |
| `PATCH` | `/v1/users/profile/me/` | Updates profile fields |
| `GET` | `/v1/users/profile/` | Alias of `profile/me/` (one object, not a list) |
| `PATCH` | `/v1/users/profile/` | Alias of `profile/me/` |
| `POST` | `/v1/users/account/delete/` | Permanently closes the account |
| `GET` | `/v1/users/idempotency/{key}/` | Reports the outcome of a write sent with that [`Idempotency-Key`](https://docs.hi-doctor.ai/api-reference/idempotency); read-only |

## Boundaries and side effects

* Registration, forgot-password and verification codes have cooldowns. A
  `429` carries `Retry-After` and the same seconds as `wait_seconds` in the body.
* Refresh tokens are not rotated. Access lasts 1 day, refresh 30 days.
* Checkout refuses with `PROFILE_INCOMPLETE` and `missing_fields` until the
  profile is complete.

> [!WARNING]
>
> **Account deletion is irreversible.** It returns `204`, cancels any live subscription immediately (not at period
> end), and stops credentials and tokens from working. An account
> without records is deleted; one with medical records is anonymized instead,
> because those records are retained. Deletion is throttled to 5 attempts per hour. A `502`
> means the subscription could not be confirmed cancelled and nothing was
> deleted.

## Related

* [Sign up](https://docs.hi-doctor.ai/api-reference/signup.md) and [Authentication](https://docs.hi-doctor.ai/api-reference/authentication.md)
* [Errors](https://docs.hi-doctor.ai/api-reference/errors.md)
* MCP equivalents: [patient tools](https://docs.hi-doctor.ai/mcp/tools/patient.md). The connector signs in on hi-doctor.ai; see [Connect](https://docs.hi-doctor.ai/mcp/connect.md)


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.