Organization API
Teams
Team CRUD and member management
/teamsList teams
Query parameters
Responses
trueRequest
curl 'https://app.openassistant.us/api/teams' \
-H "Authorization: Bearer ak_live_..."Response
{
"ok": true,
"teams": [
null
]
}/teamsCreate a team
Request body
Responses
trueRequest
curl 'https://app.openassistant.us/api/teams' \
-X POST \
-H "Authorization: Bearer ak_live_..." \
-H "Content-Type: application/json" \
-d '{
"name": "string"
}'Response
{
"ok": true
}/teams/{teamId}Get a team
Path parameters
Responses
trueRequest
curl 'https://app.openassistant.us/api/teams/<teamId>' \
-H "Authorization: Bearer ak_live_..."Response
{
"ok": true
}/teams/{teamId}Update a team
Path parameters
Request body
Responses
trueRequest
curl 'https://app.openassistant.us/api/teams/<teamId>' \
-X PUT \
-H "Authorization: Bearer ak_live_..." \
-H "Content-Type: application/json" \
-d '{
"name": "string",
"adminApprovalRequired": true,
"status": "string",
"brandingOnEvents": true
}'Response
{
"ok": true
}/teams/{teamId}Delete a team
Path parameters
Responses
trueRequest
curl 'https://app.openassistant.us/api/teams/<teamId>' \
-X DELETE \
-H "Authorization: Bearer ak_live_..."Response
{
"ok": true,
"team": {
"id": "string"
}
}/teams/{teamId}/membersList team members
Path parameters
Query parameters
Responses
trueRequest
curl 'https://app.openassistant.us/api/teams/<teamId>/members' \
-H "Authorization: Bearer ak_live_..."Response
{
"ok": true,
"members": [
null
]
}/teams/{teamId}/membersAdd team member
Path parameters
Request body
Responses
trueRequest
curl 'https://app.openassistant.us/api/teams/<teamId>/members' \
-X POST \
-H "Authorization: Bearer ak_live_..." \
-H "Content-Type: application/json" \
-d '{
"userId": "string"
}'Response
{
"ok": true
}/teams/{teamId}/members/{memberId}Update team member
Path parameters
Request body
Responses
trueRequest
curl 'https://app.openassistant.us/api/teams/<teamId>/members/<memberId>' \
-X PUT \
-H "Authorization: Bearer ak_live_..." \
-H "Content-Type: application/json" \
-d '{
"role": "string",
"status": "string"
}'Response
{
"ok": true
}/teams/{teamId}/members/{memberId}Remove team member
Path parameters
Responses
trueRequest
curl 'https://app.openassistant.us/api/teams/<teamId>/members/<memberId>' \
-X DELETE \
-H "Authorization: Bearer ak_live_..."Response
{
"ok": true,
"member": {
"id": "string"
}
}/teams/{teamId}/profileGet team profile (Layered Profile)
Path parameters
Responses
trueRequest
curl 'https://app.openassistant.us/api/teams/<teamId>/profile' \
-H "Authorization: Bearer ak_live_..."Response
{
"ok": true,
"profile": {
"tagline": "string",
"mission": "string",
"leadUserId": "string",
"workingHours": {
"start": "string",
"end": "string",
"days": [
"string"
],
"tz": "string"
}
}
}/teams/{teamId}/profilePatch team profile — team admin only
Path parameters
Request body
Responses
trueRequest
curl 'https://app.openassistant.us/api/teams/<teamId>/profile' \
-X PATCH \
-H "Authorization: Bearer ak_live_..." \
-H "Content-Type: application/json" \
-d '{
"tagline": "string",
"mission": "string",
"leadUserId": "string",
"workingHours": {
"start": "string",
"end": "string",
"days": [
"string"
],
"tz": "string"
}
}'Response
{
"ok": true,
"profile": {
"tagline": "string",
"mission": "string",
"leadUserId": "string",
"workingHours": {
"start": "string",
"end": "string",
"days": [
"string"
],
"tz": "string"
}
}
}/team-invitationsList pending invitations for a team
Query parameters
Responses
truependingacceptedrevokedexpiredRequest
curl 'https://app.openassistant.us/api/team-invitations?teamId=' \
-H "Authorization: Bearer ak_live_..."Response
{
"ok": true,
"invitations": [
{
"id": "string",
"team": "string",
"email": "string",
"invitedBy": "string",
"status": "pending",
"expiresAt": "2025-01-15T10:30:00.000Z"
}
]
}/team-invitationsSend a team invitation
Request body
Responses
truependingacceptedrevokedexpiredRequest
curl 'https://app.openassistant.us/api/team-invitations' \
-X POST \
-H "Authorization: Bearer ak_live_..." \
-H "Content-Type: application/json" \
-d '{
"teamId": "string",
"email": "[email protected]"
}'Response
{
"ok": true,
"invitation": {
"id": "string",
"team": "string",
"email": "string",
"invitedBy": "string",
"status": "pending",
"expiresAt": "2025-01-15T10:30:00.000Z"
}
}/team-invitations/{invitationId}Get a team invitation (public — used by invitation landing page)
Path parameters
Responses
truependingacceptedrevokedexpiredRequest
curl 'https://app.openassistant.us/api/team-invitations/<invitationId>' \
-H "Authorization: Bearer ak_live_..."Response
{
"ok": true,
"invitation": {
"id": "string",
"team": "string",
"email": "string",
"invitedBy": "string",
"status": "pending",
"expiresAt": "2025-01-15T10:30:00.000Z",
"teamName": "string",
"inviterName": "string"
}
}/team-invitations/{invitationId}Revoke or decline a team invitation
Team owners/admins use this to revoke an invitation. The invitee uses it to decline.
Path parameters
Responses
truependingacceptedrevokedexpiredRequest
curl 'https://app.openassistant.us/api/team-invitations/<invitationId>' \
-X DELETE \
-H "Authorization: Bearer ak_live_..."Response
{
"ok": true,
"invitation": {
"id": "string",
"team": "string",
"email": "string",
"invitedBy": "string",
"status": "pending",
"expiresAt": "2025-01-15T10:30:00.000Z"
}
}/team-invitations/{invitationId}/acceptAccept a team invitation
Path parameters
Request body
Responses
truependingacceptedrevokedexpiredtrueRequest
curl 'https://app.openassistant.us/api/team-invitations/<invitationId>/accept' \
-X POST \
-H "Authorization: Bearer ak_live_..." \
-H "Content-Type: application/json" \
-d '{
"newOwnerId": "string"
}'Response
{
"ok": true,
"invitation": {
"id": "string",
"team": "string",
"email": "string",
"invitedBy": "string",
"status": "pending",
"expiresAt": "2025-01-15T10:30:00.000Z",
"teamId": "string"
}
}/teams/{teamId}/invitation-requestsList invitation requests for a team
Path parameters
Responses
truependingapprovedrejectedRequest
curl 'https://app.openassistant.us/api/teams/<teamId>/invitation-requests' \
-H "Authorization: Bearer ak_live_..."Response
{
"ok": true,
"requests": [
{
"id": "string",
"team": "string",
"requestedBy": {
"id": "string"
},
"email": "string",
"status": "pending",
"expiresAt": "2025-01-15T10:30:00.000Z"
}
]
}/teams/{teamId}/invitation-requestsSubmit an invitation request
Path parameters
Request body
Responses
truependingapprovedrejectedRequest
curl 'https://app.openassistant.us/api/teams/<teamId>/invitation-requests' \
-X POST \
-H "Authorization: Bearer ak_live_..." \
-H "Content-Type: application/json" \
-d '{
"email": "[email protected]"
}'Response
{
"ok": true,
"request": {
"id": "string",
"team": "string",
"requestedBy": {
"id": "string"
},
"email": "string",
"status": "pending",
"expiresAt": "2025-01-15T10:30:00.000Z"
}
}/teams/{teamId}/invitation-requests/{requestId}Approve or reject an invitation request
Path parameters
Request body
approverejectResponses
trueRequest
curl 'https://app.openassistant.us/api/teams/<teamId>/invitation-requests/<requestId>' \
-X PATCH \
-H "Authorization: Bearer ak_live_..." \
-H "Content-Type: application/json" \
-d '{
"action": "approve"
}'Response
{
"ok": true
}