Skip to main content
Use this guide to create a patient profile and assign it to your profile group. Profiles are the starting point for scheduling appointments and triggering lab orders. Required scope: CREATE_USER
1

Get your profile group slug

Every profile must be assigned to a profile group that belongs to your partner account. Your profile group slug is a unique identifier you include in every create-profile request.If you don’t know your profile group slug, contact Aniva to retrieve it. You cannot create profiles without a valid slug.
2

Create the profile

Send a POST request to /api/v1/profiles with the patient’s demographic data.
The first_name field accepts only latin characters (A–Z, a–z). Names with non-latin scripts must be transliterated before submission.
If you omit email, Aniva auto-generates a placeholder email address for the profile. You can update it later with a PATCH request.
The language field controls the language Aniva uses when communicating with the patient — for example, appointment reminders and result notifications. Set it to match the patient’s preferred language. Supported values are en (English), de (German), and fi (Finnish). Defaults to en.
curl --request POST \
  --url https://anivahealth.com/api/v1/profiles \
  --header 'Content-Type: application/json' \
  --header 'x-api-key: YOUR_API_KEY' \
  --data '{
    "first_name": "Emma",
    "last_name": "Müller",
    "sex": 2,
    "date_of_birth": "1990-04-15",
    "profile_group_slug": "my-clinic-group",
    "email": "emma.muller@example.com",
    "language": "de"
  }'
A successful request returns 201 Created with the new profile object:
{
  "id": "a3f1c2e4-58b7-4d9e-b012-3c7f8a2e1d56",
  "handle": null,
  "first_name": "Emma",
  "last_name": "Müller",
  "email": "emma.muller@example.com",
  "phone": null,
  "sex": 2,
  "date_of_birth": "1990-04-15",
  "height": null,
  "weight": null,
  "language": "de",
  "created_at": "2026-04-01T09:14:22Z",
  "updated_at": null
}
Save the id — you’ll need it to schedule appointments and update the profile.
3

Update the profile (optional)

Use PATCH /api/v1/profiles/{id} to update any profile fields after creation. All fields are optional — only include the fields you want to change.The following example adds a phone number and height:
curl --request PATCH \
  --url https://anivahealth.com/api/v1/profiles/a3f1c2e4-58b7-4d9e-b012-3c7f8a2e1d56 \
  --header 'Content-Type: application/json' \
  --header 'x-api-key: YOUR_API_KEY' \
  --data '{
    "phone": "+4915123456789",
    "height": 168.5
  }'
A successful request returns 200 OK with the full updated profile object.

Error handling

StatusCauseResolution
400 Bad RequestA required field is missing, a value is out of range, or date_of_birth is not in the past.Check the error response body for the specific validation message and correct the request.
403 ForbiddenYour API key is missing the CREATE_USER scope, or you do not have access to the specified profile group.Contact Aniva to confirm your key has the required scope and profile group access.
404 Not FoundThe profile_group_slug does not match any profile group on your account.Verify the slug is correct. Contact Aniva if you are unsure of your slug.