OpenAssistantAPI

Organization API

Organizations

Organization details and member management

GET/organizations

List organizations

Query parameters

pageinteger
perPageinteger
limitinteger

Responses

200Orgs
ok reqenumtrue
organizations reqany[]
pageinteger
perPageinteger
totalinteger

Request

curl 'https://app.openassistant.us/api/organizations' \
  -H "Authorization: Bearer ak_live_..."

Response

{
  "ok": true,
  "organizations": [
    null
  ]
}
POST/organizations

Create organization

Request body

name reqstring

Responses

201Created
ok reqenumtrue
organizationany

Request

curl 'https://app.openassistant.us/api/organizations' \
  -X POST \
  -H "Authorization: Bearer ak_live_..." \
  -H "Content-Type: application/json" \
  -d '{
  "name": "string"
}'

Response

{
  "ok": true
}
GET/organizations/{orgId}

Get organization

Path parameters

orgId reqstring

Responses

200Org
ok reqenumtrue
organizationany

Request

curl 'https://app.openassistant.us/api/organizations/<orgId>' \
  -H "Authorization: Bearer ak_live_..."

Response

{
  "ok": true
}
PUT/organizations/{orgId}

Update organization

Path parameters

orgId reqstring

Request body

namestring
defaultTeamstring | null
defaultAssistantstring | null

Responses

200Updated
ok reqenumtrue
organizationany

Request

curl 'https://app.openassistant.us/api/organizations/<orgId>' \
  -X PUT \
  -H "Authorization: Bearer ak_live_..." \
  -H "Content-Type: application/json" \
  -d '{
  "name": "string",
  "defaultTeam": "string",
  "defaultAssistant": "string"
}'

Response

{
  "ok": true
}
DELETE/organizations/{orgId}

Delete organization

Path parameters

orgId reqstring

Responses

200Deleted
ok reqenumtrue
organization reqobject
id reqstring
deletedboolean
messagestring

Request

curl 'https://app.openassistant.us/api/organizations/<orgId>' \
  -X DELETE \
  -H "Authorization: Bearer ak_live_..."

Response

{
  "ok": true,
  "organization": {
    "id": "string"
  }
}
GET/organizations/{orgId}/domains

List org domains

Path parameters

orgId reqstring

Responses

200Domains
ok reqenumtrue
domains reqany[]
pageinteger
perPageinteger
totalinteger

Request

curl 'https://app.openassistant.us/api/organizations/<orgId>/domains' \
  -H "Authorization: Bearer ak_live_..."

Response

{
  "ok": true,
  "domains": [
    null
  ]
}
POST/organizations/{orgId}/domains

Add domain

Path parameters

orgId reqstring

Request body

domain reqstring
autoJoinboolean

Responses

201Added
ok reqenumtrue
domainany

Request

curl 'https://app.openassistant.us/api/organizations/<orgId>/domains' \
  -X POST \
  -H "Authorization: Bearer ak_live_..." \
  -H "Content-Type: application/json" \
  -d '{
  "domain": "string"
}'

Response

{
  "ok": true
}
PUT/organizations/{orgId}/domains/{domainId}

Update domain

Path parameters

orgId reqstring
domainId reqstring

Request body

autoJoinboolean

Responses

200Updated
ok reqenumtrue
domainany

Request

curl 'https://app.openassistant.us/api/organizations/<orgId>/domains/<domainId>' \
  -X PUT \
  -H "Authorization: Bearer ak_live_..." \
  -H "Content-Type: application/json" \
  -d '{
  "autoJoin": true
}'

Response

{
  "ok": true
}
DELETE/organizations/{orgId}/domains/{domainId}

Remove domain

Path parameters

orgId reqstring
domainId reqstring

Responses

200Removed
ok reqenumtrue
domain reqobject
id reqstring
deletedboolean
messagestring

Request

curl 'https://app.openassistant.us/api/organizations/<orgId>/domains/<domainId>' \
  -X DELETE \
  -H "Authorization: Bearer ak_live_..."

Response

{
  "ok": true,
  "domain": {
    "id": "string"
  }
}
POST/organizations/{orgId}/domains/{domainId}/verify

Verify domain

Path parameters

orgId reqstring
domainId reqstring

Responses

200Verified
ok reqenumtrue
domainany

