For the complete documentation index, see llms.txt. This page is also available as Markdown.

Workspaces

Get the metadata attributes for a drive including system attributes

get

Get the metadata attributes for a drive including system attributes

Path parameters
drive_idstring · uuidRequired
Header parameters
passwordstring · nullableOptional

The password header to use to fetch the preview

Body
Responses
200

Successful Response

application/json
idstringRequired
namestringRequired
keysstring[]Required
value_typestring · enumRequiredPossible values:
descriptionstringRequired
locationstring · enumRequiredPossible values:
defaultany · nullableOptional
groupstring · nullableOptional
add_new_optionsboolean · nullableOptionalDefault: true
automatedboolean · nullableOptionalDefault: false
promptstring · nullableOptional
archivedboolean · nullableOptionalDefault: false
lockedboolean · nullableOptionalDefault: false
get/workspaces/drives/{drive_id}/metadata
GET /workspaces/drives/{drive_id}/metadata HTTP/1.1
Content-Type: application/json
Accept: */*
Content-Length: 47

{
  "body": {
    "ANY_ADDITIONAL_PROPERTY": "anything"
  }
}
[
  {
    "id": "text",
    "name": "text",
    "keys": [
      "text"
    ],
    "value_type": "str",
    "description": "text",
    "location": "system",
    "default": null,
    "group": "text",
    "options": [
      {
        "id": "text",
        "name": "text",
        "color": "pink",
        "user": true,
        "archived": false
      }
    ],
    "add_new_options": true,
    "restrict_to_types": [
      "IMAGE"
    ],
    "automated": false,
    "prompt": "text",
    "archived": false,
    "locked": false
  }
]

Add metadata attributes to a drive

post
Path parameters
drive_idstring · uuidRequired
Header parameters
passwordstring · nullableOptional

The password header to use to fetch the preview

Body
Responses
200

Successful Response

application/json
idstringRequired
namestringRequired
keysstring[]Required
value_typestring · enumRequiredPossible values:
descriptionstringRequired
locationstring · enumRequiredPossible values:
defaultany · nullableOptional
groupstring · nullableOptional
add_new_optionsboolean · nullableOptionalDefault: true
automatedboolean · nullableOptionalDefault: false
promptstring · nullableOptional
archivedboolean · nullableOptionalDefault: false
lockedboolean · nullableOptionalDefault: false
post/workspaces/drives/{drive_id}/metadata
POST /workspaces/drives/{drive_id}/metadata HTTP/1.1
Content-Type: application/json
Accept: */*
Content-Length: 395

{
  "metadata": {
    "id": "text",
    "name": "text",
    "keys": [
      "text"
    ],
    "value_type": "str",
    "description": "text",
    "location": "system",
    "default": null,
    "group": "text",
    "options": [
      {
        "id": "text",
        "name": "text",
        "color": "pink",
        "user": true,
        "archived": false
      }
    ],
    "add_new_options": true,
    "restrict_to_types": [
      "IMAGE"
    ],
    "automated": false,
    "prompt": "text",
    "archived": false,
    "locked": false
  },
  "body": {
    "ANY_ADDITIONAL_PROPERTY": "anything"
  }
}
{
  "id": "text",
  "name": "text",
  "keys": [
    "text"
  ],
  "value_type": "str",
  "description": "text",
  "location": "system",
  "default": null,
  "group": "text",
  "options": [
    {
      "id": "text",
      "name": "text",
      "color": "pink",
      "user": true,
      "archived": false
    }
  ],
  "add_new_options": true,
  "restrict_to_types": [
    "IMAGE"
  ],
  "automated": false,
  "prompt": "text",
  "archived": false,
  "locked": false
}

Archive metadata attribute on a drive

post
Path parameters
drive_idstring · uuidRequired
metadata_idstringRequired
Header parameters
passwordstring · nullableOptional

The password header to use to fetch the preview

Body
archivebooleanRequired

Archive metadata attribute or not

Responses
200

Successful Response

application/json
anyOptional
post/workspaces/drives/{drive_id}/metadata/{metadata_id}
POST /workspaces/drives/{drive_id}/metadata/{metadata_id} HTTP/1.1
Content-Type: application/json
Accept: */*
Content-Length: 62

{
  "archive": true,
  "body": {
    "ANY_ADDITIONAL_PROPERTY": "anything"
  }
}

No content

Update a metadata attribute on a drive

put
Path parameters
drive_idstring · uuidRequired
metadata_idstringRequired
Header parameters
passwordstring · nullableOptional

The password header to use to fetch the preview

Body
namestring · nullableOptional

The metadata name to update

automatedboolean · nullableOptional

The metadata automated to update

promptstring · nullableOptional

The metadata prompt to update

defaultstring · nullableOptional

The metadata default to update

add_new_optionsboolean · nullableOptional

Whether or not we're allowed to add new options

rerunboolean · nullableOptional

Whether or not to rerun the AI on all cells including existing ones

Default: false
lockedboolean · nullableOptional

Whether or not the metadata attribute is locked to managers only

Responses
200

Successful Response

application/json
idstringRequired
namestringRequired
keysstring[]Required
value_typestring · enumRequiredPossible values:
descriptionstringRequired
locationstring · enumRequiredPossible values:
defaultany · nullableOptional
groupstring · nullableOptional
add_new_optionsboolean · nullableOptionalDefault: true
automatedboolean · nullableOptionalDefault: false
promptstring · nullableOptional
archivedboolean · nullableOptionalDefault: false
lockedboolean · nullableOptionalDefault: false
put/workspaces/drives/{drive_id}/metadata/{metadata_id}
PUT /workspaces/drives/{drive_id}/metadata/{metadata_id} HTTP/1.1
Content-Type: application/json
Accept: */*
Content-Length: 246

{
  "name": "text",
  "automated": true,
  "prompt": "text",
  "default": "text",
  "add_new_options": true,
  "options": [
    {
      "id": "text",
      "name": "text",
      "color": "pink",
      "user": true,
      "archived": false
    }
  ],
  "rerun": false,
  "locked": true,
  "body": {
    "ANY_ADDITIONAL_PROPERTY": "anything"
  }
}
{
  "id": "text",
  "name": "text",
  "keys": [
    "text"
  ],
  "value_type": "str",
  "description": "text",
  "location": "system",
  "default": null,
  "group": "text",
  "options": [
    {
      "id": "text",
      "name": "text",
      "color": "pink",
      "user": true,
      "archived": false
    }
  ],
  "add_new_options": true,
  "restrict_to_types": [
    "IMAGE"
  ],
  "automated": false,
  "prompt": "text",
  "archived": false,
  "locked": false
}

Create a metadata attribute option on a drive

post
Path parameters
drive_idstring · uuidRequired
metadata_idstringRequired
Header parameters
passwordstring · nullableOptional

The password header to use to fetch the preview

Body
option_namestringRequired

The option name to add to the metadata attribute

option_colorstring · enumRequired

The option color to add to the metadata attribute

Possible values:
Responses
200

Successful Response

application/json
idstringRequired
namestringRequired
colorstring · enumRequiredPossible values:
userbooleanRequired
archivedbooleanOptionalDefault: false
post/workspaces/drives/{drive_id}/metadata/{metadata_id}/option
POST /workspaces/drives/{drive_id}/metadata/{metadata_id}/option HTTP/1.1
Content-Type: application/json
Accept: */*
Content-Length: 90

{
  "option_name": "text",
  "option_color": "pink",
  "body": {
    "ANY_ADDITIONAL_PROPERTY": "anything"
  }
}
{
  "id": "text",
  "name": "text",
  "color": "pink",
  "user": true,
  "archived": false
}

Shares a file (or folder) w user

post

Share a file on a workspace.

Path parameters
drive_idstring · uuidRequired
Header parameters
passwordstring · nullableOptional

The password header to use to fetch the preview

Body
pathstring · pathRequired

The directory path of the file to share

urlstring · nullableOptional

The url of the file

messagestring · nullableOptional

The message to send to the invited users

Default: ""
Responses
200

Successful Response

application/json
anyOptional
post/workspaces/drives/{drive_id}/share-file
POST /workspaces/drives/{drive_id}/share-file HTTP/1.1
Content-Type: application/json
Accept: */*
Content-Length: 136

{
  "path": "text",
  "invites": [
    {
      "email": "[email protected]",
      "role": 50
    }
  ],
  "url": "text",
  "message": "",
  "body": {
    "ANY_ADDITIONAL_PROPERTY": "anything"
  }
}

No content

Get all files shared with a user

get

Get all files shared with a user on a drive

Path parameters
drive_idstring · uuidRequired
Header parameters
passwordstring · nullableOptional

The password header to use to fetch the preview

Body
Responses
200

Successful Response

