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

# Partner API rate limits: per key and per partner

> Hi Doctor Partner API rate limits: 600 requests per minute per key and 1,800 per partner by default, X-RateLimit headers and 429 backoff.

The Hi Doctor Partner API limits requests per API key and per partner, counted over a rolling 60-second window. By default a key may send 600 requests a minute and all your keys together 1,800 a minute. Every authenticated response reports the tightest limit in `X-RateLimit` headers, and a limited request returns `429` with `Retry-After`.

Last reviewed: 2026-11-04

## How do the limits apply?

* **Per API key.** Each key has its own request budget. The default is 600 requests per minute.
* **Per partner.** All your keys together share an aggregate budget, so creating more keys does not raise your total. The default is 1,800 requests per minute.
* **Pending upload storage.** Files uploaded but not yet attached to a consultation count towards a storage quota per partner until they expire. See [Photos and files](https://docs.hi-doctor.ai/partners/photos.md#expiry-and-use).

The values above are defaults; the limits that apply to you are the ones your `X-RateLimit-Limit` header reports. Each budget counts the requests made in the last 60 seconds, so capacity frees up gradually rather than all at once on the minute. If your volume needs higher limits, write to [hello@hi-doctor.ai](mailto:hello@hi-doctor.ai).

## Which rate limit headers are returned?

Every response to an authenticated request carries the state of the most restrictive limit that applies to it, the per-key or the per-partner budget:

| Header | Meaning |
| - | - |
| `X-RateLimit-Limit` | Requests allowed in the current window for that limit. |
| `X-RateLimit-Remaining` | Requests left in the current window. |
| `X-RateLimit-Reset` | Unix time, in seconds, when the window frees up. |
| `Retry-After` | On a `429`, the number of seconds to wait before retrying. |

Pace your requests with `X-RateLimit-Remaining`, and rely on `Retry-After` when you are limited.

## What should I do after a 429?

A limited request returns `429` with the standard envelope:

```json theme={null}
{
  "error": {
    "type": "rate_limited",
    "code": "throttled",
    "message": "Request was throttled. Expected available in 12 seconds.",
    "request_id": "req_0c9b8a7d6e5f4a3b2c1d0e9f8a7b6c5d"
  }
}
```

1. Wait at least `Retry-After` seconds.
2. Retry with exponential backoff and jitter if you are limited again.
3. For submissions, retry with the same `Idempotency-Key`. See [Errors](https://docs.hi-doctor.ai/partners/errors.md) for the envelope.

## How do I stay under the limits?

* Use [webhooks](https://docs.hi-doctor.ai/partners/webhooks.md) instead of polling consultations.
* Retry submissions with the same key from [Partner API idempotency](https://docs.hi-doctor.ai/partners/idempotency.md), so a retry never creates a second consultation.
* Cache the product list, and the questionnaire schema by `schema_version` and `locale`; they change rarely.
* Spread bulk reads with [pagination](https://docs.hi-doctor.ai/partners/pagination.md) instead of parallel bursts.

## Frequently asked questions

### What are the default Partner API rate limits?

600 requests per minute per API key, and 1,800 requests per minute for all of a partner's keys together. The X-RateLimit-Limit header reports the limit that applies to you.

### Does creating more API keys raise my limit?

No. All your keys share the per-partner budget, so more keys do not raise your total.

### What kind of window do the limits use?

A rolling window: each budget counts the requests made in the last 60 seconds. X-RateLimit-Reset gives the Unix time when the window frees up.

### How long should I wait after a 429?

At least the number of seconds in the Retry-After header. If you are limited again, retry with exponential backoff and jitter.

### Can I get higher limits?

Write to [hello@hi-doctor.ai](mailto:hello@hi-doctor.ai) if your volume needs higher limits.

### Do uploads count towards a separate limit?

Files uploaded but not yet attached to a consultation count towards a storage quota per partner until they expire.

## Next steps

> [card] [Webhooks](https://docs.hi-doctor.ai/partners/webhooks.md)
>
> Replace polling with signed events.

> [card] [Partner API pagination](https://docs.hi-doctor.ai/partners/pagination.md)
>
> Read lists in pages instead of bursts.

Commercial questions: read the [partnership FAQ](https://docs.hi-doctor.ai/partnerships/faq.md) or write to [hello@hi-doctor.ai](mailto:hello@hi-doctor.ai).


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