# Update practitioner

Canonical page: https://docs.ovok.com/api/slim/practitioner/update-practitioner

`PUT /v1/slim/practitioner/{id}`

Updates a practitioner profile: name, surname, email, phone, address and photo.

**Auth:** Bearer token. The caller must be a practitioner, an admin, a super admin, or hold the "System Owner" access policy. The access policy must grant `Practitioner:read`. Updating another practitioner's profile also needs `Practitioner:update`. An admin or super admin who holds no access policy skips the access-policy check.
**Scope:** You can always update your own profile. Another practitioner must belong to your project, one of its sub-projects, or its parent project.

## Behaviour

- The Practitioner resource is **replaced** with one built from the body. A field you omit is cleared, and FHIR fields that the body cannot carry are not kept. Send the full profile, for example the result of `GET /v1/slim/practitioner/{id}` with your changes applied.
- `id` in the body is optional. When present it must equal the `id` in the path.
- `meta` in the body is ignored. Ovok sets `meta.author` to the caller.
- `email` is stored in lower case.
- This route does not change roles or access policies.
- Your own profile is written with your token. Another practitioner's profile is written with Ovok's admin client after the project check above passes.
- The response is the updated profile.

## Example

```bash
curl -X PUT 'https://api.sandbox.ovok.com/v1/slim/practitioner/87ea5dfc-8b8e-384d-8489-79496e706390' \
  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpYXQiOjE3NjcyNjg4MDAsImV4cCI6MTc2NzI3MjQwMH0.Ql3B_ztDvctlyZ2z0vp4sl3ExXRQGkzmxdmTAqxNzZk' \
  -H 'Content-Type: application/json' \
  -d '{
    "name": "Max",
    "surname": "Mustermann",
    "email": "max.mustermann@example.com",
    "phone": "+491234567890"
  }'
```