application/json
drive_idstring · uuidRequired
drive_identifierstring · nullableOptional
idstring · uuidRequired
pathstringRequired
roleintegerRequired
get/workspaces/drives/{drive_id}/shared
GET /workspaces/drives/{drive_id}/shared HTTP/1.1
Content-Type: application/json
Accept: */*
Content-Length: 47

{
  "body": {
    "ANY_ADDITIONAL_PROPERTY": "anything"
  }
}
[
  {
    "drive_id": "123e4567-e89b-12d3-a456-426614174000",
    "drive_identifier": "text",
    "id": "123e4567-e89b-12d3-a456-426614174000",
    "asset": {
      "id": "123e4567-e89b-12d3-a456-426614174000",
      "drive_id": "123e4567-e89b-12d3-a456-426614174000",
      "path": "text",
      "name": "text",
      "extension": "text",
      "updated": "2026-01-01T00:00:00.000Z",
      "created": "2026-01-01T00:00:00.000Z",
      "type": "IMAGE",
      "size_bytes": 1,
      "stack_id": "123e4567-e89b-12d3-a456-426614174000",
      "stack_number": 1,
      "is_fs_draft_blob": true,
      "is_fs_null_blob": true,
      "rating": 1,
      "ai_indexed": true,
      "system_metadata": {
        "ANY_ADDITIONAL_PROPERTY": "anything"
      },
      "custom_metadata": {
        "ANY_ADDITIONAL_PROPERTY": "anything"
      },
      "category": "text",
      "palette": [
        [
          1
        ]
      ],
      "ocr": "text",
      "transcription_id": "123e4567-e89b-12d3-a456-426614174000",
      "faces_present": true,
      "content_length": 1,
      "preview_job_state": "NOT_STARTED",
      "metadata_job_state": "NOT_STARTED",
      "core_vision_job_state": "NOT_STARTED",
      "color_palette_job_state": "NOT_STARTED",
      "core_audio_job_state": "NOT_STARTED",
      "audio_job_state": "NOT_STARTED",
      "facial_recognition_job_state": "NOT_STARTED",
      "proxy_job_state": "NOT_STARTED",
      "audio_proxy_job_state": "NOT_STARTED",
      "transcription_job_state": "NOT_STARTED",
      "objects": [],
      "texture_data": {
        "ANY_ADDITIONAL_PROPERTY": "anything"
      },
      "integration_data": {
        "ANY_ADDITIONAL_PROPERTY": "anything"
      },
      "preview_images": [
        {
          "id": "123e4567-e89b-12d3-a456-426614174000",
          "frame": 1,
          "signed_url": "text"
        }
      ],
      "custom_thumbnail": "text",
      "proxy": {
        "id": "123e4567-e89b-12d3-a456-426614174000"
      },
      "audio_proxy": {
        "id": "123e4567-e89b-12d3-a456-426614174000"
      }
    },
    "path": "text",
    "role": 1,
    "actions": [
      "manage"
    ]
  }
]

Removes a share from a path

delete
Path parameters
drive_idstring · uuidRequired
user_idstring · uuidRequired
Header parameters
passwordstring · nullableOptional

The password header to use to fetch the preview

Body
pathstring · pathRequired

The directory path to list items

Responses
200

Successful Response

application/json
booleanOptional
delete/workspaces/drives/{drive_id}/shared/{user_id}/path
DELETE /workspaces/drives/{drive_id}/shared/{user_id}/path HTTP/1.1
Content-Type: application/json
Accept: */*
Content-Length: 61

{
  "path": "text",
  "body": {
    "ANY_ADDITIONAL_PROPERTY": "anything"
  }
}
true

Updates people's permissions on a path

put
Path parameters
drive_idstring · uuidRequired
user_idstring · uuidRequired
Header parameters
passwordstring · nullableOptional

The password header to use to fetch the preview

Body
roleinteger · enumRequiredPossible values:
pathstring · pathRequired
upsertboolean · nullableOptionalDefault: false
Responses
200

Successful Response

application/json
anyOptional
put/workspaces/drives/{drive_id}/users/{user_id}/path
PUT /workspaces/drives/{drive_id}/users/{user_id}/path HTTP/1.1
Content-Type: application/json
Accept: */*
Content-Length: 86

{
  "role": 50,
  "path": "text",
  "upsert": false,
  "body": {
    "ANY_ADDITIONAL_PROPERTY": "anything"
  }
}

No content

Lists all the user for a specific path (file or folder).

get
Path parameters
drive_idstring · uuidRequired
Query parameters
pathstring · pathRequired
Header parameters
passwordstring · nullableOptional

The password header to use to fetch the preview

Body
Responses
200

Successful Response

application/json
get/workspaces/drives/{drive_id}/file-users
GET /workspaces/drives/{drive_id}/file-users?path=text HTTP/1.1
Content-Type: application/json
Accept: */*
Content-Length: 47

{
  "body": {
    "ANY_ADDITIONAL_PROPERTY": "anything"
  }
}
{
  "invited": [
    {
      "id": "123e4567-e89b-12d3-a456-426614174000",
      "name": "text",
      "email": "text",
      "avatar_url": "text",
      "user_type": "regular",
      "role": 50,
      "via": "workspace",
      "is_contractor": false,
      "is_workspace_member": false,
      "is_inheriting_as_workspace_member": false,
      "is_pending": false
    }
  ],
  "not_invited": [
    {
      "id": "123e4567-e89b-12d3-a456-426614174000",
      "name": "text",
      "email": "text",
      "avatar_url": "text",
      "user_type": "regular",
      "role": 50
    }
  ]
}

Get your role + actions you can do on a folder (or file if you pass a path)

get

Get your role + actions you can do on a file (asset). No need to auth these bc you are checking your role and would get none if you don't have auth.

Path parameters
drive_idstring · uuidRequired
Query parameters
pathstring · pathRequired

The directory path to list items

Header parameters
passwordstring · nullableOptional

The password header to use to fetch the preview

Body
Responses
200

Successful Response

application/json
roleinteger · enum · nullableRequiredPossible values:
viastring · enum · nullableRequiredPossible values:
get/workspaces/drives/{drive_id}/folder-permissions
GET /workspaces/drives/{drive_id}/folder-permissions?path=text HTTP/1.1
Content-Type: application/json
Accept: */*
Content-Length: 47

{
  "body": {
    "ANY_ADDITIONAL_PROPERTY": "anything"
  }
}
{
  "role": 50,
  "actions": [
    "manage"
  ],
  "via": "workspace"
}

Get your role + actions you can do on an asset

get

Get your role + actions you can do on a file (asset). No need to auth these bc you are checking your role and would get none if you don't have auth.

Path parameters
drive_idstring · uuidRequired
Query parameters
asset_idstring · uuidRequired

The id of the file (asset id)

Header parameters
passwordstring · nullableOptional

The password header to use to fetch the preview

Body
Responses
200

Successful Response

application/json
roleinteger · enum · nullableRequiredPossible values:
viastring · enum · nullableRequiredPossible values:
get/workspaces/drives/{drive_id}/file-permissions
GET /workspaces/drives/{drive_id}/file-permissions?asset_id=123e4567-e89b-12d3-a456-426614174000 HTTP/1.1
Content-Type: application/json
Accept: */*
Content-Length: 47

{
  "body": {
    "ANY_ADDITIONAL_PROPERTY": "anything"
  }
}
{
  "role": 50,
  "actions": [
    "manage"
  ],
  "via": "workspace"
}

Authorize path

get

Check whether a user is authed on a path in a drive.

Path parameters
drive_idstring · uuidRequired
Query parameters
pathstring · pathRequired

The directory path to authorize

Header parameters
passwordstring · nullableOptional

The password header to use to fetch the preview

Body
Responses
200

Successful Response

application/json
booleanOptional
get/workspaces/drives/{drive_id}/authorize
GET /workspaces/drives/{drive_id}/authorize?path=text HTTP/1.1
Content-Type: application/json
Accept: */*
Content-Length: 47

{
  "body": {
    "ANY_ADDITIONAL_PROPERTY": "anything"
  }
}
true

Lists all the paths for a specific workspace

get

For drive and workspace users, list their access and paths.

Path parameters
drive_idstring · uuidRequired
Responses
200

Successful Response

application/json
get/workspaces/drives/{drive_id}/user-paths
GET /workspaces/drives/{drive_id}/user-paths HTTP/1.1
Accept: */*
{
  "drive": {
    "id": "123e4567-e89b-12d3-a456-426614174000",
    "name": "text",
    "description": "text",
    "icon": "text",
    "settings": {
      "max_storage_bytes": 1,
      "mount_path_macos": "text",
      "mount_path_linux": "text",
      "mount_path_windows": "text"
    },
    "type": "catalog",
    "identifier": "text",
    "icon_type": "color",
    "member_inherited_role": 50,
    "invite_id": "123e4567-e89b-12d3-a456-426614174000",
    "workspace_id": "123e4567-e89b-12d3-a456-426614174000",
    "byos": {
      "bucket": "text",
      "endpoint": "text"
    },
    "default_storage_backend": {
      "provider": "text",
      "bucket": "text"
    }
  },
  "paths": [
    {
      "user_id": "123e4567-e89b-12d3-a456-426614174000",
      "user_name": "text",
      "path": "text",
      "role": 50
    }
  ]
}

Lists all the paths for a user in a specific drive

get

Lists all the paths for a specific user on a drive

Path parameters
drive_idstring · uuidRequired
user_idstring · uuidRequired
Header parameters
passwordstring · nullableOptional

The password header to use to fetch the preview

Body
Responses
200

