Users and assistants
User setup
A user's profile and setup. Calls made as a user return `428 onboarding_required` until you set a timezone and working hours and mark setup complete.
/profileRetrieve the user's profile
Retrieves the profile of the user named in `X-User-Email`. Works before the user finishes setup.
Responses
adminmemberguestmemberadminownernullactiveinactivesuspendedall-eventsagnt-eventsnoneonly-mewith-attendeesnoneonly-menoneRequest
curl 'https://api.agnt.ai/profile' \
-H "Authorization: Bearer ak_live_..." \
-H "X-User-Email: [email protected]"Response
{
"ok": true,
"user": {
"id": "6702b1e8f9a0b1c2d3e4f5a6",
"account": "66f1a2b3c4d5e6f708192a3b",
"email": "[email protected]",
"name": "Jane Rivera",
"firstName": "Jane",
"lastName": "Rivera",
"timezone": "America/Los_Angeles",
"status": "active",
"organization": null,
"createdAt": "2026-10-01T15:04:05Z",
"assistantName": "Ava"
}
}/profileUpdate the user's profile
Updates the profile of the user named in `X-User-Email`. Only the fields you send change. Set `timezone` here before you mark setup complete.
Request body
Responses
adminmemberguestmemberadminownernullactiveinactivesuspendedall-eventsagnt-eventsnoneonly-mewith-attendeesnoneonly-menoneRequest
curl 'https://api.agnt.ai/profile' \
-X PATCH \
-H "Authorization: Bearer ak_live_..." \
-H "X-User-Email: [email protected]" \
-H "Content-Type: application/json" \
-d '{
"firstName": "Jane",
"lastName": "Rivera",
"timezone": "America/New_York",
"locale": "locale"
}'Response
{
"ok": true,
"user": {
"id": "6702b1e8f9a0b1c2d3e4f5a6",
"account": "66f1a2b3c4d5e6f708192a3b",
"email": "[email protected]",
"name": "Jane Rivera",
"firstName": "Jane",
"lastName": "Rivera",
"timezone": "America/Los_Angeles",
"status": "active",
"organization": null,
"createdAt": "2026-10-01T15:04:05Z"
}
}/onboarding/mark-onboardedComplete user setup
Marks the user named in `X-User-Email` as set up, so calls made as that user stop returning `428 onboarding_required`. Set the timezone and working hours first. Calling it again has no effect.
Responses
Request
curl 'https://api.agnt.ai/onboarding/mark-onboarded' \
-X POST \
-H "Authorization: Bearer ak_live_..." \
-H "X-User-Email: [email protected]"Response
{
"ok": true
}/users/{userId}/preferences/schedulingRetrieve scheduling preferences
Retrieves the user's working hours, meeting defaults, calendars and buffers. With `X-User-Email`, `userId` must be the caller's own id.
Path parameters
Responses
truenonemeetingtimeBlockRequest
curl 'https://api.agnt.ai/users/<userId>/preferences/scheduling' \
-H "Authorization: Bearer ak_live_..."Response
{
"ok": true,
"schedulingPreferences": {
"availability": {
"workingHours": {
"MO": [
{
"start": "09:00",
"end": "17:00"
}
],
"TU": [
{
"start": "09:00",
"end": "17:00"
}
],
"WE": [
{
"start": "09:00",
"end": "17:00"
}
],
"TH": [
{
"start": "09:00",
"end": "17:00"
}
],
"FR": [
{
"start": "09:00",
"end": "17:00"
}
]
}
}
}
}/users/{userId}/preferences/schedulingReplace scheduling preferences
Replaces the user's working hours, meeting defaults, calendars and buffers. Retrieve the preferences first and send the whole object back with your change. With `X-User-Email`, `userId` must be the caller's own id.
Path parameters
Request body
nonemeetingtimeBlockResponses
truenonemeetingtimeBlockRequest
curl 'https://api.agnt.ai/users/<userId>/preferences/scheduling' \
-X PUT \
-H "Authorization: Bearer ak_live_..." \
-H "Content-Type: application/json" \
-d '{
"schedulingPreferences": {
"availability": {
"workingHours": {
"MO": [
{
"start": "09:00",
"end": "17:00"
}
],
"TU": [
{
"start": "09:00",
"end": "17:00"
}
],
"WE": [
{
"start": "09:00",
"end": "17:00"
}
],
"TH": [
{
"start": "09:00",
"end": "17:00"
}
],
"FR": [
{
"start": "09:00",
"end": "17:00"
}
]
}
}
}
}'Response
{
"ok": true,
"schedulingPreferences": {
"availability": {
"workingHours": {
"MO": [
{
"start": "09:00",
"end": "17:00"
}
],
"TU": [
{
"start": "09:00",
"end": "17:00"
}
],
"WE": [
{
"start": "09:00",
"end": "17:00"
}
],
"TH": [
{
"start": "09:00",
"end": "17:00"
}
],
"FR": [
{
"start": "09:00",
"end": "17:00"
}
]
}
}
}
}