Skip to main content
Each operation needs one permission. The credential must hold it, and for a personal credential the person must hold it too.

The permissions

The full table, with each operation’s REST route, MCP tool and data area, is in Operations. An integration can also read it from the API:

How access is decided

For every call, in this order:
  1. Credential. Valid, not revoked, linked to a Brelio clinic.
  2. Plan. The clinic’s plan includes API access (402 PLATFORM_PLAN_REQUIRED if not).
  3. Limits. See rate limits.
  4. Permission. The credential holds the operation’s permission; for a personal credential, the person holds it too, in the center concerned.
  5. Data area. The operation’s data area is on and, for patient data, the credential was accepted.
  6. Input, version and the operation’s own rules, exactly as in the web app.
A refusal at step 2 or later is recorded in the clinic’s activity log with its code, never with the input.

Centers

  • Organization credentials see every center.
  • Personal credentials see the centers the person sees. Filtering by a centerId outside them answers 403 CENTER_CONTEXT_FORBIDDEN.
  • When the clinic has several centers, operations that create something in one center (an appointment) or search one center’s time (free slots) need centerId. Without it they answer 422 APPOINTMENT_CENTER_REQUIRED or 422 AVAILABILITY_CENTER_REQUIRED.

Over MCP

An assistant only sees the tools whose permission you hold, so the tool list itself tells you what you can do. A tool you cannot use is not listed, rather than failing when called.

What no credential can do

  • Create keys or partner apps, or revoke a credential other than itself.
  • Turn a data area on, or accept patient data.
  • Give a key a permission its creator does not hold (403 CREDENTIAL_PERMISSION_NOT_HELD).
Those always take a person signed in to Brelio.