Create a user
Creates a new user and grants them institution membership in the institution tied to your Basic Auth integration credentials. You do not pass institutionId in the request body — the API resolves the institution from your integration. The user is created with an inactive membership, optional inline membership demographics and custom data fields, and an invitation email is sent automatically. Idempotent via Idempotency-Key header.
POST
/usersHeader parameters
Idempotency-KeystringrequiredUnique key to prevent duplicate creates
Request body
requiredapplication/jsonemailstring<email>requiredfirstNamestringrequiredlastNamestringrequiredimagestring<uri> | nulldataFieldsUserDataFieldEntry[]Show propertiesHide properties
Array of
UserDataFieldEntryfieldNamestringrequiredvaluestringrequiredcodestringpreferredNamestringdateOfBirthstring<date>genderstringAllowed:
MALEFEMALEDIVERSEnationalitiesstring[]birthNamestringcountryOfBirthstringplaceOfBirthCitystringResponses
201User created
dataUserrequiredShow propertiesHide properties
idstringrequirednamestringrequiredemailstring<email>requiredimagestring | nullrequiredactivityStatusUserActivityStatusrequiredShow propertiesHide properties
isActivebooleanrequiredisActiveFromstring<date-time> | nullrequiredisActiveUntilstring<date-time> | nullrequiredmetaResponseMetarequiredShow propertiesHide properties
requestIdstringrequiredtimestampstring<date-time>requiredversionstringrequiredAllowed:
v4400Bad Request
typestringrequiredAllowed:
errorcodestringrequiredAllowed:
bad_requestunauthorizedforbiddenresource_not_foundconflictvalidation_failedidempotency_key_reusedrate_limit_exceededinternal_errortitlestringrequiredstatusintegerrequireddetailstringrequiredinstancestringerrorsobject[]Show propertiesHide properties
Array of
objectfieldstringmessagestring401Unauthorized
typestringrequiredAllowed:
errorcodestringrequiredAllowed:
bad_requestunauthorizedforbiddenresource_not_foundconflictvalidation_failedidempotency_key_reusedrate_limit_exceededinternal_errortitlestringrequiredstatusintegerrequireddetailstringrequiredinstancestringerrorsobject[]Show propertiesHide properties
Array of
objectfieldstringmessagestring409Conflict
typestringrequiredAllowed:
errorcodestringrequiredAllowed:
bad_requestunauthorizedforbiddenresource_not_foundconflictvalidation_failedidempotency_key_reusedrate_limit_exceededinternal_errortitlestringrequiredstatusintegerrequireddetailstringrequiredinstancestringerrorsobject[]Show propertiesHide properties
Array of
objectfieldstringmessagestring429Too Many Requests
typestringrequiredAllowed:
errorcodestringrequiredAllowed:
bad_requestunauthorizedforbiddenresource_not_foundconflictvalidation_failedidempotency_key_reusedrate_limit_exceededinternal_errortitlestringrequiredstatusintegerrequireddetailstringrequiredinstancestringerrorsobject[]Show propertiesHide properties
Array of
objectfieldstringmessagestring500Internal Server Error
typestringrequiredAllowed:
errorcodestringrequiredAllowed:
bad_requestunauthorizedforbiddenresource_not_foundconflictvalidation_failedidempotency_key_reusedrate_limit_exceededinternal_errortitlestringrequiredstatusintegerrequireddetailstringrequiredinstancestringerrorsobject[]Show propertiesHide properties
Array of
objectfieldstringmessagestringRequest
curl -X POST "https://fuxam.app/api/v4/users" \
-H "Idempotency-Key: string" \
-H "Content-Type: application/json" \
-d '{
"email": "jane@example.com",
"firstName": "Jane",
"lastName": "Doe",
"image": "<uri>",
"dataFields": [
{
"fieldName": "studentId",
"value": "S-12345"
}
],
"code": "STU-001",
"preferredName": "Alex",
"dateOfBirth": "1998-05-12",
"gender": "MALE",
"nationalities": [
"DE"
],
"birthName": "string",
"countryOfBirth": "string",
"placeOfBirthCity": "string"
}'const response = await fetch("https://fuxam.app/api/v4/users", {
method: "POST",
headers: {
"Idempotency-Key": "string",
"Content-Type": "application/json"
},
body: JSON.stringify({
"email": "jane@example.com",
"firstName": "Jane",
"lastName": "Doe",
"image": "<uri>",
"dataFields": [
{
"fieldName": "studentId",
"value": "S-12345"
}
],
"code": "STU-001",
"preferredName": "Alex",
"dateOfBirth": "1998-05-12",
"gender": "MALE",
"nationalities": [
"DE"
],
"birthName": "string",
"countryOfBirth": "string",
"placeOfBirthCity": "string"
})
});import requests
response = requests.post(
"https://fuxam.app/api/v4/users",
headers={
"Idempotency-Key": "string",
"Content-Type": "application/json"
},
json={
"email": "jane@example.com",
"firstName": "Jane",
"lastName": "Doe",
"image": "<uri>",
"dataFields": [
{
"fieldName": "studentId",
"value": "S-12345"
}
],
"code": "STU-001",
"preferredName": "Alex",
"dateOfBirth": "1998-05-12",
"gender": "MALE",
"nationalities": [
"DE"
],
"birthName": "string",
"countryOfBirth": "string",
"placeOfBirthCity": "string"
},
)Response
{
"data": {
"id": "clx1234567890",
"name": "Jane Doe",
"email": "jane@example.com",
"image": "string",
"activityStatus": {
"isActive": true,
"isActiveFrom": "2026-01-01T00:00:00.000Z",
"isActiveUntil": "2024-01-01T00:00:00Z"
}
},
"meta": {
"requestId": "req_1234567890_abc",
"timestamp": "2026-06-02T07:00:00.000Z",
"version": "v4"
}
}{
"type": "error",
"code": "resource_not_found",
"title": "Not Found",
"status": 404,
"detail": "Course not found",
"instance": "req_1234567890_abc",
"errors": [
{
"field": "string",
"message": "string"
}
]
}{
"type": "error",
"code": "resource_not_found",
"title": "Not Found",
"status": 404,
"detail": "Course not found",
"instance": "req_1234567890_abc",
"errors": [
{
"field": "string",
"message": "string"
}
]
}{
"type": "error",
"code": "resource_not_found",
"title": "Not Found",
"status": 404,
"detail": "Course not found",
"instance": "req_1234567890_abc",
"errors": [
{
"field": "string",
"message": "string"
}
]
}{
"type": "error",
"code": "resource_not_found",
"title": "Not Found",
"status": 404,
"detail": "Course not found",
"instance": "req_1234567890_abc",
"errors": [
{
"field": "string",
"message": "string"
}
]
}{
"type": "error",
"code": "resource_not_found",
"title": "Not Found",
"status": 404,
"detail": "Course not found",
"instance": "req_1234567890_abc",
"errors": [
{
"field": "string",
"message": "string"
}
]
}