Successful Response

application/json
get/workspaces/drives/{drive_id}/user-paths/{user_id}
GET /workspaces/drives/{drive_id}/user-paths/{user_id} HTTP/1.1
Content-Type: application/json
Accept: */*
Content-Length: 47

{
  "body": {
    "ANY_ADDITIONAL_PROPERTY": "anything"
  }
}
{
  "drive": {
    "id": "123e4567-e89b-12d3-a456-426614174000",
    "name": "text",
    "description": "text",
    "icon": "text",
    "settings": {
      "max_storage_bytes": 1,
      "mount_path_macos": "text",
      "mount_path_linux": "text",
      "mount_path_windows": "text"
    },
    "type": "catalog",
    "identifier": "text",
    "icon_type": "color",
    "member_inherited_role": 50,
    "invite_id": "123e4567-e89b-12d3-a456-426614174000",
    "workspace_id": "123e4567-e89b-12d3-a456-426614174000",
    "byos": {
      "bucket": "text",
      "endpoint": "text"
    },
    "default_storage_backend": {
      "provider": "text",
      "bucket": "text"
    }
  },
  "paths": [
    {
      "user_id": "123e4567-e89b-12d3-a456-426614174000",
      "user_name": "text",
      "path": "text",
      "role": 50
    }
  ]
}

Lists all the user for a specific drive

get
Path parameters
drive_idstring · uuidRequired
Header parameters
passwordstring · nullableOptional

The password header to use to fetch the preview

Body
Responses
200

Successful Response

application/json
idstring · uuidRequired
namestringRequired
emailstringRequired
avatar_urlstringRequired
user_typestring · enumRequiredPossible values:
external_idstring · nullableRequired
joinedstring · date-timeRequired
roleinteger · enumRequiredPossible values:
is_workspace_memberbooleanOptionalDefault: false
is_workspace_ownerbooleanOptionalDefault: false
is_inherited_managerbooleanOptionalDefault: false
is_contractorbooleanOptionalDefault: false
get/workspaces/drives/{drive_id}/users
GET /workspaces/drives/{drive_id}/users HTTP/1.1
Content-Type: application/json
Accept: */*
Content-Length: 47

{
  "body": {
    "ANY_ADDITIONAL_PROPERTY": "anything"
  }
}
[
  {
    "id": "123e4567-e89b-12d3-a456-426614174000",
    "name": "text",
    "email": "text",
    "avatar_url": "text",
    "user_type": "regular",
    "external_id": "text",
    "joined": "2026-01-01T00:00:00.000Z",
    "role": 50,
    "is_workspace_member": false,
    "is_workspace_owner": false,
    "is_inherited_manager": false,
    "is_contractor": false
  }
]

Sends invites for user to join a drive

post
Path parameters
drive_idstring · uuidRequired
Header parameters
passwordstring · nullableOptional

The password header to use to fetch the preview

Body
messagestring · nullableRequired
Responses
202

Successful Response

application/json
string · uuid[]Optional
post/workspaces/drives/{drive_id}/send-invites
POST /workspaces/drives/{drive_id}/send-invites HTTP/1.1
Content-Type: application/json
Accept: */*
Content-Length: 113

{
  "invites": [
    {
      "email": "[email protected]",
      "role": 50
    }
  ],
  "message": "text",
  "body": {
    "ANY_ADDITIONAL_PROPERTY": "anything"
  }
}
[
  "123e4567-e89b-12d3-a456-426614174000"
]

Gets a drive from the drive_id

get

Gets a drive from the drive_id

Path parameters
drive_idstring · uuidRequired
Header parameters
passwordstring · nullableOptional

The password header to use to fetch the preview

Body
Responses
200

Successful Response

application/json
idstring · uuidRequired
namestringRequired
descriptionstringRequired
iconstringRequired
typestring · enumRequiredPossible values:
identifierstringRequired
icon_typestring · enumRequiredPossible values:
member_inherited_roleinteger · enumRequiredPossible values:
invite_idstring · uuidRequired
workspace_idstring · uuidRequired
roleinteger · enumRequiredPossible values:
is_workspace_memberbooleanOptionalDefault: false
get/workspaces/drives/{drive_id}
GET /workspaces/drives/{drive_id} HTTP/1.1
Content-Type: application/json
Accept: */*
Content-Length: 47

{
  "body": {
    "ANY_ADDITIONAL_PROPERTY": "anything"
  }
}
{
  "id": "123e4567-e89b-12d3-a456-426614174000",
  "name": "text",
  "description": "text",
  "icon": "text",
  "settings": {
    "max_storage_bytes": 1,
    "mount_path_macos": "text",
    "mount_path_linux": "text",
    "mount_path_windows": "text"
  },
  "type": "catalog",
  "identifier": "text",
  "icon_type": "color",
  "member_inherited_role": 50,
  "invite_id": "123e4567-e89b-12d3-a456-426614174000",
  "workspace_id": "123e4567-e89b-12d3-a456-426614174000",
  "byos": {
    "bucket": "text",
    "endpoint": "text"
  },
  "default_storage_backend": {
    "provider": "text",
    "bucket": "text"
  },
  "actions": [
    "manage"
  ],
  "role": 50,
  "is_workspace_member": false
}

Updates drive

put
Path parameters
drive_idstring · uuidRequired
Header parameters
passwordstring · nullableOptional

The password header to use to fetch the preview

Body
namestringRequired
descriptionstringRequired
iconstringRequired
icon_typestring · enumRequiredPossible values:
member_inherited_roleinteger · enumRequiredPossible values:
Responses
200

Successful Response

application/json
idstring · uuidRequired
namestringRequired
descriptionstringRequired
iconstringRequired
typestring · enumRequiredPossible values:
identifierstringRequired
icon_typestring · enumRequiredPossible values:
member_inherited_roleinteger · enumRequiredPossible values:
invite_idstring · uuidRequired
workspace_idstring · uuidRequired
roleinteger · enumRequiredPossible values:
is_workspace_memberbooleanOptionalDefault: false
put/workspaces/drives/{drive_id}
PUT /workspaces/drives/{drive_id} HTTP/1.1
Content-Type: application/json
Accept: */*
Content-Length: 143

{
  "name": "text",
  "description": "text",
  "icon": "text",
  "icon_type": "color",
  "member_inherited_role": 50,
  "body": {
    "ANY_ADDITIONAL_PROPERTY": "anything"
  }
}
{
  "id": "123e4567-e89b-12d3-a456-426614174000",
  "name": "text",
  "description": "text",
  "icon": "text",
  "settings": {
    "max_storage_bytes": 1,
    "mount_path_macos": "text",
    "mount_path_linux": "text",
    "mount_path_windows": "text"
  },
  "type": "catalog",
  "identifier": "text",
  "icon_type": "color",
  "member_inherited_role": 50,
  "invite_id": "123e4567-e89b-12d3-a456-426614174000",
  "workspace_id": "123e4567-e89b-12d3-a456-426614174000",
  "byos": {
    "bucket": "text",
    "endpoint": "text"
  },
  "default_storage_backend": {
    "provider": "text",
    "bucket": "text"
  },
  "actions": [
    "manage"
  ],
  "role": 50,
  "is_workspace_member": false
}

Delete a drive by drive_id

delete
Path parameters
drive_idstring · uuidRequired
Header parameters
passwordstring · nullableOptional

The password header to use to fetch the preview

Body
Responses
200

Successful Response

application/json
booleanOptional
delete/workspaces/drives/{drive_id}
DELETE /workspaces/drives/{drive_id} HTTP/1.1
Content-Type: application/json
Accept: */*
Content-Length: 47

{
  "body": {
    "ANY_ADDITIONAL_PROPERTY": "anything"
  }
}
true

Updates people's permissions on a drive

put
Path parameters
drive_idstring · uuidRequired
user_idstring · uuidRequired
Header parameters
passwordstring · nullableOptional

The password header to use to fetch the preview

Body
roleinteger · enumRequiredPossible values:
Responses
200

Successful Response

application/json
anyOptional
put/workspaces/drives/{drive_id}/users/{user_id}
PUT /workspaces/drives/{drive_id}/users/{user_id} HTTP/1.1
Content-Type: application/json
Accept: */*
Content-Length: 57

{
  "role": 50,
  "body": {
    "ANY_ADDITIONAL_PROPERTY": "anything"
  }
}

No content

Removes a user from a drive

delete
Path parameters
drive_idstring · uuidRequired
user_idstring · uuidRequired
Query parameters
only_remove_direct_accessboolean · nullableOptionalDefault: false
Header parameters
passwordstring · nullableOptional

The password header to use to fetch the preview

Body
Responses
200

Successful Response

application/json
booleanOptional
delete/workspaces/drives/{drive_id}/users/{user_id}
DELETE /workspaces/drives/{drive_id}/users/{user_id} HTTP/1.1
Content-Type: application/json
Accept: */*
Content-Length: 47

{
  "body": {
    "ANY_ADDITIONAL_PROPERTY": "anything"
  }
}
true

Get a signed JWT for a specific drive

get
Path parameters
drive_idstring · uuidRequired
Query parameters
machine_idstring · nullableOptional

The machine ID to embed into the JWT

