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

Tallyfy’s API lets administrators change any organization member’s role to admin or standard or light by sending a PUT request with the new role value to the member’s role endpoint and returning the updated member profile on success.

Groups > Update group

Tallyfy’s PUT endpoint for groups lets you rename a group or change its description and fully replace its member and guest lists by sending updated user IDs or 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

Tallyfy’s API lets admin users fetch a specific organization member’s profile by their numeric user ID through a GET request and optionally include related data like stats and groups and preferences in the response.

Tags > Update tag

Tallyfy’s API lets you modify an existing tag’s title (up to 30 characters and unique within your organization) or hex color code by sending a PUT request to /organizations/[org_id]/tags/[tag_id] with code examples provided in JavaScript and Python and Java and Go and C++ and C#.