User API
Drive
Files created by agents, visible and deletable by users
GET/users/{userId}/drive-storage
Get drive storage usage for a user
Returns used, quota, and remaining bytes. Default quota is 15GB per user.
Path parameters
Responses
200Storage usage
ok reqenumtrue
storage reqobject
usedBytes reqinteger
quotaBytes reqinteger
remainingBytes reqinteger
percentUsed reqinteger
404User not found
status reqinteger
error_codestring
error reqstring
Request
curl 'https://app.openassistant.us/api/users/<userId>/drive-storage' \
-H "Authorization: Bearer ak_live_..."
Response
{
"ok": true,
"storage": {
"usedBytes": 0,
"quotaBytes": 0,
"remainingBytes": 0,
"percentUsed": 0
}
}
GET/users/{userId}/drive-files
List drive files for a user
Path parameters
Query parameters
pageinteger
perPageinteger
limitinteger
statusstringFilter by status
searchstringFuzzy search on file name
folderstringFolder ID. Omit for root files.
kindstringFilter by kind (file or note)
eventIdstringFilter notes by calendar event ID
noteTypestringFilter notes by type
tagsstringComma-separated tag filter
Responses
200Paginated drive file list
ok reqenumtrue
driveFiles reqobject[]
id reqstring
account reqstring
user reqstring
teamstring | null
organizationstring | null
kindenumfilenote
folderstring | null
eventobject | null
calendarId reqstring
eventId reqstring
noteTypeenumraw-transcriptshared-summarypersonal-summaryuser-notesaction-items
isPrivateboolean
attendeesstring[]
externalShareobject | null
token reqstring
expiresAtstring | null
sharedAtstring | null
sharedWithstring[]
summaryStatusenumnonependingready
tagsstring[]
s3Key reqstring
name reqstring
mimeTypestring | null
size reqinteger
status reqenumpendingready
assistantstring | null
sourceobject | null
type reqenumchatdispatchtaskupload
id reqstring
importSourceobject | null
type reqenumgoogle-meetms-teamszoomgranolafirefliesotterfathomgongtldvread-aiavomachorusfellowsalesforcehubspotgoogle-driveonedrivedropboxbox
externalId reqstring
importedAt reqstring
hash reqstring
remoteRefobject | null
provider reqenumgoogle-driveonedrivedropboxbox
fileId reqstring
webLinkstring | null
lastFetchedAtstring | null
contentCachedboolean
relatedTasksstring[]
activitiesobject[]
type reqenummessagestatus_changeeditshare
role reqenumuserassistantsystem
content reqstring
assistantstring | null
createdAt reqstring
versionsobject[]
s3Key reqstring
size reqinteger
mimeTypestring | null
savedAt reqstring
savedBy reqstring
metadataobject
createdAt reqstring
updatedAt reqstring
pageinteger
perPageinteger
totalinteger
404User not found
status reqinteger
error_codestring
error reqstring
Request
curl 'https://app.openassistant.us/api/users/<userId>/drive-files' \
-H "Authorization: Bearer ak_live_..."
Response
{
"ok": true,
"driveFiles": [
{
"id": "string",
"account": "string",
"user": "string",
"s3Key": "string",
"name": "string",
"size": 0
}
]
}
GET/users/{userId}/drive-files/{fileId}
Get a drive file
Path parameters
userId reqstring
fileId reqstring
Responses
200Drive file
ok reqenumtrue
driveFile reqobject
id reqstring
account reqstring
user reqstring
teamstring | null
organizationstring | null
kindenumfilenote
folderstring | null
eventobject | null
calendarId reqstring
eventId reqstring
noteTypeenumraw-transcriptshared-summarypersonal-summaryuser-notesaction-items
isPrivateboolean
attendeesstring[]
externalShareobject | null
token reqstring
expiresAtstring | null
sharedAtstring | null
sharedWithstring[]
summaryStatusenumnonependingready
tagsstring[]
s3Key reqstring
name reqstring
mimeTypestring | null
size reqinteger
status reqenumpendingready
assistantstring | null
sourceobject | null
type reqenumchatdispatchtaskupload
id reqstring
importSourceobject | null
type reqenumgoogle-meetms-teamszoomgranolafirefliesotterfathomgongtldvread-aiavomachorusfellowsalesforcehubspotgoogle-driveonedrivedropboxbox
externalId reqstring
importedAt reqstring
hash reqstring
remoteRefobject | null
provider reqenumgoogle-driveonedrivedropboxbox
fileId reqstring
webLinkstring | null
lastFetchedAtstring | null
contentCachedboolean
relatedTasksstring[]
activitiesobject[]
type reqenummessagestatus_changeeditshare
role reqenumuserassistantsystem
content reqstring
assistantstring | null
createdAt reqstring
versionsobject[]
s3Key reqstring
size reqinteger
mimeTypestring | null
savedAt reqstring
savedBy reqstring
metadataobject
createdAt reqstring
updatedAt reqstring
404Not found
status reqinteger
error_codestring
error reqstring
Request
curl 'https://app.openassistant.us/api/users/<userId>/drive-files/<fileId>' \
-H "Authorization: Bearer ak_live_..."
Response
{
"ok": true,
"driveFile": {
"id": "string",
"account": "string",
"user": "string",
"s3Key": "string",
"name": "string",
"size": 0
}
}
DELETE/users/{userId}/drive-files/{fileId}
Delete a drive file
Deletes the DB record and the corresponding S3 object.
Path parameters
userId reqstring
fileId reqstring
Responses
200Deleted
ok reqenumtrue
driveFile reqobject
id reqstring
deletedboolean
messagestring
404Not found
status reqinteger
error_codestring
error reqstring
Request
curl 'https://app.openassistant.us/api/users/<userId>/drive-files/<fileId>' \
-X DELETE \
-H "Authorization: Bearer ak_live_..."
Response
{
"ok": true,
"driveFile": {
"id": "string"
}
}
GET/users/{userId}/drive-files/{fileId}/download
Get a presigned download URL for a drive file
Returns a presigned S3 GET URL valid for 15 minutes. Use this URL to stream the file directly from S3.
Path parameters
userId reqstring
fileId reqstring
Responses
200Presigned download URL
ok reqenumtrue
url reqstringPresigned S3 GET URL, valid for 15 minutes.
404Not found
status reqinteger
error_codestring
error reqstring
Request
curl 'https://app.openassistant.us/api/users/<userId>/drive-files/<fileId>/download' \
-H "Authorization: Bearer ak_live_..."
Response
{
"ok": true,
"url": "string"
}
POST/users/{userId}/drive-files/upload
Get a presigned upload URL
Returns a presigned S3 PUT URL. Upload the file bytes directly to this URL, then call confirm to finalize.
Path parameters
Request body
name reqstringDisplay name for the file
mimeTypestringMIME type (auto-detected from name if omitted)
size reqintegerFile size in bytes (for quota pre-check)
folderstring | nullFolder to upload into (null/omit = root)
Responses
200Presigned upload URL
ok reqenumtrue
url reqstringPresigned S3 PUT URL. Upload file bytes here.
fileId reqstringDriveFile record ID. Use this to confirm upload.
contentType reqstringContent-Type to use for the PUT request.
400Quota exceeded
status reqinteger
error_codestring
error reqstring
404User not found
status reqinteger
error_codestring
error reqstring
Request
curl 'https://app.openassistant.us/api/users/<userId>/drive-files/upload' \
-X POST \
-H "Authorization: Bearer ak_live_..." \
-H "Content-Type: application/json" \
-d '{
"name": "string",
"size": 0
}'
Response
{
"ok": true,
"url": "string",
"fileId": "string",
"contentType": "string"
}
POST/users/{userId}/drive-files/{fileId}/confirm
Confirm a file upload
Call after uploading bytes to the presigned URL. Marks the file as ready and updates storage usage.
Path parameters
userId reqstring
fileId reqstring
Request body
size reqintegerActual byte size of the uploaded file
Responses
200Confirmed file
ok reqenumtrue
driveFile reqobject
id reqstring
account reqstring
user reqstring
teamstring | null
organizationstring | null
kindenumfilenote
folderstring | null
eventobject | null
calendarId reqstring
eventId reqstring
noteTypeenumraw-transcriptshared-summarypersonal-summaryuser-notesaction-items
isPrivateboolean
attendeesstring[]
externalShareobject | null
token reqstring
expiresAtstring | null
sharedAtstring | null
sharedWithstring[]
summaryStatusenumnonependingready
tagsstring[]
s3Key reqstring
name reqstring
mimeTypestring | null
size reqinteger
status reqenumpendingready
assistantstring | null
sourceobject | null
type reqenumchatdispatchtaskupload
id reqstring
importSourceobject | null
type reqenumgoogle-meetms-teamszoomgranolafirefliesotterfathomgongtldvread-aiavomachorusfellowsalesforcehubspotgoogle-driveonedrivedropboxbox
externalId reqstring
importedAt reqstring
hash reqstring
remoteRefobject | null
provider reqenumgoogle-driveonedrivedropboxbox
fileId reqstring
webLinkstring | null
lastFetchedAtstring | null
contentCachedboolean
relatedTasksstring[]
activitiesobject[]
type reqenummessagestatus_changeeditshare
role reqenumuserassistantsystem
content reqstring
assistantstring | null
createdAt reqstring
versionsobject[]
s3Key reqstring
size reqinteger
mimeTypestring | null
savedAt reqstring
savedBy reqstring
metadataobject
createdAt reqstring
updatedAt reqstring
404Not found
status reqinteger
error_codestring
error reqstring
Request
curl 'https://app.openassistant.us/api/users/<userId>/drive-files/<fileId>/confirm' \
-X POST \
-H "Authorization: Bearer ak_live_..." \
-H "Content-Type: application/json" \
-d '{
"size": 0
}'
Response
{
"ok": true,
"driveFile": {
"id": "string",
"account": "string",
"user": "string",
"s3Key": "string",
"name": "string",
"size": 0
}
}
PATCH/users/{userId}/drive-files/{fileId}/move
Move a file to a folder
Path parameters
userId reqstring
fileId reqstring
Request body
folder reqstring | nullTarget folder ID (null = root)
Responses
200Moved file
ok reqenumtrue
driveFile reqobject
id reqstring
account reqstring
user reqstring
teamstring | null
organizationstring | null
kindenumfilenote
folderstring | null
eventobject | null
calendarId reqstring
eventId reqstring
noteTypeenumraw-transcriptshared-summarypersonal-summaryuser-notesaction-items
isPrivateboolean
attendeesstring[]
externalShareobject | null
token reqstring
expiresAtstring | null
sharedAtstring | null
sharedWithstring[]
summaryStatusenumnonependingready
tagsstring[]
s3Key reqstring
name reqstring
mimeTypestring | null
size reqinteger
status reqenumpendingready
assistantstring | null
sourceobject | null
type reqenumchatdispatchtaskupload
id reqstring
importSourceobject | null
type reqenumgoogle-meetms-teamszoomgranolafirefliesotterfathomgongtldvread-aiavomachorusfellowsalesforcehubspotgoogle-driveonedrivedropboxbox
externalId reqstring
importedAt reqstring
hash reqstring
remoteRefobject | null
provider reqenumgoogle-driveonedrivedropboxbox
fileId reqstring
webLinkstring | null
lastFetchedAtstring | null
contentCachedboolean
relatedTasksstring[]
activitiesobject[]
type reqenummessagestatus_changeeditshare
role reqenumuserassistantsystem
content reqstring
assistantstring | null
createdAt reqstring
versionsobject[]
s3Key reqstring
size reqinteger
mimeTypestring | null
savedAt reqstring
savedBy reqstring
metadataobject
createdAt reqstring
updatedAt reqstring
404Not found
status reqinteger
error_codestring
error reqstring
Request
curl 'https://app.openassistant.us/api/users/<userId>/drive-files/<fileId>/move' \
-X PATCH \
-H "Authorization: Bearer ak_live_..." \
-H "Content-Type: application/json" \
-d '{
"folder": "507f1f77bcf86cd799439011"
}'
Response
{
"ok": true,
"driveFile": {
"id": "string",
"account": "string",
"user": "string",
"s3Key": "string",
"name": "string",
"size": 0
}
}
PATCH/users/{userId}/drive-files/{fileId}/share
Share a file with a team or organization
Path parameters
userId reqstring
fileId reqstring
Request body
teamstring | nullShare with team (null = unshare)
organizationstring | nullShare with organization (null = unshare)
Responses
200Shared file
ok reqenumtrue
driveFile reqobject
id reqstring
account reqstring
user reqstring
teamstring | null
organizationstring | null
kindenumfilenote
folderstring | null
eventobject | null
calendarId reqstring
eventId reqstring
noteTypeenumraw-transcriptshared-summarypersonal-summaryuser-notesaction-items
isPrivateboolean
attendeesstring[]
externalShareobject | null
token reqstring
expiresAtstring | null
sharedAtstring | null
sharedWithstring[]
summaryStatusenumnonependingready
tagsstring[]
s3Key reqstring
name reqstring
mimeTypestring | null
size reqinteger
status reqenumpendingready
assistantstring | null
sourceobject | null
type reqenumchatdispatchtaskupload
id reqstring
importSourceobject | null
type reqenumgoogle-meetms-teamszoomgranolafirefliesotterfathomgongtldvread-aiavomachorusfellowsalesforcehubspotgoogle-driveonedrivedropboxbox
externalId reqstring
importedAt reqstring
hash reqstring
remoteRefobject | null
provider reqenumgoogle-driveonedrivedropboxbox
fileId reqstring
webLinkstring | null
lastFetchedAtstring | null
contentCachedboolean
relatedTasksstring[]
activitiesobject[]
type reqenummessagestatus_changeeditshare
role reqenumuserassistantsystem
content reqstring
assistantstring | null
createdAt reqstring
versionsobject[]
s3Key reqstring
size reqinteger
mimeTypestring | null
savedAt reqstring
savedBy reqstring
metadataobject
createdAt reqstring
updatedAt reqstring
404Not found
status reqinteger
error_codestring
error reqstring
Request
curl 'https://app.openassistant.us/api/users/<userId>/drive-files/<fileId>/share' \
-X PATCH \
-H "Authorization: Bearer ak_live_..." \
-H "Content-Type: application/json" \
-d '{
"team": "507f1f77bcf86cd799439011",
"organization": "507f1f77bcf86cd799439011"
}'
Response
{
"ok": true,
"driveFile": {
"id": "string",
"account": "string",
"user": "string",
"s3Key": "string",
"name": "string",
"size": 0
}
}
GET/users/{userId}/drive-files/shared
List files shared with the user
Path parameters
Responses
200Shared files
ok reqenumtrue
driveFiles reqobject[]
id reqstring
account reqstring
user reqstring
teamstring | null
organizationstring | null
kindenumfilenote
folderstring | null
eventobject | null
calendarId reqstring
eventId reqstring
noteTypeenumraw-transcriptshared-summarypersonal-summaryuser-notesaction-items
isPrivateboolean
attendeesstring[]
externalShareobject | null
token reqstring
expiresAtstring | null
sharedAtstring | null
sharedWithstring[]
summaryStatusenumnonependingready
tagsstring[]
s3Key reqstring
name reqstring
mimeTypestring | null
size reqinteger
status reqenumpendingready
assistantstring | null
sourceobject | null
type reqenumchatdispatchtaskupload
id reqstring
importSourceobject | null
type reqenumgoogle-meetms-teamszoomgranolafirefliesotterfathomgongtldvread-aiavomachorusfellowsalesforcehubspotgoogle-driveonedrivedropboxbox
externalId reqstring
importedAt reqstring
hash reqstring
remoteRefobject | null
provider reqenumgoogle-driveonedrivedropboxbox
fileId reqstring
webLinkstring | null
lastFetchedAtstring | null
contentCachedboolean
relatedTasksstring[]
activitiesobject[]
type reqenummessagestatus_changeeditshare
role reqenumuserassistantsystem
content reqstring
assistantstring | null
createdAt reqstring
versionsobject[]
s3Key reqstring
size reqinteger
mimeTypestring | null
savedAt reqstring
savedBy reqstring
metadataobject
createdAt reqstring
updatedAt reqstring
pageinteger
perPageinteger
totalinteger
Request
curl 'https://app.openassistant.us/api/users/<userId>/drive-files/shared' \
-H "Authorization: Bearer ak_live_..."
Response
{
"ok": true,
"driveFiles": [
{
"id": "string",
"account": "string",
"user": "string",
"s3Key": "string",
"name": "string",
"size": 0
}
]
}
POST/users/{userId}/drive-files/{fileId}/link-task
Link a task to a drive file
Path parameters
userId reqstring
fileId reqstring
Request body
taskId reqstringTask ID to link
Responses
200Linked
ok reqenumtrue
fileId reqstring
taskId reqstring
404Not found
status reqinteger
error_codestring
error reqstring
Request
curl 'https://app.openassistant.us/api/users/<userId>/drive-files/<fileId>/link-task' \
-X POST \
-H "Authorization: Bearer ak_live_..." \
-H "Content-Type: application/json" \
-d '{
"taskId": "507f1f77bcf86cd799439011"
}'
Response
{
"ok": true,
"fileId": "string",
"taskId": "string"
}
DELETE/users/{userId}/drive-files/{fileId}/unlink-task/{taskId}
Unlink a task from a drive file
Path parameters
userId reqstring
fileId reqstring
taskId reqstring
Responses
200Unlinked
ok reqenumtrue
fileId reqstring
taskId reqstring
404Not found
status reqinteger
error_codestring
error reqstring
Request
curl 'https://app.openassistant.us/api/users/<userId>/drive-files/<fileId>/unlink-task/<taskId>' \
-X DELETE \
-H "Authorization: Bearer ak_live_..."
Response
{
"ok": true,
"fileId": "string",
"taskId": "string"
}
POST/users/{userId}/drive-files/{fileId}/process
Send a message about a file
Adds a user message to the file activities. Agent processing is triggered asynchronously.
Path parameters
userId reqstring
fileId reqstring
Request body
message reqstringMessage about this file
assistantIdstringAssistant to process with
Responses
200File with updated activities
ok reqenumtrue
driveFile reqobject
id reqstring
account reqstring
user reqstring
teamstring | null
organizationstring | null
kindenumfilenote
folderstring | null
eventobject | null
calendarId reqstring
eventId reqstring
noteTypeenumraw-transcriptshared-summarypersonal-summaryuser-notesaction-items
isPrivateboolean
attendeesstring[]
externalShareobject | null
token reqstring
expiresAtstring | null
sharedAtstring | null
sharedWithstring[]
summaryStatusenumnonependingready
tagsstring[]
s3Key reqstring
name reqstring
mimeTypestring | null
size reqinteger
status reqenumpendingready
assistantstring | null
sourceobject | null
type reqenumchatdispatchtaskupload
id reqstring
importSourceobject | null
type reqenumgoogle-meetms-teamszoomgranolafirefliesotterfathomgongtldvread-aiavomachorusfellowsalesforcehubspotgoogle-driveonedrivedropboxbox
externalId reqstring
importedAt reqstring
hash reqstring
remoteRefobject | null
provider reqenumgoogle-driveonedrivedropboxbox
fileId reqstring
webLinkstring | null
lastFetchedAtstring | null
contentCachedboolean
relatedTasksstring[]
activitiesobject[]
type reqenummessagestatus_changeeditshare
role reqenumuserassistantsystem
content reqstring
assistantstring | null
createdAt reqstring
versionsobject[]
s3Key reqstring
size reqinteger
mimeTypestring | null
savedAt reqstring
savedBy reqstring
metadataobject
createdAt reqstring
updatedAt reqstring
404Not found
status reqinteger
error_codestring
error reqstring
Request
curl 'https://app.openassistant.us/api/users/<userId>/drive-files/<fileId>/process' \
-X POST \
-H "Authorization: Bearer ak_live_..." \
-H "Content-Type: application/json" \
-d '{
"message": "string"
}'
Response
{
"ok": true,
"driveFile": {
"id": "string",
"account": "string",
"user": "string",
"s3Key": "string",
"name": "string",
"size": 0
}
}
GET/users/{userId}/drive-files/{fileId}/activities
List file activities
Path parameters
userId reqstring
fileId reqstring
Responses
200Activities
ok reqenumtrue
activities reqobject[]
type reqenummessagestatus_changeeditshare
role reqenumuserassistantsystem
content reqstring
assistantstring | null
createdAt reqstring
404Not found
status reqinteger
error_codestring
error reqstring
Request
curl 'https://app.openassistant.us/api/users/<userId>/drive-files/<fileId>/activities' \
-H "Authorization: Bearer ak_live_..."
Response
{
"ok": true,
"activities": [
{
"type": "message",
"role": "user",
"content": "string",
"createdAt": "2025-01-15T10:30:00.000Z"
}
]
}
GET/users/{userId}/drive-files/{fileId}/versions
List file versions
Path parameters
userId reqstring
fileId reqstring
Responses
200Versions
ok reqenumtrue
versions reqobject[]
s3Key reqstring
size reqinteger
mimeTypestring | null
savedAt reqstring
savedBy reqstring
404Not found
status reqinteger
error_codestring
error reqstring
Request
curl 'https://app.openassistant.us/api/users/<userId>/drive-files/<fileId>/versions' \
-H "Authorization: Bearer ak_live_..."
Response
{
"ok": true,
"versions": [
{
"s3Key": "string",
"size": 0,
"savedAt": "2025-01-15T10:30:00.000Z",
"savedBy": "string"
}
]
}
POST/users/{userId}/drive-files/{fileId}/versions/{versionIndex}/restore
Restore a file version
Path parameters
userId reqstring
fileId reqstring
versionIndex reqstring
Responses
200Restored file
ok reqenumtrue
driveFile reqobject
id reqstring
account reqstring
user reqstring
teamstring | null
organizationstring | null
kindenumfilenote
folderstring | null
eventobject | null
calendarId reqstring
eventId reqstring
noteTypeenumraw-transcriptshared-summarypersonal-summaryuser-notesaction-items
isPrivateboolean
attendeesstring[]
externalShareobject | null
token reqstring
expiresAtstring | null
sharedAtstring | null
sharedWithstring[]
summaryStatusenumnonependingready
tagsstring[]
s3Key reqstring
name reqstring
mimeTypestring | null
size reqinteger
status reqenumpendingready
assistantstring | null
sourceobject | null
type reqenumchatdispatchtaskupload
id reqstring
importSourceobject | null
type reqenumgoogle-meetms-teamszoomgranolafirefliesotterfathomgongtldvread-aiavomachorusfellowsalesforcehubspotgoogle-driveonedrivedropboxbox
externalId reqstring
importedAt reqstring
hash reqstring
remoteRefobject | null
provider reqenumgoogle-driveonedrivedropboxbox
fileId reqstring
webLinkstring | null
lastFetchedAtstring | null
contentCachedboolean
relatedTasksstring[]
activitiesobject[]
type reqenummessagestatus_changeeditshare
role reqenumuserassistantsystem
content reqstring
assistantstring | null
createdAt reqstring
versionsobject[]
s3Key reqstring
size reqinteger
mimeTypestring | null
savedAt reqstring
savedBy reqstring
metadataobject
createdAt reqstring
updatedAt reqstring
404Not found
status reqinteger
error_codestring
error reqstring
Request
curl 'https://app.openassistant.us/api/users/<userId>/drive-files/<fileId>/versions/<versionIndex>/restore' \
-X POST \
-H "Authorization: Bearer ak_live_..."
Response
{
"ok": true,
"driveFile": {
"id": "string",
"account": "string",
"user": "string",
"s3Key": "string",
"name": "string",
"size": 0
}
}
PUT/users/{userId}/drive-files/{fileId}/content
Update file content inline
Direct content update for text files under 5MB. Creates a version snapshot before overwriting.
Path parameters
userId reqstring
fileId reqstring
Request body
content reqstringNew file content (text files < 5MB)
Responses
200Updated file
ok reqenumtrue
driveFile reqobject
id reqstring
account reqstring
user reqstring
teamstring | null
organizationstring | null
kindenumfilenote
folderstring | null
eventobject | null
calendarId reqstring
eventId reqstring
noteTypeenumraw-transcriptshared-summarypersonal-summaryuser-notesaction-items
isPrivateboolean
attendeesstring[]
externalShareobject | null
token reqstring
expiresAtstring | null
sharedAtstring | null
sharedWithstring[]
summaryStatusenumnonependingready
tagsstring[]
s3Key reqstring
name reqstring
mimeTypestring | null
size reqinteger
status reqenumpendingready
assistantstring | null
sourceobject | null
type reqenumchatdispatchtaskupload
id reqstring
importSourceobject | null
type reqenumgoogle-meetms-teamszoomgranolafirefliesotterfathomgongtldvread-aiavomachorusfellowsalesforcehubspotgoogle-driveonedrivedropboxbox
externalId reqstring
importedAt reqstring
hash reqstring
remoteRefobject | null
provider reqenumgoogle-driveonedrivedropboxbox
fileId reqstring
webLinkstring | null
lastFetchedAtstring | null
contentCachedboolean
relatedTasksstring[]
activitiesobject[]
type reqenummessagestatus_changeeditshare
role reqenumuserassistantsystem
content reqstring
assistantstring | null
createdAt reqstring
versionsobject[]
s3Key reqstring
size reqinteger
mimeTypestring | null
savedAt reqstring
savedBy reqstring
metadataobject
createdAt reqstring
updatedAt reqstring
404Not found
status reqinteger
error_codestring
error reqstring
Request
curl 'https://app.openassistant.us/api/users/<userId>/drive-files/<fileId>/content' \
-X PUT \
-H "Authorization: Bearer ak_live_..." \
-H "Content-Type: application/json" \
-d '{
"content": "string"
}'
Response
{
"ok": true,
"driveFile": {
"id": "string",
"account": "string",
"user": "string",
"s3Key": "string",
"name": "string",
"size": 0
}
}
POST/users/{userId}/drive-files/notes
Create a note
Quick-create a markdown note. Writes content directly to S3 and marks as ready in one step. Set `event` to link it to a calendar event (meeting note).
Path parameters
Request body
name reqstringFile/note title
contentstringInitial markdown content
kindenumKind of file to create (defaults to note)filenote
eventobject
calendarIdstring
eventIdstring
noteTypeenumNote sub-type (for meeting notes)raw-transcriptshared-summaryaction-itemsuser-notespersonal-summary
tagsstring[]Tags for the note
folderstring | nullFolder ID (null = root)
Responses
200Created note
ok reqenumtrue
driveFile reqobject
id reqstring
account reqstring
user reqstring
teamstring | null
organizationstring | null
kindenumfilenote
folderstring | null
eventobject | null
calendarId reqstring
eventId reqstring
noteTypeenumraw-transcriptshared-summarypersonal-summaryuser-notesaction-items
isPrivateboolean
attendeesstring[]
externalShareobject | null
token reqstring
expiresAtstring | null
sharedAtstring | null
sharedWithstring[]
summaryStatusenumnonependingready
tagsstring[]
s3Key reqstring
name reqstring
mimeTypestring | null
size reqinteger
status reqenumpendingready
assistantstring | null
sourceobject | null
type reqenumchatdispatchtaskupload
id reqstring
importSourceobject | null
type reqenumgoogle-meetms-teamszoomgranolafirefliesotterfathomgongtldvread-aiavomachorusfellowsalesforcehubspotgoogle-driveonedrivedropboxbox
externalId reqstring
importedAt reqstring
hash reqstring
remoteRefobject | null
provider reqenumgoogle-driveonedrivedropboxbox
fileId reqstring
webLinkstring | null
lastFetchedAtstring | null
contentCachedboolean
relatedTasksstring[]
activitiesobject[]
type reqenummessagestatus_changeeditshare
role reqenumuserassistantsystem
content reqstring
assistantstring | null
createdAt reqstring
versionsobject[]
s3Key reqstring
size reqinteger
mimeTypestring | null
savedAt reqstring
savedBy reqstring
metadataobject
createdAt reqstring
updatedAt reqstring
400Quota exceeded
status reqinteger
error_codestring
error reqstring
404User not found
status reqinteger
error_codestring
error reqstring
Request
curl 'https://app.openassistant.us/api/users/<userId>/drive-files/notes' \
-X POST \
-H "Authorization: Bearer ak_live_..." \
-H "Content-Type: application/json" \
-d '{
"name": "string"
}'
Response
{
"ok": true,
"driveFile": {
"id": "string",
"account": "string",
"user": "string",
"s3Key": "string",
"name": "string",
"size": 0
}
}
GET/users/{userId}/drive-files/meeting-notes
List meeting notes grouped by event
Returns notes linked to calendar events, grouped by event with event metadata (title, date, attendees).
Path parameters
Responses
200Meeting notes grouped by event
ok reqenumtrue
meetingNotes reqobject[]
event reqobject
id reqstring
calendarId reqstring
title reqstring
startsAt reqstring
endsAtstring
attendeesobject[]
namestring
emailstring
statusstring
notes reqobject[]
id reqstring
account reqstring
user reqstring
teamstring | null
organizationstring | null
kindenumfilenote
folderstring | null
eventany...
noteTypeenumraw-transcriptshared-summarypersonal-summaryuser-notesaction-items
isPrivateboolean
attendeesstring[]
externalShareany...
summaryStatusenumnonependingready
tagsstring[]
s3Key reqstring
name reqstring
mimeTypestring | null
size reqinteger
status reqenumpendingready
assistantstring | null
sourceany...
importSourceany...
remoteRefany...
relatedTasksstring[]
activitiesany[]
versionsany[]
metadataobject
createdAt reqstring
updatedAt reqstring
404User not found
status reqinteger
error_codestring
error reqstring
Request
curl 'https://app.openassistant.us/api/users/<userId>/drive-files/meeting-notes' \
-H "Authorization: Bearer ak_live_..."
Response
{
"ok": true,
"meetingNotes": [
{
"event": {
"id": "string",
"calendarId": "string",
"title": "string",
"startsAt": "string"
},
"notes": [
{
"id": null,
"account": null,
"user": null,
"s3Key": null,
"name": null,
"size": null
}
]
}
]
}
POST/users/{userId}/drive-files/notes/import/{provider}
Import meeting notes from external provider
Triggers import of meeting notes from an external platform (e.g. Google Meet). Rate limited to once per 5 minutes per user.
Path parameters
userId reqstring
provider reqstringImport provider (e.g. google-meet, ms-teams, zoom)
Responses
200Import results
ok reqenumtrue
imported reqinteger
updated reqinteger
skipped reqinteger
errors reqinteger
reasonstring
404User not found
status reqinteger
error_codestring
error reqstring
429Rate limited
status reqinteger
error_codestring
error reqstring
Request
curl 'https://app.openassistant.us/api/users/<userId>/drive-files/notes/import/<provider>' \
-X POST \
-H "Authorization: Bearer ak_live_..."
Response
{
"ok": true,
"imported": 0,
"updated": 0,
"skipped": 0,
"errors": 0
}
GET/users/{userId}/drive-files/notes/import-status
Check meeting notes import availability
Returns, per provider (google, azure), whether meeting notes import is available, whether the required scope is granted, and how many notes are pending import.
Path parameters
Responses
200Import status
ok reqenumtrue
google reqobject
available reqboolean
scopeGranted reqboolean
pendingCount reqinteger
azure reqobject
available reqboolean
scopeGranted reqboolean
pendingCount reqinteger
404User not found
status reqinteger
error_codestring
error reqstring
Request
curl 'https://app.openassistant.us/api/users/<userId>/drive-files/notes/import-status' \
-H "Authorization: Bearer ak_live_..."
Response
{
"ok": true,
"google": {
"available": true,
"scopeGranted": true,
"pendingCount": 0
},
"azure": {
"available": true,
"scopeGranted": true,
"pendingCount": 0
}
}
GET/drive-folders
List drive folders
Query parameters
parentFolderstringParent folder ID. Omit for root folders.
Responses
200Folder list
ok reqenumtrue
driveFolders reqobject[]
id reqstring
account reqstring
user reqstring
name reqstring
parentFolderstring | null
teamstring | null
organizationstring | null
createdAt reqstring
updatedAt reqstring
pageinteger
perPageinteger
totalinteger
Request
curl 'https://app.openassistant.us/api/drive-folders' \
-H "Authorization: Bearer ak_live_..."
Response
{
"ok": true,
"driveFolders": [
{
"id": "string",
"account": "string",
"user": "string",
"name": "string",
"createdAt": "2025-01-15T10:30:00.000Z",
"updatedAt": "2025-01-15T10:30:00.000Z"
}
]
}
POST/drive-folders
Create a drive folder
Request body
name reqstringFolder name
parentFolderstring | nullParent folder ID. Null or omit for root.
Responses
200Created folder
ok reqenumtrue
driveFolder reqobject
id reqstring
account reqstring
user reqstring
name reqstring
parentFolderstring | null
teamstring | null
organizationstring | null
createdAt reqstring
updatedAt reqstring
400Duplicate name
status reqinteger
error_codestring
error reqstring
Request
curl 'https://app.openassistant.us/api/drive-folders' \
-X POST \
-H "Authorization: Bearer ak_live_..." \
-H "Content-Type: application/json" \
-d '{
"name": "string"
}'
Response
{
"ok": true,
"driveFolder": {
"id": "string",
"account": "string",
"user": "string",
"name": "string",
"createdAt": "2025-01-15T10:30:00.000Z",
"updatedAt": "2025-01-15T10:30:00.000Z"
}
}
GET/drive-folders/{folderId}
Get a drive folder
Path parameters
Responses
200Folder
ok reqenumtrue
driveFolder reqobject
id reqstring
account reqstring
user reqstring
name reqstring
parentFolderstring | null
teamstring | null
organizationstring | null
createdAt reqstring
updatedAt reqstring
404Not found
status reqinteger
error_codestring
error reqstring
Request
curl 'https://app.openassistant.us/api/drive-folders/<folderId>' \
-H "Authorization: Bearer ak_live_..."
Response
{
"ok": true,
"driveFolder": {
"id": "string",
"account": "string",
"user": "string",
"name": "string",
"createdAt": "2025-01-15T10:30:00.000Z",
"updatedAt": "2025-01-15T10:30:00.000Z"
}
}
PATCH/drive-folders/{folderId}
Update a drive folder
Rename, move, or share a folder.
Path parameters
Request body
namestringNew folder name
parentFolderstring | nullNew parent folder (null = root)
teamstring | nullShare with team
organizationstring | nullShare with organization
Responses
200Updated folder
ok reqenumtrue
driveFolder reqobject
id reqstring
account reqstring
user reqstring
name reqstring
parentFolderstring | null
teamstring | null
organizationstring | null
createdAt reqstring
updatedAt reqstring
404Not found
status reqinteger
error_codestring
error reqstring
Request
curl 'https://app.openassistant.us/api/drive-folders/<folderId>' \
-X PATCH \
-H "Authorization: Bearer ak_live_..." \
-H "Content-Type: application/json" \
-d '{
"name": "string",
"parentFolder": "507f1f77bcf86cd799439011",
"team": "507f1f77bcf86cd799439011",
"organization": "507f1f77bcf86cd799439011"
}'
Response
{
"ok": true,
"driveFolder": {
"id": "string",
"account": "string",
"user": "string",
"name": "string",
"createdAt": "2025-01-15T10:30:00.000Z",
"updatedAt": "2025-01-15T10:30:00.000Z"
}
}
DELETE/drive-folders/{folderId}
Delete a drive folder
Must be empty unless ?force=true. Force moves files to root and deletes subfolders.
Path parameters
Responses
200Deleted
ok reqenumtrue
driveFolder reqobject
id reqstring
deletedboolean
messagestring
400Not empty
status reqinteger
error_codestring
error reqstring
404Not found
status reqinteger
error_codestring
error reqstring
Request
curl 'https://app.openassistant.us/api/drive-folders/<folderId>' \
-X DELETE \
-H "Authorization: Bearer ak_live_..."
Response
{
"ok": true,
"driveFolder": {
"id": "string"
}
}