Request

curl 'https://app.openassistant.us/api/organizations/<orgId>/domains/<domainId>/verify' \
  -X POST \
  -H "Authorization: Bearer ak_live_..."

Response

{
  "ok": true
}
PUT/organizations/{orgId}/sso

Update SSO config

Path parameters

orgId reqstring

Request body

enabledboolean
enforcedboolean
providerstring
googleWorkspaceobject
azureAdobject
samlobject
scimobject
memberSyncobject

Responses

200Updated
ok reqenumtrue
organizationany

Request

curl 'https://app.openassistant.us/api/organizations/<orgId>/sso' \
  -X PUT \
  -H "Authorization: Bearer ak_live_..." \
  -H "Content-Type: application/json" \
  -d '{
  "enabled": true,
  "enforced": true,
  "provider": "string",
  "googleWorkspace": {}
}'

Response

{
  "ok": true
}
DELETE/organizations/{orgId}/sso

Disable SSO

Path parameters

orgId reqstring

Responses

200Disabled
ok reqenumtrue
organizationany

Request

curl 'https://app.openassistant.us/api/organizations/<orgId>/sso' \
  -X DELETE \
  -H "Authorization: Bearer ak_live_..."

Response

{
  "ok": true
}
POST/organizations/{orgId}/scim-token

Regenerate SCIM token

Path parameters

orgId reqstring

Responses

200Token
ok reqenumtrue
scim reqobject
token reqstring

Request

curl 'https://app.openassistant.us/api/organizations/<orgId>/scim-token' \
  -X POST \
  -H "Authorization: Bearer ak_live_..."

Response

{
  "ok": true,
  "scim": {
    "token": "string"
  }
}
GET/organizations/{orgId}/members

List org members

Path parameters

orgId reqstring

Query parameters

pageinteger
perPageinteger
limitinteger
searchstring

Responses

200Members
ok reqenumtrue
members reqobject[]
id reqstring
email reqstring
name reqstring | null
organizationRole reqstring
createdAt reqstring
pageinteger
perPageinteger
totalinteger

Request

curl 'https://app.openassistant.us/api/organizations/<orgId>/members' \
  -H "Authorization: Bearer ak_live_..."

Response

{
  "ok": true,
  "members": [
    {
      "id": "string",
      "email": "string",
      "name": "string",
      "organizationRole": "string",
      "createdAt": "2025-01-15T10:30:00.000Z"
    }
  ]
}
POST/organizations/{orgId}/members

Provision org member

Path parameters

orgId reqstring

Request body

email reqstring

Responses

201Added
ok reqenumtrue
member reqobject
id reqstring
email reqstring
name reqstring | null
organizationRole reqstring
createdAt reqstring

Request

curl 'https://app.openassistant.us/api/organizations/<orgId>/members' \
  -X POST \
  -H "Authorization: Bearer ak_live_..." \
  -H "Content-Type: application/json" \
  -d '{
  "email": "[email protected]"
}'

Response

{
  "ok": true,
  "member": {
    "id": "string",
    "email": "string",
    "name": "string",
    "organizationRole": "string",
    "createdAt": "2025-01-15T10:30:00.000Z"
  }
}
DELETE/organizations/{orgId}/members/{userId}

Remove org member

Path parameters

orgId reqstring
userId reqstring

Responses

200Removed
ok reqenumtrue
member reqobject
id reqstring
deletedboolean
messagestring

Request

curl 'https://app.openassistant.us/api/organizations/<orgId>/members/<userId>' \
  -X DELETE \
  -H "Authorization: Bearer ak_live_..."

Response

{
  "ok": true,
  "member": {
    "id": "string"
  }
}
GET/organizations/{orgId}/audit-events

List org audit events

Path parameters

orgId reqstring

Query parameters

pageinteger
perPageinteger
limitinteger
actorstring
actionstring
entityTypestring
afterstring
beforestring

Responses

200Events
ok reqenumtrue
events reqobject[]
id reqstring
account reqstring
organization reqstring
actor reqstring | null
action reqstring
entityType reqstring
entityId reqstring | null
metadata reqobject
createdAt reqstring
pageinteger
perPageinteger
totalinteger

Request

curl 'https://app.openassistant.us/api/organizations/<orgId>/audit-events' \
  -H "Authorization: Bearer ak_live_..."

