User API
Assistants
AI assistant configuration and management
GET/users/{userId}/assistant
Get assistant for a specific user
Path parameters
Responses
200User assistant
ok reqenumtrue
assistant reqobject
id reqstring
account reqstring
organization reqstring | null
team reqstring | null
user reqstring | null
member reqstring | null
scope reqenumaccountorganizationteamuser
name reqstring
email reqstring
avatarUrl reqstring | null
signature reqstring | null
signatureEditorModeenumvisualhtml
personalitystring
taglinestring | null
backstorystring | null
rolestring | null
displayPersonalitystring | null
tag1string | null
tag2string | null
genderenummalefemaleothernull
pronounsstring | null
countrystring | null
signaturePhrasesstring[]
writingStyle reqobject
professionalismnumber
humornumber
emojiUsenumber
characterInspirationstring
externalCommunicationstring
oneOnOneCommunicationstring
voice reqobject | null
voiceIdstring | null
providerstring
status reqenumactiveinactive
isSystemTemplate reqboolean
talkToStrangers reqboolean
metadataobject
inboxPlatform reqenumsesgoogleoutlooknull
inboxAuthErrorboolean
channelsobject
imessagestring | null
smsstring | null
smsProviderenumtwiliosendblue
smsConversationsRegisteredAtstring | null
whatsappstring | null
whatsappProviderenumtwiliometa
whatsappPhoneNumberIdstring | null
whatsappSendblueobject
enabledboolean
numberstring | null
phoneNumberIdstring | null
whatsappTwilioobject
enabledboolean
numberstring | null
voiceobject
twilioNativeSidstring | null
twilioNativePhoneNumberstring | null
vapiPhoneNumberIdstring | null
transportProviderenumvapinative-live
statusenumnoneprovisioningpending_a2pactivefailed
provisionedAtstring | null
recordingDisclosureboolean
appearanceDescriptionstring
tagsobject
deletedAtstring | null
retiredEmailstring | null
emailReleasedAtstring | null
createdAt reqstring
updatedAt reqstring
Request
curl 'https://app.openassistant.us/api/users/<userId>/assistant' \
-H "Authorization: Bearer ak_live_..."
Response
{
"ok": true,
"assistant": {
"id": "string",
"account": "string",
"organization": "string",
"team": "string",
"user": "string",
"member": "string"
}
}
POST/users/{userId}/assistant
Create a user-scoped assistant
Path parameters
Request body
name reqstring
emailstring
avatarstring
signaturestring | null
signatureEditorModeenumvisualhtml
personalitystring
backstorystring | null
genderenummalefemaleothernull
pronounsstring | null
countrystring | null
writingStyleobject
professionalismnumber
humornumber
emojiUsenumber
characterInspirationstring
externalCommunicationstring
oneOnOneCommunicationstring
metadataobject
voiceobject | null
voiceIdstring | null
providerstring
Responses
201Created
ok reqenumtrue
assistant reqobject
id reqstring
account reqstring
organization reqstring | null
team reqstring | null
user reqstring | null
member reqstring | null
scope reqenumaccountorganizationteamuser
name reqstring
email reqstring
avatarUrl reqstring | null
signature reqstring | null
signatureEditorModeenumvisualhtml
personalitystring
taglinestring | null
backstorystring | null
rolestring | null
displayPersonalitystring | null
tag1string | null
tag2string | null
genderenummalefemaleothernull
pronounsstring | null
countrystring | null
signaturePhrasesstring[]
writingStyle reqobject
professionalismnumber
humornumber
emojiUsenumber
characterInspirationstring
externalCommunicationstring
oneOnOneCommunicationstring
voice reqobject | null
voiceIdstring | null
providerstring
status reqenumactiveinactive
isSystemTemplate reqboolean
talkToStrangers reqboolean
metadataobject
inboxPlatform reqenumsesgoogleoutlooknull
inboxAuthErrorboolean
channelsobject
imessagestring | null
smsstring | null
smsProviderenumtwiliosendblue
smsConversationsRegisteredAtstring | null
whatsappstring | null
whatsappProviderenumtwiliometa
whatsappPhoneNumberIdstring | null
whatsappSendblueobject
enabledboolean
numberstring | null
phoneNumberIdstring | null
whatsappTwilioobject
enabledboolean
numberstring | null
voiceobject
twilioNativeSidstring | null
twilioNativePhoneNumberstring | null
vapiPhoneNumberIdstring | null
transportProviderenumvapinative-live
statusenumnoneprovisioningpending_a2pactivefailed
provisionedAtstring | null
recordingDisclosureboolean
appearanceDescriptionstring
tagsobject
deletedAtstring | null
retiredEmailstring | null
emailReleasedAtstring | null
createdAt reqstring
updatedAt reqstring
Request
curl 'https://app.openassistant.us/api/users/<userId>/assistant' \
-X POST \
-H "Authorization: Bearer ak_live_..." \
-H "Content-Type: application/json" \
-d '{
"name": "string"
}'
Response
{
"ok": true,
"assistant": {
"id": "string",
"account": "string",
"organization": "string",
"team": "string",
"user": "string",
"member": "string"
}
}
PUT/users/{userId}/assistant
Update a user's assistant
Path parameters
Request body
namestring
emailstring
personalitystring
signaturestring | null
signatureEditorModeenumvisualhtml
writingStyleobject
professionalismnumber
humornumber
emojiUsenumber
characterInspirationstring
externalCommunicationstring
oneOnOneCommunicationstring
avatarstring | null
appearanceDescriptionstring
taglinestring | null
backstorystring | null
displayPersonalitystring | null
tag1string | null
tag2string | null
genderenummalefemaleothernull
pronounsstring | null
countrystring | null
statusenumactiveinactive
metadataobject
talkToStrangersboolean
scopeenumaccountorganizationteamuser
organizationstring | null
teamstring | null
inboxPlatformenumsesgoogleoutlooknull
voiceobject | null
voiceIdstring | null
providerstring
channelsobject
imessagestring | null
smsstring | null
smsProviderenumtwiliosendblue
whatsappstring | null
whatsappProviderenumtwiliometa
whatsappPhoneNumberIdstring | null
whatsappSendblueobject
enabledboolean
numberstring | null
phoneNumberIdstring | null
whatsappTwilioobject
enabledboolean
numberstring | null
metaCredentialsobject
accessTokenstring | null
Responses
200Updated
ok reqenumtrue
assistant reqobject
id reqstring
account reqstring
organization reqstring | null
team reqstring | null
user reqstring | null
member reqstring | null
scope reqenumaccountorganizationteamuser
name reqstring
email reqstring
avatarUrl reqstring | null
signature reqstring | null
signatureEditorModeenumvisualhtml
personalitystring
taglinestring | null
backstorystring | null
rolestring | null
displayPersonalitystring | null
tag1string | null
tag2string | null
genderenummalefemaleothernull
pronounsstring | null
countrystring | null
signaturePhrasesstring[]
writingStyle reqobject
professionalismnumber
humornumber
emojiUsenumber
characterInspirationstring
externalCommunicationstring
oneOnOneCommunicationstring
voice reqobject | null
voiceIdstring | null
providerstring
status reqenumactiveinactive
isSystemTemplate reqboolean
talkToStrangers reqboolean
metadataobject
inboxPlatform reqenumsesgoogleoutlooknull
inboxAuthErrorboolean
channelsobject
imessagestring | null
smsstring | null
smsProviderenumtwiliosendblue
smsConversationsRegisteredAtstring | null
whatsappstring | null
whatsappProviderenumtwiliometa
whatsappPhoneNumberIdstring | null
whatsappSendblueobject
enabledboolean
numberstring | null
phoneNumberIdstring | null
whatsappTwilioobject
enabledboolean
numberstring | null
voiceobject
twilioNativeSidstring | null
twilioNativePhoneNumberstring | null
vapiPhoneNumberIdstring | null
transportProviderenumvapinative-live
statusenumnoneprovisioningpending_a2pactivefailed
provisionedAtstring | null
recordingDisclosureboolean
appearanceDescriptionstring
tagsobject
deletedAtstring | null
retiredEmailstring | null
emailReleasedAtstring | null
createdAt reqstring
updatedAt reqstring
Request
curl 'https://app.openassistant.us/api/users/<userId>/assistant' \
-X PUT \
-H "Authorization: Bearer ak_live_..." \
-H "Content-Type: application/json" \
-d '{
"name": "string",
"email": "[email protected]",
"personality": "string",
"signature": "string"
}'
Response
{
"ok": true,
"assistant": {
"id": "string",
"account": "string",
"organization": "string",
"team": "string",
"user": "string",
"member": "string"
}
}
DELETE/users/{userId}/assistant
Delete a user's assistant
Path parameters
Responses
200Deleted
ok reqenumtrue
assistant reqobject
id reqstring
deletedboolean
messagestring
Request
curl 'https://app.openassistant.us/api/users/<userId>/assistant' \
-X DELETE \
-H "Authorization: Bearer ak_live_..."
Response
{
"ok": true,
"assistant": {
"id": "string"
}
}
GET/assistants
List assistants visible to current user
Query parameters
Responses
200Assistants list
ok reqenumtrue
assistants reqobject[]
id reqstring
account reqstring
organization reqstring | null
team reqstring | null
user reqstring | null
member reqstring | null
scope reqenumaccountorganizationteamuser
name reqstring
email reqstring
avatarUrl reqstring | null
signature reqstring | null
signatureEditorModeenumvisualhtml
personalitystring
taglinestring | null
backstorystring | null
rolestring | null
displayPersonalitystring | null
tag1string | null
tag2string | null
genderenummalefemaleothernull
pronounsstring | null
countrystring | null
signaturePhrasesstring[]
writingStyle reqobject
professionalismnumber
humornumber
emojiUsenumber
characterInspirationstring
externalCommunicationstring
oneOnOneCommunicationstring
voice reqobject | null
voiceIdstring | null
providerstring
status reqenumactiveinactive
isSystemTemplate reqboolean
talkToStrangers reqboolean
metadataobject
inboxPlatform reqenumsesgoogleoutlooknull
inboxAuthErrorboolean
channelsobject
imessagestring | null
smsstring | null
smsProviderenumtwiliosendblue
smsConversationsRegisteredAtstring | null
whatsappstring | null
whatsappProviderenumtwiliometa
whatsappPhoneNumberIdstring | null
whatsappSendblueobject
enabledboolean
numberstring | null
phoneNumberIdstring | null
whatsappTwilioobject
enabledboolean
numberstring | null
voiceobject
twilioNativeSidstring | null
twilioNativePhoneNumberstring | null
vapiPhoneNumberIdstring | null
transportProviderenumvapinative-live
statusenumnoneprovisioningpending_a2pactivefailed
provisionedAtstring | null
recordingDisclosureboolean
appearanceDescriptionstring
tagsobject
deletedAtstring | null
retiredEmailstring | null
emailReleasedAtstring | null
createdAt reqstring
updatedAt reqstring
pageinteger
perPageinteger
totalinteger
Request
curl 'https://app.openassistant.us/api/assistants' \
-H "Authorization: Bearer ak_live_..."
Response
{
"ok": true,
"assistants": [
{
"id": "string",
"account": "string",
"organization": "string",
"team": "string",
"user": "string",
"member": "string"
}
]
}
POST/assistants
Create an assistant
Request body
name reqstring
email reqstring
scopeenumaccountorganizationteamuser
organizationstring | null
teamstring | null
personalitystring
signaturestring | null
signatureEditorModeenumvisualhtml
writingStyleobject
professionalismnumber
humornumber
emojiUsenumber
characterInspirationstring
externalCommunicationstring
oneOnOneCommunicationstring
avatarstring | null
appearanceDescriptionstring
taglinestring | null
backstorystring | null
displayPersonalitystring | null
tag1string | null
tag2string | null
genderenummalefemaleothernull
pronounsstring | null
countrystring | null
metadataobject
talkToStrangersboolean
voiceobject | null
voiceIdstring | null
providerstring
Responses
201Created assistant
ok reqenumtrue
assistant reqobject
id reqstring
account reqstring
organization reqstring | null
team reqstring | null
user reqstring | null
member reqstring | null
scope reqenumaccountorganizationteamuser
name reqstring
email reqstring
avatarUrl reqstring | null
signature reqstring | null
signatureEditorModeenumvisualhtml
personalitystring
taglinestring | null
backstorystring | null
rolestring | null
displayPersonalitystring | null
tag1string | null
tag2string | null
genderenummalefemaleothernull
pronounsstring | null
countrystring | null
signaturePhrasesstring[]
writingStyle reqobject
professionalismnumber
humornumber
emojiUsenumber
characterInspirationstring
externalCommunicationstring
oneOnOneCommunicationstring
voice reqobject | null
voiceIdstring | null
providerstring
status reqenumactiveinactive
isSystemTemplate reqboolean
talkToStrangers reqboolean
metadataobject
inboxPlatform reqenumsesgoogleoutlooknull
inboxAuthErrorboolean
channelsobject
imessagestring | null
smsstring | null
smsProviderenumtwiliosendblue
smsConversationsRegisteredAtstring | null
whatsappstring | null
whatsappProviderenumtwiliometa
whatsappPhoneNumberIdstring | null
whatsappSendblueobject
enabledboolean
numberstring | null
phoneNumberIdstring | null
whatsappTwilioobject
enabledboolean
numberstring | null
voiceobject
twilioNativeSidstring | null
twilioNativePhoneNumberstring | null
vapiPhoneNumberIdstring | null
transportProviderenumvapinative-live
statusenumnoneprovisioningpending_a2pactivefailed
provisionedAtstring | null
recordingDisclosureboolean
appearanceDescriptionstring
tagsobject
deletedAtstring | null
retiredEmailstring | null
emailReleasedAtstring | null
createdAt reqstring
updatedAt reqstring
400Bad request
status reqinteger
error_codestring
error reqstring
Request
curl 'https://app.openassistant.us/api/assistants' \
-X POST \
-H "Authorization: Bearer ak_live_..." \
-H "Content-Type: application/json" \
-d '{
"name": "string",
"email": "[email protected]"
}'
Response
{
"ok": true,
"assistant": {
"id": "string",
"account": "string",
"organization": "string",
"team": "string",
"user": "string",
"member": "string"
}
}
GET/assistants/{assistantId}
Get a specific assistant
Path parameters
Responses
200Assistant
ok reqenumtrue
assistant reqobject
id reqstring
account reqstring
organization reqstring | null
team reqstring | null
user reqstring | null
member reqstring | null
scope reqenumaccountorganizationteamuser
name reqstring
email reqstring
avatarUrl reqstring | null
signature reqstring | null
signatureEditorModeenumvisualhtml
personalitystring
taglinestring | null
backstorystring | null
rolestring | null
displayPersonalitystring | null
tag1string | null
tag2string | null
genderenummalefemaleothernull
pronounsstring | null
countrystring | null
signaturePhrasesstring[]
writingStyle reqobject
professionalismnumber
humornumber
emojiUsenumber
characterInspirationstring
externalCommunicationstring
oneOnOneCommunicationstring
voice reqobject | null
voiceIdstring | null
providerstring
status reqenumactiveinactive
isSystemTemplate reqboolean
talkToStrangers reqboolean
metadataobject
inboxPlatform reqenumsesgoogleoutlooknull
inboxAuthErrorboolean
channelsobject
imessagestring | null
smsstring | null
smsProviderenumtwiliosendblue
smsConversationsRegisteredAtstring | null
whatsappstring | null
whatsappProviderenumtwiliometa
whatsappPhoneNumberIdstring | null
whatsappSendblueobject
enabledboolean
numberstring | null
phoneNumberIdstring | null
whatsappTwilioobject
enabledboolean
numberstring | null
voiceobject
twilioNativeSidstring | null
twilioNativePhoneNumberstring | null
vapiPhoneNumberIdstring | null
transportProviderenumvapinative-live
statusenumnoneprovisioningpending_a2pactivefailed
provisionedAtstring | null
recordingDisclosureboolean
appearanceDescriptionstring
tagsobject
deletedAtstring | null
retiredEmailstring | null
emailReleasedAtstring | null
createdAt reqstring
updatedAt reqstring
404Not found
status reqinteger
error_codestring
error reqstring
Request
curl 'https://app.openassistant.us/api/assistants/<assistantId>' \
-H "Authorization: Bearer ak_live_..."
Response
{
"ok": true,
"assistant": {
"id": "string",
"account": "string",
"organization": "string",
"team": "string",
"user": "string",
"member": "string"
}
}
PUT/assistants/{assistantId}
Update an assistant
Path parameters
Request body
namestring
emailstring
personalitystring
signaturestring | null
signatureEditorModeenumvisualhtml
writingStyleobject
professionalismnumber
humornumber
emojiUsenumber
characterInspirationstring
externalCommunicationstring
oneOnOneCommunicationstring
avatarstring | null
appearanceDescriptionstring
taglinestring | null
backstorystring | null
displayPersonalitystring | null
tag1string | null
tag2string | null
genderenummalefemaleothernull
pronounsstring | null
countrystring | null
statusenumactiveinactive
metadataobject
talkToStrangersboolean
scopeenumaccountorganizationteamuser
organizationstring | null
teamstring | null
inboxPlatformenumsesgoogleoutlooknull
voiceobject | null
voiceIdstring | null
providerstring
channelsobject
imessagestring | null
smsstring | null
smsProviderenumtwiliosendblue
whatsappstring | null
whatsappProviderenumtwiliometa
whatsappPhoneNumberIdstring | null
whatsappSendblueobject
enabledboolean
numberstring | null
phoneNumberIdstring | null
whatsappTwilioobject
enabledboolean
numberstring | null
metaCredentialsobject
accessTokenstring | null
Responses
200Updated assistant
ok reqenumtrue
assistant reqobject
id reqstring
account reqstring
organization reqstring | null
team reqstring | null
user reqstring | null
member reqstring | null
scope reqenumaccountorganizationteamuser
name reqstring
email reqstring
avatarUrl reqstring | null
signature reqstring | null
signatureEditorModeenumvisualhtml
personalitystring
taglinestring | null
backstorystring | null
rolestring | null
displayPersonalitystring | null
tag1string | null
tag2string | null
genderenummalefemaleothernull
pronounsstring | null
countrystring | null
signaturePhrasesstring[]
writingStyle reqobject
professionalismnumber
humornumber
emojiUsenumber
characterInspirationstring
externalCommunicationstring
oneOnOneCommunicationstring
voice reqobject | null
voiceIdstring | null
providerstring
status reqenumactiveinactive
isSystemTemplate reqboolean
talkToStrangers reqboolean
metadataobject
inboxPlatform reqenumsesgoogleoutlooknull
inboxAuthErrorboolean
channelsobject
imessagestring | null
smsstring | null
smsProviderenumtwiliosendblue
smsConversationsRegisteredAtstring | null
whatsappstring | null
whatsappProviderenumtwiliometa
whatsappPhoneNumberIdstring | null
whatsappSendblueobject
enabledboolean
numberstring | null
phoneNumberIdstring | null
whatsappTwilioobject
enabledboolean
numberstring | null
voiceobject
twilioNativeSidstring | null
twilioNativePhoneNumberstring | null
vapiPhoneNumberIdstring | null
transportProviderenumvapinative-live
statusenumnoneprovisioningpending_a2pactivefailed
provisionedAtstring | null
recordingDisclosureboolean
appearanceDescriptionstring
tagsobject
deletedAtstring | null
retiredEmailstring | null
emailReleasedAtstring | null
createdAt reqstring
updatedAt reqstring
Request
curl 'https://app.openassistant.us/api/assistants/<assistantId>' \
-X PUT \
-H "Authorization: Bearer ak_live_..." \
-H "Content-Type: application/json" \
-d '{
"name": "string",
"email": "[email protected]",
"personality": "string",
"signature": "string"
}'
Response
{
"ok": true,
"assistant": {
"id": "string",
"account": "string",
"organization": "string",
"team": "string",
"user": "string",
"member": "string"
}
}
DELETE/assistants/{assistantId}
Delete an assistant
Path parameters
Responses
200Deleted
ok reqenumtrue
assistant reqobject
id reqstring
deletedboolean
messagestring
Request
curl 'https://app.openassistant.us/api/assistants/<assistantId>' \
-X DELETE \
-H "Authorization: Bearer ak_live_..."
Response
{
"ok": true,
"assistant": {
"id": "string"
}
}
GET/assistants/all
List all assistants visible to authenticated user
Responses
200All visible assistants
ok reqenumtrue
assistants reqobject[]
id reqstring
account reqstring
organization reqstring | null
team reqstring | null
user reqstring | null
member reqstring | null
scope reqenumaccountorganizationteamuser
name reqstring
email reqstring
avatarUrl reqstring | null
signature reqstring | null
signatureEditorModeenumvisualhtml
personalitystring
taglinestring | null
backstorystring | null
rolestring | null
displayPersonalitystring | null
tag1string | null
tag2string | null
genderenummalefemaleothernull
pronounsstring | null
countrystring | null
signaturePhrasesstring[]
writingStyle reqobject
professionalismnumber
humornumber
emojiUsenumber
characterInspirationstring
externalCommunicationstring
oneOnOneCommunicationstring
voice reqobject | null
voiceIdstring | null
providerstring
status reqenumactiveinactive
isSystemTemplate reqboolean
talkToStrangers reqboolean
metadataobject
inboxPlatform reqenumsesgoogleoutlooknull
inboxAuthErrorboolean
channelsobject
imessagestring | null
smsstring | null
smsProviderenumtwiliosendblue
smsConversationsRegisteredAtstring | null
whatsappstring | null
whatsappProviderenumtwiliometa
whatsappPhoneNumberIdstring | null
whatsappSendblueobject
enabledboolean
numberstring | null
phoneNumberIdstring | null
whatsappTwilioobject
enabledboolean
numberstring | null
voiceobject
twilioNativeSidstring | null
twilioNativePhoneNumberstring | null
vapiPhoneNumberIdstring | null
transportProviderenumvapinative-live
statusenumnoneprovisioningpending_a2pactivefailed
provisionedAtstring | null
recordingDisclosureboolean
appearanceDescriptionstring
tagsobject
deletedAtstring | null
retiredEmailstring | null
emailReleasedAtstring | null
createdAt reqstring
updatedAt reqstring
pageinteger
perPageinteger
totalinteger
Request
curl 'https://app.openassistant.us/api/assistants/all' \
-H "Authorization: Bearer ak_live_..."
Response
{
"ok": true,
"assistants": [
{
"id": "string",
"account": "string",
"organization": "string",
"team": "string",
"user": "string",
"member": "string"
}
]
}
GET/assistants/generate
Generate name and email suggestions
Query parameters
Responses
200Generated suggestions
name reqstring
emails reqstring[]
Request
curl 'https://app.openassistant.us/api/assistants/generate' \
-H "Authorization: Bearer ak_live_..."
Response
{
"name": "string",
"emails": [
"[email protected]"
]
}
POST/users/{userId}/hire
Hire (assign) an assistant to a user
Path parameters
Request body
assistantId reqstring | null
Responses
Request
curl 'https://app.openassistant.us/api/users/<userId>/hire' \
-X POST \
-H "Authorization: Bearer ak_live_..." \
-H "Content-Type: application/json" \
-d '{
"assistantId": "string"
}'
Response
{
"ok": true
}
GET/users/{userId}/assistants
List a user's assistant roster
Path parameters
Responses
200Roster
ok reqenumtrue
assistants reqany[]
primaryAssistantId reqstring | null
Request
curl 'https://app.openassistant.us/api/users/<userId>/assistants' \
-H "Authorization: Bearer ak_live_..."
Response
{
"ok": true,
"assistants": [
{
"id": "string",
"account": "string",
"organization": "string",
"team": "string",
"user": "string",
"member": "string",
"isPrimary": true
}
],
"primaryAssistantId": "string"
}
POST/users/{userId}/assistants
Create a user-scoped assistant and hire it onto the roster (idempotent on name)
Path parameters
Request body
name reqstring
emailstring
avatarstring
signaturestring | null
signatureEditorModeenumvisualhtml
personalitystring
backstorystring | null
genderenummalefemaleothernull
pronounsstring | null
countrystring | null
writingStyleobject
professionalismnumber
humornumber
emojiUsenumber
characterInspirationstring
externalCommunicationstring
oneOnOneCommunicationstring
metadataobject
voiceobject | null
voiceIdstring | null
providerstring
Responses
200Already existed (idempotent) — returned unchanged
ok reqenumtrue
assistant reqobject
id reqstring
account reqstring
organization reqstring | null
team reqstring | null
user reqstring | null
member reqstring | null
scope reqenumaccountorganizationteamuser
name reqstring
email reqstring
avatarUrl reqstring | null
signature reqstring | null
signatureEditorModeenumvisualhtml
personalitystring
taglinestring | null
backstorystring | null
rolestring | null
displayPersonalitystring | null
tag1string | null
tag2string | null
genderenummalefemaleothernull
pronounsstring | null
countrystring | null
signaturePhrasesstring[]
writingStyle reqobject
professionalismnumber
humornumber
emojiUsenumber
characterInspirationstring
externalCommunicationstring
oneOnOneCommunicationstring
voice reqobject | null
voiceIdstring | null
providerstring
status reqenumactiveinactive
isSystemTemplate reqboolean
talkToStrangers reqboolean
metadataobject
inboxPlatform reqenumsesgoogleoutlooknull
inboxAuthErrorboolean
channelsobject
imessagestring | null
smsstring | null
smsProviderenumtwiliosendblue
smsConversationsRegisteredAtstring | null
whatsappstring | null
whatsappProviderenumtwiliometa
whatsappPhoneNumberIdstring | null
whatsappSendblueobject
enabledboolean
numberstring | null
phoneNumberIdstring | null
whatsappTwilioobject
enabledboolean
numberstring | null
voiceobject
twilioNativeSidstring | null
twilioNativePhoneNumberstring | null
vapiPhoneNumberIdstring | null
transportProviderenumvapinative-live
statusenumnoneprovisioningpending_a2pactivefailed
provisionedAtstring | null
recordingDisclosureboolean
appearanceDescriptionstring
tagsobject
deletedAtstring | null
retiredEmailstring | null
emailReleasedAtstring | null
createdAt reqstring
updatedAt reqstring
201Created and hired
ok reqenumtrue
assistant reqobject
id reqstring
account reqstring
organization reqstring | null
team reqstring | null
user reqstring | null
member reqstring | null
scope reqenumaccountorganizationteamuser
name reqstring
email reqstring
avatarUrl reqstring | null
signature reqstring | null
signatureEditorModeenumvisualhtml
personalitystring
taglinestring | null
backstorystring | null
rolestring | null
displayPersonalitystring | null
tag1string | null
tag2string | null
genderenummalefemaleothernull
pronounsstring | null
countrystring | null
signaturePhrasesstring[]
writingStyle reqobject
professionalismnumber
humornumber
emojiUsenumber
characterInspirationstring
externalCommunicationstring
oneOnOneCommunicationstring
voice reqobject | null
voiceIdstring | null
providerstring
status reqenumactiveinactive
isSystemTemplate reqboolean
talkToStrangers reqboolean
metadataobject
inboxPlatform reqenumsesgoogleoutlooknull
inboxAuthErrorboolean
channelsobject
imessagestring | null
smsstring | null
smsProviderenumtwiliosendblue
smsConversationsRegisteredAtstring | null
whatsappstring | null
whatsappProviderenumtwiliometa
whatsappPhoneNumberIdstring | null
whatsappSendblueobject
enabledboolean
numberstring | null
phoneNumberIdstring | null
whatsappTwilioobject
enabledboolean
numberstring | null
voiceobject
twilioNativeSidstring | null
twilioNativePhoneNumberstring | null
vapiPhoneNumberIdstring | null
transportProviderenumvapinative-live
statusenumnoneprovisioningpending_a2pactivefailed
provisionedAtstring | null
recordingDisclosureboolean
appearanceDescriptionstring
tagsobject
deletedAtstring | null
retiredEmailstring | null
emailReleasedAtstring | null
createdAt reqstring
updatedAt reqstring
Request
curl 'https://app.openassistant.us/api/users/<userId>/assistants' \
-X POST \
-H "Authorization: Bearer ak_live_..." \
-H "Content-Type: application/json" \
-d '{
"name": "string"
}'
Response
{
"ok": true,
"assistant": {
"id": "string",
"account": "string",
"organization": "string",
"team": "string",
"user": "string",
"member": "string"
}
}
POST/users/{userId}/assistants/{assistantId}/hire
Hire an existing visible assistant onto the roster
Path parameters
userId reqstring
assistantId reqstring
Responses
403Assistant not visible to this user
status reqinteger
error_codestring
error reqstring
Request
curl 'https://app.openassistant.us/api/users/<userId>/assistants/<assistantId>/hire' \
-X POST \
-H "Authorization: Bearer ak_live_..."
Response
{
"ok": true
}
POST/users/{userId}/assistants/{assistantId}/primary
Set the user's primary assistant (must be a roster member)
Path parameters
userId reqstring
assistantId reqstring
Responses
400Assistant not on roster
status reqinteger
error_codestring
error reqstring
Request
curl 'https://app.openassistant.us/api/users/<userId>/assistants/<assistantId>/primary' \
-X POST \
-H "Authorization: Bearer ak_live_..."
Response
{
"ok": true
}
DELETE/users/{userId}/assistants/{assistantId}
Release an assistant from the roster
Blocked (409) while primary. If the assistant owns non-terminal tasks, blocked (409) unless ?transfer=primary is passed to move that work to the primary. Releasing a user-scoped assistant tombstones its email and retires it.
Path parameters
userId reqstring
assistantId reqstring
Query parameters
Responses
200Released — updated user
409Blocked — is primary, or has pending work
status reqinteger
error_codestring
error reqstring
Request
curl 'https://app.openassistant.us/api/users/<userId>/assistants/<assistantId>' \
-X DELETE \
-H "Authorization: Bearer ak_live_..."
Response
{
"ok": true
}
GET/assistants/{assistantId}/voice-greetings
Get an assistant's stored voice greeting lines
Owner of the assistant (portal) or console / account-wide credentials for account-level and system assistants. When the assistant has no lines yet, generation is started in the background and `generating` is true: read again shortly.
Path parameters
Responses
200Voice greetings
ok reqenumtrue
voiceGreetings reqobject
inbound reqobject
lines reqstring[]
source reqenumgeneratedownernull
updatedAt reqstring | null
outbound reqobject
lines reqstring[]
source reqenumgeneratedownernull
updatedAt reqstring | null
generatedAt reqstring | null
generating reqboolean
appliedboolean
reasonenumconcurrent_write
limits reqobject
minLines reqnumber
maxLines reqnumber
minChars reqnumber
maxChars reqnumber
maxSentences reqnumber
outboundPlaceholder reqstring
rules reqstring[]
generatedOnlyRules reqstring[]
403Not the assistant's owner
status reqinteger
error_codestring
error reqstring
404Not found
status reqinteger
error_codestring
error reqstring
Request
curl 'https://app.openassistant.us/api/assistants/<assistantId>/voice-greetings' \
-H "Authorization: Bearer ak_live_..."
Response
{
"ok": true,
"voiceGreetings": {
"inbound": {
"lines": [
"string"
],
"source": "generated",
"updatedAt": "2025-01-15T10:30:00.000Z"
},
"outbound": {
"lines": [
"string"
],
"source": "generated",
"updatedAt": "2025-01-15T10:30:00.000Z"
},
"generatedAt": "2025-01-15T10:30:00.000Z",
"generating": true,
"limits": {
"minLines": 0,
"maxLines": 0,
"minChars": 0,
"maxChars": 0,
"maxSentences": 0,
"outboundPlaceholder": "string"
}
}
}
PUT/assistants/{assistantId}/voice-greetings
Edit an assistant's stored voice greeting lines
Saved lists are marked source "owner" and are never overwritten by generation. Outbound templates need exactly one {firstName}; inbound lines must have none. Never starts generation: after clearing a list ([]), the next GET starts it (at most once per 10 minutes per assistant).
Path parameters
Request body
inboundstring[]
outboundstring[]
Responses
200Updated voice greetings
ok reqenumtrue
voiceGreetings reqobject
inbound reqobject
lines reqstring[]
source reqenumgeneratedownernull
updatedAt reqstring | null
outbound reqobject
lines reqstring[]
source reqenumgeneratedownernull
updatedAt reqstring | null
generatedAt reqstring | null
generating reqboolean
appliedboolean
reasonenumconcurrent_write
limits reqobject
minLines reqnumber
maxLines reqnumber
minChars reqnumber
maxChars reqnumber
maxSentences reqnumber
outboundPlaceholder reqstring
rules reqstring[]
generatedOnlyRules reqstring[]
400A line or list failed validation (error_code invalid_voice_greetings; body.details = {list, index?, reason})
status reqinteger
error_codestring
error reqstring
403Not the assistant's owner
status reqinteger
error_codestring
error reqstring
404Not found
status reqinteger
error_codestring
error reqstring
Request
curl 'https://app.openassistant.us/api/assistants/<assistantId>/voice-greetings' \
-X PUT \
-H "Authorization: Bearer ak_live_..." \
-H "Content-Type: application/json" \
-d '{
"inbound": [
"string"
],
"outbound": [
"string"
]
}'
Response
{
"ok": true,
"voiceGreetings": {
"inbound": {
"lines": [
"string"
],
"source": "generated",
"updatedAt": "2025-01-15T10:30:00.000Z"
},
"outbound": {
"lines": [
"string"
],
"source": "generated",
"updatedAt": "2025-01-15T10:30:00.000Z"
},
"generatedAt": "2025-01-15T10:30:00.000Z",
"generating": true,
"limits": {
"minLines": 0,
"maxLines": 0,
"minChars": 0,
"maxChars": 0,
"maxSentences": 0,
"outboundPlaceholder": "string"
}
}
}
POST/assistants/{assistantId}/voice-greetings/regenerate
Regenerate an assistant's voice greeting lines from its personality
Synchronous. Owner-written lists are kept unless replaceOwnerEdits is true, and never one saved after the request began. Rate limited per assistant (5 per hour). The response carries applied (false with reason concurrent_write when nothing was written because a concurrent write won).
Path parameters
Request body
scopeenumbothinboundoutbound
replaceOwnerEditsboolean
Responses
200Voice greetings after regeneration
ok reqenumtrue
voiceGreetings reqobject
inbound reqobject
lines reqstring[]
source reqenumgeneratedownernull
updatedAt reqstring | null
outbound reqobject
lines reqstring[]
source reqenumgeneratedownernull
updatedAt reqstring | null
generatedAt reqstring | null
generating reqboolean
appliedboolean
reasonenumconcurrent_write
limits reqobject
minLines reqnumber
maxLines reqnumber
minChars reqnumber
maxChars reqnumber
maxSentences reqnumber
outboundPlaceholder reqstring
rules reqstring[]
generatedOnlyRules reqstring[]
403Not the assistant's owner
status reqinteger
error_codestring
error reqstring
404Not found
status reqinteger
error_codestring
error reqstring
409Generation already running (generation_in_progress), or every requested list is owner-written (owner_edited)
status reqinteger
error_codestring
error reqstring
429Too many regenerations for this assistant (body.retryAfterSeconds, Retry-After header)
status reqinteger
error_codestring
error reqstring
502The model could not produce valid lines (greeting_generation_failed)
status reqinteger
error_codestring
error reqstring
503The rate limiter is unavailable (rate_limit_unavailable); nothing was generated
status reqinteger
error_codestring
error reqstring
Request
curl 'https://app.openassistant.us/api/assistants/<assistantId>/voice-greetings/regenerate' \
-X POST \
-H "Authorization: Bearer ak_live_..." \
-H "Content-Type: application/json" \
-d '{
"scope": "both",
"replaceOwnerEdits": true
}'
Response
{
"ok": true,
"voiceGreetings": {
"inbound": {
"lines": [
"string"
],
"source": "generated",
"updatedAt": "2025-01-15T10:30:00.000Z"
},
"outbound": {
"lines": [
"string"
],
"source": "generated",
"updatedAt": "2025-01-15T10:30:00.000Z"
},
"generatedAt": "2025-01-15T10:30:00.000Z",
"generating": true,
"limits": {
"minLines": 0,
"maxLines": 0,
"minChars": 0,
"maxChars": 0,
"maxSentences": 0,
"outboundPlaceholder": "string"
}
}
}