Updating Profiles
Update Guru profile fields from an external HRIS system.
This guide provides the API endpoints and JSON structure to update Guru profile data from an external HRIS system.
Check the built-in HRIS sync firstGuru offers an out-of-the-box HRIS Sync that updates profiles automatically. Use this guide when your HRIS is not supported.
Step 1: Get user IDs
To update profile data, you first need the user's ID. Either list all team members:
curl -u $GURU_USER:$GURU_TOKEN https://api.getguru.com/api/v1/membersor search for a specific team member by email:
curl -u $GURU_USER:$GURU_TOKEN https://api.getguru.com/api/v1/members/{email}The response from either request includes the user.id field, which you use in subsequent calls.
Step 2: Get the manager ID
If you need to update the manager field, you also need the manager's ID:
- Search for the manager by email with
GET /api/v1/members/{email}. - Take the
user.idfrom the response and use it to get the full profile:GET /api/v1/people/USERID. - Use the returned
idvalue asmanager.idin the profile update request.
Step 3: Get current profile data
Retrieve the current profile data, which serves as the base for your update:
curl -u $GURU_USER:$GURU_TOKEN https://api.getguru.com/api/v1/people/USERIDNot all fields returned by this endpoint are updatable. See the payload structure below for the fields you can update.
Step 4: Update profile data
curl -X PUT https://api.getguru.com/api/v1/people/USERID \
-u $GURU_USER:$GURU_TOKEN \
-H "Content-Type: application/json" \
-d @profile.jsonInclude all fields of the profile in the request body, even if only some of them are being updated.
Profile picture upload
To upload or update a profile picture, follow Step 2 in Bulk Upload Profile Avatars via the API. Pass its output into the profilePicUrl field below.
JSON payload structure
The complete structure of updatable fields in a Guru user profile:
{
"startDate": "2021-06-28",
"workTeamName": "Engineering",
"workLocationName": "San Diego, CA",
"workingHours": "9AM - 5PM PST",
"manager": {
"id": "b6ea5cc6-db1a-43c8-ae7c-fdf483584ddd"
},
"jobTitle": "Senior Software Engineer",
"lastName": "Taylor",
"firstName": "Alice",
"profilePicUrl": "https://pp.getguru.com/6230eca6bc7e4eedbba67a3e5ded85df.png",
"custom": {
"whatImWorkingOn": "My primary focus is the Frontend but have experience working with various technologies. \n\nCurrent Projects:\nWork Hours ⏰",
"aboutMe": "I love trivia. Jeopardy, quizzo, trivial pursuit, etc. If there are trivia questions I am ready for them.",
"bestWayToWorkWithMe": "I appreciate working with pre-reads and digesting that information async. Then, let's get to collaborating on a zoom or in person!"
}
}Updated 18 days ago