Response

{
  "ok": true,
  "events": [
    {
      "id": "string",
      "account": "string",
      "organization": "string",
      "actor": "string",
      "action": "string",
      "entityType": "string"
    }
  ]
}
GET/organizations/{orgId}/audit-logging

Get audit logging config

Path parameters

orgId reqstring

Responses

200Config
ok reqenumtrue
auditLogging reqobject
enabled reqboolean
s3BucketArn reqstring | null
s3Prefix reqstring
roleArn reqstring | null
region reqstring | null
lastDeliveredAt reqstring | null
deliveryConfigured reqboolean

Request

curl 'https://app.openassistant.us/api/organizations/<orgId>/audit-logging' \
  -H "Authorization: Bearer ak_live_..."

Response

{
  "ok": true,
  "auditLogging": {
    "enabled": true,
    "s3BucketArn": "string",
    "s3Prefix": "string",
    "roleArn": "string",
    "region": "string",
    "lastDeliveredAt": "2025-01-15T10:30:00.000Z"
  }
}
PUT/organizations/{orgId}/audit-logging

Update audit logging config

Path parameters

orgId reqstring

Request body

enabledboolean
s3BucketArnstring | null
s3Prefixstring
roleArnstring | null
regionstring | null

Responses

200Updated
ok reqenumtrue
auditLogging reqobject
enabled reqboolean
s3BucketArn reqstring | null
s3Prefix reqstring
roleArn reqstring | null
region reqstring | null
lastDeliveredAt reqstring | null
deliveryConfigured reqboolean

Request

curl 'https://app.openassistant.us/api/organizations/<orgId>/audit-logging' \
  -X PUT \
  -H "Authorization: Bearer ak_live_..." \
  -H "Content-Type: application/json" \
  -d '{
  "enabled": true,
  "s3BucketArn": "string",
  "s3Prefix": "string",
  "roleArn": "string"
}'

Response

{
  "ok": true,
  "auditLogging": {
    "enabled": true,
    "s3BucketArn": "string",
    "s3Prefix": "string",
    "roleArn": "string",
    "region": "string",
    "lastDeliveredAt": "2025-01-15T10:30:00.000Z"
  }
}
POST/organizations/{orgId}/audit-logging/deliver

Request audit log delivery to org S3

Path parameters

orgId reqstring

Request body

fromstring
tostring

Responses

202Job queued
ok reqenumtrue
deliveryJob reqobject
id reqstring
organization reqstring
requestedBy reqstring | null
status reqenumpendingrunningcompletedfailed
from reqstring
to reqstring
filesCopied reqnumber
errors reqstring[]
completedAt reqstring | null
createdAt reqstring

Request

curl 'https://app.openassistant.us/api/organizations/<orgId>/audit-logging/deliver' \
  -X POST \
  -H "Authorization: Bearer ak_live_..." \
  -H "Content-Type: application/json" \
  -d '{
  "from": "2025-01-15T10:30:00.000Z",
  "to": "2025-01-15T10:30:00.000Z"
}'
GET/organizations/{orgId}/audit-logging/deliver/{jobId}

Get audit delivery job status

Path parameters

orgId reqstring
jobId reqstring

Responses

200Job
ok reqenumtrue
deliveryJob reqobject
id reqstring
organization reqstring
requestedBy reqstring | null
status reqenumpendingrunningcompletedfailed
from reqstring
to reqstring
filesCopied reqnumber
errors reqstring[]
completedAt reqstring | null
createdAt reqstring

Request

curl 'https://app.openassistant.us/api/organizations/<orgId>/audit-logging/deliver/<jobId>' \
  -H "Authorization: Bearer ak_live_..."

Response

{
  "ok": true,
  "deliveryJob": {
    "id": "string",
    "organization": "string",
    "requestedBy": "string",
    "status": "pending",
    "from": "2025-01-15T10:30:00.000Z",
    "to": "2025-01-15T10:30:00.000Z"
  }
}
GET/organizations/{orgId}/settings/model-tiers

Get org default model tiers

Path parameters

orgId reqstring

Responses

200Model tiers
ok reqenumtrue
defaultModelTiers reqobject
chat reqenumlowmediumhighnull
task reqenumlowmediumhighnull

