Update a person with data provided in the request body. JSON format is expected. Users can only update themselves unless they have admin permissions. Non-admins cannot change certain protected fields. Validates role, contract_type, two_factor_authentication, email, and expiration_date. Checks user limit when activating non-bot users. Protected accounts have restrictions.
PUT
/data/persons/{instance_id}
curl
curl -X PUT "http://api.example.com/data/persons/a24a6ea4-ce75-4665-a070-57453082c25" \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-d '{
"first_name": "Jane",
"last_name": "Smith",
"email": "jane.smith@example.com",
"password": "newsecurepassword123",
"role": "manager",
"active": true,
"contract_type": "freelance",
"two_factor_authentication": "totp",
"expiration_date": "2025-12-31"
}'
import requests
url = "http://api.example.com/data/persons/a24a6ea4-ce75-4665-a070-57453082c25"
headers = {
"Authorization": "Bearer YOUR_API_TOKEN",
"Accept": "application/json",
"Content-Type": "application/json"
}
params = {}
payload = {
"first_name": "Jane",
"last_name": "Smith",
"email": "jane.smith@example.com",
"password": "newsecurepassword123",
"role": "manager",
"active": true,
"contract_type": "freelance",
"two_factor_authentication": "totp",
"expiration_date": "2025-12-31"
}
response = requests.put(
url,
headers=headers,
params=params,
json=payload
)
response.raise_for_status()
if response.content:
print(response.json())
curl \
--request PUT 'http://api.example.com/data/persons/a24a6ea4-ce75-4665-a070-57453082c25' \
--header "Authorization: $API_KEY" \
--header "Content-Type: application/json" \
--data '{"first_name":"Jane","last_name":"Smith","email":"jane.smith@example.com","password":"newsecurepassword123","role":"manager","active":true,"contract_type":"freelance","two_factor_authentication":"totp","expiration_date":"2025-12-31"}'
Request examples
{
"first_name": "Jane",
"last_name": "Smith",
"email": "jane.smith@example.com",
"password": "newsecurepassword123",
"role": "manager",
"active": true,
"contract_type": "freelance",
"two_factor_authentication": "totp",
"expiration_date": "2025-12-31"
}
Response examples (200)
{
"id": "a24a6ea4-ce75-4665-a070-57453082c25",
"first_name": "Jane",
"last_name": "Smith",
"email": "jane.smith@example.com",
"role": "manager",
"active": true,
"contract_type": "freelance",
"two_factor_authentication": "totp",
"departments": [
"string"
],
"access_token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9",
"created_at": "2024-01-15T10:30:00Z",
"updated_at": "2024-01-15T11:00:00Z"
}