Users
Medplum supports the standard SCIM Users
API endpoints.
Schemas
SCIM resources include a schemas
property that declares which schemas a resource conforms to.
The base User
schema is urn:ietf:params:scim:schemas:core:2.0:User
.
User Type and Username
Medplum users always have a corresponding FHIR "profile" resource, which can be a Patient
, Practitioner
, or RelatedPerson
. To specify the desired FHIR resource type, you must include a userType
property with the FHIR resource type.
For example, consider this Practitioner
:
{
"schemas": ["urn:ietf:params:scim:schemas:core:2.0:User"],
"userType": "Practitioner",
"name": {
"givenName": "Alice",
"familyName": "Smith"
},
"emails": [{ "value": "alice@example.com" }]
}
For example, consider this Patient
:
{
"schemas": ["urn:ietf:params:scim:schemas:core:2.0:User"],
"userType": "Patient",
"name": {
"givenName": "Bob",
"familyName": "Jones"
},
"emails": [{ "value": "bob@example.com" }]
}
The SCIM userName
property will be the system generated FHIR resource ID. This can be used in combination with the SCIM userType
to identify the FHIR resource for the user.
Create a user
Create a user by making an HTTP POST
request to https://api.medplum.com/scim/v2/Users
curl https://api.medplum.com/scim/v2/Users \
-H "Authorization: Bearer MY_ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"schemas": ["urn:ietf:params:scim:schemas:core:2.0:User"],
"userType": "Practitioner",
"name": {
"givenName": "Alice",
"familyName": "Smith"
},
"userName": "alice@example.com",
"emails": [
{
"value": "alice@example.com"
}
]
}'
Read a user
Read a user by making an HTTP GET
request to https://api.medplum.com/scim/v2/Users/{id}
curl https://api.medplum.com/scim/v2/Users/MY_USER_ID \
-H "Authorization: Bearer MY_ACCESS_TOKEN"
Update a user
Update a user by making an HTTP PUT
request to https://api.medplum.com/scim/v2/Users/{id}
curl -X PUT https://api.medplum.com/scim/v2/Users \
-H "Authorization: Bearer MY_ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"schemas": ["urn:ietf:params:scim:schemas:core:2.0:User"],
"userType": "Practitioner",
"id": "41ecbf96-8296-4fac-801c-5e78042ba436",
"name": {
"givenName": "Alice",
"familyName": "Smith"
},
"userName": "alice@example.com",
"emails": [
{
"value": "alice@example.com"
}
],
"externalId": "test-external-id"
}'
Delete a user
Delete a user by making an HTTP DELETE
request to https://api.medplum.com/scim/v2/Users/{id}
curl -X DELETE https://api.medplum.com/scim/v2/Users/MY_USER_ID \
-H "Authorization: Bearer MY_ACCESS_TOKEN"
Note that deleting the user does not delete any of the corresponding FHIR resources.
Search users
Search for users by making an HTTP GET
request to https://api.medplum.com/scim/v2/Users
curl https://api.medplum.com/scim/v2/Users \
-H "Authorization: Bearer MY_ACCESS_TOKEN"