Skip to content

Update member

Endpoint

PUT /organizations/{org_id}/users/{user_id}

Updates a member’s profile within your Tallyfy organization. Requires admin permission. Members can also update their own profile via PUT /organizations/{org_id}/me.

Request

Replace {org_id} with your Organization ID and {user_id} with the member’s numeric ID.

Headers

HeaderValue
AuthorizationBearer {your_access_token}
Acceptapplication/json
X-Tallyfy-ClientAPIClient
Content-Typeapplication/json

Body (JSON)

Send a JSON object with the fields you want to update. Three fields are required in every request:

Required fields:

  • first_name (string, max 32 chars) - can’t be a URL or disallowed name
  • last_name (string, max 32 chars) - can’t be a URL or disallowed name
  • timezone (string, e.g., Europe/London)

Optional fields:

  • phone (string, max 20 chars)
  • job_title (string, nullable)
  • job_description (string, nullable)
  • team (string, nullable)
  • country_id (integer) - must match a valid country ID
  • date_format (string) - either mm/dd/yyyy or dd/mm/yyyy
  • step_preferences (boolean)
{
"first_name": "Alicia",
"last_name": "Smith-Jones",
"job_title": "Senior Support Agent",
"timezone": "America/New_York"
}

Code samples

const accessToken = 'YOUR_PERSONAL_ACCESS_TOKEN';
const orgId = 'YOUR_ORGANIZATION_ID';
const userId = 12345;
const apiUrl = `https://go.tallyfy.com/api/organizations/${orgId}/users/${userId}`;
const updateData = {
first_name: "Alicia",
last_name: "Smith-Jones",
timezone: "America/New_York",
phone: "+1-555-123-4567",
job_title: "Project Lead"
};
const response = await fetch(apiUrl, {
method: 'PUT',
headers: {
'Authorization': `Bearer ${accessToken}`,
'Accept': 'application/json',
'X-Tallyfy-Client': 'APIClient',
'Content-Type': 'application/json'
},
body: JSON.stringify(updateData)
});
const data = await response.json();
if (!response.ok) {
console.error(`Failed to update member ${userId}:`, data);
} else {
console.log(`Updated member ${userId}:`, JSON.stringify(data, null, 2));
}

Response

A successful request returns 200 OK with the member’s full profile after the update.

{
"data": {
"id": 12345,
"email": "user@example.com",
"first_name": "Alicia",
"last_name": "Smith-Jones",
"full_name": "Alicia Smith-Jones",
"profile_pic": "https://...",
"job_title": "Project Lead",
"phone": "+1-555-123-4567",
"team": "Operations",
"timezone": "America/New_York",
"UTC_offset": "-05:00",
"country_id": 1,
"date_format": "mm/dd/yyyy",
"role": "standard",
"status": "active",
"created_at": "2024-01-15T10:30:00Z",
"updated_at": "2026-02-25T14:20:00Z"
}
}

If the user ID isn’t found, you don’t have permission, or the request body fails validation, you’ll get 404, 403, 400, or 422 respectively.


Members > Update member role

Administrators can change a member’s role in Tallyfy by sending a PUT request with the new role name (admin, standard, or light) to get back the updated user profile.

Groups > Update group

Tallyfy’s PUT endpoint for groups lets you update a group’s name and description or fully replace its member and guest lists by sending user IDs and email arrays to /organizations/[org_id]/groups/[group_id] with code samples in JavaScript and Python and Java and Go and C++ and C#.

Members > Get member

This API endpoint retrieves detailed profile information for a specific organization member by their user ID and supports optional query parameters to include related data like statistics and group memberships with code examples provided in JavaScript Python Java Go C++ and C#.

Tags > Update tag

Update an existing tag’s title or color by sending a PUT request with JSON data to the organization and tag endpoint.