API Reference
Users / Profile
- GET
/usersList / search usersSearch and list users. `search` is AND-matched by whitespace across slug, name, title and bio. - GET
/users/:idUser detailRetrieve a user's public profile (email not included). - GET
/users/meOwn profileRetrieve the authenticated user's own profile, including private fields such as email. - PUT
/users/meUpdate own profileUpdate the authenticated user's own profile. Only the fields you send are updated (partial update); sending null clears a value. - POST
/users/me/slugSet own slugSet the slug used in the profile URL. A slug can only be changed once every 2 weeks: changing it to a different value within 14 days of the previous change returns 400 (errorCode 10012) with nextChangeableAt (UTC) in the response. Sending the current value is exempt from the limit and returns 200 without updating. - POST
/users/me/avatarUpload avatar imageUpload an avatar image as multipart/form-data and get the stored URL. The URL is also applied to the user's avatarUrl. - POST
/users/me/card-photoUpload business card photoUpload a photo to use as the business card background as multipart/form-data (field name cardPhoto) and get the stored URL. The photo is auto-oriented, scaled down to 1600px on its longer side and converted to WebP. This call does not change the profile; pass the returned URL as cardPhoto.url to PUT /users/me to save it. - POST
/users/me/event-face-photoUpload event face photoUpload the face photo used for on-site identity checks. Required before registering for events with requiresFacePhoto enabled. - GET
/users/me/organizationsOwn managed organizationsList organizations where the authenticated user is an ADMIN. - GET
/users/me/organization_membersOwn organization membershipsList the authenticated user's organization memberships (work / education history) shown in the profile. - GET
/users/me/unread-countsAggregated unread countsReturn the authenticated user's unread chat, announcement, and notification counts in a single request. Intended for surfaces that render several badges at once, such as tab bars and app icons. - GET
/users/me/schedulesList my schedulesList the schedules registered by the authenticated user. Schedules are taken into account when computing meeting availability: slots overlapping a schedule cannot be booked. - POST
/users/me/schedulesCreate a scheduleRegister a schedule. When linked to an event, overlapping meeting slots for that event become unavailable. - PUT
/users/me/schedules/:scheduleIdUpdate a scheduleUpdate one of your own schedules. - DELETE
/users/me/schedules/:scheduleIdDelete a scheduleDelete one of your own schedules. - GET
/users/:id/sessionsSpeaking sessionsRetrieve the sessions where the user is a confirmed speaker. Only sessions of published events that are not drafts are returned, ordered by start time descending. - GET
/users/:id/eventsParticipated eventsRetrieve events the user participated in (confirmed / checked in), ordered by start date descending. Private events are excluded. - GET
/users/:id/communitiesCommunitiesRetrieve communities the user belongs to (approved, non-private). No pagination. - GET
/users/:id/organization_membersUser's organization membershipsList a user's publicly visible organization memberships. - POST
/organization_memberAdd organization membershipAdd a membership (work / education history) for the authenticated user. Unless you created the organization, the role is forced to MEMBER. - PUT
/organization_member/:idUpdate organization membershipUpdate one of your own memberships. Other users' memberships return 403. - DELETE
/organization_member/:idDelete organization membershipDelete one of your own memberships.