Request

curl 'https://app.openassistant.us/api/organizations/<orgId>/settings/model-tiers' \
  -H "Authorization: Bearer ak_live_..."

Response

{
  "ok": true,
  "defaultModelTiers": {
    "chat": "low",
    "task": "low"
  }
}
PATCH/organizations/{orgId}/settings/model-tiers

Update org default model tiers

Path parameters

orgId reqstring

Request body

chatenumlowmediumhighnull
taskenumlowmediumhighnull

Responses

200Updated
ok reqenumtrue
defaultModelTiers reqobject
chat reqenumlowmediumhighnull
task reqenumlowmediumhighnull

Request

curl 'https://app.openassistant.us/api/organizations/<orgId>/settings/model-tiers' \
  -X PATCH \
  -H "Authorization: Bearer ak_live_..." \
  -H "Content-Type: application/json" \
  -d '{
  "chat": "low",
  "task": "low"
}'

Response

{
  "ok": true,
  "defaultModelTiers": {
    "chat": "low",
    "task": "low"
  }
}
GET/orgs/{id}/profile

Get org profile — the Company at Account.ownCompanyId for the caller's account

Path parameters

id reqstring

Responses

200Org profile
ok reqenumtrue
profile reqobject
companyId reqstring
name reqstring
industrystring | null
websitestring | null
domainstring | null
ownOrgProfile reqobject
missionstring
valuesstring[]
foundedstring
stagestring
leadershipobject[]
namestring
titlestring
userIdstring | null
keyProductsstring[]
targetCustomersstring
brandVoicestring
internalToolsstring[]
holidaysobject[]
namestring
datestring
meetingNormsstring
confidentialityNotesstring
launchDatestring
claimedboolean
403Not an org member
status reqinteger
error_codestring
error reqstring
404Not this account's own-org
status reqinteger
error_codestring
error reqstring

Request

curl 'https://app.openassistant.us/api/orgs/<id>/profile' \
  -H "Authorization: Bearer ak_live_..."

Response

{
  "ok": true,
  "profile": {
    "companyId": "string",
    "name": "string",
    "ownOrgProfile": {
      "mission": "string",
      "values": [
        "string"
      ],
      "founded": "2025-01-15T10:30:00.000Z",
      "stage": "string"
    }
  }
}
PATCH/orgs/{id}/profile

Patch org profile — first call claims the company for the caller's account and grants org_admin; subsequent calls require org_admin

Path parameters

id reqstring

Request body

namestring
industrystring
websitestring
locationstring
linkedinUrlstring
ownOrgProfileobject
missionstring
valuesstring[]
foundedstring
stagestring
leadershipobject[]
namestring
titlestring
userIdstring | null
keyProductsstring[]
targetCustomersstring
brandVoicestring
internalToolsstring[]
holidaysobject[]
namestring
datestring
meetingNormsstring
confidentialityNotesstring
launchDatestring

Responses

200Updated org profile
ok reqenumtrue
profile reqobject
companyId reqstring
name reqstring
industrystring | null
websitestring | null
domainstring | null
ownOrgProfile reqobject
missionstring
valuesstring[]
foundedstring
stagestring
leadershipobject[]
namestring
titlestring
userIdstring | null
keyProductsstring[]
targetCustomersstring
brandVoicestring
internalToolsstring[]
holidaysobject[]
namestring
datestring
meetingNormsstring
confidentialityNotesstring
launchDatestring
claimedboolean
403Org admin required
status reqinteger
error_codestring
error reqstring
409Own-org conflict: the account already has a different own-org company (own_company_conflict), or the target company is already claimed by another account (company_already_claimed)
status reqinteger
error_codestring
error reqstring

Request

curl 'https://app.openassistant.us/api/orgs/<id>/profile' \
  -X PATCH \
  -H "Authorization: Bearer ak_live_..." \
  -H "Content-Type: application/json" \
  -d '{
  "name": "string",
  "industry": "string",
  "website": "string",
  "location": "string"
}'

Response

{
  "ok": true,
  "profile": {
    "companyId": "string",
    "name": "string",
    "ownOrgProfile": {
      "mission": "string",
      "values": [
        "string"
      ],
      "founded": "2025-01-15T10:30:00.000Z",
      "stage": "string"
    }
  }
}