share_idstring · uuid · nullableOptional

If provided, only include this specific share path in the token

Header parameters
passwordstring · nullableOptional

The password header to use to fetch the preview

Body
Responses
200

Successful Response

text/plain
stringOptional
get/workspaces/drives/{drive_id}/shade-fs-token
GET /workspaces/drives/{drive_id}/shade-fs-token HTTP/1.1
Content-Type: application/json
Accept: */*
Content-Length: 47

{
  "body": {
    "ANY_ADDITIONAL_PROPERTY": "anything"
  }
}
text

Get a signed JWT for Shade Message Bus for a specific drive

get
Path parameters
drive_idstring · uuidRequired
Query parameters
share_idstring · uuid · nullableOptional

If user not authenticated, a share id must be passed for a publish path

Header parameters
passwordstring · nullableOptional

The password header to use to fetch the preview

Body
Responses
200

Successful Response

text/plain
stringOptional
get/workspaces/drives/{drive_id}/shade-message-bus-token
GET /workspaces/drives/{drive_id}/shade-message-bus-token HTTP/1.1
Content-Type: application/json
Accept: */*
Content-Length: 47

{
  "body": {
    "ANY_ADDITIONAL_PROPERTY": "anything"
  }
}
text
get

Get all shared links for a drive.

Path parameters
drive_idstring · uuidRequired
Header parameters
passwordstring · nullableOptional

The password header to use to fetch the preview

Body
Responses
200

Successful Response

application/json
idstring · uuidRequired
pathstringRequired
drive_idstring · uuidRequired
is_public_enabledbooleanRequired
password_protectedbooleanRequired
namestring · nullableOptional
expiration_datestring · date-time · nullableOptional
createdstring · date-time · nullableOptional
path_namestring · nullableOptional
iconstring · nullableOptional
icon_typestring · enumOptionalPossible values:
is_expiredbooleanOptionalDefault: false
get/workspaces/drives/{drive_id}/drive-shared-links
GET /workspaces/drives/{drive_id}/drive-shared-links HTTP/1.1
Content-Type: application/json
Accept: */*
Content-Length: 47

{
  "body": {
    "ANY_ADDITIONAL_PROPERTY": "anything"
  }
}
[
  {
    "id": "123e4567-e89b-12d3-a456-426614174000",
    "path": "text",
    "drive_id": "123e4567-e89b-12d3-a456-426614174000",
    "is_public_enabled": true,
    "allowed_actions": [
      "manage"
    ],
    "password_protected": true,
    "name": "text",
    "expiration_date": "2026-01-01T00:00:00.000Z",
    "created": "2026-01-01T00:00:00.000Z",
    "path_name": "text",
    "icon": "text",
    "icon_type": "color",
    "is_expired": false
  }
]

Get all the shares for a specific file

get

Get all public shares for a specific file.

Path parameters
drive_idstring · uuidRequired
Query parameters
pathstring · pathRequired

The directory path to list items

Header parameters
passwordstring · nullableOptional

The password header to use to fetch the preview

Body
Responses
200

Successful Response

application/json
idstring · uuidRequired
pathstringRequired
drive_idstring · uuidRequired
is_public_enabledbooleanRequired
password_protectedbooleanRequired
namestring · nullableOptional
expiration_datestring · date-time · nullableOptional
createdstring · date-time · nullableOptional
path_namestring · nullableOptional
iconstring · nullableOptional
icon_typestring · enumOptionalPossible values:
is_expiredbooleanOptionalDefault: false
get/workspaces/drives/{drive_id}/public-file-shares
GET /workspaces/drives/{drive_id}/public-file-shares?path=text HTTP/1.1
Content-Type: application/json
Accept: */*
Content-Length: 47

{
  "body": {
    "ANY_ADDITIONAL_PROPERTY": "anything"
  }
}
[
  {
    "id": "123e4567-e89b-12d3-a456-426614174000",
    "path": "text",
    "drive_id": "123e4567-e89b-12d3-a456-426614174000",
    "is_public_enabled": true,
    "allowed_actions": [
      "manage"
    ],
    "password_protected": true,
    "name": "text",
    "expiration_date": "2026-01-01T00:00:00.000Z",
    "created": "2026-01-01T00:00:00.000Z",
    "path_name": "text",
    "icon": "text",
    "icon_type": "color",
    "is_expired": false
  }
]

Create a public share for a specific file or folder

post

Share a file on a workspace.

Path parameters
drive_idstring · uuidRequired
Header parameters
passwordstring · nullableOptional

The password header to use to fetch the preview

Body
pathstring · pathRequired

The directory path to list items

is_public_enabledbooleanRequired

Whether the share is enabled

namestringRequired

The name of the share

iconstring · nullableOptional

The icon of the share

icon_typestring · enum · nullableOptional

The icon type of the share

Default: colorPossible values:
expiration_datestring · date-time · nullableOptional

The expiration date of the share

passwordstring · nullableOptional

The password of the share

Responses
200

Successful Response

application/json
idstring · uuidRequired
pathstringRequired
drive_idstring · uuidRequired
is_public_enabledbooleanRequired
password_protectedbooleanRequired
namestring · nullableOptional
expiration_datestring · date-time · nullableOptional
createdstring · date-time · nullableOptional
path_namestring · nullableOptional
iconstring · nullableOptional
icon_typestring · enumOptionalPossible values:
is_expiredbooleanOptionalDefault: false
post/workspaces/drives/{drive_id}/public-file-shares
POST /workspaces/drives/{drive_id}/public-file-shares HTTP/1.1
Content-Type: application/json
Accept: */*
Content-Length: 226

{
  "path": "text",
  "is_public_enabled": true,
  "allowed_actions": [
    "manage"
  ],
  "name": "text",
  "icon": "text",
  "icon_type": "color",
  "expiration_date": "2026-01-01T00:00:00.000Z",
  "password": "text",
  "body": {
    "ANY_ADDITIONAL_PROPERTY": "anything"
  }
}
{
  "id": "123e4567-e89b-12d3-a456-426614174000",
  "path": "text",
  "drive_id": "123e4567-e89b-12d3-a456-426614174000",
  "is_public_enabled": true,
  "allowed_actions": [
    "manage"
  ],
  "password_protected": true,
  "name": "text",
  "expiration_date": "2026-01-01T00:00:00.000Z",
  "created": "2026-01-01T00:00:00.000Z",
  "path_name": "text",
  "icon": "text",
  "icon_type": "color",
  "is_expired": false
}

Update a public share for a specific file or folder

put

Update a public share for a specific file or folder.

Path parameters
drive_idstring · uuidRequired
share_idstring · uuidRequired
Header parameters
passwordstring · nullableOptional

The password header to use to fetch the preview

Body
is_public_enabledbooleanRequired

Whether the share is enabled

namestringOptional

The name of the share

Default: ""
iconstring · nullableOptional

The icon of the share

icon_typestring · enum · nullableOptional

The icon type of the share

Default: colorPossible values:
expiration_datestring · date-time · nullableOptional

The expiration date of the share

passwordstring · nullableOptional

The password of the share

removed_passwordboolean · nullableOptional

remove the public link password

Default: false
Responses
200

Successful Response

application/json
anyOptional
put/workspaces/drives/{drive_id}/public-file-shares/{share_id}
PUT /workspaces/drives/{drive_id}/public-file-shares/{share_id} HTTP/1.1
Content-Type: application/json
Accept: */*
Content-Length: 233

{
  "is_public_enabled": true,
  "allowed_actions": [
    "manage"
  ],
  "name": "",
  "icon": "text",
  "icon_type": "color",
  "expiration_date": "2026-01-01T00:00:00.000Z",
  "password": "text",
  "removed_password": false,
  "body": {
    "ANY_ADDITIONAL_PROPERTY": "anything"
  }
}

No content

Delete a public share for a specific file or folder

delete

Share a file on a workspace.

Path parameters
drive_idstring · uuidRequired
share_idstring · uuidRequired
Header parameters
passwordstring · nullableOptional

The password header to use to fetch the preview

Body
Responses
200

Successful Response

application/json
anyOptional
delete/workspaces/drives/{drive_id}/public-file-shares/{share_id}
DELETE /workspaces/drives/{drive_id}/public-file-shares/{share_id} HTTP/1.1
Content-Type: application/json
Accept: */*
Content-Length: 47

{
  "body": {
    "ANY_ADDITIONAL_PROPERTY": "anything"
  }
}

No content

Update drive settings

put
Path parameters
drive_idstring · uuidRequired
Body
max_storage_bytesinteger · nullableOptional
mount_path_macosstring · nullableOptional
mount_path_linuxstring · nullableOptional
mount_path_windowsstring · nullableOptional
Responses
200

Successful Response

application/json
anyOptional
put/workspaces/drives/{drive_id}/settings
PUT /workspaces/drives/{drive_id}/settings HTTP/1.1
Content-Type: application/json
Accept: */*
Content-Length: 103

{
  "max_storage_bytes": 1,
  "mount_path_macos": "text",
  "mount_path_linux": "text",
  "mount_path_windows": "text"
}

No content

Lists all the workspaces for that user based on permissions

get
Header parameters
passwordstring · nullableOptional

The password header to use to fetch the preview

Body
Responses
200

Successful Response

application/json
idstring · uuidRequired
namestringRequired
descriptionstringRequired
domainstringRequired
thumbnailstring · nullableRequired
member_inherited_roleinteger · enumRequiredPossible values:
invite_idstring · uuidRequired
typestring · enumRequiredPossible values:
trial_startedbooleanRequired
personalbooleanRequired
roleinteger · enumRequiredPossible values:
get/workspaces
GET /workspaces HTTP/1.1
Content-Type: application/json
Accept: */*
Content-Length: 47

{
  "body": {
    "ANY_ADDITIONAL_PROPERTY": "anything"
  }
}
[
  {
    "id": "123e4567-e89b-12d3-a456-426614174000",
    "name": "text",
    "description": "text",
    "domain": "text",
    "thumbnail": "text",
    "member_inherited_role": 60,
    "invite_id": "123e4567-e89b-12d3-a456-426614174000",
    "type": "PERSONAL",
    "onboarding": {
      "ANY_ADDITIONAL_PROPERTY": true
    },
    "settings": {
      "transcription_model": "BEST",
      "default_drive_inheritance": 50
    },
    "trial_started": true,
    "organization": {
      "id": "123e4567-e89b-12d3-a456-426614174000",
      "name": "text",
      "url_subdomain": "text",
      "email_domain": "text",
      "client_metadata": {
        "ANY_ADDITIONAL_PROPERTY": "anything"
      },
      "partnership_type": "BRANDING",
      "discount_amount": 1
    },
    "client_metadata": {
      "ANY_ADDITIONAL_PROPERTY": "anything"
    },
    "actions": [
      "manage"
    ],
    "personal": true,
    "role": 60
  }
]

Creates a workspace

post

Create a workspace.

Header parameters
passwordstring · nullableOptional

The password header to use to fetch the preview

Body
url_subdomainstring · nullableOptional
namestringRequired
descriptionstringRequired
team_size_analyticsstringRequired
team_domainstring · nullableOptional
team_usage_analyticsstringRequired
data_types_analyticsstring[] · nullableOptional
thumbnailstring · nullableOptional

The profile picture's link to image

domainstring · nullableOptional

Custom domain for the workspae

Responses
200

Successful Response

application/json
idstring · uuidRequired
namestringRequired
descriptionstringRequired
domainstringRequired
thumbnailstring · nullableRequired
member_inherited_roleinteger · enumRequiredPossible values:
invite_idstring · uuidRequired
typestring · enumRequiredPossible values:
trial_startedbooleanRequired
post/workspaces
POST /workspaces HTTP/1.1
Content-Type: application/json
Accept: */*
Content-Length: 252

{
  "url_subdomain": "text",
  "name": "text",
  "description": "text",
  "team_size_analytics": "text",
  "team_domain": "text",
  "team_usage_analytics": "text",
  "data_types_analytics": [
    "text"
  ],
  "thumbnail": "text",
  "domain": "text",
  "body": {
    "ANY_ADDITIONAL_PROPERTY": "anything"
  }
}
{
  "id": "123e4567-e89b-12d3-a456-426614174000",
  "name": "text",
  "description": "text",
  "domain": "text",
  "thumbnail": "text",
  "member_inherited_role": 60,
  "invite_id": "123e4567-e89b-12d3-a456-426614174000",
  "type": "PERSONAL",
  "onboarding": {
    "ANY_ADDITIONAL_PROPERTY": true
  },
  "settings": {
    "transcription_model": "BEST",
    "default_drive_inheritance": 50
  },
  "trial_started": true,
  "organization": {
    "id": "123e4567-e89b-12d3-a456-426614174000",
    "name": "text",
    "url_subdomain": "text",
    "email_domain": "text",
    "client_metadata": {
      "ANY_ADDITIONAL_PROPERTY": "anything"
    },
    "partnership_type": "BRANDING",
    "discount_amount": 1
  },
  "client_metadata": {
    "ANY_ADDITIONAL_PROPERTY": "anything"
  }
}

Lists all the drives for a specific workspace

get
Path parameters
workspace_idstring · uuidRequired
Header parameters
passwordstring · nullableOptional

The password header to use to fetch the preview

Body
Responses
200

Successful Response

application/json
idstring · uuidRequired
namestringRequired
descriptionstringRequired
iconstringRequired
typestring · enumRequiredPossible values:
identifierstringRequired
icon_typestring · enumRequiredPossible values:
member_inherited_roleinteger · enumRequiredPossible values:
invite_idstring · uuidRequired
workspace_idstring · uuidRequired
roleinteger · enumRequiredPossible values:
is_workspace_memberbooleanOptionalDefault: false
get/workspaces/{workspace_id}/drives
GET /workspaces/{workspace_id}/drives HTTP/1.1
Content-Type: application/json
Accept: */*
Content-Length: 47

{
  "body": {
    "ANY_ADDITIONAL_PROPERTY": "anything"
  }
}
[
  {
    "id": "123e4567-e89b-12d3-a456-426614174000",
    "name": "text",
    "description": "text",
    "icon": "text",
    "settings": {
      "max_storage_bytes": 1,
      "mount_path_macos": "text",
      "mount_path_linux": "text",
      "mount_path_windows": "text"
    },
    "type": "catalog",
    "identifier": "text",
    "icon_type": "color",
    "member_inherited_role": 50,
    "invite_id": "123e4567-e89b-12d3-a456-426614174000",
    "workspace_id": "123e4567-e89b-12d3-a456-426614174000",
    "byos": {
      "bucket": "text",
      "endpoint": "text"
    },
    "default_storage_backend": {
      "provider": "text",
      "bucket": "text"
    },
    "actions": [
      "manage"
    ],
    "role": 50,
    "is_workspace_member": false
  }
]

Creates a drive in a workspace

post

Create a Drive

Path parameters
workspace_idstring · uuidRequired
Header parameters
passwordstring · nullableOptional

The password header to use to fetch the preview

Body
namestringRequired
descriptionstringRequired
typestring · enumRequiredPossible values:
iconstring · nullableOptional
icon_typestring · enum · nullableRequiredPossible values:
template_drive_idstring · uuid · nullableOptional
public_template_keystring · enum · nullableOptionalPossible values:
Responses
200

Successful Response

application/json
idstring · uuidRequired
namestringRequired
descriptionstringRequired
iconstringRequired
typestring · enumRequiredPossible values:
identifierstringRequired
icon_typestring · enumRequiredPossible values:
member_inherited_roleinteger · enumRequiredPossible values:
invite_idstring · uuidRequired
workspace_idstring · uuidRequired
roleinteger · enumRequiredPossible values:
is_workspace_memberbooleanOptionalDefault: false
post/workspaces/{workspace_id}/drives
POST /workspaces/{workspace_id}/drives HTTP/1.1
Content-Type: application/json
Accept: */*
Content-Length: 344

{
  "name": "text",
  "description": "text",
  "type": "catalog",
  "icon": "text",
  "icon_type": "color",
  "byos": {
    "ANY_ADDITIONAL_PROPERTY": "anything"
  },
  "default_storage_backend": {
    "ANY_ADDITIONAL_PROPERTY": "anything"
  },
  "template_drive_id": "123e4567-e89b-12d3-a456-426614174000",
  "public_template_key": "video_production",
  "body": {
    "ANY_ADDITIONAL_PROPERTY": "anything"
  }
}
{
  "id": "123e4567-e89b-12d3-a456-426614174000",
  "name": "text",
  "description": "text",
  "icon": "text",
  "settings": {
    "max_storage_bytes": 1,
    "mount_path_macos": "text",
    "mount_path_linux": "text",
    "mount_path_windows": "text"
  },
  "type": "catalog",
  "identifier": "text",
  "icon_type": "color",
  "member_inherited_role": 50,
  "invite_id": "123e4567-e89b-12d3-a456-426614174000",
  "workspace_id": "123e4567-e89b-12d3-a456-426614174000",
  "byos": {
    "bucket": "text",
    "endpoint": "text"
  },
  "default_storage_backend": {
    "provider": "text",
    "bucket": "text"
  },
  "actions": [
    "manage"
  ],
  "role": 50,
  "is_workspace_member": false
}

Lists all user drives (including demo workspace drives)

get

This route is used to get all the drives for a user. The frontend uses this to determine which shadefs drives should be kept/removed

Header parameters
passwordstring · nullableOptional

The password header to use to fetch the preview

Body
Responses
200

Successful Response

application/json
string · uuid[]Optional
get/workspaces/drive-ids
GET /workspaces/drive-ids HTTP/1.1
Content-Type: application/json
Accept: */*
Content-Length: 47

{
  "body": {
    "ANY_ADDITIONAL_PROPERTY": "anything"
  }
}
[
  "123e4567-e89b-12d3-a456-426614174000"
]

Lists all the paths for a user in a specific workspace

get

Lists all the paths for a specific user on a workspace

Path parameters
workspace_idstring · uuidRequired
user_idstring · uuidRequired
Header parameters
passwordstring · nullableOptional

The password header to use to fetch the preview

Body
Responses
200

Successful Response

application/json
get/workspaces/{workspace_id}/user-paths/{user_id}
GET /workspaces/{workspace_id}/user-paths/{user_id} HTTP/1.1
Content-Type: application/json
Accept: */*
Content-Length: 47

{
  "body": {
    "ANY_ADDITIONAL_PROPERTY": "anything"
  }
}
[
  {
    "drive": {
      "id": "123e4567-e89b-12d3-a456-426614174000",
      "name": "text",
      "description": "text",
      "icon": "text",
      "settings": {
        "max_storage_bytes": 1,
        "mount_path_macos": "text",
        "mount_path_linux": "text",
        "mount_path_windows": "text"
      },
      "type": "catalog",
      "identifier": "text",
      "icon_type": "color",
      "member_inherited_role": 50,
      "invite_id": "123e4567-e89b-12d3-a456-426614174000",
      "workspace_id": "123e4567-e89b-12d3-a456-426614174000",
      "byos": {
        "bucket": "text",
        "endpoint": "text"
      },
      "default_storage_backend": {
        "provider": "text",
        "bucket": "text"
      }
    },
    "paths": [
      {
        "user_id": "123e4567-e89b-12d3-a456-426614174000",
        "user_name": "text",
        "path": "text",
        "role": 50
      }
    ]
  }
]

Lists all the paths for a specific workspace

get

For drive and workspace users, list their access and paths.

Path parameters
workspace_idstring · uuidRequired
Header parameters
passwordstring · nullableOptional

The password header to use to fetch the preview

Body
Responses
200

Successful Response

application/json
get/workspaces/{workspace_id}/user-paths
GET /workspaces/{workspace_id}/user-paths HTTP/1.1
Content-Type: application/json
Accept: */*
Content-Length: 47

{
  "body": {
    "ANY_ADDITIONAL_PROPERTY": "anything"
  }
}
[
  {
    "drive": {
      "id": "123e4567-e89b-12d3-a456-426614174000",
      "name": "text",
      "description": "text",
      "icon": "text",
      "settings": {
        "max_storage_bytes": 1,
        "mount_path_macos": "text",
        "mount_path_linux": "text",
        "mount_path_windows": "text"
      },
      "type": "catalog",
      "identifier": "text",
      "icon_type": "color",
      "member_inherited_role": 50,
      "invite_id": "123e4567-e89b-12d3-a456-426614174000",
      "workspace_id": "123e4567-e89b-12d3-a456-426614174000",
      "byos": {
        "bucket": "text",
        "endpoint": "text"
      },
      "default_storage_backend": {
        "provider": "text",
        "bucket": "text"
      }
    },
    "paths": [
      {
        "user_id": "123e4567-e89b-12d3-a456-426614174000",
        "user_name": "text",
        "path": "text",
        "role": 50
      }
    ]
  }
]

Gets the # of available credits on a workspace

post
Path parameters
workspace_idstring · uuidRequired
Header parameters
passwordstring · nullableOptional

The password header to use to fetch the preview

Body
Responses
200

Successful Response

application/json
integerOptional
post/workspaces{workspace_id}/credits
POST /workspaces{workspace_id}/credits HTTP/1.1
Content-Type: application/json
Accept: */*
Content-Length: 47

{
  "body": {
    "ANY_ADDITIONAL_PROPERTY": "anything"
  }
}
1

Lists all the drives and your permission level for them

get

This is used for the /admin routes

Path parameters
workspace_idstring · uuidRequired
Header parameters
passwordstring · nullableOptional

The password header to use to fetch the preview

Body
Responses
200

Successful Response

application/json
get/workspaces/{workspace_id}/drives/permissions
GET /workspaces/{workspace_id}/drives/permissions HTTP/1.1
Content-Type: application/json
Accept: */*
Content-Length: 47

{
  "body": {
    "ANY_ADDITIONAL_PROPERTY": "anything"
  }
}
{
  "drives_you_can_manage": [
    {
      "id": "123e4567-e89b-12d3-a456-426614174000",
      "name": "text",
      "description": "text",
      "icon": "text",
      "settings": {
        "max_storage_bytes": 1,
        "mount_path_macos": "text",
        "mount_path_linux": "text",
        "mount_path_windows": "text"
      },
      "type": "catalog",
      "identifier": "text",
      "icon_type": "color",
      "member_inherited_role": 50,
      "invite_id": "123e4567-e89b-12d3-a456-426614174000",
      "workspace_id": "123e4567-e89b-12d3-a456-426614174000",
      "byos": {
        "bucket": "text",
        "endpoint": "text"
      },
      "default_storage_backend": {
        "provider": "text",
        "bucket": "text"
      }
    }
  ],
  "drives_you_can_read": [
    {
      "id": "123e4567-e89b-12d3-a456-426614174000",
      "name": "text",
      "description": "text",
      "icon": "text",
      "settings": {
        "max_storage_bytes": 1,
        "mount_path_macos": "text",
        "mount_path_linux": "text",
        "mount_path_windows": "text"
      },
      "type": "catalog",
      "identifier": "text",
      "icon_type": "color",
      "member_inherited_role": 50,
      "invite_id": "123e4567-e89b-12d3-a456-426614174000",
      "workspace_id": "123e4567-e89b-12d3-a456-426614174000",
      "byos": {
        "bucket": "text",
        "endpoint": "text"
      },
      "default_storage_backend": {
        "provider": "text",
        "bucket": "text"
      }
    }
  ]
}

Lists all the users for a specific workspace

get
Path parameters
workspace_idstring · uuidRequired
Header parameters
passwordstring · nullableOptional

The password header to use to fetch the preview

Body
Responses
200

Successful Response

application/json
idstring · uuidRequired
namestringRequired
emailstringRequired
avatar_urlstringRequired
user_typestring · enumRequiredPossible values:
external_idstring · nullableRequired
joinedstring · date-time · nullableOptional
roleinteger · enumRequiredPossible values:
is_workspace_memberbooleanOptionalDefault: false
is_workspace_ownerbooleanOptionalDefault: false
is_contractorbooleanOptionalDefault: false
get/workspaces/{workspace_id}/users
GET /workspaces/{workspace_id}/users HTTP/1.1
Content-Type: application/json
Accept: */*
Content-Length: 47

{
  "body": {
    "ANY_ADDITIONAL_PROPERTY": "anything"
  }
}
[
  {
    "id": "123e4567-e89b-12d3-a456-426614174000",
    "name": "text",
    "email": "text",
    "avatar_url": "text",
    "user_type": "regular",
    "external_id": "text",
    "joined": "2026-01-01T00:00:00.000Z",
    "role": 60,
    "is_workspace_member": false,
    "is_workspace_owner": false,
    "is_contractor": false
  }
]

Lists count of all the users for a specific workspace

get
Path parameters
workspace_idstring · uuidRequired
Header parameters
passwordstring · nullableOptional

The password header to use to fetch the preview

Body
Responses
200

Successful Response

application/json
total_countintegerRequired
member_countintegerRequired
guest_countintegerRequired
admin_countinteger · nullableOptional
get/workspaces/{workspace_id}/users/count
GET /workspaces/{workspace_id}/users/count HTTP/1.1
Content-Type: application/json
Accept: */*
Content-Length: 47

{
  "body": {
    "ANY_ADDITIONAL_PROPERTY": "anything"
  }
}
{
  "total_count": 1,
  "member_count": 1,
  "guest_count": 1,
  "admin_count": 1
}

Gets a workspace from the workspace_id

get

Gets a workspace from the workspace_id

Path parameters
workspace_idstring · uuidRequired
Header parameters
passwordstring · nullableOptional

The password header to use to fetch the preview

Body
Responses
200

Successful Response

application/json
idstring · uuidRequired
namestringRequired
descriptionstringRequired
domainstringRequired
thumbnailstring · nullableRequired
member_inherited_roleinteger · enumRequiredPossible values:
invite_idstring · uuidRequired
typestring · enumRequiredPossible values:
trial_startedbooleanRequired
personalbooleanRequired
roleinteger · enumRequiredPossible values:
get/workspaces/{workspace_id}
GET /workspaces/{workspace_id} HTTP/1.1
Content-Type: application/json
Accept: */*
Content-Length: 47

{
  "body": {
    "ANY_ADDITIONAL_PROPERTY": "anything"
  }
}
{
  "id": "123e4567-e89b-12d3-a456-426614174000",
  "name": "text",
  "description": "text",
  "domain": "text",
  "thumbnail": "text",
  "member_inherited_role": 60,
  "invite_id": "123e4567-e89b-12d3-a456-426614174000",
  "type": "PERSONAL",
  "onboarding": {
    "ANY_ADDITIONAL_PROPERTY": true
  },
  "settings": {
    "transcription_model": "BEST",
    "default_drive_inheritance": 50
  },
  "trial_started": true,
  "organization": {
    "id": "123e4567-e89b-12d3-a456-426614174000",
    "name": "text",
    "url_subdomain": "text",
    "email_domain": "text",
    "client_metadata": {
      "ANY_ADDITIONAL_PROPERTY": "anything"
    },
    "partnership_type": "BRANDING",
    "discount_amount": 1
  },
  "client_metadata": {
    "ANY_ADDITIONAL_PROPERTY": "anything"
  },
  "actions": [
    "manage"
  ],
  "personal": true,
  "role": 60
}

Updates a workspace

put

Update a workspace.

Path parameters
workspace_idstring · uuidRequired
Header parameters
passwordstring · nullableOptional

The password header to use to fetch the preview

Body
namestring · nullableOptional
domainstring · nullableOptionalPattern: ^[a-zA-Z0-9.-]+$
descriptionstring · nullableOptional
team_size_analyticsstring · nullableOptional
team_usage_analyticsstring · nullableOptional
data_types_analyticsstring[] · nullableOptional
thumbnailstring · nullableOptional

The profile picture's byte array

onboarding_keystring · nullableOptional

Workspace onboarding key to set as finished

Responses
200

Successful Response

application/json
idstring · uuidRequired
namestringRequired
descriptionstringRequired
domainstringRequired
thumbnailstring · nullableRequired
member_inherited_roleinteger · enumRequiredPossible values:
invite_idstring · uuidRequired
typestring · enumRequiredPossible values:
trial_startedbooleanRequired
put/workspaces/{workspace_id}
PUT /workspaces/{workspace_id} HTTP/1.1
Content-Type: application/json
Accept: */*
Content-Length: 289

{
  "name": "text",
  "domain": "text",
  "description": "text",
  "team_size_analytics": "text",
  "team_usage_analytics": "text",
  "data_types_analytics": [
    "text"
  ],
  "thumbnail": "text",
  "onboarding_key": "text",
  "client_metadata": {
    "ANY_ADDITIONAL_PROPERTY": "anything"
  },
  "body": {
    "ANY_ADDITIONAL_PROPERTY": "anything"
  }
}
{
  "id": "123e4567-e89b-12d3-a456-426614174000",
  "name": "text",
  "description": "text",
  "domain": "text",
  "thumbnail": "text",
  "member_inherited_role": 60,
  "invite_id": "123e4567-e89b-12d3-a456-426614174000",
  "type": "PERSONAL",
  "onboarding": {
    "ANY_ADDITIONAL_PROPERTY": true
  },
  "settings": {
    "transcription_model": "BEST",
    "default_drive_inheritance": 50
  },
  "trial_started": true,
  "organization": {
    "id": "123e4567-e89b-12d3-a456-426614174000",
    "name": "text",
    "url_subdomain": "text",
    "email_domain": "text",
    "client_metadata": {
      "ANY_ADDITIONAL_PROPERTY": "anything"
    },
    "partnership_type": "BRANDING",
    "discount_amount": 1
  },
  "client_metadata": {
    "ANY_ADDITIONAL_PROPERTY": "anything"
  }
}

Deletes a workspace

delete
Path parameters
workspace_idstring · uuidRequired
Header parameters
passwordstring · nullableOptional

The password header to use to fetch the preview

Body
Responses
200

Successful Response

application/json
booleanOptional
delete/workspaces/{workspace_id}
DELETE /workspaces/{workspace_id} HTTP/1.1
Content-Type: application/json
Accept: */*
Content-Length: 47

{
  "body": {
    "ANY_ADDITIONAL_PROPERTY": "anything"
  }
}
true

Create an avatar for a workspace

post
Body
extensionstring · enumRequired

The extension type of the avatar

Possible values:
sizeanyRequired

Size of the avatar

Responses
200

Successful Response

application/json
Other propertiesanyOptional
post/workspaces/avatar/upload-url
POST /workspaces/avatar/upload-url HTTP/1.1
Content-Type: application/json
Accept: */*
Content-Length: 31

{
  "extension": "png",
  "size": null
}
{
  "ANY_ADDITIONAL_PROPERTY": "anything"
}

Confirm uploading an avatar for a workspace

post
Path parameters
workspace_idstring · uuidRequired
Header parameters
passwordstring · nullableOptional

The password header to use to fetch the preview

Body
download_urlanyRequired

The download url

Responses
200

Successful Response

application/json
anyOptional
post/workspaces/{workspace_id}/avatar/complete
POST /workspaces/{workspace_id}/avatar/complete HTTP/1.1
Content-Type: application/json
Accept: */*
Content-Length: 67

{
  "download_url": null,
  "body": {
    "ANY_ADDITIONAL_PROPERTY": "anything"
  }
}

No content

Sends invites for user to join a workspace

post
Path parameters
workspace_idstring · uuidRequired
Header parameters
passwordstring · nullableOptional

The password header to use to fetch the preview

Body
messagestring · nullableRequired

The message to send to the invited user

Responses
202

Successful Response

application/json
booleanOptional
post/workspaces/{workspace_id}/send-invites
POST /workspaces/{workspace_id}/send-invites HTTP/1.1
Content-Type: application/json
Accept: */*
Content-Length: 113

{
  "invites": [
    {
      "email": "[email protected]",
      "role": 60
    }
  ],
  "message": "text",
  "body": {
    "ANY_ADDITIONAL_PROPERTY": "anything"
  }
}
true

Gets data for a specific invitation

get

This is a PUBLIC route where anyone can see invites. To see (you've been invited to ... workspace)

Path parameters
invite_idstring · uuidRequired
Responses
200

Successful Response

application/json
or
get/workspaces/invites/{invite_id}
GET /workspaces/invites/{invite_id} HTTP/1.1
Accept: */*
{
  "id": "123e4567-e89b-12d3-a456-426614174000",
  "sent_by": {
    "id": "123e4567-e89b-12d3-a456-426614174000",
    "name": "text",
    "email": "text",
    "avatar_url": "text",
    "user_type": "regular"
  },
  "sent_by_id": "123e4567-e89b-12d3-a456-426614174000",
  "sent_to_email": "text",
  "workspace_id": "123e4567-e89b-12d3-a456-426614174000",
  "workspace": {
    "id": "123e4567-e89b-12d3-a456-426614174000",
    "name": "text",
    "description": "text",
    "domain": "text",
    "thumbnail": "text",
    "member_inherited_role": 60,
    "invite_id": "123e4567-e89b-12d3-a456-426614174000",
    "type": "PERSONAL",
    "onboarding": {
      "ANY_ADDITIONAL_PROPERTY": true
    },
    "settings": {
      "transcription_model": "BEST",
      "default_drive_inheritance": 50
    },
    "trial_started": true,
    "organization": {
      "id": "123e4567-e89b-12d3-a456-426614174000",
      "name": "text",
      "url_subdomain": "text",
      "email_domain": "text",
      "client_metadata": {
        "ANY_ADDITIONAL_PROPERTY": "anything"
      },
      "partnership_type": "BRANDING",
      "discount_amount": 1
    },
    "client_metadata": {
      "ANY_ADDITIONAL_PROPERTY": "anything"
    }
  },
  "workspace_role": 60,
  "invite_type": "drive",
  "invite_target": "user"
}

Accepts invitation

post

This is a PUBLIC route where anyone can accept invites.

Path parameters
invite_idstring · uuidRequired

The id of the invitation to join

Header parameters
passwordstring · nullableOptional

The password header to use to fetch the preview

Body
Responses
200

Successful Response

application/json
or
post/workspaces/invites/{invite_id}/join
POST /workspaces/invites/{invite_id}/join HTTP/1.1
Content-Type: application/json
Accept: */*
Content-Length: 47

{
  "body": {
    "ANY_ADDITIONAL_PROPERTY": "anything"
  }
}
{
  "id": "123e4567-e89b-12d3-a456-426614174000",
  "sent_by": {
    "id": "123e4567-e89b-12d3-a456-426614174000",
    "name": "text",
    "email": "text",
    "avatar_url": "text",
    "user_type": "regular"
  },
  "sent_by_id": "123e4567-e89b-12d3-a456-426614174000",
  "sent_to_email": "text",
  "workspace_id": "123e4567-e89b-12d3-a456-426614174000",
  "workspace": {
    "id": "123e4567-e89b-12d3-a456-426614174000",
    "name": "text",
    "description": "text",
    "domain": "text",
    "thumbnail": "text",
    "member_inherited_role": 60,
    "invite_id": "123e4567-e89b-12d3-a456-426614174000",
    "type": "PERSONAL",
    "onboarding": {
      "ANY_ADDITIONAL_PROPERTY": true
    },
    "settings": {
      "transcription_model": "BEST",
      "default_drive_inheritance": 50
    },
    "trial_started": true,
    "organization": {
      "id": "123e4567-e89b-12d3-a456-426614174000",
      "name": "text",
      "url_subdomain": "text",
      "email_domain": "text",
      "client_metadata": {
        "ANY_ADDITIONAL_PROPERTY": "anything"
      },
      "partnership_type": "BRANDING",
      "discount_amount": 1
    },
    "client_metadata": {
      "ANY_ADDITIONAL_PROPERTY": "anything"
    }
  },
  "workspace_role": 60,
  "invite_type": "drive",
  "invite_target": "user"
}

Updates people's permissions on a workspace

put
Path parameters
workspace_idstring · uuidRequired
user_idstring · uuidRequired
Header parameters
passwordstring · nullableOptional

The password header to use to fetch the preview

Body
roleinteger · enumRequiredPossible values:
Responses
200

Successful Response

application/json
anyOptional
put/workspaces/{workspace_id}/users/{user_id}
PUT /workspaces/{workspace_id}/users/{user_id} HTTP/1.1
Content-Type: application/json
Accept: */*
Content-Length: 57

{
  "role": 60,
  "body": {
    "ANY_ADDITIONAL_PROPERTY": "anything"
  }
}

No content

Removes a user from a workspace

delete
Path parameters
workspace_idstring · uuidRequired

The id of the workspace we want to deactivate the user in

user_id_to_removestring · uuidRequired

The id for the user we want to deactivate

Header parameters
passwordstring · nullableOptional

The password header to use to fetch the preview

Body
Responses
200

Successful Response

application/json
booleanOptional
delete/workspaces/{workspace_id}/users/{user_id_to_remove}
DELETE /workspaces/{workspace_id}/users/{user_id_to_remove} HTTP/1.1
Content-Type: application/json
Accept: */*
Content-Length: 47

{
  "body": {
    "ANY_ADDITIONAL_PROPERTY": "anything"
  }
}
true

Gets a workspace for workspace domain

get
Path parameters
workspace_domainstringRequired
Responses
200

Successful Response

application/json
string · uuidOptional
get/workspaces/{workspace_domain}/domain
GET /workspaces/{workspace_domain}/domain HTTP/1.1
Accept: */*
123e4567-e89b-12d3-a456-426614174000

Gets a drive_id from an identifier

get
Path parameters
drive_identifierstringRequired
workspace_domainstringRequired
Responses
200

Successful Response

application/json
string · uuidOptional
get/workspaces/{workspace_domain}/drives/{drive_identifier}/identifier
GET /workspaces/{workspace_domain}/drives/{drive_identifier}/identifier HTTP/1.1
Accept: */*
123e4567-e89b-12d3-a456-426614174000

Get share data

get

Return the contents of the folder -> an array of AssetDTO

Query parameters
pathstring · nullableOptional

The path under the share to get the data for

Header parameters
passwordstring · nullableOptional

The password header to use to fetch the preview

Body
Responses
200

Share data includes drive_id, role, actions

application/json
drive_idstring · uuidOptional
workspace_idstring · uuidOptional
roleinteger · enumOptionalPossible values:
is_filebooleanOptionalDefault: false
is_folderbooleanOptionalDefault: false
root_pathstringOptional
pathstringOptional
preview_image_idstring · uuid · nullableOptional
preview_video_idstring · uuid · nullableOptional
password_protectedbooleanOptionalDefault: false
get/workspaces/shares/{share_id}
GET /workspaces/shares/{share_id} HTTP/1.1
Content-Type: application/json
Accept: */*
Content-Length: 47

{
  "body": {
    "ANY_ADDITIONAL_PROPERTY": "anything"
  }
}
{
  "drive_id": "123e4567-e89b-12d3-a456-426614174000",
  "workspace_id": "123e4567-e89b-12d3-a456-426614174000",
  "role": 50,
  "actions": [
    "manage"
  ],
  "is_file": false,
  "is_folder": false,
  "root_path": "text",
  "path": "text",
  "preview_image_id": "123e4567-e89b-12d3-a456-426614174000",
  "preview_video_id": "123e4567-e89b-12d3-a456-426614174000",
  "password_protected": false
}

Authorize drive usage

get
Path parameters
actionstring · enumRequiredPossible values:
drive_idstring · uuidRequired
Header parameters
passwordstring · nullableOptional

The password header to use to fetch the preview

Body
Responses
200

Successful Response

application/json
idstring · uuidRequired
namestringRequired
descriptionstringRequired
iconstringRequired
typestring · enumRequiredPossible values:
identifierstringRequired
icon_typestring · enumRequiredPossible values:
member_inherited_roleinteger · enumRequiredPossible values:
invite_idstring · uuidRequired
workspace_idstring · uuidRequired
get/workspaces/authorize/drives/{drive_id}/{action}
GET /workspaces/authorize/drives/{drive_id}/{action} HTTP/1.1
Content-Type: application/json
Accept: */*
Content-Length: 47

{
  "body": {
    "ANY_ADDITIONAL_PROPERTY": "anything"
  }
}
{
  "id": "123e4567-e89b-12d3-a456-426614174000",
  "name": "text",
  "description": "text",
  "icon": "text",
  "settings": {
    "max_storage_bytes": 1,
    "mount_path_macos": "text",
    "mount_path_linux": "text",
    "mount_path_windows": "text"
  },
  "type": "catalog",
  "identifier": "text",
  "icon_type": "color",
  "member_inherited_role": 50,
  "invite_id": "123e4567-e89b-12d3-a456-426614174000",
  "workspace_id": "123e4567-e89b-12d3-a456-426614174000",
  "byos": {
    "bucket": "text",
    "endpoint": "text"
  },
  "default_storage_backend": {
    "provider": "text",
    "bucket": "text"
  }
}

Update workspace settings

put
Path parameters
workspace_idstring · uuidRequired
Header parameters
passwordstring · nullableOptional

The password header to use to fetch the preview

Body
transcription_modelstring · enum · nullableOptional

New model to set it to

Possible values:
default_drive_inheritanceinteger · enum · nullableOptional

Default access level for workspace members in new drives

Possible values:
Responses
200

Successful Response

application/json
anyOptional
put/workspaces/{workspace_id}/settings
PUT /workspaces/{workspace_id}/settings HTTP/1.1
Content-Type: application/json
Accept: */*
Content-Length: 107

{
  "transcription_model": "BEST",
  "default_drive_inheritance": 50,
  "body": {
    "ANY_ADDITIONAL_PROPERTY": "anything"
  }
}

No content

Get the FS public key to sign files

get
Responses
200

Successful Response

text/plain
stringOptional
get/workspaces/shade-fs-public-key
GET /workspaces/shade-fs-public-key HTTP/1.1
Accept: */*
text

Transfer a workspace to a new owner

post
Path parameters
workspace_idstring · uuidRequired
new_owner_user_idstring · uuidRequired
Header parameters
passwordstring · nullableOptional

The password header to use to fetch the preview

Body
Responses
200

Successful Response

application/json
booleanOptional
post/workspaces/{workspace_id}/transfer-ownership/{new_owner_user_id}
POST /workspaces/{workspace_id}/transfer-ownership/{new_owner_user_id} HTTP/1.1
Content-Type: application/json
Accept: */*
Content-Length: 47

{
  "body": {
    "ANY_ADDITIONAL_PROPERTY": "anything"
  }
}
true

Leave a workspace

post
Path parameters
workspace_idstring · uuidRequired
Header parameters
passwordstring · nullableOptional

The password header to use to fetch the preview

Body
Responses
200

Successful Response

application/json
booleanOptional
post/workspaces/{workspace_id}/leave
POST /workspaces/{workspace_id}/leave HTTP/1.1
Content-Type: application/json
Accept: */*
Content-Length: 47

{
  "body": {
    "ANY_ADDITIONAL_PROPERTY": "anything"
  }
}
true

Invite a user to a public share

post
Header parameters
passwordstring · nullableOptional

The password header to use to fetch the preview

Body
emailstringRequired
messagestringRequired
linkstringRequired
Responses
200

Successful Response

application/json
anyOptional
post/workspaces/public-file-shares/{share_id}/email
POST /workspaces/public-file-shares/{share_id}/email HTTP/1.1
Content-Type: application/json
Accept: */*
Content-Length: 93

{
  "email": "text",
  "message": "text",
  "link": "text",
  "body": {
    "ANY_ADDITIONAL_PROPERTY": "anything"
  }
}

No content

Get Svix webhook dashboard URL for workspace

get

Generate and return a Svix dashboard URL for the workspace webhooks. User must be an admin, member, or owner of the workspace.

Path parameters
workspace_idstring · uuidRequired
Header parameters
passwordstring · nullableOptional

The password header to use to fetch the preview

Body
Responses
200

Successful Response

application/json
Other propertiesanyOptional
get/workspaces/{workspace_id}/webhook-dashboard-url
GET /workspaces/{workspace_id}/webhook-dashboard-url HTTP/1.1
Content-Type: application/json
Accept: */*
Content-Length: 47

{
  "body": {
    "ANY_ADDITIONAL_PROPERTY": "anything"
  }
}
{
  "ANY_ADDITIONAL_PROPERTY": "anything"
}

Get Svix webhook zapier integration key for workspace

get

Generate and return a Svix dashboard URL for the workspace webhooks. User must be an admin, member, or owner of the workspace.

Path parameters
workspace_idstring · uuidRequired
Header parameters
passwordstring · nullableOptional

The password header to use to fetch the preview

Body
Responses
200

Successful Response

application/json
Other propertiesanyOptional
get/workspaces/{workspace_id}/zapier-integration-key
GET /workspaces/{workspace_id}/zapier-integration-key HTTP/1.1
Content-Type: application/json
Accept: */*
Content-Length: 47

{
  "body": {
    "ANY_ADDITIONAL_PROPERTY": "anything"
  }
}
{
  "ANY_ADDITIONAL_PROPERTY": "anything"
}

Last updated

Was this helpful?