Dropbox for HTTP Developers

team

Note: The Audit log endpoint is not yet available in the Dropbox Business API v2. This endpoint will continue to be available and maintained in the Dropbox Business API v1.

Dropbox Business API

The Dropbox Business API allows apps to manage the user lifecycle for a Dropbox Business account and perform API actions on all members of a team. It also gives apps programmatic access to Dropbox Business admin functionality.

Access types

There are four different access types of Dropbox Business API permissions. You should only request access to the minimum set of permissions that your app requires:

  • Team information – Information about the team and aggregate usage data
  • Team auditing – Team information, plus the team's detailed activity log
  • Team member file access – Team information and auditing, plus the ability to perform any action as any team member
  • Team member management – Team information, plus the ability to add, edit, and delete team members

Creating an application

To create a Dropbox Business app, visit the app creation page.

Linking to a team

Developers will need to direct a Dropbox Business team administrator through the standard OAuth 2.0 flow to install their application on a Dropbox Business team. The OAuth response/redirect will include an additional team_id field that can be used to uniquely identify a team.

Dropbox Business API OAuth tokens can enable extensive access to team data, so it is your responsibility to properly secure them server-side. They should never be cached in insecure environments or downloaded to client devices.

Member file access

A Dropbox Business app can make calls to the Dropbox API for any member of the Dropbox Business team. Your app must have Team member file access permission.

To make calls on a member's behalf, use the OAuth token granted to the app by the team. Specify the member_id of the user that the app wants to act on using a custom HTTP header called Dropbox-API-Select-User.

Notes:

  • This feature is currently limited to only team members in the "active" state.
  • A common use case for Team member file access is scanning through member Dropbox accounts. The recommended approach for this is repeated calls to /files/list_folder/continue.

An additional error may occur when using Dropbox-API-Select-User:

  • 401 Member ID doesn't exist on the team.

An alternative and advanced method for Business API apps to access and perform operations on team-owned content is to use the Dropbox-API-Select-Admin HTTP header instead of Dropbox-API-Select-User.

There are a several key differences between the two:

First, both headers specify the member_id of a team member in their values, but for Dropbox-API-Select-Admin this must refer to a team admin rather than an arbitrary member.

Second, Dropbox-API-Select-User allows access to and operations on content that currently exists in the "selected" team member's Dropbox. This includes their private files and folders as well as contents of any shared or team folders they not only have access to but also have added to their Dropbox (i.e. "mounted" in API terms).

In contrast, Dropbox-API-Select-Admin allows access to and operations on any team-owned content. This includes any team member's private files and folders as well as contents of any shared folders owned by a member of the team and team folders. In particular, the team admin being impersonated doesn't have to have the target content in their Dropbox and doesn't have to be in the membership of any shared or team folders the content might reside in.

Therefore Dropbox-API-Select-Admin header is particularly useful for accessing content that might not exist in any team member's Dropbox. An example of this is a shared folder that has been deleted from the Dropbox accounts of all team members that have access to it. Another example is a team folder that has no groups associated with it.

Since traditional logical paths in Dropbox must refer to mounted content, the endpoints that support the Dropbox-API-Select-Admin header accept namespace-relative paths. These take the format of ns:<namespace_id><namespace_path>, where <namespace_id> is the shared_folder_id or team_folder_id of the shared folder or the team folder containing the file or folder, respectively, and <namespace_path> is the logical path to the content relative to its shared folder or team folder container.

For example, let's say your app is trying to retrieve metadata associated with cupcake.png in the shared folder Images with shared_folder_id 123456. Let's imagine Dan, the designer, is a collaborator on Images and has added this shared folder to their Dropbox, mounting it inside top-level folder Design (/Design/Images). The traditional method for an app with team member file access to retrieve metadata for cupcake.png would be to call files/get_metadata while impersonating Dan by his member_id and passing in the logical path /Design/Images/cupcake.png. However, the traditional method would fail if Dan were to remove Images from his Dropbox. Calling files/get_metadata while impersonating a team admin with the Dropbox-API-Select-Admin header, and passing in the namespace-relative path, ns:123456/cupcake.png would circumvent this issue, even if that team admin is not a member of Images.

While a namespace-relative path can be used with the Dropbox-API-Select-User header, the shared or team folder it specifies must be mounted in the Dropbox of the team member "selected" by the header.

Note that not all User API endpoints support the Dropbox-API-Select-Admin header. Here is a list of those that do:

  • files/get_metadata
  • files/list_folder
  • files/list_revisions
  • files/restore
  • files/upload
  • files/upload_session
  • files/copy
  • files/create_folder
  • files/delete
  • files/download
  • files/get_preview
  • files/get_temporary_link
  • files/get_thumbnail
  • files/move

Production status

When first created, an app will be in "Development" mode, which means it will only be able to link to a single team. You can enable up to 5 additional development teams from your app's info page on the App Console by clicking Enable additional teams. When you are ready to exit development and deploy your app more broadly, you will need to apply for Production status.

Webhooks

Dropbox Business API apps that have specified a webhook URL in the App Console will receive change notifications for the team. There are two classes of change notifications, each associated with different permissions.

Team member file access notifications

Apps with the Team member file access permission will receive per-user webhook notifications from all members of the team. The webhook notification contains a list of all member_ids that have changes within their account. This is similar to the Dropbox API webhooks behavior.

For Team member file access notifications, your endpoint will receive JSON with the following format:

{
  "list_folder": {
    "teams": {
      "team_id1": [
        "member_id1",
        "member_id2",
        ...
      ],
      "team_id2": [
        "member_id1",
        "member_id2",
        ...
      ],
      ...
    }
  },
  "delta": {
    "teams": {
      "team_id1": [
        "member_id1",
        "member_id2",
        ...
      ],
      "team_id2": [
        "member_id1",
        "member_id2",
        ...
      ],
      ...
    }
  }
}

Note that a single change to a file in a shared folder will trigger a webhook for each user that the folder is shared with (and will also show up in the /list_folder entries for each account). You may want to track these occurrences to avoid re-processing the same file multiple times. One possible method would be to track a combination of the (unique) shared folder ID, file path, and rev for a file to identify if it is the same as a previously-processed change. Files outside a shared folder don't have this concern.

Team change notifications

Apps with Team member management or Team member file access permissions will receive webhook notifications for changes to the team membership. This type of notification will be triggered in the following cases:

  • User is invited to team
  • User joins team (transitions from "invited" to "active" status)
  • User is removed from team
  • User's profile or permissions are updated

For Team change notifications, your endpoint will receive JSON with the following format:

{
  "team_events": [
    {
      "event": "member_info_change",
      "team_id": "team_id1",
      "member_ids": [
        "member_id1",
        "member_id2",
        ...
      ]
    },
    ...
  ]
}

team

/devices/list_member_devices

Description

List all device sessions of a team's member.

URL Structure
https://api.dropboxapi.com/2/team/devices/list_member_devices
Authentication
Team Authentication
Endpoint format
RPC
Example
Get access token for:
curl -X POST https://api.dropboxapi.com/2/team/devices/list_member_devices \
    --header "Authorization: Bearer " \
    --header "Content-Type: application/json" \
    --data "{\"team_member_id\": \"dbmid:AAFdgehTzw7WlXhZJsbGCLePe8RvQGYDr-I\",\"include_web_sessions\": true,\"include_desktop_clients\": true,\"include_mobile_clients\": true}"
Parameters
{
    "team_member_id": "dbmid:AAFdgehTzw7WlXhZJsbGCLePe8RvQGYDr-I",
    "include_web_sessions": true,
    "include_desktop_clients": true,
    "include_mobile_clients": true
}
ListMemberDevicesArg
team_member_id String The team's member id
include_web_sessions Boolean Whether to list web sessions of the team's member The default for this field is True.
include_desktop_clients Boolean Whether to list linked desktop devices of the team's member The default for this field is True.
include_mobile_clients Boolean Whether to list linked mobile devices of the team's member The default for this field is True.
Returns
ListMemberDevicesResult
active_web_sessions List of (ActiveWebSession)? List of web sessions made by this team member This field is optional.
ActiveWebSession
Information on active web sessions
session_id String The session id
user_agent String Information on the hosting device
os String Information on the hosting operating system
browser String Information on the browser used for this web session
ip_address String? The IP address of the last activity from this session This field is optional.
country String? The country from which the last activity from this session was made This field is optional.
created Timestamp(format="%Y-%m-%dT%H:%M:%SZ")? The time this session was created This field is optional.
updated Timestamp(format="%Y-%m-%dT%H:%M:%SZ")? The time of the last activity from this session This field is optional.
desktop_client_sessions List of (DesktopClientSession)? List of desktop clients used by this team member This field is optional.
DesktopClientSession
Information about linked Dropbox desktop client sessions
session_id String The session id
host_name String Name of the hosting desktop
client_type DesktopPlatform The Dropbox desktop client type
DesktopPlatform (open union)
The value will be one of the following datatypes. New values may be introduced as our API evolves.
windows Void Official Windows Dropbox desktop client
mac Void Official Mac Dropbox desktop client
linux Void Official Linux Dropbox desktop client
client_version String The Dropbox client version
platform String Information on the hosting platform
is_delete_on_unlink_supported Boolean Whether it's possible to delete all of the account files upon unlinking
ip_address String? The IP address of the last activity from this session This field is optional.
country String? The country from which the last activity from this session was made This field is optional.
created Timestamp(format="%Y-%m-%dT%H:%M:%SZ")? The time this session was created This field is optional.
updated Timestamp(format="%Y-%m-%dT%H:%M:%SZ")? The time of the last activity from this session This field is optional.
mobile_client_sessions List of (MobileClientSession)? List of mobile client used by this team member This field is optional.
MobileClientSession
Information about linked Dropbox mobile client sessions
session_id String The session id
device_name String The device name
client_type MobileClientPlatform The mobile application type
MobileClientPlatform (open union)
The value will be one of the following datatypes. New values may be introduced as our API evolves.
iphone Void Official Dropbox iPhone client
ipad Void Official Dropbox iPad client
android Void Official Dropbox Android client
windows_phone Void Official Dropbox Windows phone client
blackberry Void Official Dropbox Blackberry client
ip_address String? The IP address of the last activity from this session This field is optional.
country String? The country from which the last activity from this session was made This field is optional.
created Timestamp(format="%Y-%m-%dT%H:%M:%SZ")? The time this session was created This field is optional.
updated Timestamp(format="%Y-%m-%dT%H:%M:%SZ")? The time of the last activity from this session This field is optional.
client_version String? The dropbox client version This field is optional.
os_version String? The hosting OS version This field is optional.
last_carrier String? last carrier used by the device This field is optional.
Errors
Example: member_not_found
{
    "error_summary": "member_not_found/...",
    "error": {
        ".tag": "member_not_found"
    }
}
Example: other
{
    "error_summary": "other/...",
    "error": {
        ".tag": "other"
    }
}
ListMemberDevicesError (open union)
The value will be one of the following datatypes. New values may be introduced as our API evolves.
member_not_found Void Member not found.

/devices/list_members_devices

Description

List all device sessions of a team.

URL Structure
https://api.dropboxapi.com/2/team/devices/list_members_devices
Authentication
Team Authentication
Endpoint format
RPC
Parameters
ListMembersDevicesArg
cursor String? At the first call to the devices/list_members_devices the cursor shouldn't be passed. Then, if the result of the call includes a cursor, the following requests should include the received cursors in order to receive the next sub list of team devices This field is optional.
include_web_sessions Boolean Whether to list web sessions of the team members The default for this field is True.
include_desktop_clients Boolean Whether to list desktop clients of the team members The default for this field is True.
include_mobile_clients Boolean Whether to list mobile clients of the team members The default for this field is True.
Returns
ListMembersDevicesResult
devices List of (MemberDevices) The devices of each member of the team
MemberDevices
Information on devices of a team's member.
team_member_id String The member unique Id
web_sessions List of (ActiveWebSession)? List of web sessions made by this team member This field is optional.
ActiveWebSession
Information on active web sessions
session_id String The session id
user_agent String Information on the hosting device
os String Information on the hosting operating system
browser String Information on the browser used for this web session
ip_address String? The IP address of the last activity from this session This field is optional.
country String? The country from which the last activity from this session was made This field is optional.
created Timestamp(format="%Y-%m-%dT%H:%M:%SZ")? The time this session was created This field is optional.
updated Timestamp(format="%Y-%m-%dT%H:%M:%SZ")? The time of the last activity from this session This field is optional.
desktop_clients List of (DesktopClientSession)? List of desktop clients by this team member This field is optional.
DesktopClientSession
Information about linked Dropbox desktop client sessions
session_id String The session id
host_name String Name of the hosting desktop
client_type DesktopPlatform The Dropbox desktop client type
DesktopPlatform (open union)
The value will be one of the following datatypes. New values may be introduced as our API evolves.
windows Void Official Windows Dropbox desktop client
mac Void Official Mac Dropbox desktop client
linux Void Official Linux Dropbox desktop client
client_version String The Dropbox client version
platform String Information on the hosting platform
is_delete_on_unlink_supported Boolean Whether it's possible to delete all of the account files upon unlinking
ip_address String? The IP address of the last activity from this session This field is optional.
country String? The country from which the last activity from this session was made This field is optional.
created Timestamp(format="%Y-%m-%dT%H:%M:%SZ")? The time this session was created This field is optional.
updated Timestamp(format="%Y-%m-%dT%H:%M:%SZ")? The time of the last activity from this session This field is optional.
mobile_clients List of (MobileClientSession)? List of mobile clients by this team member This field is optional.
MobileClientSession
Information about linked Dropbox mobile client sessions
session_id String The session id
device_name String The device name
client_type MobileClientPlatform The mobile application type
MobileClientPlatform (open union)
The value will be one of the following datatypes. New values may be introduced as our API evolves.
iphone Void Official Dropbox iPhone client
ipad Void Official Dropbox iPad client
android Void Official Dropbox Android client
windows_phone Void Official Dropbox Windows phone client
blackberry Void Official Dropbox Blackberry client
ip_address String? The IP address of the last activity from this session This field is optional.
country String? The country from which the last activity from this session was made This field is optional.
created Timestamp(format="%Y-%m-%dT%H:%M:%SZ")? The time this session was created This field is optional.
updated Timestamp(format="%Y-%m-%dT%H:%M:%SZ")? The time of the last activity from this session This field is optional.
client_version String? The dropbox client version This field is optional.
os_version String? The hosting OS version This field is optional.
last_carrier String? last carrier used by the device This field is optional.
has_more Boolean If true, then there are more devices available. Pass the cursor to devices/list_members_devices to retrieve the rest.
cursor String? Pass the cursor into devices/list_members_devices to receive the next sub list of team's devices. This field is optional.
Errors
Example: reset
{
    "error_summary": "reset/...",
    "error": {
        ".tag": "reset"
    }
}
Example: other
{
    "error_summary": "other/...",
    "error": {
        ".tag": "other"
    }
}
ListMembersDevicesError (open union)
The value will be one of the following datatypes. New values may be introduced as our API evolves.
reset Void Indicates that the cursor has been invalidated. Call devices/list_members_devices again with an empty cursor to obtain a new cursor.

/devices/list_team_devices

DEPRECATED BY /devices/list_members_devices
Description

List all device sessions of a team.

URL Structure
https://api.dropboxapi.com/2/team/devices/list_team_devices
Authentication
Team Authentication
Endpoint format
RPC
Parameters
ListTeamDevicesArg
cursor String? At the first call to the devices/list_team_devices the cursor shouldn't be passed. Then, if the result of the call includes a cursor, the following requests should include the received cursors in order to receive the next sub list of team devices This field is optional.
include_web_sessions Boolean Whether to list web sessions of the team members The default for this field is True.
include_desktop_clients Boolean Whether to list desktop clients of the team members The default for this field is True.
include_mobile_clients Boolean Whether to list mobile clients of the team members The default for this field is True.
Returns
ListTeamDevicesResult
devices List of (MemberDevices) The devices of each member of the team
MemberDevices
Information on devices of a team's member.
team_member_id String The member unique Id
web_sessions List of (ActiveWebSession)? List of web sessions made by this team member This field is optional.
ActiveWebSession
Information on active web sessions
session_id String The session id
user_agent String Information on the hosting device
os String Information on the hosting operating system
browser String Information on the browser used for this web session
ip_address String? The IP address of the last activity from this session This field is optional.
country String? The country from which the last activity from this session was made This field is optional.
created Timestamp(format="%Y-%m-%dT%H:%M:%SZ")? The time this session was created This field is optional.
updated Timestamp(format="%Y-%m-%dT%H:%M:%SZ")? The time of the last activity from this session This field is optional.
desktop_clients List of (DesktopClientSession)? List of desktop clients by this team member This field is optional.
DesktopClientSession
Information about linked Dropbox desktop client sessions
session_id String The session id
host_name String Name of the hosting desktop
client_type DesktopPlatform The Dropbox desktop client type
DesktopPlatform (open union)
The value will be one of the following datatypes. New values may be introduced as our API evolves.
windows Void Official Windows Dropbox desktop client
mac Void Official Mac Dropbox desktop client
linux Void Official Linux Dropbox desktop client
client_version String The Dropbox client version
platform String Information on the hosting platform
is_delete_on_unlink_supported Boolean Whether it's possible to delete all of the account files upon unlinking
ip_address String? The IP address of the last activity from this session This field is optional.
country String? The country from which the last activity from this session was made This field is optional.
created Timestamp(format="%Y-%m-%dT%H:%M:%SZ")? The time this session was created This field is optional.
updated Timestamp(format="%Y-%m-%dT%H:%M:%SZ")? The time of the last activity from this session This field is optional.
mobile_clients List of (MobileClientSession)? List of mobile clients by this team member This field is optional.
MobileClientSession
Information about linked Dropbox mobile client sessions
session_id String The session id
device_name String The device name
client_type MobileClientPlatform The mobile application type
MobileClientPlatform (open union)
The value will be one of the following datatypes. New values may be introduced as our API evolves.
iphone Void Official Dropbox iPhone client
ipad Void Official Dropbox iPad client
android Void Official Dropbox Android client
windows_phone Void Official Dropbox Windows phone client
blackberry Void Official Dropbox Blackberry client
ip_address String? The IP address of the last activity from this session This field is optional.
country String? The country from which the last activity from this session was made This field is optional.
created Timestamp(format="%Y-%m-%dT%H:%M:%SZ")? The time this session was created This field is optional.
updated Timestamp(format="%Y-%m-%dT%H:%M:%SZ")? The time of the last activity from this session This field is optional.
client_version String? The dropbox client version This field is optional.
os_version String? The hosting OS version This field is optional.
last_carrier String? last carrier used by the device This field is optional.
has_more Boolean If true, then there are more devices available. Pass the cursor to devices/list_team_devices to retrieve the rest.
cursor String? Pass the cursor into devices/list_team_devices to receive the next sub list of team's devices. This field is optional.
Errors
Example: reset
{
    "error_summary": "reset/...",
    "error": {
        ".tag": "reset"
    }
}
Example: other
{
    "error_summary": "other/...",
    "error": {
        ".tag": "other"
    }
}
ListTeamDevicesError (open union)
The value will be one of the following datatypes. New values may be introduced as our API evolves.
reset Void Indicates that the cursor has been invalidated. Call devices/list_team_devices again with an empty cursor to obtain a new cursor.

/devices/revoke_device_session

Description

Revoke a device session of a team's member

URL Structure
https://api.dropboxapi.com/2/team/devices/revoke_device_session
Authentication
Team Authentication
Endpoint format
RPC
Parameters
RevokeDeviceSessionArg (union)
The value will be one of the following datatypes:
web_session DeviceSessionArg End an active session
DeviceSessionArg
session_id String The session id
team_member_id String The unique id of the member owning the device
desktop_client RevokeDesktopClientArg Unlink a linked desktop device
RevokeDesktopClientArg
session_id String The session id
team_member_id String The unique id of the member owning the device
delete_on_unlink Boolean Whether to delete all files of the account (this is possible only if supported by the desktop client and will be made the next time the client access the account) The default for this field is False.
mobile_client DeviceSessionArg Unlink a linked mobile device
DeviceSessionArg
session_id String The session id
team_member_id String The unique id of the member owning the device
Returns

No return values.

Errors
Example: device_session_not_found
{
    "error_summary": "device_session_not_found/...",
    "error": {
        ".tag": "device_session_not_found"
    }
}
Example: member_not_found
{
    "error_summary": "member_not_found/...",
    "error": {
        ".tag": "member_not_found"
    }
}
Example: other
{
    "error_summary": "other/...",
    "error": {
        ".tag": "other"
    }
}
RevokeDeviceSessionError (open union)
The value will be one of the following datatypes. New values may be introduced as our API evolves.
device_session_not_found Void Device session not found.
member_not_found Void Member not found.

/devices/revoke_device_session_batch

Description

Revoke a list of device sessions of team members

URL Structure
https://api.dropboxapi.com/2/team/devices/revoke_device_session_batch
Authentication
Team Authentication
Endpoint format
RPC
Parameters
RevokeDeviceSessionBatchArg
revoke_devices List of (RevokeDeviceSessionArg)
RevokeDeviceSessionArg (union)
The value will be one of the following datatypes:
web_session DeviceSessionArg End an active session
DeviceSessionArg
session_id String The session id
team_member_id String The unique id of the member owning the device
desktop_client RevokeDesktopClientArg Unlink a linked desktop device
RevokeDesktopClientArg
session_id String The session id
team_member_id String The unique id of the member owning the device
delete_on_unlink Boolean Whether to delete all files of the account (this is possible only if supported by the desktop client and will be made the next time the client access the account) The default for this field is False.
mobile_client DeviceSessionArg Unlink a linked mobile device
DeviceSessionArg
session_id String The session id
team_member_id String The unique id of the member owning the device
Returns
RevokeDeviceSessionBatchResult
revoke_devices_status List of (RevokeDeviceSessionStatus)
RevokeDeviceSessionStatus
success Boolean Result of the revoking request
error_type RevokeDeviceSessionError? The error cause in case of a failure This field is optional.
RevokeDeviceSessionError (open union)
The value will be one of the following datatypes. New values may be introduced as our API evolves.
device_session_not_found Void Device session not found.
member_not_found Void Member not found.
Errors
{
    "error_summary": "other/...",
    "error": {
        ".tag": "other"
    }
}
RevokeDeviceSessionBatchError (open union)
The value will be one of the following datatypes. New values may be introduced as our API evolves.

/get_info

Description

Retrieves information about a team.

URL Structure
https://api.dropboxapi.com/2/team/get_info
Authentication
Team Authentication
Endpoint format
RPC
Example
Get access token for:
curl -X POST https://api.dropboxapi.com/2/team/get_info \
    --header "Authorization: Bearer "
Parameters

No parameters.

Returns
{
    "name": "Dropbox Inc.",
    "team_id": "dbtid:1234abcd",
    "num_licensed_users": 5,
    "num_provisioned_users": 2,
    "policies": {
        "sharing": {
            "shared_folder_member_policy": {
                ".tag": "team"
            },
            "shared_folder_join_policy": {
                ".tag": "from_anyone"
            },
            "shared_link_create_policy": {
                ".tag": "team_only"
            }
        },
        "emm_state": {
            ".tag": "disabled"
        }
    }
}
TeamGetInfoResult
name String The name of the team.
team_id String The ID of the team.
num_licensed_users UInt32 The number of licenses available to the team.
num_provisioned_users UInt32 The number of accounts that have been invited or are already active members of the team.
policies TeamMemberPolicies
TeamMemberPolicies
Policies governing team members. This datatype comes from an imported namespace originally defined in the team_policies namespace.
sharing TeamSharingPolicies Policies governing sharing.
TeamSharingPolicies
Policies governing sharing within and outside of the team. This datatype comes from an imported namespace originally defined in the team_policies namespace.
shared_folder_member_policy SharedFolderMemberPolicy Who can join folders shared by team members.
SharedFolderMemberPolicy (open union)
Policy governing who can be a member of a folder shared by a team member. This datatype comes from an imported namespace originally defined in the team_policies namespace. The value will be one of the following datatypes. New values may be introduced as our API evolves.
team Void Only a teammate can be a member of a folder shared by a team member.
anyone Void Anyone can be a member of a folder shared by a team member.
shared_folder_join_policy SharedFolderJoinPolicy Which shared folders team members can join.
SharedFolderJoinPolicy (open union)
Policy governing which shared folders a team member can join. This datatype comes from an imported namespace originally defined in the team_policies namespace. The value will be one of the following datatypes. New values may be introduced as our API evolves.
from_team_only Void Team members can only join folders shared by teammates.
from_anyone Void Team members can join any shared folder, including those shared by users outside the team.
shared_link_create_policy SharedLinkCreatePolicy Who can view shared links owned by team members.
SharedLinkCreatePolicy (open union)
Policy governing the visibility of shared links. This policy can apply to newly created shared links, or all shared links. This datatype comes from an imported namespace originally defined in the team_policies namespace. The value will be one of the following datatypes. New values may be introduced as our API evolves.
default_public Void By default, anyone can access newly created shared links. No login will be required to access the shared links unless overridden.
default_team_only Void By default, only members of the same team can access newly created shared links. Login will be required to access the shared links unless overridden.
team_only Void Only members of the same team can access all shared links. Login will be required to access all shared links.
emm_state EmmState This describes the Enterprise Mobility Management (EMM) state for this team. This information can be used to understand if an organization is integrating with a third-party EMM vendor to further manage and apply restrictions upon the team's Dropbox usage on mobile devices. This is a new feature and in the future we'll be adding more new fields and additional documentation.
EmmState (open union)
This datatype comes from an imported namespace originally defined in the team_policies namespace. The value will be one of the following datatypes. New values may be introduced as our API evolves.
disabled Void Emm token is disabled
optional Void Emm token is optional
required Void Emm token is required
Errors

No errors.

/groups/create

Description

Creates a new, empty group, with a requested name.
Permission : Team member management.

URL Structure
https://api.dropboxapi.com/2/team/groups/create
Authentication
Team Authentication
Endpoint format
RPC
Example
Get access token for:
curl -X POST https://api.dropboxapi.com/2/team/groups/create \
    --header "Authorization: Bearer " \
    --header "Content-Type: application/json" \
    --data "{\"group_name\": \"Europe sales\",\"group_external_id\": \"group-134\"}"
Parameters
{
    "group_name": "Europe sales",
    "group_external_id": "group-134"
}
GroupCreateArg
group_name String Group name.
group_external_id String? The creator of a team can associate an arbitrary external ID to the group. This field is optional.
group_management_type GroupManagementType? Whether the team can be managed by selected users, or only by team admins. This field is optional.
GroupManagementType (open union)
The group type determines how a group is managed. This datatype comes from an imported namespace originally defined in the team_common namespace. The value will be one of the following datatypes. New values may be introduced as our API evolves.
user_managed Void A group which is managed by selected users.
company_managed Void A group which is managed by team admins only.
system_managed Void A group which is managed automatically by Dropbox.
Returns
{
    "group_name": "project launch",
    "group_id": "g:e2db7665347abcd600000000001a2b3c",
    "group_management_type": {
        ".tag": "user_managed"
    },
    "created": 1447255518000,
    "member_count": 5,
    "members": [
        {
            "profile": {
                "team_member_id": "dbmid:1234567",
                "email": "mary@lamb.com",
                "email_verified": true,
                "status": {
                    ".tag": "active"
                },
                "name": {
                    "given_name": "Franz",
                    "surname": "Ferdinand",
                    "familiar_name": "Franz",
                    "display_name": "Franz Ferdinand (Personal)",
                    "abbreviated_name": "FF"
                },
                "membership_type": {
                    ".tag": "full"
                },
                "account_id": "dbid:AAH4f99T0taONIb-OurWxbNQ6ywGRopQngc",
                "joined_on": "2015-05-12T15:50:38Z"
            },
            "access_type": {
                ".tag": "member"
            }
        }
    ]
}
GroupFullInfo
Full description of a group.
group_name String
group_id String
group_management_type GroupManagementType Who is allowed to manage the group.
GroupManagementType (open union)
The group type determines how a group is managed. This datatype comes from an imported namespace originally defined in the team_common namespace. The value will be one of the following datatypes. New values may be introduced as our API evolves.
user_managed Void A group which is managed by selected users.
company_managed Void A group which is managed by team admins only.
system_managed Void A group which is managed automatically by Dropbox.
created UInt64 The group creation time as a UTC timestamp in milliseconds since the Unix epoch.
group_external_id String? External ID of group. This is an arbitrary ID that an admin can attach to a group. This field is optional.
member_count UInt32? The number of members in the group. This field is optional.
members List of (GroupMemberInfo)? List of group members. This field is optional.
GroupMemberInfo
Profile of group member, and role in group.
profile MemberProfile Profile of group member.
MemberProfile
Basic member profile.
team_member_id String ID of user as a member of a team.
email String Email address of user.
email_verified Boolean Is true if the user's email is verified to be owned by the user.
status TeamMemberStatus The user's status as a member of a specific team.
TeamMemberStatus (union)
The user's status as a member of a specific team. The value will be one of the following datatypes:
active Void User has successfully joined the team.
invited Void User has been invited to a team, but has not joined the team yet.
suspended Void User is no longer a member of the team, but the account can be un-suspended, re-establishing the user as a team member.
removed RemovedStatus User is no longer a member of the team. Removed users are only listed when include_removed is true in members/list.
RemovedStatus
is_recoverable Boolean True if the removed team member is recoverable.
name Name Representations for a person's name.
Name
Representations for a person's name to assist with internationalization. This datatype comes from an imported namespace originally defined in the users namespace.
given_name String Also known as a first name.
surname String Also known as a last name or family name.
familiar_name String Locale-dependent name. In the US, a person's familiar name is their given_name, but elsewhere, it could be any combination of a person's given_name and surname.
display_name String A name that can be used directly to represent the name of a user's Dropbox account.
abbreviated_name String An abbreviated form of the person's name. Their initials in most locales.
membership_type TeamMembershipType The user's membership type: full (normal team member) vs limited (does not use a license; no access to the team's shared quota).
TeamMembershipType (union)
The value will be one of the following datatypes:
full Void User uses a license and has full access to team resources like the shared quota.
limited Void User does not have access to the shared quota and team admins have restricted administrative control.
external_id String? External ID that a team can attach to the user. An application using the API may find it easier to use their own IDs instead of Dropbox IDs like account_id or team_member_id. This field is optional.
account_id String(min_length=40, max_length=40)? A user's account identifier. This field is optional.
joined_on Timestamp(format="%Y-%m-%dT%H:%M:%SZ")? The date and time the user joined as a member of a specific team. This field is optional.
persistent_id String? Persistent ID that a team can attach to the user. The persistent ID is unique ID to be used for SAML authentication. This field is optional.
access_type GroupAccessType The role that the user has in the group.
GroupAccessType (union)
Role of a user in group. The value will be one of the following datatypes:
member Void User is a member of the group, but has no special permissions.
owner Void User can rename the group, and add/remove members.
Errors
Example: group_name_already_used
{
    "error_summary": "group_name_already_used/...",
    "error": {
        ".tag": "group_name_already_used"
    }
}
Example: group_name_invalid
{
    "error_summary": "group_name_invalid/...",
    "error": {
        ".tag": "group_name_invalid"
    }
}
Example: external_id_already_in_use
{
    "error_summary": "external_id_already_in_use/...",
    "error": {
        ".tag": "external_id_already_in_use"
    }
}
Example: system_managed_group_disallowed
{
    "error_summary": "system_managed_group_disallowed/...",
    "error": {
        ".tag": "system_managed_group_disallowed"
    }
}
Example: other
{
    "error_summary": "other/...",
    "error": {
        ".tag": "other"
    }
}
GroupCreateError (open union)
The value will be one of the following datatypes. New values may be introduced as our API evolves.
group_name_already_used Void The requested group name is already being used by another group.
group_name_invalid Void Group name is empty or has invalid characters.
external_id_already_in_use Void The requested external ID is already being used by another group.
system_managed_group_disallowed Void System-managed group cannot be manually created.

/groups/delete

Description

Deletes a group.
The group is deleted immediately. However the revoking of group-owned resources may take additional time. Use the groups/job_status/get to determine whether this process has completed.
Permission : Team member management.

URL Structure
https://api.dropboxapi.com/2/team/groups/delete
Authentication
Team Authentication
Endpoint format
RPC
Example
Get access token for:
curl -X POST https://api.dropboxapi.com/2/team/groups/delete \
    --header "Authorization: Bearer " \
    --header "Content-Type: application/json" \
    --data "{\".tag\": \"group_id\",\"group_id\": \"g:e2db7665347abcd600000000001a2b3c\"}"
Parameters
{
    ".tag": "group_id",
    "group_id": "g:e2db7665347abcd600000000001a2b3c"
}
GroupSelector (union)
Argument for selecting a single group, either by group_id or by external group ID. The value will be one of the following datatypes:
group_id String Group ID.
group_external_id String External ID of the group.
Returns
Example: complete
{
    ".tag": "complete"
}
Example: async_job_id
{
    ".tag": "async_job_id",
    "async_job_id": "34g93hh34h04y384084"
}
LaunchEmptyResult (union)
Result returned by methods that may either launch an asynchronous job or complete synchronously. Upon synchronous completion of the job, no additional information is returned. This datatype comes from an imported namespace originally defined in the async namespace. The value will be one of the following datatypes:
async_job_id String(min_length=1) This response indicates that the processing is asynchronous. The string is an id that can be used to obtain the status of the asynchronous job.
complete Void The job finished synchronously and successfully.
Errors
Example: group_not_found
{
    "error_summary": "group_not_found/...",
    "error": {
        ".tag": "group_not_found"
    }
}
Example: other
{
    "error_summary": "other/...",
    "error": {
        ".tag": "other"
    }
}
Example: system_managed_group_disallowed
{
    "error_summary": "system_managed_group_disallowed/...",
    "error": {
        ".tag": "system_managed_group_disallowed"
    }
}
Example: group_already_deleted
{
    "error_summary": "group_already_deleted/...",
    "error": {
        ".tag": "group_already_deleted"
    }
}
GroupDeleteError (union)
The value will be one of the following datatypes:
group_not_found Void No matching group found. No groups match the specified group ID.
system_managed_group_disallowed Void This operation is not supported on system-managed groups.
group_already_deleted Void This group has already been deleted.

/groups/get_info

Description

Retrieves information about one or more groups. Note that the optional field GroupFullInfo.members is not returned for system-managed groups.
Permission : Team Information.

URL Structure
https://api.dropboxapi.com/2/team/groups/get_info
Authentication
Team Authentication
Endpoint format
RPC
Example
Get access token for:
curl -X POST https://api.dropboxapi.com/2/team/groups/get_info \
    --header "Authorization: Bearer " \
    --header "Content-Type: application/json" \
    --data "{\".tag\": \"group_ids\",\"group_ids\": [\"g:e2db7665347abcd600000000001a2b3c\",\"g:111111147abcd6000000000222222c\"]}"
Parameters
{
    ".tag": "group_ids",
    "group_ids": [
        "g:e2db7665347abcd600000000001a2b3c",
        "g:111111147abcd6000000000222222c"
    ]
}
GroupsSelector (union)
Argument for selecting a list of groups, either by group_ids, or external group IDs. The value will be one of the following datatypes:
group_ids List of (String) List of group IDs.
group_external_ids List of (String) List of external IDs of groups.
Returns
This route returns a list. This means the route can accept a homogenous list of the following types:
GroupsGetInfoItem (union)
The value will be one of the following datatypes:
id_not_found String An ID that was provided as a parameter to groups/get_info, and did not match a corresponding group. The ID can be a group ID, or an external ID, depending on how the method was called.
group_info GroupFullInfo Info about a group.
GroupFullInfo
Full description of a group.
group_name String
group_id String
group_management_type GroupManagementType Who is allowed to manage the group.
GroupManagementType (open union)
The group type determines how a group is managed. This datatype comes from an imported namespace originally defined in the team_common namespace. The value will be one of the following datatypes. New values may be introduced as our API evolves.
user_managed Void A group which is managed by selected users.
company_managed Void A group which is managed by team admins only.
system_managed Void A group which is managed automatically by Dropbox.
created UInt64 The group creation time as a UTC timestamp in milliseconds since the Unix epoch.
group_external_id String? External ID of group. This is an arbitrary ID that an admin can attach to a group. This field is optional.
member_count UInt32? The number of members in the group. This field is optional.
members List of (GroupMemberInfo)? List of group members. This field is optional.
GroupMemberInfo
Profile of group member, and role in group.
profile MemberProfile Profile of group member.
MemberProfile
Basic member profile.
team_member_id String ID of user as a member of a team.
email String Email address of user.
email_verified Boolean Is true if the user's email is verified to be owned by the user.
status TeamMemberStatus The user's status as a member of a specific team.
TeamMemberStatus (union)
The user's status as a member of a specific team. The value will be one of the following datatypes:
active Void User has successfully joined the team.
invited Void User has been invited to a team, but has not joined the team yet.
suspended Void User is no longer a member of the team, but the account can be un-suspended, re-establishing the user as a team member.
removed RemovedStatus User is no longer a member of the team. Removed users are only listed when include_removed is true in members/list.
RemovedStatus
is_recoverable Boolean True if the removed team member is recoverable.
name Name Representations for a person's name.
Name
Representations for a person's name to assist with internationalization. This datatype comes from an imported namespace originally defined in the users namespace.
given_name String Also known as a first name.
surname String Also known as a last name or family name.
familiar_name String Locale-dependent name. In the US, a person's familiar name is their given_name, but elsewhere, it could be any combination of a person's given_name and surname.
display_name String A name that can be used directly to represent the name of a user's Dropbox account.
abbreviated_name String An abbreviated form of the person's name. Their initials in most locales.
membership_type TeamMembershipType The user's membership type: full (normal team member) vs limited (does not use a license; no access to the team's shared quota).
TeamMembershipType (union)
The value will be one of the following datatypes:
full Void User uses a license and has full access to team resources like the shared quota.
limited Void User does not have access to the shared quota and team admins have restricted administrative control.
external_id String? External ID that a team can attach to the user. An application using the API may find it easier to use their own IDs instead of Dropbox IDs like account_id or team_member_id. This field is optional.
account_id String(min_length=40, max_length=40)? A user's account identifier. This field is optional.
joined_on Timestamp(format="%Y-%m-%dT%H:%M:%SZ")? The date and time the user joined as a member of a specific team. This field is optional.
persistent_id String? Persistent ID that a team can attach to the user. The persistent ID is unique ID to be used for SAML authentication. This field is optional.
access_type GroupAccessType The role that the user has in the group.
GroupAccessType (union)
Role of a user in group. The value will be one of the following datatypes:
member Void User is a member of the group, but has no special permissions.
owner Void User can rename the group, and add/remove members.
Errors
Example: group_not_on_team
{
    "error_summary": "group_not_on_team/...",
    "error": {
        ".tag": "group_not_on_team"
    }
}
Example: other
{
    "error_summary": "other/...",
    "error": {
        ".tag": "other"
    }
}
GroupsGetInfoError (open union)
The value will be one of the following datatypes. New values may be introduced as our API evolves.
group_not_on_team Void The group is not on your team.

/groups/job_status/get

Description

Once an async_job_id is returned from groups/delete, groups/members/add , or groups/members/remove use this method to poll the status of granting/revoking group members' access to group-owned resources.
Permission : Team member management.

URL Structure
https://api.dropboxapi.com/2/team/groups/job_status/get
Authentication
Team Authentication
Endpoint format
RPC
Example
Get access token for:
curl -X POST https://api.dropboxapi.com/2/team/groups/job_status/get \
    --header "Authorization: Bearer " \
    --header "Content-Type: application/json" \
    --data "{\"async_job_id\": \"34g93hh34h04y384084\"}"
Parameters
{
    "async_job_id": "34g93hh34h04y384084"
}
PollArg
Arguments for methods that poll the status of an asynchronous job. This datatype comes from an imported namespace originally defined in the async namespace.
async_job_id String(min_length=1) Id of the asynchronous job. This is the value of a response returned from the method that launched the job.
Returns
Example: complete
{
    ".tag": "complete"
}
Example: in_progress
{
    ".tag": "in_progress"
}
PollEmptyResult (union)
Result returned by methods that poll for the status of an asynchronous job. Upon completion of the job, no additional information is returned. This datatype comes from an imported namespace originally defined in the async namespace. The value will be one of the following datatypes:
in_progress Void The asynchronous job is still in progress.
complete Void The asynchronous job has completed successfully.
Errors
Example: invalid_async_job_id
{
    "error_summary": "invalid_async_job_id/...",
    "error": {
        ".tag": "invalid_async_job_id"
    }
}
Example: internal_error
{
    "error_summary": "internal_error/...",
    "error": {
        ".tag": "internal_error"
    }
}
Example: other
{
    "error_summary": "other/...",
    "error": {
        ".tag": "other"
    }
}
Example: access_denied
{
    "error_summary": "access_denied/...",
    "error": {
        ".tag": "access_denied"
    }
}
GroupsPollError (union)
The value will be one of the following datatypes:
invalid_async_job_id Void The job ID is invalid.
internal_error Void Something went wrong with the job on Dropbox's end. You'll need to verify that the action you were taking succeeded, and if not, try again. This should happen very rarely.
access_denied Void You are not allowed to poll this job.

/groups/list

Description

Lists groups on a team.
Permission : Team Information.

URL Structure
https://api.dropboxapi.com/2/team/groups/list
Authentication
Team Authentication
Endpoint format
RPC
Example
Get access token for:
curl -X POST https://api.dropboxapi.com/2/team/groups/list \
    --header "Authorization: Bearer " \
    --header "Content-Type: application/json" \
    --data "{\"limit\": 100}"
Parameters
{
    "limit": 100
}
GroupsListArg
limit UInt32 Number of results to return per call. The default for this field is 1000.
Returns
{
    "groups": [
        {
            "group_name": "Test group",
            "group_id": "g:e2db7665347abcd600000000001a2b3c",
            "group_management_type": {
                ".tag": "user_managed"
            },
            "member_count": 10
        }
    ],
    "cursor": "ZtkX9_EHj3x7PMkVuFIhwKYXEpwpLwyxp9vMKomUhllil9q7eWiAu",
    "has_more": false
}
GroupsListResult
groups List of (GroupSummary)
GroupSummary
Information about a group. This datatype comes from an imported namespace originally defined in the team_common namespace.
group_name String
group_id String
group_management_type GroupManagementType Who is allowed to manage the group.
GroupManagementType (open union)
The group type determines how a group is managed. This datatype comes from an imported namespace originally defined in the team_common namespace. The value will be one of the following datatypes. New values may be introduced as our API evolves.
user_managed Void A group which is managed by selected users.
company_managed Void A group which is managed by team admins only.
system_managed Void A group which is managed automatically by Dropbox.
group_external_id String? External ID of group. This is an arbitrary ID that an admin can attach to a group. This field is optional.
member_count UInt32? The number of members in the group. This field is optional.
cursor String Pass the cursor into groups/list/continue to obtain the additional groups.
has_more Boolean Is true if there are additional groups that have not been returned yet. An additional call to groups/list/continue can retrieve them.
Errors

No errors.

/groups/list/continue

Description

Once a cursor has been retrieved from groups/list, use this to paginate through all groups.
Permission : Team Information.

URL Structure
https://api.dropboxapi.com/2/team/groups/list/continue
Authentication
Team Authentication
Endpoint format
RPC
Example
Get access token for:
curl -X POST https://api.dropboxapi.com/2/team/groups/list/continue \
    --header "Authorization: Bearer " \
    --header "Content-Type: application/json" \
    --data "{\"cursor\": \"ZtkX9_EHj3x7PMkVuFIhwKYXEpwpLwyxp9vMKomUhllil9q7eWiAu\"}"
Parameters
{
    "cursor": "ZtkX9_EHj3x7PMkVuFIhwKYXEpwpLwyxp9vMKomUhllil9q7eWiAu"
}
GroupsListContinueArg
cursor String Indicates from what point to get the next set of groups.
Returns
{
    "groups": [
        {
            "group_name": "Test group",
            "group_id": "g:e2db7665347abcd600000000001a2b3c",
            "group_management_type": {
                ".tag": "user_managed"
            },
            "member_count": 10
        }
    ],
    "cursor": "ZtkX9_EHj3x7PMkVuFIhwKYXEpwpLwyxp9vMKomUhllil9q7eWiAu",
    "has_more": false
}
GroupsListResult
groups List of (GroupSummary)
GroupSummary
Information about a group. This datatype comes from an imported namespace originally defined in the team_common namespace.
group_name String
group_id String
group_management_type GroupManagementType Who is allowed to manage the group.
GroupManagementType (open union)
The group type determines how a group is managed. This datatype comes from an imported namespace originally defined in the team_common namespace. The value will be one of the following datatypes. New values may be introduced as our API evolves.
user_managed Void A group which is managed by selected users.
company_managed Void A group which is managed by team admins only.
system_managed Void A group which is managed automatically by Dropbox.
group_external_id String? External ID of group. This is an arbitrary ID that an admin can attach to a group. This field is optional.
member_count UInt32? The number of members in the group. This field is optional.
cursor String Pass the cursor into groups/list/continue to obtain the additional groups.
has_more Boolean Is true if there are additional groups that have not been returned yet. An additional call to groups/list/continue can retrieve them.
Errors
Example: invalid_cursor
{
    "error_summary": "invalid_cursor/...",
    "error": {
        ".tag": "invalid_cursor"
    }
}
Example: other
{
    "error_summary": "other/...",
    "error": {
        ".tag": "other"
    }
}
GroupsListContinueError (open union)
The value will be one of the following datatypes. New values may be introduced as our API evolves.
invalid_cursor Void The cursor is invalid.

/groups/members/add

Description

Adds members to a group.
The members are added immediately. However the granting of group-owned resources may take additional time. Use the groups/job_status/get to determine whether this process has completed.
Permission : Team member management.

URL Structure
https://api.dropboxapi.com/2/team/groups/members/add
Authentication
Team Authentication
Endpoint format
RPC
Example
Get access token for:
curl -X POST https://api.dropboxapi.com/2/team/groups/members/add \
    --header "Authorization: Bearer " \
    --header "Content-Type: application/json" \
    --data "{\"group\": {\".tag\": \"group_id\",\"group_id\": \"g:e2db7665347abcd600000000001a2b3c\"},\"members\": [{\"user\": {\".tag\": \"team_member_id\",\"team_member_id\": \"dbmid:efgh5678\"},\"access_type\": {\".tag\": \"member\"}}],\"return_members\": true}"
Parameters
{
    "group": {
        ".tag": "group_id",
        "group_id": "g:e2db7665347abcd600000000001a2b3c"
    },
    "members": [
        {
            "user": {
                ".tag": "team_member_id",
                "team_member_id": "dbmid:efgh5678"
            },
            "access_type": {
                ".tag": "member"
            }
        }
    ],
    "return_members": true
}
GroupMembersAddArg
group GroupSelector Group to which users will be added.
GroupSelector (union)
Argument for selecting a single group, either by group_id or by external group ID. The value will be one of the following datatypes:
group_id String Group ID.
group_external_id String External ID of the group.
members List of (MemberAccess) List of users to be added to the group.
MemberAccess
Specify access type a member should have when joined to a group.
user UserSelectorArg Identity of a user.
UserSelectorArg (union)
Argument for selecting a single user, either by team_member_id, external_id or email. The value will be one of the following datatypes:
team_member_id String
external_id String(max_length=64)
email String(max_length=255, pattern="^['&A-Za-z0-9._%+-]+@[A-Za-z0-9-][A-Za-z0-9.-]*.[A-Za-z]{2,15}$")
access_type GroupAccessType Access type.
GroupAccessType (union)
Role of a user in group. The value will be one of the following datatypes:
member Void User is a member of the group, but has no special permissions.
owner Void User can rename the group, and add/remove members.
return_members Boolean Whether to return the list of members in the group. Note that the default value will cause all the group members to be returned in the response. This may take a long time for large groups. The default for this field is True.
Returns
{
    "group_info": {
        "group_name": "project launch",
        "group_id": "g:e2db7665347abcd600000000001a2b3c",
        "group_management_type": {
            ".tag": "user_managed"
        },
        "created": 1447255518000,
        "member_count": 5,
        "members": [
            {
                "profile": {
                    "team_member_id": "dbmid:1234567",
                    "email": "mary@lamb.com",
                    "email_verified": true,
                    "status": {
                        ".tag": "active"
                    },
                    "name": {
                        "given_name": "Franz",
                        "surname": "Ferdinand",
                        "familiar_name": "Franz",
                        "display_name": "Franz Ferdinand (Personal)",
                        "abbreviated_name": "FF"
                    },
                    "membership_type": {
                        ".tag": "full"
                    },
                    "account_id": "dbid:AAH4f99T0taONIb-OurWxbNQ6ywGRopQngc",
                    "joined_on": "2015-05-12T15:50:38Z"
                },
                "access_type": {
                    ".tag": "member"
                }
            }
        ]
    },
    "async_job_id": "99988877733388"
}
GroupMembersChangeResult
Result returned by groups/members/add and groups/members/remove.
group_info GroupFullInfo The group info after member change operation has been performed.
GroupFullInfo
Full description of a group.
group_name String
group_id String
group_management_type GroupManagementType Who is allowed to manage the group.
GroupManagementType (open union)
The group type determines how a group is managed. This datatype comes from an imported namespace originally defined in the team_common namespace. The value will be one of the following datatypes. New values may be introduced as our API evolves.
user_managed Void A group which is managed by selected users.
company_managed Void A group which is managed by team admins only.
system_managed Void A group which is managed automatically by Dropbox.
created UInt64 The group creation time as a UTC timestamp in milliseconds since the Unix epoch.
group_external_id String? External ID of group. This is an arbitrary ID that an admin can attach to a group. This field is optional.
member_count UInt32? The number of members in the group. This field is optional.
members List of (GroupMemberInfo)? List of group members. This field is optional.
GroupMemberInfo
Profile of group member, and role in group.
profile MemberProfile Profile of group member.
MemberProfile
Basic member profile.
team_member_id String ID of user as a member of a team.
email String Email address of user.
email_verified Boolean Is true if the user's email is verified to be owned by the user.
status TeamMemberStatus The user's status as a member of a specific team.
TeamMemberStatus (union)
The user's status as a member of a specific team. The value will be one of the following datatypes:
active Void User has successfully joined the team.
invited Void User has been invited to a team, but has not joined the team yet.
suspended Void User is no longer a member of the team, but the account can be un-suspended, re-establishing the user as a team member.
removed RemovedStatus User is no longer a member of the team. Removed users are only listed when include_removed is true in members/list.
RemovedStatus
is_recoverable Boolean True if the removed team member is recoverable.
name Name Representations for a person's name.
Name
Representations for a person's name to assist with internationalization. This datatype comes from an imported namespace originally defined in the users namespace.
given_name String Also known as a first name.
surname String Also known as a last name or family name.
familiar_name String Locale-dependent name. In the US, a person's familiar name is their given_name, but elsewhere, it could be any combination of a person's given_name and surname.
display_name String A name that can be used directly to represent the name of a user's Dropbox account.
abbreviated_name String An abbreviated form of the person's name. Their initials in most locales.
membership_type TeamMembershipType The user's membership type: full (normal team member) vs limited (does not use a license; no access to the team's shared quota).
TeamMembershipType (union)
The value will be one of the following datatypes:
full Void User uses a license and has full access to team resources like the shared quota.
limited Void User does not have access to the shared quota and team admins have restricted administrative control.
external_id String? External ID that a team can attach to the user. An application using the API may find it easier to use their own IDs instead of Dropbox IDs like account_id or team_member_id. This field is optional.
account_id String(min_length=40, max_length=40)? A user's account identifier. This field is optional.
joined_on Timestamp(format="%Y-%m-%dT%H:%M:%SZ")? The date and time the user joined as a member of a specific team. This field is optional.
persistent_id String? Persistent ID that a team can attach to the user. The persistent ID is unique ID to be used for SAML authentication. This field is optional.
access_type GroupAccessType The role that the user has in the group.
GroupAccessType (union)
Role of a user in group. The value will be one of the following datatypes:
member Void User is a member of the group, but has no special permissions.
owner Void User can rename the group, and add/remove members.
async_job_id String(min_length=1) An ID that can be used to obtain the status of granting/revoking group-owned resources.
Errors
Example: group_not_found
{
    "error_summary": "group_not_found/...",
    "error": {
        ".tag": "group_not_found"
    }
}
Example: other
{
    "error_summary": "other/...",
    "error": {
        ".tag": "other"
    }
}
Example: system_managed_group_disallowed
{
    "error_summary": "system_managed_group_disallowed/...",
    "error": {
        ".tag": "system_managed_group_disallowed"
    }
}
Example: duplicate_user
{
    "error_summary": "duplicate_user/...",
    "error": {
        ".tag": "duplicate_user"
    }
}
Example: group_not_in_team
{
    "error_summary": "group_not_in_team/...",
    "error": {
        ".tag": "group_not_in_team"
    }
}
Example: user_must_be_active_to_be_owner
{
    "error_summary": "user_must_be_active_to_be_owner/...",
    "error": {
        ".tag": "user_must_be_active_to_be_owner"
    }
}
GroupMembersAddError (union)
The value will be one of the following datatypes:
group_not_found Void No matching group found. No groups match the specified group ID.
system_managed_group_disallowed Void This operation is not supported on system-managed groups.
duplicate_user Void You cannot add duplicate users. One or more of the members you are trying to add is already a member of the group.
group_not_in_team Void Group is not in this team. You cannot add members to a group that is outside of your team.
members_not_in_team List of (String) These members are not part of your team. Currently, you cannot add members to a group if they are not part of your team, though this may change in a subsequent version. To add new members to your Dropbox Business team, use the members/add endpoint.
users_not_found List of (String) These users were not found in Dropbox.
user_must_be_active_to_be_owner Void A suspended user cannot be added to a group as GroupAccessType.owner.
user_cannot_be_manager_of_company_managed_group List of (String) A company-managed group cannot be managed by a user.

/groups/members/list

Description

Lists members of a group.
Permission : Team Information.

URL Structure
https://api.dropboxapi.com/2/team/groups/members/list
Authentication
Team Authentication
Endpoint format
RPC
Example
Get access token for:
curl -X POST https://api.dropboxapi.com/2/team/groups/members/list \
    --header "Authorization: Bearer " \
    --header "Content-Type: application/json" \
    --data "{\"group\": {\".tag\": \"group_id\",\"group_id\": \"g:e2db7665347abcd600000000001a2b3c\"},\"limit\": 100}"
Parameters
{
    "group": {
        ".tag": "group_id",
        "group_id": "g:e2db7665347abcd600000000001a2b3c"
    },
    "limit": 100
}
GroupsMembersListArg
group GroupSelector The group whose members are to be listed.
GroupSelector (union)
Argument for selecting a single group, either by group_id or by external group ID. The value will be one of the following datatypes:
group_id String Group ID.
group_external_id String External ID of the group.
limit UInt32 Number of results to return per call. The default for this field is 1000.
Returns
{
    "members": [],
    "cursor": "ZtkX9_EHj3x7PMkVuFIhwKYXEpwpLwyxp9vMKomUhllil9q7eWiAu",
    "has_more": false
}
GroupsMembersListResult
members List of (GroupMemberInfo)
GroupMemberInfo
Profile of group member, and role in group.
profile MemberProfile Profile of group member.
MemberProfile
Basic member profile.
team_member_id String ID of user as a member of a team.
email String Email address of user.
email_verified Boolean Is true if the user's email is verified to be owned by the user.
status TeamMemberStatus The user's status as a member of a specific team.
TeamMemberStatus (union)
The user's status as a member of a specific team. The value will be one of the following datatypes:
active Void User has successfully joined the team.
invited Void User has been invited to a team, but has not joined the team yet.
suspended Void User is no longer a member of the team, but the account can be un-suspended, re-establishing the user as a team member.
removed RemovedStatus User is no longer a member of the team. Removed users are only listed when include_removed is true in members/list.
RemovedStatus
is_recoverable Boolean True if the removed team member is recoverable.
name Name Representations for a person's name.
Name
Representations for a person's name to assist with internationalization. This datatype comes from an imported namespace originally defined in the users namespace.
given_name String Also known as a first name.
surname String Also known as a last name or family name.
familiar_name String Locale-dependent name. In the US, a person's familiar name is their given_name, but elsewhere, it could be any combination of a person's given_name and surname.
display_name String A name that can be used directly to represent the name of a user's Dropbox account.
abbreviated_name String An abbreviated form of the person's name. Their initials in most locales.
membership_type TeamMembershipType The user's membership type: full (normal team member) vs limited (does not use a license; no access to the team's shared quota).
TeamMembershipType (union)
The value will be one of the following datatypes:
full Void User uses a license and has full access to team resources like the shared quota.
limited Void User does not have access to the shared quota and team admins have restricted administrative control.
external_id String? External ID that a team can attach to the user. An application using the API may find it easier to use their own IDs instead of Dropbox IDs like account_id or team_member_id. This field is optional.
account_id String(min_length=40, max_length=40)? A user's account identifier. This field is optional.
joined_on Timestamp(format="%Y-%m-%dT%H:%M:%SZ")? The date and time the user joined as a member of a specific team. This field is optional.
persistent_id String? Persistent ID that a team can attach to the user. The persistent ID is unique ID to be used for SAML authentication. This field is optional.
access_type GroupAccessType The role that the user has in the group.
GroupAccessType (union)
Role of a user in group. The value will be one of the following datatypes:
member Void User is a member of the group, but has no special permissions.
owner Void User can rename the group, and add/remove members.
cursor String Pass the cursor into groups/members/list/continue to obtain additional group members.
has_more Boolean Is true if there are additional group members that have not been returned yet. An additional call to groups/members/list/continue can retrieve them.
Errors
Example: group_not_found
{
    "error_summary": "group_not_found/...",
    "error": {
        ".tag": "group_not_found"
    }
}
Example: other
{
    "error_summary": "other/...",
    "error": {
        ".tag": "other"
    }
}
GroupSelectorError (open union)
Error that can be raised when GroupSelector is used. The value will be one of the following datatypes. New values may be introduced as our API evolves.
group_not_found Void No matching group found. No groups match the specified group ID.

/groups/members/list/continue

Description

Once a cursor has been retrieved from groups/members/list, use this to paginate through all members of the group.
Permission : Team information.

URL Structure
https://api.dropboxapi.com/2/team/groups/members/list/continue
Authentication
Team Authentication
Endpoint format
RPC
Example
Get access token for:
curl -X POST https://api.dropboxapi.com/2/team/groups/members/list/continue \
    --header "Authorization: Bearer " \
    --header "Content-Type: application/json" \
    --data "{\"cursor\": \"ZtkX9_EHj3x7PMkVuFIhwKYXEpwpLwyxp9vMKomUhllil9q7eWiAu\"}"
Parameters
{
    "cursor": "ZtkX9_EHj3x7PMkVuFIhwKYXEpwpLwyxp9vMKomUhllil9q7eWiAu"
}
GroupsMembersListContinueArg
cursor String Indicates from what point to get the next set of groups.
Returns
{
    "members": [],
    "cursor": "ZtkX9_EHj3x7PMkVuFIhwKYXEpwpLwyxp9vMKomUhllil9q7eWiAu",
    "has_more": false
}
GroupsMembersListResult
members List of (GroupMemberInfo)
GroupMemberInfo
Profile of group member, and role in group.
profile MemberProfile Profile of group member.
MemberProfile
Basic member profile.
team_member_id String ID of user as a member of a team.
email String Email address of user.
email_verified Boolean Is true if the user's email is verified to be owned by the user.
status TeamMemberStatus The user's status as a member of a specific team.
TeamMemberStatus (union)
The user's status as a member of a specific team. The value will be one of the following datatypes:
active Void User has successfully joined the team.
invited Void User has been invited to a team, but has not joined the team yet.
suspended Void User is no longer a member of the team, but the account can be un-suspended, re-establishing the user as a team member.
removed RemovedStatus User is no longer a member of the team. Removed users are only listed when include_removed is true in members/list.
RemovedStatus
is_recoverable Boolean True if the removed team member is recoverable.
name Name Representations for a person's name.
Name
Representations for a person's name to assist with internationalization. This datatype comes from an imported namespace originally defined in the users namespace.
given_name String Also known as a first name.
surname String Also known as a last name or family name.
familiar_name String Locale-dependent name. In the US, a person's familiar name is their given_name, but elsewhere, it could be any combination of a person's given_name and surname.
display_name String A name that can be used directly to represent the name of a user's Dropbox account.
abbreviated_name String An abbreviated form of the person's name. Their initials in most locales.
membership_type TeamMembershipType The user's membership type: full (normal team member) vs limited (does not use a license; no access to the team's shared quota).
TeamMembershipType (union)
The value will be one of the following datatypes:
full Void User uses a license and has full access to team resources like the shared quota.
limited Void User does not have access to the shared quota and team admins have restricted administrative control.
external_id String? External ID that a team can attach to the user. An application using the API may find it easier to use their own IDs instead of Dropbox IDs like account_id or team_member_id. This field is optional.
account_id String(min_length=40, max_length=40)? A user's account identifier. This field is optional.
joined_on Timestamp(format="%Y-%m-%dT%H:%M:%SZ")? The date and time the user joined as a member of a specific team. This field is optional.
persistent_id String? Persistent ID that a team can attach to the user. The persistent ID is unique ID to be used for SAML authentication. This field is optional.
access_type GroupAccessType The role that the user has in the group.
GroupAccessType (union)
Role of a user in group. The value will be one of the following datatypes:
member Void User is a member of the group, but has no special permissions.
owner Void User can rename the group, and add/remove members.
cursor String Pass the cursor into groups/members/list/continue to obtain additional group members.
has_more Boolean Is true if there are additional group members that have not been returned yet. An additional call to groups/members/list/continue can retrieve them.
Errors
Example: invalid_cursor
{
    "error_summary": "invalid_cursor/...",
    "error": {
        ".tag": "invalid_cursor"
    }
}
Example: other
{
    "error_summary": "other/...",
    "error": {
        ".tag": "other"
    }
}
GroupsMembersListContinueError (open union)
The value will be one of the following datatypes. New values may be introduced as our API evolves.
invalid_cursor Void The cursor is invalid.

/groups/members/remove

Description

Removes members from a group.
The members are removed immediately. However the revoking of group-owned resources may take additional time. Use the groups/job_status/get to determine whether this process has completed.
This method permits removing the only owner of a group, even in cases where this is not possible via the web client.
Permission : Team member management.

URL Structure
https://api.dropboxapi.com/2/team/groups/members/remove
Authentication
Team Authentication
Endpoint format
RPC
Example
Get access token for:
curl -X POST https://api.dropboxapi.com/2/team/groups/members/remove \
    --header "Authorization: Bearer " \
    --header "Content-Type: application/json" \
    --data "{\"group\": {\".tag\": \"group_id\",\"group_id\": \"g:e2db7665347abcd600000000001a2b3c\"},\"users\": [{\".tag\": \"team_member_id\",\"team_member_id\": \"dbmid:efgh5678\"}],\"return_members\": true}"
Parameters
{
    "group": {
        ".tag": "group_id",
        "group_id": "g:e2db7665347abcd600000000001a2b3c"
    },
    "users": [
        {
            ".tag": "team_member_id",
            "team_member_id": "dbmid:efgh5678"
        }
    ],
    "return_members": true
}
GroupMembersRemoveArg
group GroupSelector Group from which users will be removed.
GroupSelector (union)
Argument for selecting a single group, either by group_id or by external group ID. The value will be one of the following datatypes:
group_id String Group ID.
group_external_id String External ID of the group.
users List of (UserSelectorArg) List of users to be removed from the group.
UserSelectorArg (union)
Argument for selecting a single user, either by team_member_id, external_id or email. The value will be one of the following datatypes:
team_member_id String
external_id String(max_length=64)
email String(max_length=255, pattern="^['&A-Za-z0-9._%+-]+@[A-Za-z0-9-][A-Za-z0-9.-]*.[A-Za-z]{2,15}$")
return_members Boolean Whether to return the list of members in the group. Note that the default value will cause all the group members to be returned in the response. This may take a long time for large groups. The default for this field is True.
Returns
{
    "group_info": {
        "group_name": "project launch",
        "group_id": "g:e2db7665347abcd600000000001a2b3c",
        "group_management_type": {
            ".tag": "user_managed"
        },
        "created": 1447255518000,
        "member_count": 5,
        "members": [
            {
                "profile": {
                    "team_member_id": "dbmid:1234567",
                    "email": "mary@lamb.com",
                    "email_verified": true,
                    "status": {
                        ".tag": "active"
                    },
                    "name": {
                        "given_name": "Franz",
                        "surname": "Ferdinand",
                        "familiar_name": "Franz",
                        "display_name": "Franz Ferdinand (Personal)",
                        "abbreviated_name": "FF"
                    },
                    "membership_type": {
                        ".tag": "full"
                    },
                    "account_id": "dbid:AAH4f99T0taONIb-OurWxbNQ6ywGRopQngc",
                    "joined_on": "2015-05-12T15:50:38Z"
                },
                "access_type": {
                    ".tag": "member"
                }
            }
        ]
    },
    "async_job_id": "99988877733388"
}
GroupMembersChangeResult
Result returned by groups/members/add and groups/members/remove.
group_info GroupFullInfo The group info after member change operation has been performed.
GroupFullInfo
Full description of a group.
group_name String
group_id String
group_management_type GroupManagementType Who is allowed to manage the group.
GroupManagementType (open union)
The group type determines how a group is managed. This datatype comes from an imported namespace originally defined in the team_common namespace. The value will be one of the following datatypes. New values may be introduced as our API evolves.
user_managed Void A group which is managed by selected users.
company_managed Void A group which is managed by team admins only.
system_managed Void A group which is managed automatically by Dropbox.
created UInt64 The group creation time as a UTC timestamp in milliseconds since the Unix epoch.
group_external_id String? External ID of group. This is an arbitrary ID that an admin can attach to a group. This field is optional.
member_count UInt32? The number of members in the group. This field is optional.
members List of (GroupMemberInfo)? List of group members. This field is optional.
GroupMemberInfo
Profile of group member, and role in group.
profile MemberProfile Profile of group member.
MemberProfile
Basic member profile.
team_member_id String ID of user as a member of a team.
email String Email address of user.
email_verified Boolean Is true if the user's email is verified to be owned by the user.
status TeamMemberStatus The user's status as a member of a specific team.
TeamMemberStatus (union)
The user's status as a member of a specific team. The value will be one of the following datatypes:
active Void User has successfully joined the team.
invited Void User has been invited to a team, but has not joined the team yet.
suspended Void User is no longer a member of the team, but the account can be un-suspended, re-establishing the user as a team member.
removed RemovedStatus User is no longer a member of the team. Removed users are only listed when include_removed is true in members/list.
RemovedStatus
is_recoverable Boolean True if the removed team member is recoverable.
name Name Representations for a person's name.
Name
Representations for a person's name to assist with internationalization. This datatype comes from an imported namespace originally defined in the users namespace.
given_name String Also known as a first name.
surname String Also known as a last name or family name.
familiar_name String Locale-dependent name. In the US, a person's familiar name is their given_name, but elsewhere, it could be any combination of a person's given_name and surname.
display_name String A name that can be used directly to represent the name of a user's Dropbox account.
abbreviated_name String An abbreviated form of the person's name. Their initials in most locales.
membership_type TeamMembershipType The user's membership type: full (normal team member) vs limited (does not use a license; no access to the team's shared quota).
TeamMembershipType (union)
The value will be one of the following datatypes:
full Void User uses a license and has full access to team resources like the shared quota.
limited Void User does not have access to the shared quota and team admins have restricted administrative control.
external_id String? External ID that a team can attach to the user. An application using the API may find it easier to use their own IDs instead of Dropbox IDs like account_id or team_member_id. This field is optional.
account_id String(min_length=40, max_length=40)? A user's account identifier. This field is optional.
joined_on Timestamp(format="%Y-%m-%dT%H:%M:%SZ")? The date and time the user joined as a member of a specific team. This field is optional.
persistent_id String? Persistent ID that a team can attach to the user. The persistent ID is unique ID to be used for SAML authentication. This field is optional.
access_type GroupAccessType The role that the user has in the group.
GroupAccessType (union)
Role of a user in group. The value will be one of the following datatypes:
member Void User is a member of the group, but has no special permissions.
owner Void User can rename the group, and add/remove members.
async_job_id String(min_length=1) An ID that can be used to obtain the status of granting/revoking group-owned resources.
Errors
Example: group_not_found
{
    "error_summary": "group_not_found/...",
    "error": {
        ".tag": "group_not_found"
    }
}
Example: other
{
    "error_summary": "other/...",
    "error": {
        ".tag": "other"
    }
}
Example: system_managed_group_disallowed
{
    "error_summary": "system_managed_group_disallowed/...",
    "error": {
        ".tag": "system_managed_group_disallowed"
    }
}
Example: member_not_in_group
{
    "error_summary": "member_not_in_group/...",
    "error": {
        ".tag": "member_not_in_group"
    }
}
Example: group_not_in_team
{
    "error_summary": "group_not_in_team/...",
    "error": {
        ".tag": "group_not_in_team"
    }
}
GroupMembersRemoveError (union)
The value will be one of the following datatypes:
group_not_found Void No matching group found. No groups match the specified group ID.
system_managed_group_disallowed Void This operation is not supported on system-managed groups.
member_not_in_group Void At least one of the specified users is not a member of the group.
group_not_in_team Void Group is not in this team. You cannot remove members from a group that is outside of your team.
members_not_in_team List of (String) These members are not part of your team.
users_not_found List of (String) These users were not found in Dropbox.

/groups/members/set_access_type

Description

Sets a member's access type in a group.
Permission : Team member management.

URL Structure
https://api.dropboxapi.com/2/team/groups/members/set_access_type
Authentication
Team Authentication
Endpoint format
RPC
Example
Get access token for:
curl -X POST https://api.dropboxapi.com/2/team/groups/members/set_access_type \
    --header "Authorization: Bearer " \
    --header "Content-Type: application/json" \
    --data "{\"group\": {\".tag\": \"group_id\",\"group_id\": \"g:e2db7665347abcd600000000001a2b3c\"},\"user\": {\".tag\": \"team_member_id\",\"team_member_id\": \"dbmid:efgh5678\"},\"access_type\": \"member\",\"return_members\": true}"
Parameters
{
    "group": {
        ".tag": "group_id",
        "group_id": "g:e2db7665347abcd600000000001a2b3c"
    },
    "user": {
        ".tag": "team_member_id",
        "team_member_id": "dbmid:efgh5678"
    },
    "access_type": "member",
    "return_members": true
}
GroupMembersSetAccessTypeArg
group GroupSelector Specify a group.
GroupSelector (union)
Argument for selecting a single group, either by group_id or by external group ID. The value will be one of the following datatypes:
group_id String Group ID.
group_external_id String External ID of the group.
user UserSelectorArg Identity of a user that is a member of group.
UserSelectorArg (union)
Argument for selecting a single user, either by team_member_id, external_id or email. The value will be one of the following datatypes:
team_member_id String
external_id String(max_length=64)
email String(max_length=255, pattern="^['&A-Za-z0-9._%+-]+@[A-Za-z0-9-][A-Za-z0-9.-]*.[A-Za-z]{2,15}$")
access_type GroupAccessType New group access type the user will have.
GroupAccessType (union)
Role of a user in group. The value will be one of the following datatypes:
member Void User is a member of the group, but has no special permissions.
owner Void User can rename the group, and add/remove members.
return_members Boolean Whether to return the list of members in the group. Note that the default value will cause all the group members to be returned in the response. This may take a long time for large groups. The default for this field is True.
Returns
This route returns a list. This means the route can accept a homogenous list of the following types:
GroupsGetInfoItem (union)
The value will be one of the following datatypes:
id_not_found String An ID that was provided as a parameter to groups/get_info, and did not match a corresponding group. The ID can be a group ID, or an external ID, depending on how the method was called.
group_info GroupFullInfo Info about a group.
GroupFullInfo
Full description of a group.
group_name String
group_id String
group_management_type GroupManagementType Who is allowed to manage the group.
GroupManagementType (open union)
The group type determines how a group is managed. This datatype comes from an imported namespace originally defined in the team_common namespace. The value will be one of the following datatypes. New values may be introduced as our API evolves.
user_managed Void A group which is managed by selected users.
company_managed Void A group which is managed by team admins only.
system_managed Void A group which is managed automatically by Dropbox.
created UInt64 The group creation time as a UTC timestamp in milliseconds since the Unix epoch.
group_external_id String? External ID of group. This is an arbitrary ID that an admin can attach to a group. This field is optional.
member_count UInt32? The number of members in the group. This field is optional.
members List of (GroupMemberInfo)? List of group members. This field is optional.
GroupMemberInfo
Profile of group member, and role in group.
profile MemberProfile Profile of group member.
MemberProfile
Basic member profile.
team_member_id String ID of user as a member of a team.
email String Email address of user.
email_verified Boolean Is true if the user's email is verified to be owned by the user.
status TeamMemberStatus The user's status as a member of a specific team.
TeamMemberStatus (union)
The user's status as a member of a specific team. The value will be one of the following datatypes:
active Void User has successfully joined the team.
invited Void User has been invited to a team, but has not joined the team yet.
suspended Void User is no longer a member of the team, but the account can be un-suspended, re-establishing the user as a team member.
removed RemovedStatus User is no longer a member of the team. Removed users are only listed when include_removed is true in members/list.
RemovedStatus
is_recoverable Boolean True if the removed team member is recoverable.
name Name Representations for a person's name.
Name
Representations for a person's name to assist with internationalization. This datatype comes from an imported namespace originally defined in the users namespace.
given_name String Also known as a first name.
surname String Also known as a last name or family name.
familiar_name String Locale-dependent name. In the US, a person's familiar name is their given_name, but elsewhere, it could be any combination of a person's given_name and surname.
display_name String A name that can be used directly to represent the name of a user's Dropbox account.
abbreviated_name String An abbreviated form of the person's name. Their initials in most locales.
membership_type TeamMembershipType The user's membership type: full (normal team member) vs limited (does not use a license; no access to the team's shared quota).
TeamMembershipType (union)
The value will be one of the following datatypes:
full Void User uses a license and has full access to team resources like the shared quota.
limited Void User does not have access to the shared quota and team admins have restricted administrative control.
external_id String? External ID that a team can attach to the user. An application using the API may find it easier to use their own IDs instead of Dropbox IDs like account_id or team_member_id. This field is optional.
account_id String(min_length=40, max_length=40)? A user's account identifier. This field is optional.
joined_on Timestamp(format="%Y-%m-%dT%H:%M:%SZ")? The date and time the user joined as a member of a specific team. This field is optional.
persistent_id String? Persistent ID that a team can attach to the user. The persistent ID is unique ID to be used for SAML authentication. This field is optional.
access_type GroupAccessType The role that the user has in the group.
GroupAccessType (union)
Role of a user in group. The value will be one of the following datatypes:
member Void User is a member of the group, but has no special permissions.
owner Void User can rename the group, and add/remove members.
Errors
Example: group_not_found
{
    "error_summary": "group_not_found/...",
    "error": {
        ".tag": "group_not_found"
    }
}
Example: other
{
    "error_summary": "other/...",
    "error": {
        ".tag": "other"
    }
}
Example: system_managed_group_disallowed
{
    "error_summary": "system_managed_group_disallowed/...",
    "error": {
        ".tag": "system_managed_group_disallowed"
    }
}
Example: member_not_in_group
{
    "error_summary": "member_not_in_group/...",
    "error": {
        ".tag": "member_not_in_group"
    }
}
Example: user_cannot_be_manager_of_company_managed_group
{
    "error_summary": "user_cannot_be_manager_of_company_managed_group/...",
    "error": {
        ".tag": "user_cannot_be_manager_of_company_managed_group"
    }
}
GroupMemberSetAccessTypeError (union)
The value will be one of the following datatypes:
group_not_found Void No matching group found. No groups match the specified group ID.
system_managed_group_disallowed Void This operation is not supported on system-managed groups.
member_not_in_group Void The specified user is not a member of this group.
user_cannot_be_manager_of_company_managed_group Void A company managed group cannot be managed by a user.

/groups/update

Description

Updates a group's name and/or external ID.
Permission : Team member management.

URL Structure
https://api.dropboxapi.com/2/team/groups/update
Authentication
Team Authentication
Endpoint format
RPC
Example
Get access token for:
curl -X POST https://api.dropboxapi.com/2/team/groups/update \
    --header "Authorization: Bearer " \
    --header "Content-Type: application/json" \
    --data "{\"group\": {\".tag\": \"group_id\",\"group_id\": \"g:e2db7665347abcd600000000001a2b3c\"},\"return_members\": true,\"new_group_name\": \"Europe west sales\",\"new_group_external_id\": \"sales-234\",\"new_group_management_type\": \"company_managed\"}"
Parameters
{
    "group": {
        ".tag": "group_id",
        "group_id": "g:e2db7665347abcd600000000001a2b3c"
    },
    "return_members": true,
    "new_group_name": "Europe west sales",
    "new_group_external_id": "sales-234",
    "new_group_management_type": "company_managed"
}
GroupUpdateArgs
group GroupSelector Specify a group.
GroupSelector (union)
Argument for selecting a single group, either by group_id or by external group ID. The value will be one of the following datatypes:
group_id String Group ID.
group_external_id String External ID of the group.
return_members Boolean Whether to return the list of members in the group. Note that the default value will cause all the group members to be returned in the response. This may take a long time for large groups. The default for this field is True.
new_group_name String? Optional argument. Set group name to this if provided. This field is optional.
new_group_external_id String? Optional argument. New group external ID. If the argument is None, the group's external_id won't be updated. If the argument is empty string, the group's external id will be cleared. This field is optional.
new_group_management_type GroupManagementType? Set new group management type, if provided. This field is optional.
GroupManagementType (open union)
The group type determines how a group is managed. This datatype comes from an imported namespace originally defined in the team_common namespace. The value will be one of the following datatypes. New values may be introduced as our API evolves.
user_managed Void A group which is managed by selected users.
company_managed Void A group which is managed by team admins only.
system_managed Void A group which is managed automatically by Dropbox.
Returns
{
    "group_name": "project launch",
    "group_id": "g:e2db7665347abcd600000000001a2b3c",
    "group_management_type": {
        ".tag": "user_managed"
    },
    "created": 1447255518000,
    "member_count": 5,
    "members": [
        {
            "profile": {
                "team_member_id": "dbmid:1234567",
                "email": "mary@lamb.com",
                "email_verified": true,
                "status": {
                    ".tag": "active"
                },
                "name": {
                    "given_name": "Franz",
                    "surname": "Ferdinand",
                    "familiar_name": "Franz",
                    "display_name": "Franz Ferdinand (Personal)",
                    "abbreviated_name": "FF"
                },
                "membership_type": {
                    ".tag": "full"
                },
                "account_id": "dbid:AAH4f99T0taONIb-OurWxbNQ6ywGRopQngc",
                "joined_on": "2015-05-12T15:50:38Z"
            },
            "access_type": {
                ".tag": "member"
            }
        }
    ]
}
GroupFullInfo
Full description of a group.
group_name String
group_id String
group_management_type GroupManagementType Who is allowed to manage the group.
GroupManagementType (open union)
The group type determines how a group is managed. This datatype comes from an imported namespace originally defined in the team_common namespace. The value will be one of the following datatypes. New values may be introduced as our API evolves.
user_managed Void A group which is managed by selected users.
company_managed Void A group which is managed by team admins only.
system_managed Void A group which is managed automatically by Dropbox.
created UInt64 The group creation time as a UTC timestamp in milliseconds since the Unix epoch.
group_external_id String? External ID of group. This is an arbitrary ID that an admin can attach to a group. This field is optional.
member_count UInt32? The number of members in the group. This field is optional.
members List of (GroupMemberInfo)? List of group members. This field is optional.
GroupMemberInfo
Profile of group member, and role in group.
profile MemberProfile Profile of group member.
MemberProfile
Basic member profile.
team_member_id String ID of user as a member of a team.
email String Email address of user.
email_verified Boolean Is true if the user's email is verified to be owned by the user.
status TeamMemberStatus The user's status as a member of a specific team.
TeamMemberStatus (union)
The user's status as a member of a specific team. The value will be one of the following datatypes:
active Void User has successfully joined the team.
invited Void User has been invited to a team, but has not joined the team yet.
suspended Void User is no longer a member of the team, but the account can be un-suspended, re-establishing the user as a team member.
removed RemovedStatus User is no longer a member of the team. Removed users are only listed when include_removed is true in members/list.
RemovedStatus
is_recoverable Boolean True if the removed team member is recoverable.
name Name Representations for a person's name.
Name
Representations for a person's name to assist with internationalization. This datatype comes from an imported namespace originally defined in the users namespace.
given_name String Also known as a first name.
surname String Also known as a last name or family name.
familiar_name String Locale-dependent name. In the US, a person's familiar name is their given_name, but elsewhere, it could be any combination of a person's given_name and surname.
display_name String A name that can be used directly to represent the name of a user's Dropbox account.
abbreviated_name String An abbreviated form of the person's name. Their initials in most locales.
membership_type TeamMembershipType The user's membership type: full (normal team member) vs limited (does not use a license; no access to the team's shared quota).
TeamMembershipType (union)
The value will be one of the following datatypes:
full Void User uses a license and has full access to team resources like the shared quota.
limited Void User does not have access to the shared quota and team admins have restricted administrative control.
external_id String? External ID that a team can attach to the user. An application using the API may find it easier to use their own IDs instead of Dropbox IDs like account_id or team_member_id. This field is optional.
account_id String(min_length=40, max_length=40)? A user's account identifier. This field is optional.
joined_on Timestamp(format="%Y-%m-%dT%H:%M:%SZ")? The date and time the user joined as a member of a specific team. This field is optional.
persistent_id String? Persistent ID that a team can attach to the user. The persistent ID is unique ID to be used for SAML authentication. This field is optional.
access_type GroupAccessType The role that the user has in the group.
GroupAccessType (union)
Role of a user in group. The value will be one of the following datatypes:
member Void User is a member of the group, but has no special permissions.
owner Void User can rename the group, and add/remove members.
Errors
Example: group_not_found
{
    "error_summary": "group_not_found/...",
    "error": {
        ".tag": "group_not_found"
    }
}
Example: other
{
    "error_summary": "other/...",
    "error": {
        ".tag": "other"
    }
}
Example: system_managed_group_disallowed
{
    "error_summary": "system_managed_group_disallowed/...",
    "error": {
        ".tag": "system_managed_group_disallowed"
    }
}
Example: group_name_already_used
{
    "error_summary": "group_name_already_used/...",
    "error": {
        ".tag": "group_name_already_used"
    }
}
Example: group_name_invalid
{
    "error_summary": "group_name_invalid/...",
    "error": {
        ".tag": "group_name_invalid"
    }
}
Example: external_id_already_in_use
{
    "error_summary": "external_id_already_in_use/...",
    "error": {
        ".tag": "external_id_already_in_use"
    }
}
GroupUpdateError (union)
The value will be one of the following datatypes:
group_not_found Void No matching group found. No groups match the specified group ID.
system_managed_group_disallowed Void This operation is not supported on system-managed groups.
group_name_already_used Void The requested group name is already being used by another group.
group_name_invalid Void Group name is empty or has invalid characters.
external_id_already_in_use Void The requested external ID is already being used by another group.

/linked_apps/list_member_linked_apps

Description

List all linked applications of the team member.
Note, this endpoint does not list any team-linked applications.

URL Structure
https://api.dropboxapi.com/2/team/linked_apps/list_member_linked_apps
Authentication
Team Authentication
Endpoint format
RPC
Example
Get access token for:
curl -X POST https://api.dropboxapi.com/2/team/linked_apps/list_member_linked_apps \
    --header "Authorization: Bearer " \
    --header "Content-Type: application/json" \
    --data "{\"team_member_id\": \"dbmid:AAFdgehTzw7WlXhZJsbGCLePe8RvQGYDr-I\"}"
Parameters
{
    "team_member_id": "dbmid:AAFdgehTzw7WlXhZJsbGCLePe8RvQGYDr-I"
}
ListMemberAppsArg
team_member_id String The team member id
Returns
ListMemberAppsResult
linked_api_apps List of (ApiApp) List of third party applications linked by this team member
ApiApp
Information on linked third party applications
app_id String The application unique id
app_name String The application name
is_app_folder Boolean Whether the linked application uses a dedicated folder
publisher String? The application publisher name This field is optional.
publisher_url String? The publisher's URL This field is optional.
linked Timestamp(format="%Y-%m-%dT%H:%M:%SZ")? The time this application was linked This field is optional.
Errors
Example: member_not_found
{
    "error_summary": "member_not_found/...",
    "error": {
        ".tag": "member_not_found"
    }
}
Example: other
{
    "error_summary": "other/...",
    "error": {
        ".tag": "other"
    }
}
ListMemberAppsError (open union)
Error returned by linked_apps/list_member_linked_apps. The value will be one of the following datatypes. New values may be introduced as our API evolves.
member_not_found Void Member not found.

/linked_apps/list_members_linked_apps

Description

List all applications linked to the team members' accounts.
Note, this endpoint does not list any team-linked applications.

URL Structure
https://api.dropboxapi.com/2/team/linked_apps/list_members_linked_apps
Authentication
Team Authentication
Endpoint format
RPC
Parameters
ListMembersAppsArg
Arguments for linked_apps/list_members_linked_apps.
cursor String? At the first call to the linked_apps/list_members_linked_apps the cursor shouldn't be passed. Then, if the result of the call includes a cursor, the following requests should include the received cursors in order to receive the next sub list of the team applications This field is optional.
Returns
ListMembersAppsResult
Information returned by linked_apps/list_members_linked_apps.
apps List of (MemberLinkedApps) The linked applications of each member of the team
MemberLinkedApps
Information on linked applications of a team member.
team_member_id String The member unique Id
linked_api_apps List of (ApiApp) List of third party applications linked by this team member
ApiApp
Information on linked third party applications
app_id String The application unique id
app_name String The application name
is_app_folder Boolean Whether the linked application uses a dedicated folder
publisher String? The application publisher name This field is optional.
publisher_url String? The publisher's URL This field is optional.
linked Timestamp(format="%Y-%m-%dT%H:%M:%SZ")? The time this application was linked This field is optional.
has_more Boolean If true, then there are more apps available. Pass the cursor to linked_apps/list_members_linked_apps to retrieve the rest.
cursor String? Pass the cursor into linked_apps/list_members_linked_apps to receive the next sub list of team's applications. This field is optional.
Errors
Example: reset
{
    "error_summary": "reset/...",
    "error": {
        ".tag": "reset"
    }
}
Example: other
{
    "error_summary": "other/...",
    "error": {
        ".tag": "other"
    }
}
ListMembersAppsError (open union)
Error returned by linked_apps/list_members_linked_apps The value will be one of the following datatypes. New values may be introduced as our API evolves.
reset Void Indicates that the cursor has been invalidated. Call linked_apps/list_members_linked_apps again with an empty cursor to obtain a new cursor.

/linked_apps/list_team_linked_apps

DEPRECATED BY /linked_apps/list_members_linked_apps
Description

List all applications linked to the team members' accounts.
Note, this endpoint doesn't list any team-linked applications.

URL Structure
https://api.dropboxapi.com/2/team/linked_apps/list_team_linked_apps
Authentication
Team Authentication
Endpoint format
RPC
Parameters
ListTeamAppsArg
Arguments for linked_apps/list_team_linked_apps.
cursor String? At the first call to the linked_apps/list_team_linked_apps the cursor shouldn't be passed. Then, if the result of the call includes a cursor, the following requests should include the received cursors in order to receive the next sub list of the team applications This field is optional.
Returns
ListTeamAppsResult
Information returned by linked_apps/list_team_linked_apps.
apps List of (MemberLinkedApps) The linked applications of each member of the team
MemberLinkedApps
Information on linked applications of a team member.
team_member_id String The member unique Id
linked_api_apps List of (ApiApp) List of third party applications linked by this team member
ApiApp
Information on linked third party applications
app_id String The application unique id
app_name String The application name
is_app_folder Boolean Whether the linked application uses a dedicated folder
publisher String? The application publisher name This field is optional.
publisher_url String? The publisher's URL This field is optional.
linked Timestamp(format="%Y-%m-%dT%H:%M:%SZ")? The time this application was linked This field is optional.
has_more Boolean If true, then there are more apps available. Pass the cursor to linked_apps/list_team_linked_apps to retrieve the rest.
cursor String? Pass the cursor into linked_apps/list_team_linked_apps to receive the next sub list of team's applications. This field is optional.
Errors
Example: reset
{
    "error_summary": "reset/...",
    "error": {
        ".tag": "reset"
    }
}
Example: other
{
    "error_summary": "other/...",
    "error": {
        ".tag": "other"
    }
}
ListTeamAppsError (open union)
Error returned by linked_apps/list_team_linked_apps The value will be one of the following datatypes. New values may be introduced as our API evolves.
reset Void Indicates that the cursor has been invalidated. Call linked_apps/list_team_linked_apps again with an empty cursor to obtain a new cursor.

/linked_apps/revoke_linked_app

Description

Revoke a linked application of the team member

URL Structure
https://api.dropboxapi.com/2/team/linked_apps/revoke_linked_app
Authentication
Team Authentication
Endpoint format
RPC
Parameters
RevokeLinkedApiAppArg
app_id String The application's unique id
team_member_id String The unique id of the member owning the device
keep_app_folder Boolean Whether to keep the application dedicated folder (in case the application uses one) The default for this field is True.
Returns

No return values.

Errors
Example: app_not_found
{
    "error_summary": "app_not_found/...",
    "error": {
        ".tag": "app_not_found"
    }
}
Example: member_not_found
{
    "error_summary": "member_not_found/...",
    "error": {
        ".tag": "member_not_found"
    }
}
Example: other
{
    "error_summary": "other/...",
    "error": {
        ".tag": "other"
    }
}
RevokeLinkedAppError (open union)
Error returned by linked_apps/revoke_linked_app. The value will be one of the following datatypes. New values may be introduced as our API evolves.
app_not_found Void Application not found.
member_not_found Void Member not found.

/linked_apps/revoke_linked_app_batch

Description

Revoke a list of linked applications of the team members

URL Structure
https://api.dropboxapi.com/2/team/linked_apps/revoke_linked_app_batch
Authentication
Team Authentication
Endpoint format
RPC
Parameters
RevokeLinkedApiAppBatchArg
revoke_linked_app List of (RevokeLinkedApiAppArg)
RevokeLinkedApiAppArg
app_id String The application's unique id
team_member_id String The unique id of the member owning the device
keep_app_folder Boolean Whether to keep the application dedicated folder (in case the application uses one) The default for this field is True.
Returns
RevokeLinkedAppBatchResult
revoke_linked_app_status List of (RevokeLinkedAppStatus)
RevokeLinkedAppStatus
success Boolean Result of the revoking request
error_type RevokeLinkedAppError? The error cause in case of a failure This field is optional.
RevokeLinkedAppError (open union)
Error returned by linked_apps/revoke_linked_app. The value will be one of the following datatypes. New values may be introduced as our API evolves.
app_not_found Void Application not found.
member_not_found Void Member not found.
Errors
{
    "error_summary": "other/...",
    "error": {
        ".tag": "other"
    }
}
RevokeLinkedAppBatchError (open union)
Error returned by linked_apps/revoke_linked_app_batch. The value will be one of the following datatypes. New values may be introduced as our API evolves.

/members/add

Description

Adds members to a team.
Permission : Team member management
A maximum of 20 members can be specified in a single call.
If no Dropbox account exists with the email address specified, a new Dropbox account will be created with the given email address, and that account will be invited to the team.
If a personal Dropbox account exists with the email address specified in the call, this call will create a placeholder Dropbox account for the user on the team and send an email inviting the user to migrate their existing personal account onto the team.
Team member management apps are required to set an initial given_name and surname for a user to use in the team invitation and for 'Perform as team member' actions taken on the user before they become 'active'.

URL Structure
https://api.dropboxapi.com/2/team/members/add
Authentication
Team Authentication
Endpoint format
RPC
Example
Get access token for:
curl -X POST https://api.dropboxapi.com/2/team/members/add \
    --header "Authorization: Bearer " \
    --header "Content-Type: application/json" \
    --data "{\"new_members\": [{\"member_email\": \"tom.s@company.com\",\"member_given_name\": \"Tom\",\"member_surname\": \"Silverstone\",\"member_external_id\": \"company_id:342432\",\"send_welcome_email\": true,\"role\": {\".tag\": \"member_only\"}}],\"force_async\": false}"
Parameters
{
    "new_members": [
        {
            "member_email": "tom.s@company.com",
            "member_given_name": "Tom",
            "member_surname": "Silverstone",
            "member_external_id": "company_id:342432",
            "send_welcome_email": true,
            "role": {
                ".tag": "member_only"
            }
        }
    ],
    "force_async": false
}
MembersAddArg
new_members List of (MemberAddArg) Details of new members to be added to the team.
MemberAddArg
member_email String(max_length=255, pattern="^['&A-Za-z0-9._%+-]+@[A-Za-z0-9-][A-Za-z0-9.-]*.[A-Za-z]{2,15}$")
member_given_name String(min_length=1, max_length=100, pattern="[^/:?*<>"|]*")? Member's first name. This field is optional.
member_surname String(min_length=1, max_length=100, pattern="[^/:?*<>"|]*")? Member's last name. This field is optional.
member_external_id String(max_length=64)? External ID for member. This field is optional.
member_persistent_id String? Persistent ID for member. This field is only available to teams using persistent ID SAML configuration. This field is optional.
send_welcome_email Boolean Whether to send a welcome email to the member. If send_welcome_email is false, no email invitation will be sent to the user. This may be useful for apps using single sign-on (SSO) flows for onboarding that want to handle announcements themselves. The default for this field is True.
role AdminTier The default for this union is member_only.
AdminTier (union)
Describes which team-related admin permissions a user has. The value will be one of the following datatypes:
team_admin Void User is an administrator of the team - has all permissions.
user_management_admin Void User can do most user provisioning, de-provisioning and management.
support_admin Void User can do a limited set of common support tasks for existing users.
member_only Void User is not an admin of the team.
force_async Boolean Whether to force the add to happen asynchronously. The default for this field is False.
Returns
{
    ".tag": "complete",
    "complete": [
        {
            ".tag": "success",
            "profile": {
                "team_member_id": "dbmid:FDFSVF-DFSDF",
                "email": "tami@seagull.com",
                "email_verified": false,
                "status": {
                    ".tag": "active"
                },
                "name": {
                    "given_name": "Franz",
                    "surname": "Ferdinand",
                    "familiar_name": "Franz",
                    "display_name": "Franz Ferdinand (Personal)",
                    "abbreviated_name": "FF"
                },
                "membership_type": {
                    ".tag": "full"
                },
                "groups": [
                    "g:e2db7665347abcd600000000001a2b3c"
                ],
                "external_id": "244423",
                "account_id": "dbid:AAH4f99T0taONIb-OurWxbNQ6ywGRopQngc",
                "joined_on": "2015-05-12T15:50:38Z"
            },
            "role": {
                ".tag": "member_only"
            }
        }
    ]
}
MembersAddLaunch (union)
The value will be one of the following datatypes:
async_job_id String(min_length=1) This response indicates that the processing is asynchronous. The string is an id that can be used to obtain the status of the asynchronous job.
complete List of (MemberAddResult)
MemberAddResult (union)
Describes the result of attempting to add a single user to the team. 'success' is the only value indicating that a user was indeed added to the team - the other values explain the type of failure that occurred, and include the email of the user for which the operation has failed. The value will be one of the following datatypes:
success TeamMemberInfo Describes a user that was successfully added to the team.
TeamMemberInfo
Information about a team member.
profile TeamMemberProfile Profile of a user as a member of a team.
TeamMemberProfile
Profile of a user as a member of a team.
team_member_id String ID of user as a member of a team.
email String Email address of user.
email_verified Boolean Is true if the user's email is verified to be owned by the user.
status TeamMemberStatus The user's status as a member of a specific team.
TeamMemberStatus (union)
The user's status as a member of a specific team. The value will be one of the following datatypes:
active Void User has successfully joined the team.
invited Void User has been invited to a team, but has not joined the team yet.
suspended Void User is no longer a member of the team, but the account can be un-suspended, re-establishing the user as a team member.
removed RemovedStatus User is no longer a member of the team. Removed users are only listed when include_removed is true in members/list.
RemovedStatus
is_recoverable Boolean True if the removed team member is recoverable.
name Name Representations for a person's name.
Name
Representations for a person's name to assist with internationalization. This datatype comes from an imported namespace originally defined in the users namespace.
given_name String Also known as a first name.
surname String Also known as a last name or family name.
familiar_name String Locale-dependent name. In the US, a person's familiar name is their given_name, but elsewhere, it could be any combination of a person's given_name and surname.
display_name String A name that can be used directly to represent the name of a user's Dropbox account.
abbreviated_name String An abbreviated form of the person's name. Their initials in most locales.
membership_type TeamMembershipType The user's membership type: full (normal team member) vs limited (does not use a license; no access to the team's shared quota).
TeamMembershipType (union)
The value will be one of the following datatypes:
full Void User uses a license and has full access to team resources like the shared quota.
limited Void User does not have access to the shared quota and team admins have restricted administrative control.
groups List of (String) List of group IDs of groups that the user belongs to.
external_id String? External ID that a team can attach to the user. An application using the API may find it easier to use their own IDs instead of Dropbox IDs like account_id or team_member_id. This field is optional.
account_id String(min_length=40, max_length=40)? A user's account identifier. This field is optional.
joined_on Timestamp(format="%Y-%m-%dT%H:%M:%SZ")? The date and time the user joined as a member of a specific team. This field is optional.
persistent_id String? Persistent ID that a team can attach to the user. The persistent ID is unique ID to be used for SAML authentication. This field is optional.
role AdminTier The user's role in the team.
AdminTier (union)
Describes which team-related admin permissions a user has. The value will be one of the following datatypes:
team_admin Void User is an administrator of the team - has all permissions.
user_management_admin Void User can do most user provisioning, de-provisioning and management.
support_admin Void User can do a limited set of common support tasks for existing users.
member_only Void User is not an admin of the team.
team_license_limit String(max_length=255, pattern="^['&A-Za-z0-9._%+-]+@[A-Za-z0-9-][A-Za-z0-9.-]*.[A-Za-z]{2,15}$") Team is already full. The organization has no available licenses.
free_team_member_limit_reached String(max_length=255, pattern="^['&A-Za-z0-9._%+-]+@[A-Za-z0-9-][A-Za-z0-9.-]*.[A-Za-z]{2,15}$") Team is already full. The free team member limit has been reached.
user_already_on_team String(max_length=255, pattern="^['&A-Za-z0-9._%+-]+@[A-Za-z0-9-][A-Za-z0-9.-]*.[A-Za-z]{2,15}$") User is already on this team. The provided email address is associated with a user who is already a member of (including in recoverable state) or invited to the team.
user_on_another_team String(max_length=255, pattern="^['&A-Za-z0-9._%+-]+@[A-Za-z0-9-][A-Za-z0-9.-]*.[A-Za-z]{2,15}$") User is already on another team. The provided email address is associated with a user that is already a member or invited to another team.
user_already_paired String(max_length=255, pattern="^['&A-Za-z0-9._%+-]+@[A-Za-z0-9-][A-Za-z0-9.-]*.[A-Za-z]{2,15}$") User is already paired.
user_migration_failed String(max_length=255, pattern="^['&A-Za-z0-9._%+-]+@[A-Za-z0-9-][A-Za-z0-9.-]*.[A-Za-z]{2,15}$") User migration has failed.
duplicate_external_member_id String(max_length=255, pattern="^['&A-Za-z0-9._%+-]+@[A-Za-z0-9-][A-Za-z0-9.-]*.[A-Za-z]{2,15}$") A user with the given external member ID already exists on the team (including in recoverable state).
duplicate_member_persistent_id String(max_length=255, pattern="^['&A-Za-z0-9._%+-]+@[A-Za-z0-9-][A-Za-z0-9.-]*.[A-Za-z]{2,15}$") A user with the given persistent ID already exists on the team (including in recoverable state).
persistent_id_disabled String(max_length=255, pattern="^['&A-Za-z0-9._%+-]+@[A-Za-z0-9-][A-Za-z0-9.-]*.[A-Za-z]{2,15}$") Persistent ID is only available to teams with persistent ID SAML configuration. Please contact Dropbox for more information.
user_creation_failed String(max_length=255, pattern="^['&A-Za-z0-9._%+-]+@[A-Za-z0-9-][A-Za-z0-9.-]*.[A-Za-z]{2,15}$") User creation has failed.
Errors

No errors.

/members/add/job_status/get

Description

Once an async_job_id is returned from members/add , use this to poll the status of the asynchronous request.
Permission : Team member management

URL Structure
https://api.dropboxapi.com/2/team/members/add/job_status/get
Authentication
Team Authentication
Endpoint format
RPC
Example
Get access token for:
curl -X POST https://api.dropboxapi.com/2/team/members/add/job_status/get \
    --header "Authorization: Bearer " \
    --header "Content-Type: application/json" \
    --data "{\"async_job_id\": \"34g93hh34h04y384084\"}"
Parameters
{
    "async_job_id": "34g93hh34h04y384084"
}
PollArg
Arguments for methods that poll the status of an asynchronous job. This datatype comes from an imported namespace originally defined in the async namespace.
async_job_id String(min_length=1) Id of the asynchronous job. This is the value of a response returned from the method that launched the job.
Returns
{
    ".tag": "complete",
    "complete": [
        {
            ".tag": "success",
            "profile": {
                "team_member_id": "dbmid:FDFSVF-DFSDF",
                "email": "tami@seagull.com",
                "email_verified": false,
                "status": {
                    ".tag": "active"
                },
                "name": {
                    "given_name": "Franz",
                    "surname": "Ferdinand",
                    "familiar_name": "Franz",
                    "display_name": "Franz Ferdinand (Personal)",
                    "abbreviated_name": "FF"
                },
                "membership_type": {
                    ".tag": "full"
                },
                "groups": [
                    "g:e2db7665347abcd600000000001a2b3c"
                ],
                "external_id": "244423",
                "account_id": "dbid:AAH4f99T0taONIb-OurWxbNQ6ywGRopQngc",
                "joined_on": "2015-05-12T15:50:38Z"
            },
            "role": {
                ".tag": "member_only"
            }
        }
    ]
}
Example: in_progress
{
    ".tag": "in_progress"
}
MembersAddJobStatus (union)
The value will be one of the following datatypes:
in_progress Void The asynchronous job is still in progress.
complete List of (MemberAddResult) The asynchronous job has finished. For each member that was specified in the parameter MembersAddArg that was provided to members/add, a corresponding item is returned in this list.
MemberAddResult (union)
Describes the result of attempting to add a single user to the team. 'success' is the only value indicating that a user was indeed added to the team - the other values explain the type of failure that occurred, and include the email of the user for which the operation has failed. The value will be one of the following datatypes:
success TeamMemberInfo Describes a user that was successfully added to the team.
TeamMemberInfo
Information about a team member.
profile TeamMemberProfile Profile of a user as a member of a team.
TeamMemberProfile
Profile of a user as a member of a team.
team_member_id String ID of user as a member of a team.
email String Email address of user.
email_verified Boolean Is true if the user's email is verified to be owned by the user.
status TeamMemberStatus The user's status as a member of a specific team.
TeamMemberStatus (union)
The user's status as a member of a specific team. The value will be one of the following datatypes:
active Void User has successfully joined the team.
invited Void User has been invited to a team, but has not joined the team yet.
suspended Void User is no longer a member of the team, but the account can be un-suspended, re-establishing the user as a team member.
removed RemovedStatus User is no longer a member of the team. Removed users are only listed when include_removed is true in members/list.
RemovedStatus
is_recoverable Boolean True if the removed team member is recoverable.
name Name Representations for a person's name.
Name
Representations for a person's name to assist with internationalization. This datatype comes from an imported namespace originally defined in the users namespace.
given_name String Also known as a first name.
surname String Also known as a last name or family name.
familiar_name String Locale-dependent name. In the US, a person's familiar name is their given_name, but elsewhere, it could be any combination of a person's given_name and surname.
display_name String A name that can be used directly to represent the name of a user's Dropbox account.
abbreviated_name String An abbreviated form of the person's name. Their initials in most locales.
membership_type TeamMembershipType The user's membership type: full (normal team member) vs limited (does not use a license; no access to the team's shared quota).
TeamMembershipType (union)
The value will be one of the following datatypes:
full Void User uses a license and has full access to team resources like the shared quota.
limited Void User does not have access to the shared quota and team admins have restricted administrative control.
groups List of (String) List of group IDs of groups that the user belongs to.
external_id String? External ID that a team can attach to the user. An application using the API may find it easier to use their own IDs instead of Dropbox IDs like account_id or team_member_id. This field is optional.
account_id String(min_length=40, max_length=40)? A user's account identifier. This field is optional.
joined_on Timestamp(format="%Y-%m-%dT%H:%M:%SZ")? The date and time the user joined as a member of a specific team. This field is optional.
persistent_id String? Persistent ID that a team can attach to the user. The persistent ID is unique ID to be used for SAML authentication. This field is optional.
role AdminTier The user's role in the team.
AdminTier (union)
Describes which team-related admin permissions a user has. The value will be one of the following datatypes:
team_admin Void User is an administrator of the team - has all permissions.
user_management_admin Void User can do most user provisioning, de-provisioning and management.
support_admin Void User can do a limited set of common support tasks for existing users.
member_only Void User is not an admin of the team.
team_license_limit String(max_length=255, pattern="^['&A-Za-z0-9._%+-]+@[A-Za-z0-9-][A-Za-z0-9.-]*.[A-Za-z]{2,15}$") Team is already full. The organization has no available licenses.
free_team_member_limit_reached String(max_length=255, pattern="^['&A-Za-z0-9._%+-]+@[A-Za-z0-9-][A-Za-z0-9.-]*.[A-Za-z]{2,15}$") Team is already full. The free team member limit has been reached.
user_already_on_team String(max_length=255, pattern="^['&A-Za-z0-9._%+-]+@[A-Za-z0-9-][A-Za-z0-9.-]*.[A-Za-z]{2,15}$") User is already on this team. The provided email address is associated with a user who is already a member of (including in recoverable state) or invited to the team.
user_on_another_team String(max_length=255, pattern="^['&A-Za-z0-9._%+-]+@[A-Za-z0-9-][A-Za-z0-9.-]*.[A-Za-z]{2,15}$") User is already on another team. The provided email address is associated with a user that is already a member or invited to another team.
user_already_paired String(max_length=255, pattern="^['&A-Za-z0-9._%+-]+@[A-Za-z0-9-][A-Za-z0-9.-]*.[A-Za-z]{2,15}$") User is already paired.
user_migration_failed String(max_length=255, pattern="^['&A-Za-z0-9._%+-]+@[A-Za-z0-9-][A-Za-z0-9.-]*.[A-Za-z]{2,15}$") User migration has failed.
duplicate_external_member_id String(max_length=255, pattern="^['&A-Za-z0-9._%+-]+@[A-Za-z0-9-][A-Za-z0-9.-]*.[A-Za-z]{2,15}$") A user with the given external member ID already exists on the team (including in recoverable state).
duplicate_member_persistent_id String(max_length=255, pattern="^['&A-Za-z0-9._%+-]+@[A-Za-z0-9-][A-Za-z0-9.-]*.[A-Za-z]{2,15}$") A user with the given persistent ID already exists on the team (including in recoverable state).
persistent_id_disabled String(max_length=255, pattern="^['&A-Za-z0-9._%+-]+@[A-Za-z0-9-][A-Za-z0-9.-]*.[A-Za-z]{2,15}$") Persistent ID is only available to teams with persistent ID SAML configuration. Please contact Dropbox for more information.
user_creation_failed String(max_length=255, pattern="^['&A-Za-z0-9._%+-]+@[A-Za-z0-9-][A-Za-z0-9.-]*.[A-Za-z]{2,15}$") User creation has failed.
failed String The asynchronous job returned an error. The string contains an error message.
Errors
Example: invalid_async_job_id
{
    "error_summary": "invalid_async_job_id/...",
    "error": {
        ".tag": "invalid_async_job_id"
    }
}
Example: internal_error
{
    "error_summary": "internal_error/...",
    "error": {
        ".tag": "internal_error"
    }
}
Example: other
{
    "error_summary": "other/...",
    "error": {
        ".tag": "other"
    }
}
PollError (open union)
Error returned by methods for polling the status of asynchronous job. This datatype comes from an imported namespace originally defined in the async namespace. The value will be one of the following datatypes. New values may be introduced as our API evolves.
invalid_async_job_id Void The job ID is invalid.
internal_error Void Something went wrong with the job on Dropbox's end. You'll need to verify that the action you were taking succeeded, and if not, try again. This should happen very rarely.

/members/get_info

Description

Returns information about multiple team members.
Permission : Team information
This endpoint will return MembersGetInfoItem.id_not_found, for IDs (or emails) that cannot be matched to a valid team member.

URL Structure
https://api.dropboxapi.com/2/team/members/get_info
Authentication
Team Authentication
Endpoint format
RPC
Example
Get access token for:
curl -X POST https://api.dropboxapi.com/2/team/members/get_info \
    --header "Authorization: Bearer " \
    --header "Content-Type: application/json" \
    --data "{\"members\": [{\".tag\": \"team_member_id\",\"team_member_id\": \"dbmid:efgh5678\"}]}"
Parameters
{
    "members": [
        {
            ".tag": "team_member_id",
            "team_member_id": "dbmid:efgh5678"
        }
    ]
}
MembersGetInfoArgs
members List of (UserSelectorArg) List of team members.
UserSelectorArg (union)
Argument for selecting a single user, either by team_member_id, external_id or email. The value will be one of the following datatypes:
team_member_id String
external_id String(max_length=64)
email String(max_length=255, pattern="^['&A-Za-z0-9._%+-]+@[A-Za-z0-9-][A-Za-z0-9.-]*.[A-Za-z]{2,15}$")
Returns
This route returns a list. This means the route can accept a homogenous list of the following types:
MembersGetInfoItem (union)
Describes a result obtained for a single user whose id was specified in the parameter of members/get_info. The value will be one of the following datatypes:
id_not_found String An ID that was provided as a parameter to members/get_info, and did not match a corresponding user. This might be a team_member_id, an email, or an external ID, depending on how the method was called.
member_info TeamMemberInfo Info about a team member.
TeamMemberInfo
Information about a team member.
profile TeamMemberProfile Profile of a user as a member of a team.
TeamMemberProfile
Profile of a user as a member of a team.
team_member_id String ID of user as a member of a team.
email String Email address of user.
email_verified Boolean Is true if the user's email is verified to be owned by the user.
status TeamMemberStatus The user's status as a member of a specific team.
TeamMemberStatus (union)
The user's status as a member of a specific team. The value will be one of the following datatypes:
active Void User has successfully joined the team.
invited Void User has been invited to a team, but has not joined the team yet.
suspended Void User is no longer a member of the team, but the account can be un-suspended, re-establishing the user as a team member.
removed RemovedStatus User is no longer a member of the team. Removed users are only listed when include_removed is true in members/list.
RemovedStatus
is_recoverable Boolean True if the removed team member is recoverable.
name Name Representations for a person's name.
Name
Representations for a person's name to assist with internationalization. This datatype comes from an imported namespace originally defined in the users namespace.
given_name String Also known as a first name.
surname String Also known as a last name or family name.
familiar_name String Locale-dependent name. In the US, a person's familiar name is their given_name, but elsewhere, it could be any combination of a person's given_name and surname.
display_name String A name that can be used directly to represent the name of a user's Dropbox account.
abbreviated_name String An abbreviated form of the person's name. Their initials in most locales.
membership_type TeamMembershipType The user's membership type: full (normal team member) vs limited (does not use a license; no access to the team's shared quota).
TeamMembershipType (union)
The value will be one of the following datatypes:
full Void User uses a license and has full access to team resources like the shared quota.
limited Void User does not have access to the shared quota and team admins have restricted administrative control.
groups List of (String) List of group IDs of groups that the user belongs to.
external_id String? External ID that a team can attach to the user. An application using the API may find it easier to use their own IDs instead of Dropbox IDs like account_id or team_member_id. This field is optional.
account_id String(min_length=40, max_length=40)? A user's account identifier. This field is optional.
joined_on Timestamp(format="%Y-%m-%dT%H:%M:%SZ")? The date and time the user joined as a member of a specific team. This field is optional.
persistent_id String? Persistent ID that a team can attach to the user. The persistent ID is unique ID to be used for SAML authentication. This field is optional.
role AdminTier The user's role in the team.
AdminTier (union)
Describes which team-related admin permissions a user has. The value will be one of the following datatypes:
team_admin Void User is an administrator of the team - has all permissions.
user_management_admin Void User can do most user provisioning, de-provisioning and management.
support_admin Void User can do a limited set of common support tasks for existing users.
member_only Void User is not an admin of the team.
Errors
{
    "error_summary": "other/...",
    "error": {
        ".tag": "other"
    }
}
MembersGetInfoError (open union)
The value will be one of the following datatypes. New values may be introduced as our API evolves.

/members/list

Description

Lists members of a team.
Permission : Team information

URL Structure
https://api.dropboxapi.com/2/team/members/list
Authentication
Team Authentication
Endpoint format
RPC
Example
Get access token for:
curl -X POST https://api.dropboxapi.com/2/team/members/list \
    --header "Authorization: Bearer " \
    --header "Content-Type: application/json" \
    --data "{\"limit\": 100,\"include_removed\": false}"
Parameters
{
    "limit": 100,
    "include_removed": false
}
MembersListArg
limit UInt32 Number of results to return per call. The default for this field is 1000.
include_removed Boolean Whether to return removed members. The default for this field is False.
Returns
{
    "members": [
        {
            "profile": {
                "team_member_id": "dbmid:FDFSVF-DFSDF",
                "email": "tami@seagull.com",
                "email_verified": false,
                "status": {
                    ".tag": "active"
                },
                "name": {
                    "given_name": "Franz",
                    "surname": "Ferdinand",
                    "familiar_name": "Franz",
                    "display_name": "Franz Ferdinand (Personal)",
                    "abbreviated_name": "FF"
                },
                "membership_type": {
                    ".tag": "full"
                },
                "groups": [
                    "g:e2db7665347abcd600000000001a2b3c"
                ],
                "external_id": "244423",
                "account_id": "dbid:AAH4f99T0taONIb-OurWxbNQ6ywGRopQngc",
                "joined_on": "2015-05-12T15:50:38Z"
            },
            "role": {
                ".tag": "member_only"
            }
        }
    ],
    "cursor": "ZtkX9_EHj3x7PMkVuFIhwKYXEpwpLwyxp9vMKomUhllil9q7eWiAu",
    "has_more": true
}
MembersListResult
members List of (TeamMemberInfo) List of team members.
TeamMemberInfo
Information about a team member.
profile TeamMemberProfile Profile of a user as a member of a team.
TeamMemberProfile
Profile of a user as a member of a team.
team_member_id String ID of user as a member of a team.
email String Email address of user.
email_verified Boolean Is true if the user's email is verified to be owned by the user.
status TeamMemberStatus The user's status as a member of a specific team.
TeamMemberStatus (union)
The user's status as a member of a specific team. The value will be one of the following datatypes:
active Void User has successfully joined the team.
invited Void User has been invited to a team, but has not joined the team yet.
suspended Void User is no longer a member of the team, but the account can be un-suspended, re-establishing the user as a team member.
removed RemovedStatus User is no longer a member of the team. Removed users are only listed when include_removed is true in members/list.
RemovedStatus
is_recoverable Boolean True if the removed team member is recoverable.
name Name Representations for a person's name.
Name
Representations for a person's name to assist with internationalization. This datatype comes from an imported namespace originally defined in the users namespace.
given_name String Also known as a first name.
surname String Also known as a last name or family name.
familiar_name String Locale-dependent name. In the US, a person's familiar name is their given_name, but elsewhere, it could be any combination of a person's given_name and surname.
display_name String A name that can be used directly to represent the name of a user's Dropbox account.
abbreviated_name String An abbreviated form of the person's name. Their initials in most locales.
membership_type TeamMembershipType The user's membership type: full (normal team member) vs limited (does not use a license; no access to the team's shared quota).
TeamMembershipType (union)
The value will be one of the following datatypes:
full Void User uses a license and has full access to team resources like the shared quota.
limited Void User does not have access to the shared quota and team admins have restricted administrative control.
groups List of (String) List of group IDs of groups that the user belongs to.
external_id String? External ID that a team can attach to the user. An application using the API may find it easier to use their own IDs instead of Dropbox IDs like account_id or team_member_id. This field is optional.
account_id String(min_length=40, max_length=40)? A user's account identifier. This field is optional.
joined_on Timestamp(format="%Y-%m-%dT%H:%M:%SZ")? The date and time the user joined as a member of a specific team. This field is optional.
persistent_id String? Persistent ID that a team can attach to the user. The persistent ID is unique ID to be used for SAML authentication. This field is optional.
role AdminTier The user's role in the team.
AdminTier (union)
Describes which team-related admin permissions a user has. The value will be one of the following datatypes:
team_admin Void User is an administrator of the team - has all permissions.
user_management_admin Void User can do most user provisioning, de-provisioning and management.
support_admin Void User can do a limited set of common support tasks for existing users.
member_only Void User is not an admin of the team.
cursor String Pass the cursor into members/list/continue to obtain the additional members.
has_more Boolean Is true if there are additional team members that have not been returned yet. An additional call to members/list/continue can retrieve them.
Errors
{
    "error_summary": "other/...",
    "error": {
        ".tag": "other"
    }
}
MembersListError (open union)
The value will be one of the following datatypes. New values may be introduced as our API evolves.

/members/list/continue

Description

Once a cursor has been retrieved from members/list, use this to paginate through all team members.
Permission : Team information

URL Structure
https://api.dropboxapi.com/2/team/members/list/continue
Authentication
Team Authentication
Endpoint format
RPC
Example
Get access token for:
curl -X POST https://api.dropboxapi.com/2/team/members/list/continue \
    --header "Authorization: Bearer " \
    --header "Content-Type: application/json" \
    --data "{\"cursor\": \"ZtkX9_EHj3x7PMkVuFIhwKYXEpwpLwyxp9vMKomUhllil9q7eWiAu\"}"
Parameters
{
    "cursor": "ZtkX9_EHj3x7PMkVuFIhwKYXEpwpLwyxp9vMKomUhllil9q7eWiAu"
}
MembersListContinueArg
cursor String Indicates from what point to get the next set of members.
Returns
{
    "members": [
        {
            "profile": {
                "team_member_id": "dbmid:FDFSVF-DFSDF",
                "email": "tami@seagull.com",
                "email_verified": false,
                "status": {
                    ".tag": "active"
                },
                "name": {
                    "given_name": "Franz",
                    "surname": "Ferdinand",
                    "familiar_name": "Franz",
                    "display_name": "Franz Ferdinand (Personal)",
                    "abbreviated_name": "FF"
                },
                "membership_type": {
                    ".tag": "full"
                },
                "groups": [
                    "g:e2db7665347abcd600000000001a2b3c"
                ],
                "external_id": "244423",
                "account_id": "dbid:AAH4f99T0taONIb-OurWxbNQ6ywGRopQngc",
                "joined_on": "2015-05-12T15:50:38Z"
            },
            "role": {
                ".tag": "member_only"
            }
        }
    ],
    "cursor": "ZtkX9_EHj3x7PMkVuFIhwKYXEpwpLwyxp9vMKomUhllil9q7eWiAu",
    "has_more": true
}
MembersListResult
members List of (TeamMemberInfo) List of team members.
TeamMemberInfo
Information about a team member.
profile TeamMemberProfile Profile of a user as a member of a team.
TeamMemberProfile
Profile of a user as a member of a team.
team_member_id String ID of user as a member of a team.
email String Email address of user.
email_verified Boolean Is true if the user's email is verified to be owned by the user.
status TeamMemberStatus The user's status as a member of a specific team.
TeamMemberStatus (union)
The user's status as a member of a specific team. The value will be one of the following datatypes:
active Void User has successfully joined the team.
invited Void User has been invited to a team, but has not joined the team yet.
suspended Void User is no longer a member of the team, but the account can be un-suspended, re-establishing the user as a team member.
removed RemovedStatus User is no longer a member of the team. Removed users are only listed when include_removed is true in members/list.
RemovedStatus
is_recoverable Boolean True if the removed team member is recoverable.
name Name Representations for a person's name.
Name
Representations for a person's name to assist with internationalization. This datatype comes from an imported namespace originally defined in the users namespace.
given_name String Also known as a first name.
surname String Also known as a last name or family name.
familiar_name String Locale-dependent name. In the US, a person's familiar name is their given_name, but elsewhere, it could be any combination of a person's given_name and surname.
display_name String A name that can be used directly to represent the name of a user's Dropbox account.
abbreviated_name String An abbreviated form of the person's name. Their initials in most locales.
membership_type TeamMembershipType The user's membership type: full (normal team member) vs limited (does not use a license; no access to the team's shared quota).
TeamMembershipType (union)
The value will be one of the following datatypes:
full Void User uses a license and has full access to team resources like the shared quota.
limited Void User does not have access to the shared quota and team admins have restricted administrative control.
groups List of (String) List of group IDs of groups that the user belongs to.
external_id String? External ID that a team can attach to the user. An application using the API may find it easier to use their own IDs instead of Dropbox IDs like account_id or team_member_id. This field is optional.
account_id String(min_length=40, max_length=40)? A user's account identifier. This field is optional.
joined_on Timestamp(format="%Y-%m-%dT%H:%M:%SZ")? The date and time the user joined as a member of a specific team. This field is optional.
persistent_id String? Persistent ID that a team can attach to the user. The persistent ID is unique ID to be used for SAML authentication. This field is optional.
role AdminTier The user's role in the team.
AdminTier (union)
Describes which team-related admin permissions a user has. The value will be one of the following datatypes:
team_admin Void User is an administrator of the team - has all permissions.
user_management_admin Void User can do most user provisioning, de-provisioning and management.
support_admin Void User can do a limited set of common support tasks for existing users.
member_only Void User is not an admin of the team.
cursor String Pass the cursor into members/list/continue to obtain the additional members.
has_more Boolean Is true if there are additional team members that have not been returned yet. An additional call to members/list/continue can retrieve them.
Errors
Example: invalid_cursor
{
    "error_summary": "invalid_cursor/...",
    "error": {
        ".tag": "invalid_cursor"
    }
}
Example: other
{
    "error_summary": "other/...",
    "error": {
        ".tag": "other"
    }
}
MembersListContinueError (open union)
The value will be one of the following datatypes. New values may be introduced as our API evolves.
invalid_cursor Void The cursor is invalid.

/members/recover

Description

Recover a deleted member.
Permission : Team member management
Exactly one of team_member_id, email, or external_id must be provided to identify the user account.

URL Structure
https://api.dropboxapi.com/2/team/members/recover
Authentication
Team Authentication
Endpoint format
RPC
Example
Get access token for:
curl -X POST https://api.dropboxapi.com/2/team/members/recover \
    --header "Authorization: Bearer " \
    --header "Content-Type: application/json" \
    --data "{\"user\": {\".tag\": \"team_member_id\",\"team_member_id\": \"dbmid:efgh5678\"}}"
Parameters
{
    "user": {
        ".tag": "team_member_id",
        "team_member_id": "dbmid:efgh5678"
    }
}
MembersRecoverArg
Exactly one of team_member_id, email, or external_id must be provided to identify the user account.
user UserSelectorArg Identity of user to recover.
UserSelectorArg (union)
Argument for selecting a single user, either by team_member_id, external_id or email. The value will be one of the following datatypes:
team_member_id String
external_id String(max_length=64)
email String(max_length=255, pattern="^['&A-Za-z0-9._%+-]+@[A-Za-z0-9-][A-Za-z0-9.-]*.[A-Za-z]{2,15}$")
Returns

No return values.

Errors
Example: user_not_found
{
    "error_summary": "user_not_found/...",
    "error": {
        ".tag": "user_not_found"
    }
}
Example: user_unrecoverable
{
    "error_summary": "user_unrecoverable/...",
    "error": {
        ".tag": "user_unrecoverable"
    }
}
Example: user_not_in_team
{
    "error_summary": "user_not_in_team/...",
    "error": {
        ".tag": "user_not_in_team"
    }
}
Example: team_license_limit
{
    "error_summary": "team_license_limit/...",
    "error": {
        ".tag": "team_license_limit"
    }
}
Example: other
{
    "error_summary": "other/...",
    "error": {
        ".tag": "other"
    }
}
MembersRecoverError (open union)
The value will be one of the following datatypes. New values may be introduced as our API evolves.
user_not_found Void No matching user found. The provided team_member_id, email, or external_id does not exist on this team.
user_unrecoverable Void The user is not recoverable.
user_not_in_team Void The user is not a member of the team.
team_license_limit Void Team is full. The organization has no available licenses.

/members/remove

Description

Removes a member from a team.
Permission : Team member management
Exactly one of team_member_id, email, or external_id must be provided to identify the user account.
Accounts can be recovered via members/recover for a 7 day period or until the account has been permanently deleted or transferred to another account (whichever comes first). Calling members/add while a user is still recoverable on your team will return with MemberAddResult.user_already_on_team.
This endpoint may initiate an asynchronous job. To obtain the final result of the job, the client should periodically poll members/remove/job_status/get.

URL Structure
https://api.dropboxapi.com/2/team/members/remove
Authentication
Team Authentication
Endpoint format
RPC
Example
Get access token for:
curl -X POST https://api.dropboxapi.com/2/team/members/remove \
    --header "Authorization: Bearer " \
    --header "Content-Type: application/json" \
    --data "{\"user\": {\".tag\": \"team_member_id\",\"team_member_id\": \"dbmid:efgh5678\"},\"wipe_data\": true,\"transfer_dest_id\": {\".tag\": \"team_member_id\",\"team_member_id\": \"dbmid:efgh5678\"},\"transfer_admin_id\": {\".tag\": \"team_member_id\",\"team_member_id\": \"dbmid:efgh5678\"},\"keep_account\": false}"
Parameters
{
    "user": {
        ".tag": "team_member_id",
        "team_member_id": "dbmid:efgh5678"
    },
    "wipe_data": true,
    "transfer_dest_id": {
        ".tag": "team_member_id",
        "team_member_id": "dbmid:efgh5678"
    },
    "transfer_admin_id": {
        ".tag": "team_member_id",
        "team_member_id": "dbmid:efgh5678"
    },
    "keep_account": false
}
MembersRemoveArg
user UserSelectorArg Identity of user to remove/suspend.
UserSelectorArg (union)
Argument for selecting a single user, either by team_member_id, external_id or email. The value will be one of the following datatypes:
team_member_id String
external_id String(max_length=64)
email String(max_length=255, pattern="^['&A-Za-z0-9._%+-]+@[A-Za-z0-9-][A-Za-z0-9.-]*.[A-Za-z]{2,15}$")
wipe_data Boolean If provided, controls if the user's data will be deleted on their linked devices. The default for this field is True.
transfer_dest_id UserSelectorArg? If provided, files from the deleted member account will be transferred to this user. This field is optional.
UserSelectorArg (union)
Argument for selecting a single user, either by team_member_id, external_id or email. The value will be one of the following datatypes:
team_member_id String
external_id String(max_length=64)
email String(max_length=255, pattern="^['&A-Za-z0-9._%+-]+@[A-Za-z0-9-][A-Za-z0-9.-]*.[A-Za-z]{2,15}$")
transfer_admin_id UserSelectorArg? If provided, errors during the transfer process will be sent via email to this user. If the transfer_dest_id argument was provided, then this argument must be provided as well. This field is optional.
UserSelectorArg (union)
Argument for selecting a single user, either by team_member_id, external_id or email. The value will be one of the following datatypes:
team_member_id String
external_id String(max_length=64)
email String(max_length=255, pattern="^['&A-Za-z0-9._%+-]+@[A-Za-z0-9-][A-Za-z0-9.-]*.[A-Za-z]{2,15}$")
keep_account Boolean Downgrade the member to a Basic account. The user will retain the email address associated with their Dropbox account and data in their account that is not restricted to team members. In order to keep the account the argument wipe_data should be set to False. The default for this field is False.
Returns
Example: complete
{
    ".tag": "complete"
}
Example: async_job_id
{
    ".tag": "async_job_id",
    "async_job_id": "34g93hh34h04y384084"
}
LaunchEmptyResult (union)
Result returned by methods that may either launch an asynchronous job or complete synchronously. Upon synchronous completion of the job, no additional information is returned. This datatype comes from an imported namespace originally defined in the async namespace. The value will be one of the following datatypes:
async_job_id String(min_length=1) This response indicates that the processing is asynchronous. The string is an id that can be used to obtain the status of the asynchronous job.
complete Void The job finished synchronously and successfully.
Errors
Example: user_not_found
{
    "error_summary": "user_not_found/...",
    "error": {
        ".tag": "user_not_found"
    }
}
Example: user_not_in_team
{
    "error_summary": "user_not_in_team/...",
    "error": {
        ".tag": "user_not_in_team"
    }
}
Example: other
{
    "error_summary": "other/...",
    "error": {
        ".tag": "other"
    }
}
Example: remove_last_admin
{
    "error_summary": "remove_last_admin/...",
    "error": {
        ".tag": "remove_last_admin"
    }
}
Example: removed_and_transfer_dest_should_differ
{
    "error_summary": "removed_and_transfer_dest_should_differ/...",
    "error": {
        ".tag": "removed_and_transfer_dest_should_differ"
    }
}
Example: removed_and_transfer_admin_should_differ
{
    "error_summary": "removed_and_transfer_admin_should_differ/...",
    "error": {
        ".tag": "removed_and_transfer_admin_should_differ"
    }
}
Example: transfer_dest_user_not_found
{
    "error_summary": "transfer_dest_user_not_found/...",
    "error": {
        ".tag": "transfer_dest_user_not_found"
    }
}
Example: transfer_dest_user_not_in_team
{
    "error_summary": "transfer_dest_user_not_in_team/...",
    "error": {
        ".tag": "transfer_dest_user_not_in_team"
    }
}
Example: transfer_admin_user_not_found
{
    "error_summary": "transfer_admin_user_not_found/...",
    "error": {
        ".tag": "transfer_admin_user_not_found"
    }
}
Example: transfer_admin_user_not_in_team
{
    "error_summary": "transfer_admin_user_not_in_team/...",
    "error": {
        ".tag": "transfer_admin_user_not_in_team"
    }
}
Example: unspecified_transfer_admin_id
{
    "error_summary": "unspecified_transfer_admin_id/...",
    "error": {
        ".tag": "unspecified_transfer_admin_id"
    }
}
Example: transfer_admin_is_not_admin
{
    "error_summary": "transfer_admin_is_not_admin/...",
    "error": {
        ".tag": "transfer_admin_is_not_admin"
    }
}
Example: cannot_keep_account_and_transfer
{
    "error_summary": "cannot_keep_account_and_transfer/...",
    "error": {
        ".tag": "cannot_keep_account_and_transfer"
    }
}
Example: cannot_keep_account_and_delete_data
{
    "error_summary": "cannot_keep_account_and_delete_data/...",
    "error": {
        ".tag": "cannot_keep_account_and_delete_data"
    }
}
Example: email_address_too_long_to_be_disabled
{
    "error_summary": "email_address_too_long_to_be_disabled/...",
    "error": {
        ".tag": "email_address_too_long_to_be_disabled"
    }
}
MembersRemoveError (union)
The value will be one of the following datatypes:
user_not_found Void No matching user found. The provided team_member_id, email, or external_id does not exist on this team.
user_not_in_team Void The user is not a member of the team.
remove_last_admin Void The user is the last admin of the team, so it cannot be removed from it.
removed_and_transfer_dest_should_differ Void Expected removed user and transfer_dest user to be different
removed_and_transfer_admin_should_differ Void Expected removed user and transfer_admin user to be different.
transfer_dest_user_not_found Void No matching user found for the argument transfer_dest_id.
transfer_dest_user_not_in_team Void The provided transfer_dest_id does not exist on this team.
transfer_admin_user_not_found Void No matching user found for the argument transfer_admin_id.
transfer_admin_user_not_in_team Void The provided transfer_admin_id does not exist on this team.
unspecified_transfer_admin_id Void The transfer_admin_id argument must be provided when file transfer is requested.
transfer_admin_is_not_admin Void Specified transfer_admin user is not a team admin.
cannot_keep_account_and_transfer Void Cannot keep account and transfer the data to another user at the same time.
cannot_keep_account_and_delete_data Void Cannot keep account and delete the data at the same time. To keep the account the argument wipe_data should be set to False.
email_address_too_long_to_be_disabled Void The email address of the user is too long to be disabled.

/members/remove/job_status/get

Description

Once an async_job_id is returned from members/remove , use this to poll the status of the asynchronous request.
Permission : Team member management

URL Structure
https://api.dropboxapi.com/2/team/members/remove/job_status/get
Authentication
Team Authentication
Endpoint format
RPC
Example
Get access token for:
curl -X POST https://api.dropboxapi.com/2/team/members/remove/job_status/get \
    --header "Authorization: Bearer " \
    --header "Content-Type: application/json" \
    --data "{\"async_job_id\": \"34g93hh34h04y384084\"}"
Parameters
{
    "async_job_id": "34g93hh34h04y384084"
}
PollArg
Arguments for methods that poll the status of an asynchronous job. This datatype comes from an imported namespace originally defined in the async namespace.
async_job_id String(min_length=1) Id of the asynchronous job. This is the value of a response returned from the method that launched the job.
Returns
Example: complete
{
    ".tag": "complete"
}
Example: in_progress
{
    ".tag": "in_progress"
}
PollEmptyResult (union)
Result returned by methods that poll for the status of an asynchronous job. Upon completion of the job, no additional information is returned. This datatype comes from an imported namespace originally defined in the async namespace. The value will be one of the following datatypes:
in_progress Void The asynchronous job is still in progress.
complete Void The asynchronous job has completed successfully.
Errors
Example: invalid_async_job_id
{
    "error_summary": "invalid_async_job_id/...",
    "error": {
        ".tag": "invalid_async_job_id"
    }
}
Example: internal_error
{
    "error_summary": "internal_error/...",
    "error": {
        ".tag": "internal_error"
    }
}
Example: other
{
    "error_summary": "other/...",
    "error": {
        ".tag": "other"
    }
}
PollError (open union)
Error returned by methods for polling the status of asynchronous job. This datatype comes from an imported namespace originally defined in the async namespace. The value will be one of the following datatypes. New values may be introduced as our API evolves.
invalid_async_job_id Void The job ID is invalid.
internal_error Void Something went wrong with the job on Dropbox's end. You'll need to verify that the action you were taking succeeded, and if not, try again. This should happen very rarely.

/members/send_welcome_email

Description

Sends welcome email to pending team member.
Permission : Team member management
Exactly one of team_member_id, email, or external_id must be provided to identify the user account.
No-op if team member is not pending.

URL Structure
https://api.dropboxapi.com/2/team/members/send_welcome_email
Authentication
Team Authentication
Endpoint format
RPC
Example
Get access token for:
curl -X POST https://api.dropboxapi.com/2/team/members/send_welcome_email \
    --header "Authorization: Bearer " \
    --header "Content-Type: application/json" \
    --data "{\".tag\": \"team_member_id\",\"team_member_id\": \"dbmid:efgh5678\"}"
Parameters
{
    ".tag": "team_member_id",
    "team_member_id": "dbmid:efgh5678"
}
Example: email
{
    ".tag": "email",
    "email": "dan@hotmail.com"
}
UserSelectorArg (union)
Argument for selecting a single user, either by team_member_id, external_id or email. The value will be one of the following datatypes:
team_member_id String
external_id String(max_length=64)
email String(max_length=255, pattern="^['&A-Za-z0-9._%+-]+@[A-Za-z0-9-][A-Za-z0-9.-]*.[A-Za-z]{2,15}$")
Returns

No return values.

Errors
Example: user_not_found
{
    "error_summary": "user_not_found/...",
    "error": {
        ".tag": "user_not_found"
    }
}
Example: user_not_in_team
{
    "error_summary": "user_not_in_team/...",
    "error": {
        ".tag": "user_not_in_team"
    }
}
Example: other
{
    "error_summary": "other/...",
    "error": {
        ".tag": "other"
    }
}
MembersSendWelcomeError (open union)
The value will be one of the following datatypes. New values may be introduced as our API evolves.
user_not_found Void No matching user found. The provided team_member_id, email, or external_id does not exist on this team.
user_not_in_team Void The user is not a member of the team.

/members/set_admin_permissions

Description

Updates a team member's permissions.
Permission : Team member management

URL Structure
https://api.dropboxapi.com/2/team/members/set_admin_permissions
Authentication
Team Authentication
Endpoint format
RPC
Example
Get access token for:
curl -X POST https://api.dropboxapi.com/2/team/members/set_admin_permissions \
    --header "Authorization: Bearer " \
    --header "Content-Type: application/json" \
    --data "{\"user\": {\".tag\": \"team_member_id\",\"team_member_id\": \"dbmid:efgh5678\"},\"new_role\": \"member_only\"}"
Parameters
{
    "user": {
        ".tag": "team_member_id",
        "team_member_id": "dbmid:efgh5678"
    },
    "new_role": "member_only"
}
MembersSetPermissionsArg
Exactly one of team_member_id, email, or external_id must be provided to identify the user account.
user UserSelectorArg Identity of user whose role will be set.
UserSelectorArg (union)
Argument for selecting a single user, either by team_member_id, external_id or email. The value will be one of the following datatypes:
team_member_id String
external_id String(max_length=64)
email String(max_length=255, pattern="^['&A-Za-z0-9._%+-]+@[A-Za-z0-9-][A-Za-z0-9.-]*.[A-Za-z]{2,15}$")
new_role AdminTier The new role of the member.
AdminTier (union)
Describes which team-related admin permissions a user has. The value will be one of the following datatypes:
team_admin Void User is an administrator of the team - has all permissions.
user_management_admin Void User can do most user provisioning, de-provisioning and management.
support_admin Void User can do a limited set of common support tasks for existing users.
member_only Void User is not an admin of the team.
Returns
{
    "team_member_id": "dbmid:9978889",
    "role": {
        ".tag": "member_only"
    }
}
MembersSetPermissionsResult
team_member_id String The member ID of the user to which the change was applied.
role AdminTier The role after the change.
AdminTier (union)
Describes which team-related admin permissions a user has. The value will be one of the following datatypes:
team_admin Void User is an administrator of the team - has all permissions.
user_management_admin Void User can do most user provisioning, de-provisioning and management.
support_admin Void User can do a limited set of common support tasks for existing users.
member_only Void User is not an admin of the team.
Errors
Example: user_not_found
{
    "error_summary": "user_not_found/...",
    "error": {
        ".tag": "user_not_found"
    }
}
Example: last_admin
{
    "error_summary": "last_admin/...",
    "error": {
        ".tag": "last_admin"
    }
}
Example: user_not_in_team
{
    "error_summary": "user_not_in_team/...",
    "error": {
        ".tag": "user_not_in_team"
    }
}
Example: cannot_set_permissions
{
    "error_summary": "cannot_set_permissions/...",
    "error": {
        ".tag": "cannot_set_permissions"
    }
}
Example: team_license_limit
{
    "error_summary": "team_license_limit/...",
    "error": {
        ".tag": "team_license_limit"
    }
}
Example: other
{
    "error_summary": "other/...",
    "error": {
        ".tag": "other"
    }
}
MembersSetPermissionsError (open union)
The value will be one of the following datatypes. New values may be introduced as our API evolves.
user_not_found Void No matching user found. The provided team_member_id, email, or external_id does not exist on this team.
last_admin Void Cannot remove the admin setting of the last admin.
user_not_in_team Void The user is not a member of the team.
cannot_set_permissions Void Cannot remove/grant permissions.
team_license_limit Void Team is full. The organization has no available licenses.

/members/set_profile

Description

Updates a team member's profile.
Permission : Team member management

URL Structure
https://api.dropboxapi.com/2/team/members/set_profile
Authentication
Team Authentication
Endpoint format
RPC
Example
Get access token for:
curl -X POST https://api.dropboxapi.com/2/team/members/set_profile \
    --header "Authorization: Bearer " \
    --header "Content-Type: application/json" \
    --data "{\"user\": {\".tag\": \"team_member_id\",\"team_member_id\": \"dbmid:efgh5678\"},\"new_email\": \"t.smith@domain.com\",\"new_surname\": \"Smith\"}"
Parameters
{
    "user": {
        ".tag": "team_member_id",
        "team_member_id": "dbmid:efgh5678"
    },
    "new_email": "t.smith@domain.com",
    "new_surname": "Smith"
}
MembersSetProfileArg
Exactly one of team_member_id, email, or external_id must be provided to identify the user account.
At least one of new_email, new_external_id, new_given_name, and/or new_surname must be provided.
user UserSelectorArg Identity of user whose profile will be set.
UserSelectorArg (union)
Argument for selecting a single user, either by team_member_id, external_id or email. The value will be one of the following datatypes:
team_member_id String
external_id String(max_length=64)
email String(max_length=255, pattern="^['&A-Za-z0-9._%+-]+@[A-Za-z0-9-][A-Za-z0-9.-]*.[A-Za-z]{2,15}$")
new_email String(max_length=255, pattern="^['&A-Za-z0-9._%+-]+@[A-Za-z0-9-][A-Za-z0-9.-]*.[A-Za-z]{2,15}$")? New email for member. This field is optional.
new_external_id String(max_length=64)? New external ID for member. This field is optional.
new_given_name String(min_length=1, max_length=100, pattern="[^/:?*<>"|]*")? New given name for member. This field is optional.
new_surname String(min_length=1, max_length=100, pattern="[^/:?*<>"|]*")? New surname for member. This field is optional.
new_persistent_id String? New persistent ID. This field only available to teams using persistent ID SAML configuration. This field is optional.
Returns
{
    "profile": {
        "team_member_id": "dbmid:FDFSVF-DFSDF",
        "email": "tami@seagull.com",
        "email_verified": false,
        "status": {
            ".tag": "active"
        },
        "name": {
            "given_name": "Franz",
            "surname": "Ferdinand",
            "familiar_name": "Franz",
            "display_name": "Franz Ferdinand (Personal)",
            "abbreviated_name": "FF"
        },
        "membership_type": {
            ".tag": "full"
        },
        "groups": [
            "g:e2db7665347abcd600000000001a2b3c"
        ],
        "external_id": "244423",
        "account_id": "dbid:AAH4f99T0taONIb-OurWxbNQ6ywGRopQngc",
        "joined_on": "2015-05-12T15:50:38Z"
    },
    "role": {
        ".tag": "member_only"
    }
}
TeamMemberInfo
Information about a team member.
profile TeamMemberProfile Profile of a user as a member of a team.
TeamMemberProfile
Profile of a user as a member of a team.
team_member_id String ID of user as a member of a team.
email String Email address of user.
email_verified Boolean Is true if the user's email is verified to be owned by the user.
status TeamMemberStatus The user's status as a member of a specific team.
TeamMemberStatus (union)
The user's status as a member of a specific team. The value will be one of the following datatypes:
active Void User has successfully joined the team.
invited Void User has been invited to a team, but has not joined the team yet.
suspended Void User is no longer a member of the team, but the account can be un-suspended, re-establishing the user as a team member.
removed RemovedStatus User is no longer a member of the team. Removed users are only listed when include_removed is true in members/list.
RemovedStatus
is_recoverable Boolean True if the removed team member is recoverable.
name Name Representations for a person's name.
Name
Representations for a person's name to assist with internationalization. This datatype comes from an imported namespace originally defined in the users namespace.
given_name String Also known as a first name.
surname String Also known as a last name or family name.
familiar_name String Locale-dependent name. In the US, a person's familiar name is their given_name, but elsewhere, it could be any combination of a person's given_name and surname.
display_name String A name that can be used directly to represent the name of a user's Dropbox account.
abbreviated_name String An abbreviated form of the person's name. Their initials in most locales.
membership_type TeamMembershipType The user's membership type: full (normal team member) vs limited (does not use a license; no access to the team's shared quota).
TeamMembershipType (union)
The value will be one of the following datatypes:
full Void User uses a license and has full access to team resources like the shared quota.
limited Void User does not have access to the shared quota and team admins have restricted administrative control.
groups List of (String) List of group IDs of groups that the user belongs to.
external_id String? External ID that a team can attach to the user. An application using the API may find it easier to use their own IDs instead of Dropbox IDs like account_id or team_member_id. This field is optional.
account_id String(min_length=40, max_length=40)? A user's account identifier. This field is optional.
joined_on Timestamp(format="%Y-%m-%dT%H:%M:%SZ")? The date and time the user joined as a member of a specific team. This field is optional.
persistent_id String? Persistent ID that a team can attach to the user. The persistent ID is unique ID to be used for SAML authentication. This field is optional.
role AdminTier The user's role in the team.
AdminTier (union)
Describes which team-related admin permissions a user has. The value will be one of the following datatypes:
team_admin Void User is an administrator of the team - has all permissions.
user_management_admin Void User can do most user provisioning, de-provisioning and management.
support_admin Void User can do a limited set of common support tasks for existing users.
member_only Void User is not an admin of the team.
Errors
Example: user_not_found
{
    "error_summary": "user_not_found/...",
    "error": {
        ".tag": "user_not_found"
    }
}
Example: user_not_in_team
{
    "error_summary": "user_not_in_team/...",
    "error": {
        ".tag": "user_not_in_team"
    }
}
Example: external_id_and_new_external_id_unsafe
{
    "error_summary": "external_id_and_new_external_id_unsafe/...",
    "error": {
        ".tag": "external_id_and_new_external_id_unsafe"
    }
}
Example: no_new_data_specified
{
    "error_summary": "no_new_data_specified/...",
    "error": {
        ".tag": "no_new_data_specified"
    }
}
Example: email_reserved_for_other_user
{
    "error_summary": "email_reserved_for_other_user/...",
    "error": {
        ".tag": "email_reserved_for_other_user"
    }
}
Example: external_id_used_by_other_user
{
    "error_summary": "external_id_used_by_other_user/...",
    "error": {
        ".tag": "external_id_used_by_other_user"
    }
}
Example: set_profile_disallowed
{
    "error_summary": "set_profile_disallowed/...",
    "error": {
        ".tag": "set_profile_disallowed"
    }
}
Example: param_cannot_be_empty
{
    "error_summary": "param_cannot_be_empty/...",
    "error": {
        ".tag": "param_cannot_be_empty"
    }
}
Example: persistent_id_disabled
{
    "error_summary": "persistent_id_disabled/...",
    "error": {
        ".tag": "persistent_id_disabled"
    }
}
Example: persistent_id_used_by_other_user
{
    "error_summary": "persistent_id_used_by_other_user/...",
    "error": {
        ".tag": "persistent_id_used_by_other_user"
    }
}
Example: other
{
    "error_summary": "other/...",
    "error": {
        ".tag": "other"
    }
}
MembersSetProfileError (open union)
The value will be one of the following datatypes. New values may be introduced as our API evolves.
user_not_found Void No matching user found. The provided team_member_id, email, or external_id does not exist on this team.
user_not_in_team Void The user is not a member of the team.
external_id_and_new_external_id_unsafe Void It is unsafe to use both external_id and new_external_id
no_new_data_specified Void None of new_email, new_given_name, new_surname, or new_external_id are specified
email_reserved_for_other_user Void Email is already reserved for another user.
external_id_used_by_other_user Void The external ID is already in use by another team member.
set_profile_disallowed Void Pending team member's email cannot be modified.
param_cannot_be_empty Void Parameter new_email cannot be empty.
persistent_id_disabled Void Persistent ID is only available to teams with persistent ID SAML configuration. Please contact Dropbox for more information.
persistent_id_used_by_other_user Void The persistent ID is already in use by another team member.

/members/suspend

Description

Suspend a member from a team.
Permission : Team member management
Exactly one of team_member_id, email, or external_id must be provided to identify the user account.

URL Structure
https://api.dropboxapi.com/2/team/members/suspend
Authentication
Team Authentication
Endpoint format
RPC
Example
Get access token for:
curl -X POST https://api.dropboxapi.com/2/team/members/suspend \
    --header "Authorization: Bearer " \
    --header "Content-Type: application/json" \
    --data "{\"user\": {\".tag\": \"team_member_id\",\"team_member_id\": \"dbmid:efgh5678\"},\"wipe_data\": false}"
Parameters
{
    "user": {
        ".tag": "team_member_id",
        "team_member_id": "dbmid:efgh5678"
    },
    "wipe_data": false
}
MembersDeactivateArg
Exactly one of team_member_id, email, or external_id must be provided to identify the user account.
user UserSelectorArg Identity of user to remove/suspend.
UserSelectorArg (union)
Argument for selecting a single user, either by team_member_id, external_id or email. The value will be one of the following datatypes:
team_member_id String
external_id String(max_length=64)
email String(max_length=255, pattern="^['&A-Za-z0-9._%+-]+@[A-Za-z0-9-][A-Za-z0-9.-]*.[A-Za-z]{2,15}$")
wipe_data Boolean If provided, controls if the user's data will be deleted on their linked devices. The default for this field is True.
Returns

No return values.

Errors
Example: user_not_found
{
    "error_summary": "user_not_found/...",
    "error": {
        ".tag": "user_not_found"
    }
}
Example: user_not_in_team
{
    "error_summary": "user_not_in_team/...",
    "error": {
        ".tag": "user_not_in_team"
    }
}
Example: other
{
    "error_summary": "other/...",
    "error": {
        ".tag": "other"
    }
}
Example: suspend_inactive_user
{
    "error_summary": "suspend_inactive_user/...",
    "error": {
        ".tag": "suspend_inactive_user"
    }
}
Example: suspend_last_admin
{
    "error_summary": "suspend_last_admin/...",
    "error": {
        ".tag": "suspend_last_admin"
    }
}
Example: team_license_limit
{
    "error_summary": "team_license_limit/...",
    "error": {
        ".tag": "team_license_limit"
    }
}
MembersSuspendError (union)
The value will be one of the following datatypes:
user_not_found Void No matching user found. The provided team_member_id, email, or external_id does not exist on this team.
user_not_in_team Void The user is not a member of the team.
suspend_inactive_user Void The user is not active, so it cannot be suspended.
suspend_last_admin Void The user is the last admin of the team, so it cannot be suspended.
team_license_limit Void Team is full. The organization has no available licenses.

/members/unsuspend

Description

Unsuspend a member from a team.
Permission : Team member management
Exactly one of team_member_id, email, or external_id must be provided to identify the user account.

URL Structure
https://api.dropboxapi.com/2/team/members/unsuspend
Authentication
Team Authentication
Endpoint format
RPC
Example
Get access token for:
curl -X POST https://api.dropboxapi.com/2/team/members/unsuspend \
    --header "Authorization: Bearer " \
    --header "Content-Type: application/json" \
    --data "{\"user\": {\".tag\": \"team_member_id\",\"team_member_id\": \"dbmid:efgh5678\"}}"
Parameters
{
    "user": {
        ".tag": "team_member_id",
        "team_member_id": "dbmid:efgh5678"
    }
}
MembersUnsuspendArg
Exactly one of team_member_id, email, or external_id must be provided to identify the user account.
user UserSelectorArg Identity of user to unsuspend.
UserSelectorArg (union)
Argument for selecting a single user, either by team_member_id, external_id or email. The value will be one of the following datatypes:
team_member_id String
external_id String(max_length=64)
email String(max_length=255, pattern="^['&A-Za-z0-9._%+-]+@[A-Za-z0-9-][A-Za-z0-9.-]*.[A-Za-z]{2,15}$")
Returns

No return values.

Errors
Example: user_not_found
{
    "error_summary": "user_not_found/...",
    "error": {
        ".tag": "user_not_found"
    }
}
Example: user_not_in_team
{
    "error_summary": "user_not_in_team/...",
    "error": {
        ".tag": "user_not_in_team"
    }
}
Example: other
{
    "error_summary": "other/...",
    "error": {
        ".tag": "other"
    }
}
Example: unsuspend_non_suspended_member
{
    "error_summary": "unsuspend_non_suspended_member/...",
    "error": {
        ".tag": "unsuspend_non_suspended_member"
    }
}
Example: team_license_limit
{
    "error_summary": "team_license_limit/...",
    "error": {
        ".tag": "team_license_limit"
    }
}
MembersUnsuspendError (union)
The value will be one of the following datatypes:
user_not_found Void No matching user found. The provided team_member_id, email, or external_id does not exist on this team.
user_not_in_team Void The user is not a member of the team.
unsuspend_non_suspended_member Void The user is unsuspended, so it cannot be unsuspended again.
team_license_limit Void Team is full. The organization has no available licenses.

/properties/template/add

PREVIEW - may change or disappear without notice
Description

Add a property template. See route files/properties/add to add properties to a file.

URL Structure
https://api.dropboxapi.com/2/team/properties/template/add
Authentication
Team Authentication
Endpoint format
RPC
Example
Get access token for:
curl -X POST https://api.dropboxapi.com/2/team/properties/template/add \
    --header "Authorization: Bearer " \
    --header "Content-Type: application/json" \
    --data "{\"name\": \"Security\",\"description\": \"These properties describe how confidential this file is.\",\"fields\": [{\"name\": \"Security Policy\",\"description\": \"This is the security policy of the file or folder described.\nPolicies can be Confidential, Public or Internal.\",\"type\": {\".tag\": \"string\"}}]}"
Parameters
{
    "name": "Security",
    "description": "These properties describe how confidential this file is.",
    "fields": [
        {
            "name": "Security Policy",
            "description": "This is the security policy of the file or folder described.\nPolicies can be Confidential, Public or Internal.",
            "type": {
                ".tag": "string"
            }
        }
    ]
}
AddPropertyTemplateArg
Arguments for adding property templates.
name String A display name for the property template. Property template names can be up to 256 bytes.
description String Description for new property template. Property template descriptions can be up to 1024 bytes.
fields List of (PropertyFieldTemplate) This is a list of custom properties associated with a property template. There can be up to 64 properties in a single property template.
PropertyFieldTemplate
Describe a single property field type which that can be part of a property template. This datatype comes from an imported namespace originally defined in the properties namespace.
name String This is the name or key of a custom property in a property template. File property names can be up to 256 bytes.
description String This is the description for a custom property in a property template. File property description can be up to 1024 bytes.
type PropertyType This is the data type of the value of this property. This type will be enforced upon property creation and modifications.
PropertyType (open union)
Data type of the given property added. This endpoint is in beta and only properties of type strings is supported. This datatype comes from an imported namespace originally defined in the properties namespace. The value will be one of the following datatypes. New values may be introduced as our API evolves.
string Void The associated property will be of type string. Unicode is supported.
Returns
{
    "template_id": "ptid:1a5n2i6d3OYEAAAAAAAAAYa"
}
AddPropertyTemplateResult
template_id String(min_length=1, pattern="(/|ptid:).*") An identifier for property template added by properties/template/add.
Errors
Example: restricted_content
{
    "error_summary": "restricted_content/...",
    "error": {
        ".tag": "restricted_content"
    }
}
Example: other
{
    "error_summary": "other/...",
    "error": {
        ".tag": "other"
    }
}
Example: conflicting_property_names
{
    "error_summary": "conflicting_property_names/...",
    "error": {
        ".tag": "conflicting_property_names"
    }
}
Example: too_many_properties
{
    "error_summary": "too_many_properties/...",
    "error": {
        ".tag": "too_many_properties"
    }
}
Example: too_many_templates
{
    "error_summary": "too_many_templates/...",
    "error": {
        ".tag": "too_many_templates"
    }
}
Example: template_attribute_too_large
{
    "error_summary": "template_attribute_too_large/...",
    "error": {
        ".tag": "template_attribute_too_large"
    }
}
ModifyPropertyTemplateError (union)
This datatype comes from an imported namespace originally defined in the properties namespace. The value will be one of the following datatypes:
template_not_found String(min_length=1, pattern="(/|ptid:).*") Property template does not exist for given identifier.
restricted_content Void You do not have the permissions to modify this property template.
conflicting_property_names Void A property field name already exists in the template.
too_many_properties Void There are too many properties in the changed template. The maximum number of properties per template is 32.
too_many_templates Void There are too many templates for the team.
template_attribute_too_large Void The template name, description or field names is too large.

/properties/template/get

PREVIEW - may change or disappear without notice
Description

Get the schema for a specified template.

URL Structure
https://api.dropboxapi.com/2/team/properties/template/get
Authentication
Team Authentication
Endpoint format
RPC
Example
Get access token for:
curl -X POST https://api.dropboxapi.com/2/team/properties/template/get \
    --header "Authorization: Bearer " \
    --header "Content-Type: application/json" \
    --data "{\"template_id\": \"ptid:1a5n2i6d3OYEAAAAAAAAAYa\"}"
Parameters
{
    "template_id": "ptid:1a5n2i6d3OYEAAAAAAAAAYa"
}
GetPropertyTemplateArg
This datatype comes from an imported namespace originally defined in the properties namespace.
template_id String(min_length=1, pattern="(/|ptid:).*") An identifier for property template added by route properties/template/add.
Returns
{
    "name": "Security",
    "description": "These properties describe how confidential this file is.",
    "fields": [
        {
            "name": "Security Policy",
            "description": "This is the security policy of the file or folder described.\nPolicies can be Confidential, Public or Internal.",
            "type": {
                ".tag": "string"
            }
        }
    ]
}
GetPropertyTemplateResult
The Property template for the specified template. This datatype comes from an imported namespace originally defined in the properties namespace.
name String A display name for the property template. Property template names can be up to 256 bytes.
description String Description for new property template. Property template descriptions can be up to 1024 bytes.
fields List of (PropertyFieldTemplate) This is a list of custom properties associated with a property template. There can be up to 64 properties in a single property template.
PropertyFieldTemplate
Describe a single property field type which that can be part of a property template. This datatype comes from an imported namespace originally defined in the properties namespace.
name String This is the name or key of a custom property in a property template. File property names can be up to 256 bytes.
description String This is the description for a custom property in a property template. File property description can be up to 1024 bytes.
type PropertyType This is the data type of the value of this property. This type will be enforced upon property creation and modifications.
PropertyType (open union)
Data type of the given property added. This endpoint is in beta and only properties of type strings is supported. This datatype comes from an imported namespace originally defined in the properties namespace. The value will be one of the following datatypes. New values may be introduced as our API evolves.
string Void The associated property will be of type string. Unicode is supported.
Errors
Example: restricted_content
{
    "error_summary": "restricted_content/...",
    "error": {
        ".tag": "restricted_content"
    }
}
Example: other
{
    "error_summary": "other/...",
    "error": {
        ".tag": "other"
    }
}
PropertyTemplateError (open union)
This datatype comes from an imported namespace originally defined in the properties namespace. The value will be one of the following datatypes. New values may be introduced as our API evolves.
template_not_found String(min_length=1, pattern="(/|ptid:).*") Property template does not exist for given identifier.
restricted_content Void You do not have the permissions to modify this property template.

/properties/template/list

PREVIEW - may change or disappear without notice
Description

Get the property template identifiers for a team. To get the schema of each template use properties/template/get.

URL Structure
https://api.dropboxapi.com/2/team/properties/template/list
Authentication
Team Authentication
Endpoint format
RPC
Example
Get access token for:
curl -X POST https://api.dropboxapi.com/2/team/properties/template/list \
    --header "Authorization: Bearer "
Parameters

No parameters.

Returns
{
    "template_ids": [
        "ptid:1a5n2i6d3OYEAAAAAAAAAYa"
    ]
}
ListPropertyTemplateIds
This datatype comes from an imported namespace originally defined in the properties namespace.
template_ids List of (String(min_length=1, pattern="(/|ptid:).*")) List of identifiers for templates added by route properties/template/add.
Errors
Example: restricted_content
{
    "error_summary": "restricted_content/...",
    "error": {
        ".tag": "restricted_content"
    }
}
Example: other
{
    "error_summary": "other/...",
    "error": {
        ".tag": "other"
    }
}
PropertyTemplateError (open union)
This datatype comes from an imported namespace originally defined in the properties namespace. The value will be one of the following datatypes. New values may be introduced as our API evolves.
template_not_found String(min_length=1, pattern="(/|ptid:).*") Property template does not exist for given identifier.
restricted_content Void You do not have the permissions to modify this property template.

/properties/template/update

PREVIEW - may change or disappear without notice
Description

Update a property template. This route can update the template name, the template description and add optional properties to templates.

URL Structure
https://api.dropboxapi.com/2/team/properties/template/update
Authentication
Team Authentication
Endpoint format
RPC
Example
Get access token for:
curl -X POST https://api.dropboxapi.com/2/team/properties/template/update \
    --header "Authorization: Bearer " \
    --header "Content-Type: application/json" \
    --data "{\"template_id\": \"ptid:1a5n2i6d3OYEAAAAAAAAAYa\",\"name\": \"New Security Template Name\",\"description\": \"These properties will describe how confidential this file is.\",\"add_fields\": [{\"name\": \"Security Policy\",\"description\": \"This is the security policy of the file or folder described.\nPolicies can be Confidential, Public or Internal.\",\"type\": {\".tag\": \"string\"}}]}"
Parameters
{
    "template_id": "ptid:1a5n2i6d3OYEAAAAAAAAAYa",
    "name": "New Security Template Name",
    "description": "These properties will describe how confidential this file is.",
    "add_fields": [
        {
            "name": "Security Policy",
            "description": "This is the security policy of the file or folder described.\nPolicies can be Confidential, Public or Internal.",
            "type": {
                ".tag": "string"
            }
        }
    ]
}
UpdatePropertyTemplateArg
template_id String(min_length=1, pattern="(/|ptid:).*") An identifier for property template added by properties/template/add.
name String? A display name for the property template. Property template names can be up to 256 bytes. This field is optional.
description String? Description for new property template. Property template descriptions can be up to 1024 bytes. This field is optional.
add_fields List of (PropertyFieldTemplate)? This is a list of custom properties to add to the property template. There can be up to 64 properties in a single property template. This field is optional.
PropertyFieldTemplate
Describe a single property field type which that can be part of a property template. This datatype comes from an imported namespace originally defined in the properties namespace.
name String This is the name or key of a custom property in a property template. File property names can be up to 256 bytes.
description String This is the description for a custom property in a property template. File property description can be up to 1024 bytes.
type PropertyType This is the data type of the value of this property. This type will be enforced upon property creation and modifications.
PropertyType (open union)
Data type of the given property added. This endpoint is in beta and only properties of type strings is supported. This datatype comes from an imported namespace originally defined in the properties namespace. The value will be one of the following datatypes. New values may be introduced as our API evolves.
string Void The associated property will be of type string. Unicode is supported.
Returns
{
    "template_id": "ptid:1a5n2i6d3OYEAAAAAAAAAYa"
}
UpdatePropertyTemplateResult
template_id String(min_length=1, pattern="(/|ptid:).*") An identifier for property template added by properties/template/add.
Errors
Example: restricted_content
{
    "error_summary": "restricted_content/...",
    "error": {
        ".tag": "restricted_content"
    }
}
Example: other
{
    "error_summary": "other/...",
    "error": {
        ".tag": "other"
    }
}
Example: conflicting_property_names
{
    "error_summary": "conflicting_property_names/...",
    "error": {
        ".tag": "conflicting_property_names"
    }
}
Example: too_many_properties
{
    "error_summary": "too_many_properties/...",
    "error": {
        ".tag": "too_many_properties"
    }
}
Example: too_many_templates
{
    "error_summary": "too_many_templates/...",
    "error": {
        ".tag": "too_many_templates"
    }
}
Example: template_attribute_too_large
{
    "error_summary": "template_attribute_too_large/...",
    "error": {
        ".tag": "template_attribute_too_large"
    }
}
ModifyPropertyTemplateError (union)
This datatype comes from an imported namespace originally defined in the properties namespace. The value will be one of the following datatypes:
template_not_found String(min_length=1, pattern="(/|ptid:).*") Property template does not exist for given identifier.
restricted_content Void You do not have the permissions to modify this property template.
conflicting_property_names Void A property field name already exists in the template.
too_many_properties Void There are too many properties in the changed template. The maximum number of properties per template is 32.
too_many_templates Void There are too many templates for the team.
template_attribute_too_large Void The template name, description or field names is too large.

/reports/get_activity

Description

Retrieves reporting data about a team's user activity.

URL Structure
https://api.dropboxapi.com/2/team/reports/get_activity
Authentication
Team Authentication
Endpoint format
RPC
Parameters
DateRange
Input arguments that can be provided for most reports.
start_date Timestamp(format="%Y-%m-%d")? Optional starting date (inclusive) This field is optional.
end_date Timestamp(format="%Y-%m-%d")? Optional ending date (exclusive) This field is optional.
Returns
GetActivityReport
Activity Report Result. Each of the items in the storage report is an array of values, one value per day. If there is no data for a day, then the value will be None.
start_date String First date present in the results as 'YYYY-MM-DD' or None.
adds List of (UInt64?) Array of total number of adds by team members. This field is optional.
edits List of (UInt64?) Array of number of edits by team members. If the same user edits the same file multiple times this is counted as a single edit. This field is optional.
deletes List of (UInt64?) Array of total number of deletes by team members. This field is optional.
active_users_28_day List of (UInt64?) Array of the number of users who have been active in the last 28 days. This field is optional.
active_users_7_day List of (UInt64?) Array of the number of users who have been active in the last week. This field is optional.
active_users_1_day List of (UInt64?) Array of the number of users who have been active in the last day. This field is optional.
active_shared_folders_28_day List of (UInt64?) Array of the number of shared folders with some activity in the last 28 days. This field is optional.
active_shared_folders_7_day List of (UInt64?) Array of the number of shared folders with some activity in the last week. This field is optional.
active_shared_folders_1_day List of (UInt64?) Array of the number of shared folders with some activity in the last day. This field is optional.
shared_links_created List of (UInt64?) Array of the number of shared links created. This field is optional.
shared_links_viewed_by_team List of (UInt64?) Array of the number of views by team users to shared links created by the team. This field is optional.
shared_links_viewed_by_outside_user List of (UInt64?) Array of the number of views by users outside of the team to shared links created by the team. This field is optional.
shared_links_viewed_by_not_logged_in List of (UInt64?) Array of the number of views by non-logged-in users to shared links created by the team. This field is optional.
shared_links_viewed_total List of (UInt64?) Array of the total number of views to shared links created by the team. This field is optional.
Errors
{
    "error_summary": "other/...",
    "error": {
        ".tag": "other"
    }
}
DateRangeError (open union)
Errors that can originate from problems in input arguments to reports. The value will be one of the following datatypes. New values may be introduced as our API evolves.

/reports/get_devices

Description

Retrieves reporting data about a team's linked devices.

URL Structure
https://api.dropboxapi.com/2/team/reports/get_devices
Authentication
Team Authentication
Endpoint format
RPC
Parameters
DateRange
Input arguments that can be provided for most reports.
start_date Timestamp(format="%Y-%m-%d")? Optional starting date (inclusive) This field is optional.
end_date Timestamp(format="%Y-%m-%d")? Optional ending date (exclusive) This field is optional.
Returns
GetDevicesReport
Devices Report Result. Contains subsections for different time ranges of activity. Each of the items in each subsection of the storage report is an array of values, one value per day. If there is no data for a day, then the value will be None.
start_date String First date present in the results as 'YYYY-MM-DD' or None.
active_1_day DevicesActive Report of the number of devices active in the last day.
DevicesActive
Each of the items is an array of values, one value per day. The value is the number of devices active within a time window, ending with that day.
If there is no data for a day, then the value will be None.
windows List of (UInt64?) Array of number of linked windows (desktop) clients with activity. This field is optional.
macos List of (UInt64?) Array of number of linked mac (desktop) clients with activity. This field is optional.
linux List of (UInt64?) Array of number of linked linus (desktop) clients with activity. This field is optional.
ios List of (UInt64?) Array of number of linked ios devices with activity. This field is optional.
android List of (UInt64?) Array of number of linked android devices with activity. This field is optional.
other List of (UInt64?) Array of number of other linked devices (blackberry, windows phone, etc) with activity. This field is optional.
total List of (UInt64?) Array of total number of linked clients with activity. This field is optional.
active_7_day DevicesActive Report of the number of devices active in the last 7 days.
DevicesActive
Each of the items is an array of values, one value per day. The value is the number of devices active within a time window, ending with that day.
If there is no data for a day, then the value will be None.
windows List of (UInt64?) Array of number of linked windows (desktop) clients with activity. This field is optional.
macos List of (UInt64?) Array of number of linked mac (desktop) clients with activity. This field is optional.
linux List of (UInt64?) Array of number of linked linus (desktop) clients with activity. This field is optional.
ios List of (UInt64?) Array of number of linked ios devices with activity. This field is optional.
android List of (UInt64?) Array of number of linked android devices with activity. This field is optional.
other List of (UInt64?) Array of number of other linked devices (blackberry, windows phone, etc) with activity. This field is optional.
total List of (UInt64?) Array of total number of linked clients with activity. This field is optional.
active_28_day DevicesActive Report of the number of devices active in the last 28 days.
DevicesActive
Each of the items is an array of values, one value per day. The value is the number of devices active within a time window, ending with that day.
If there is no data for a day, then the value will be None.
windows List of (UInt64?) Array of number of linked windows (desktop) clients with activity. This field is optional.
macos List of (UInt64?) Array of number of linked mac (desktop) clients with activity. This field is optional.
linux List of (UInt64?) Array of number of linked linus (desktop) clients with activity. This field is optional.
ios List of (UInt64?) Array of number of linked ios devices with activity. This field is optional.
android List of (UInt64?) Array of number of linked android devices with activity. This field is optional.
other List of (UInt64?) Array of number of other linked devices (blackberry, windows phone, etc) with activity. This field is optional.
total List of (UInt64?) Array of total number of linked clients with activity. This field is optional.
Errors
{
    "error_summary": "other/...",
    "error": {
        ".tag": "other"
    }
}
DateRangeError (open union)
Errors that can originate from problems in input arguments to reports. The value will be one of the following datatypes. New values may be introduced as our API evolves.

/reports/get_membership

Description

Retrieves reporting data about a team's membership.

URL Structure
https://api.dropboxapi.com/2/team/reports/get_membership
Authentication
Team Authentication
Endpoint format
RPC
Parameters
DateRange
Input arguments that can be provided for most reports.
start_date Timestamp(format="%Y-%m-%d")? Optional starting date (inclusive) This field is optional.
end_date Timestamp(format="%Y-%m-%d")? Optional ending date (exclusive) This field is optional.
Returns
GetMembershipReport
Membership Report Result. Each of the items in the storage report is an array of values, one value per day. If there is no data for a day, then the value will be None.
start_date String First date present in the results as 'YYYY-MM-DD' or None.
team_size List of (UInt64?) Team size, for each day. This field is optional.
pending_invites List of (UInt64?) The number of pending invites to the team, for each day. This field is optional.
members_joined List of (UInt64?) The number of members that joined the team, for each day. This field is optional.
suspended_members List of (UInt64?) The number of suspended team members, for each day. This field is optional.
licenses List of (UInt64?) The total number of licenses the team has, for each day. This field is optional.
Errors
{
    "error_summary": "other/...",
    "error": {
        ".tag": "other"
    }
}
DateRangeError (open union)
Errors that can originate from problems in input arguments to reports. The value will be one of the following datatypes. New values may be introduced as our API evolves.

/reports/get_storage

Description

Retrieves reporting data about a team's storage usage.

URL Structure
https://api.dropboxapi.com/2/team/reports/get_storage
Authentication
Team Authentication
Endpoint format
RPC
Parameters
DateRange
Input arguments that can be provided for most reports.
start_date Timestamp(format="%Y-%m-%d")? Optional starting date (inclusive) This field is optional.
end_date Timestamp(format="%Y-%m-%d")? Optional ending date (exclusive) This field is optional.
Returns
GetStorageReport
Storage Report Result. Each of the items in the storage report is an array of values, one value per day. If there is no data for a day, then the value will be None.
start_date String First date present in the results as 'YYYY-MM-DD' or None.
total_usage List of (UInt64?) Sum of the shared, unshared, and datastore usages, for each day. This field is optional.
shared_usage List of (UInt64?) Array of the combined size (bytes) of team members' shared folders, for each day. This field is optional.
unshared_usage List of (UInt64?) Array of the combined size (bytes) of team members' root namespaces, for each day. This field is optional.
shared_folders List of (UInt64?) Array of the number of shared folders owned by team members, for each day. This field is optional.
member_storage_map List of (List of (StorageBucket)) Array of storage summaries of team members' account sizes. Each storage summary is an array of key, value pairs, where each pair describes a storage bucket. The key indicates the upper bound of the bucket and the value is the number of users in that bucket. There is one such summary per day. If there is no data for a day, the storage summary will be empty.
StorageBucket
Describes the number of users in a specific storage bucket.
bucket String The name of the storage bucket. For example, '1G' is a bucket of users with storage size up to 1 Giga.
users UInt64 The number of people whose storage is in the range of this storage bucket.
Errors
{
    "error_summary": "other/...",
    "error": {
        ".tag": "other"
    }
}
DateRangeError (open union)
Errors that can originate from problems in input arguments to reports. The value will be one of the following datatypes. New values may be introduced as our API evolves.

/team_folder/activate

Description

Sets an archived team folder's status to active.
Permission : Team member file access.

URL Structure
https://api.dropboxapi.com/2/team/team_folder/activate
Authentication
Team Authentication
Endpoint format
RPC
Example
Get access token for:
curl -X POST https://api.dropboxapi.com/2/team/team_folder/activate \
    --header "Authorization: Bearer " \
    --header "Content-Type: application/json" \
    --data "{\"team_folder_id\": \"123456789\"}"
Parameters
{
    "team_folder_id": "123456789"
}
TeamFolderIdArg
team_folder_id String(pattern="[-_0-9a-zA-Z:]+") The ID of the team folder.
Returns
{
    "team_folder_id": "123456789",
    "name": "Marketing",
    "status": {
        ".tag": "active"
    }
}
TeamFolderMetadata
Properties of a team folder.
team_folder_id String(pattern="[-_0-9a-zA-Z:]+") The ID of the team folder.
name String The name of the team folder.
status TeamFolderStatus The status of the team folder.
TeamFolderStatus (open union)
The value will be one of the following datatypes. New values may be introduced as our API evolves.
active Void The team folder and sub-folders are available to all members.
archived Void The team folder is not accessible outside of the team folder manager.
archive_in_progress Void The team folder is not accessible outside of the team folder manager.
Errors
{
    "error_summary": "other/...",
    "error": {
        ".tag": "other"
    }
}
TeamFolderActivateError (union)
The value will be one of the following datatypes:
access_error TeamFolderAccessError
TeamFolderAccessError (open union)
The value will be one of the following datatypes. New values may be introduced as our API evolves.
invalid_team_folder_id Void The team folder ID is invalid.
no_access Void The authenticated app does not have permission to manage that team folder.
status_error TeamFolderInvalidStatusError
TeamFolderInvalidStatusError (open union)
The value will be one of the following datatypes. New values may be introduced as our API evolves.
active Void The folder is active and the operation did not succeed.
archived Void The folder is archived and the operation did not succeed.
archive_in_progress Void The folder is being archived and the operation did not succeed.

/team_folder/archive

Description

Sets an active team folder's status to archived and removes all folder and file members.
Permission : Team member file access.

URL Structure
https://api.dropboxapi.com/2/team/team_folder/archive
Authentication
Team Authentication
Endpoint format
RPC
Example
Get access token for:
curl -X POST https://api.dropboxapi.com/2/team/team_folder/archive \
    --header "Authorization: Bearer " \
    --header "Content-Type: application/json" \
    --data "{\"team_folder_id\": \"123456789\",\"force_async_off\": false}"
Parameters
{
    "team_folder_id": "123456789",
    "force_async_off": false
}
TeamFolderArchiveArg
team_folder_id String(pattern="[-_0-9a-zA-Z:]+") The ID of the team folder.
force_async_off Boolean Whether to force the archive to happen synchronously. The default for this field is False.
Returns
{
    ".tag": "complete",
    "team_folder_id": "123456789",
    "name": "Marketing",
    "status": {
        ".tag": "active"
    }
}
TeamFolderArchiveLaunch (union)
The value will be one of the following datatypes:
async_job_id String(min_length=1) This response indicates that the processing is asynchronous. The string is an id that can be used to obtain the status of the asynchronous job.
complete TeamFolderMetadata
TeamFolderMetadata
Properties of a team folder.
team_folder_id String(pattern="[-_0-9a-zA-Z:]+") The ID of the team folder.
name String The name of the team folder.
status TeamFolderStatus The status of the team folder.
TeamFolderStatus (open union)
The value will be one of the following datatypes. New values may be introduced as our API evolves.
active Void The team folder and sub-folders are available to all members.
archived Void The team folder is not accessible outside of the team folder manager.
archive_in_progress Void The team folder is not accessible outside of the team folder manager.
Errors
{
    "error_summary": "other/...",
    "error": {
        ".tag": "other"
    }
}
TeamFolderArchiveError (union)
The value will be one of the following datatypes:
access_error TeamFolderAccessError
TeamFolderAccessError (open union)
The value will be one of the following datatypes. New values may be introduced as our API evolves.
invalid_team_folder_id Void The team folder ID is invalid.
no_access Void The authenticated app does not have permission to manage that team folder.
status_error TeamFolderInvalidStatusError
TeamFolderInvalidStatusError (open union)
The value will be one of the following datatypes. New values may be introduced as our API evolves.
active Void The folder is active and the operation did not succeed.
archived Void The folder is archived and the operation did not succeed.
archive_in_progress Void The folder is being archived and the operation did not succeed.

/team_folder/archive/check

Description

Returns the status of an asynchronous job for archiving a team folder.
Permission : Team member file access.

URL Structure
https://api.dropboxapi.com/2/team/team_folder/archive/check
Authentication
Team Authentication
Endpoint format
RPC
Example
Get access token for:
curl -X POST https://api.dropboxapi.com/2/team/team_folder/archive/check \
    --header "Authorization: Bearer " \
    --header "Content-Type: application/json" \
    --data "{\"async_job_id\": \"34g93hh34h04y384084\"}"
Parameters
{
    "async_job_id": "34g93hh34h04y384084"
}
PollArg
Arguments for methods that poll the status of an asynchronous job. This datatype comes from an imported namespace originally defined in the async namespace.
async_job_id String(min_length=1) Id of the asynchronous job. This is the value of a response returned from the method that launched the job.
Returns
{
    ".tag": "complete",
    "team_folder_id": "123456789",
    "name": "Marketing",
    "status": {
        ".tag": "active"
    }
}
Example: in_progress
{
    ".tag": "in_progress"
}
TeamFolderArchiveJobStatus (union)
The value will be one of the following datatypes:
in_progress Void The asynchronous job is still in progress.
complete TeamFolderMetadata The archive job has finished. The value is the metadata for the resulting team folder.
TeamFolderMetadata
Properties of a team folder.
team_folder_id String(pattern="[-_0-9a-zA-Z:]+") The ID of the team folder.
name String The name of the team folder.
status TeamFolderStatus The status of the team folder.
TeamFolderStatus (open union)
The value will be one of the following datatypes. New values may be introduced as our API evolves.
active Void The team folder and sub-folders are available to all members.
archived Void The team folder is not accessible outside of the team folder manager.
archive_in_progress Void The team folder is not accessible outside of the team folder manager.
failed TeamFolderArchiveError Error occurred while performing an asynchronous job from team_folder/archive.
TeamFolderArchiveError (union)
The value will be one of the following datatypes:
access_error TeamFolderAccessError
TeamFolderAccessError (open union)
The value will be one of the following datatypes. New values may be introduced as our API evolves.
invalid_team_folder_id Void The team folder ID is invalid.
no_access Void The authenticated app does not have permission to manage that team folder.
status_error TeamFolderInvalidStatusError
TeamFolderInvalidStatusError (open union)
The value will be one of the following datatypes. New values may be introduced as our API evolves.
active Void The folder is active and the operation did not succeed.
archived Void The folder is archived and the operation did not succeed.
archive_in_progress Void The folder is being archived and the operation did not succeed.
Errors
Example: invalid_async_job_id
{
    "error_summary": "invalid_async_job_id/...",
    "error": {
        ".tag": "invalid_async_job_id"
    }
}
Example: internal_error
{
    "error_summary": "internal_error/...",
    "error": {
        ".tag": "internal_error"
    }
}
Example: other
{
    "error_summary": "other/...",
    "error": {
        ".tag": "other"
    }
}
PollError (open union)
Error returned by methods for polling the status of asynchronous job. This datatype comes from an imported namespace originally defined in the async namespace. The value will be one of the following datatypes. New values may be introduced as our API evolves.
invalid_async_job_id Void The job ID is invalid.
internal_error Void Something went wrong with the job on Dropbox's end. You'll need to verify that the action you were taking succeeded, and if not, try again. This should happen very rarely.

/team_folder/create

Description

Creates a new, active, team folder.
Permission : Team member file access.

URL Structure
https://api.dropboxapi.com/2/team/team_folder/create
Authentication
Team Authentication
Endpoint format
RPC
Example
Get access token for:
curl -X POST https://api.dropboxapi.com/2/team/team_folder/create \
    --header "Authorization: Bearer " \
    --header "Content-Type: application/json" \
    --data "{\"name\": \"Marketing\"}"
Parameters
{
    "name": "Marketing"
}
TeamFolderCreateArg
name String Name for the new team folder.
Returns
{
    "team_folder_id": "123456789",
    "name": "Marketing",
    "status": {
        ".tag": "active"
    }
}
TeamFolderMetadata
Properties of a team folder.
team_folder_id String(pattern="[-_0-9a-zA-Z:]+") The ID of the team folder.
name String The name of the team folder.
status TeamFolderStatus The status of the team folder.
TeamFolderStatus (open union)
The value will be one of the following datatypes. New values may be introduced as our API evolves.
active Void The team folder and sub-folders are available to all members.
archived Void The team folder is not accessible outside of the team folder manager.
archive_in_progress Void The team folder is not accessible outside of the team folder manager.
Errors
Example: invalid_folder_name
{
    "error_summary": "invalid_folder_name/...",
    "error": {
        ".tag": "invalid_folder_name"
    }
}
Example: folder_name_already_used
{
    "error_summary": "folder_name_already_used/...",
    "error": {
        ".tag": "folder_name_already_used"
    }
}
Example: folder_name_reserved
{
    "error_summary": "folder_name_reserved/...",
    "error": {
        ".tag": "folder_name_reserved"
    }
}
Example: other
{
    "error_summary": "other/...",
    "error": {
        ".tag": "other"
    }
}
TeamFolderCreateError (open union)
The value will be one of the following datatypes. New values may be introduced as our API evolves.
invalid_folder_name Void The provided name cannot be used.
folder_name_already_used Void There is already a team folder with the provided name.
folder_name_reserved Void The provided name cannot be used because it is reserved.

/team_folder/get_info

Description

Retrieves metadata for team folders.
Permission : Team member file access.

URL Structure
https://api.dropboxapi.com/2/team/team_folder/get_info
Authentication
Team Authentication
Endpoint format
RPC
Example
Get access token for:
curl -X POST https://api.dropboxapi.com/2/team/team_folder/get_info \
    --header "Authorization: Bearer " \
    --header "Content-Type: application/json" \
    --data "{\"team_folder_ids\": [\"947182\",\"5819424\",\"852307532\"]}"
Parameters
{
    "team_folder_ids": [
        "947182",
        "5819424",
        "852307532"
    ]
}
TeamFolderIdListArg
team_folder_ids List of (String(pattern="[-_0-9a-zA-Z:]+"), min_items=1) The list of team folder IDs.
Returns
This route returns a list. This means the route can accept a homogenous list of the following types:
TeamFolderGetInfoItem (union)
The value will be one of the following datatypes:
id_not_found String An ID that was provided as a parameter to team_folder/get_info did not match any of the team's team folders.
team_folder_metadata TeamFolderMetadata Properties of a team folder.
TeamFolderMetadata
Properties of a team folder.
team_folder_id String(pattern="[-_0-9a-zA-Z:]+") The ID of the team folder.
name String The name of the team folder.
status TeamFolderStatus The status of the team folder.
TeamFolderStatus (open union)
The value will be one of the following datatypes. New values may be introduced as our API evolves.
active Void The team folder and sub-folders are available to all members.
archived Void The team folder is not accessible outside of the team folder manager.
archive_in_progress Void The team folder is not accessible outside of the team folder manager.
Errors

No errors.

/team_folder/list

Description

Lists all team folders.
Permission : Team member file access.

URL Structure
https://api.dropboxapi.com/2/team/team_folder/list
Authentication
Team Authentication
Endpoint format
RPC
Example
Get access token for:
curl -X POST https://api.dropboxapi.com/2/team/team_folder/list \
    --header "Authorization: Bearer " \
    --header "Content-Type: application/json" \
    --data "{\"limit\": 100}"
Parameters
{
    "limit": 100
}
TeamFolderListArg
limit UInt32 The maximum number of results to return per request. The default for this field is 1000.
Returns
{
    "team_folders": [
        {
            "team_folder_id": "123456789",
            "name": "Marketing",
            "status": {
                ".tag": "active"
            }
        }
    ]
}
TeamFolderListResult
Result for team_folder/list.
team_folders List of (TeamFolderMetadata) List of all team folders in the authenticated team.
TeamFolderMetadata
Properties of a team folder.
team_folder_id String(pattern="[-_0-9a-zA-Z:]+") The ID of the team folder.
name String The name of the team folder.
status TeamFolderStatus The status of the team folder.
TeamFolderStatus (open union)
The value will be one of the following datatypes. New values may be introduced as our API evolves.
active Void The team folder and sub-folders are available to all members.
archived Void The team folder is not accessible outside of the team folder manager.
archive_in_progress Void The team folder is not accessible outside of the team folder manager.
Errors
TeamFolderListError
access_error TeamFolderAccessError
TeamFolderAccessError (open union)
The value will be one of the following datatypes. New values may be introduced as our API evolves.
invalid_team_folder_id Void The team folder ID is invalid.
no_access Void The authenticated app does not have permission to manage that team folder.

/team_folder/permanently_delete

Description

Permanently deletes an archived team folder.
Permission : Team member file access.

URL Structure
https://api.dropboxapi.com/2/team/team_folder/permanently_delete
Authentication
Team Authentication
Endpoint format
RPC
Example
Get access token for:
curl -X POST https://api.dropboxapi.com/2/team/team_folder/permanently_delete \
    --header "Authorization: Bearer " \
    --header "Content-Type: application/json" \
    --data "{\"team_folder_id\": \"123456789\"}"
Parameters
{
    "team_folder_id": "123456789"
}
TeamFolderIdArg
team_folder_id String(pattern="[-_0-9a-zA-Z:]+") The ID of the team folder.
Returns

No return values.

Errors
{
    "error_summary": "other/...",
    "error": {
        ".tag": "other"
    }
}
TeamFolderPermanentlyDeleteError (union)
The value will be one of the following datatypes:
access_error TeamFolderAccessError
TeamFolderAccessError (open union)
The value will be one of the following datatypes. New values may be introduced as our API evolves.
invalid_team_folder_id Void The team folder ID is invalid.
no_access Void The authenticated app does not have permission to manage that team folder.
status_error TeamFolderInvalidStatusError
TeamFolderInvalidStatusError (open union)
The value will be one of the following datatypes. New values may be introduced as our API evolves.
active Void The folder is active and the operation did not succeed.
archived Void The folder is archived and the operation did not succeed.
archive_in_progress Void The folder is being archived and the operation did not succeed.

/team_folder/rename

Description

Changes an active team folder's name.
Permission : Team member file access.

URL Structure
https://api.dropboxapi.com/2/team/team_folder/rename
Authentication
Team Authentication
Endpoint format
RPC
Example
Get access token for:
curl -X POST https://api.dropboxapi.com/2/team/team_folder/rename \
    --header "Authorization: Bearer " \
    --header "Content-Type: application/json" \
    --data "{\"team_folder_id\": \"123456789\",\"name\": \"Sales\"}"
Parameters
{
    "team_folder_id": "123456789",
    "name": "Sales"
}
TeamFolderRenameArg
team_folder_id String(pattern="[-_0-9a-zA-Z:]+") The ID of the team folder.
name String New team folder name.
Returns
{
    "team_folder_id": "123456789",
    "name": "Marketing",
    "status": {
        ".tag": "active"
    }
}
TeamFolderMetadata
Properties of a team folder.
team_folder_id String(pattern="[-_0-9a-zA-Z:]+") The ID of the team folder.
name String The name of the team folder.
status TeamFolderStatus The status of the team folder.
TeamFolderStatus (open union)
The value will be one of the following datatypes. New values may be introduced as our API evolves.
active Void The team folder and sub-folders are available to all members.
archived Void The team folder is not accessible outside of the team folder manager.
archive_in_progress Void The team folder is not accessible outside of the team folder manager.
Errors
Example: other
{
    "error_summary": "other/...",
    "error": {
        ".tag": "other"
    }
}
Example: invalid_folder_name
{
    "error_summary": "invalid_folder_name/...",
    "error": {
        ".tag": "invalid_folder_name"
    }
}
Example: folder_name_already_used
{
    "error_summary": "folder_name_already_used/...",
    "error": {
        ".tag": "folder_name_already_used"
    }
}
Example: folder_name_reserved
{
    "error_summary": "folder_name_reserved/...",
    "error": {
        ".tag": "folder_name_reserved"
    }
}
TeamFolderRenameError (union)
The value will be one of the following datatypes:
access_error TeamFolderAccessError
TeamFolderAccessError (open union)
The value will be one of the following datatypes. New values may be introduced as our API evolves.
invalid_team_folder_id Void The team folder ID is invalid.
no_access Void The authenticated app does not have permission to manage that team folder.
status_error TeamFolderInvalidStatusError
TeamFolderInvalidStatusError (open union)
The value will be one of the following datatypes. New values may be introduced as our API evolves.
active Void The folder is active and the operation did not succeed.
archived Void The folder is archived and the operation did not succeed.
archive_in_progress Void The folder is being archived and the operation did not succeed.
invalid_folder_name Void The provided folder name cannot be used.
folder_name_already_used Void There is already a team folder with the same name.
folder_name_reserved Void The provided name cannot be used because it is reserved.

/token/get_authenticated_admin

Description

Returns the member profile of the admin who generated the team access token used to make the call.

URL Structure
https://api.dropboxapi.com/2/team/token/get_authenticated_admin
Authentication
Team Authentication
Endpoint format
RPC
Example
Get access token for:
curl -X POST https://api.dropboxapi.com/2/team/token/get_authenticated_admin \
    --header "Authorization: Bearer "
Parameters

No parameters.

Returns
{
    "admin_profile": {
        "team_member_id": "dbmid:FDFSVF-DFSDF",
        "email": "tami@seagull.com",
        "email_verified": false,
        "status": {
            ".tag": "active"
        },
        "name": {
            "given_name": "Franz",
            "surname": "Ferdinand",
            "familiar_name": "Franz",
            "display_name": "Franz Ferdinand (Personal)",
            "abbreviated_name": "FF"
        },
        "membership_type": {
            ".tag": "full"
        },
        "groups": [
            "g:e2db7665347abcd600000000001a2b3c"
        ],
        "external_id": "244423",
        "account_id": "dbid:AAH4f99T0taONIb-OurWxbNQ6ywGRopQngc",
        "joined_on": "2015-05-12T15:50:38Z"
    }
}
TokenGetAuthenticatedAdminResult
Results for token/get_authenticated_admin.
admin_profile TeamMemberProfile The admin who authorized the token.
TeamMemberProfile
Profile of a user as a member of a team.
team_member_id String ID of user as a member of a team.
email String Email address of user.
email_verified Boolean Is true if the user's email is verified to be owned by the user.
status TeamMemberStatus The user's status as a member of a specific team.
TeamMemberStatus (union)
The user's status as a member of a specific team. The value will be one of the following datatypes:
active Void User has successfully joined the team.
invited Void User has been invited to a team, but has not joined the team yet.
suspended Void User is no longer a member of the team, but the account can be un-suspended, re-establishing the user as a team member.
removed RemovedStatus User is no longer a member of the team. Removed users are only listed when include_removed is true in members/list.
RemovedStatus
is_recoverable Boolean True if the removed team member is recoverable.
name Name Representations for a person's name.
Name
Representations for a person's name to assist with internationalization. This datatype comes from an imported namespace originally defined in the users namespace.
given_name String Also known as a first name.
surname String Also known as a last name or family name.
familiar_name String Locale-dependent name. In the US, a person's familiar name is their given_name, but elsewhere, it could be any combination of a person's given_name and surname.
display_name String A name that can be used directly to represent the name of a user's Dropbox account.
abbreviated_name String An abbreviated form of the person's name. Their initials in most locales.
membership_type TeamMembershipType The user's membership type: full (normal team member) vs limited (does not use a license; no access to the team's shared quota).
TeamMembershipType (union)
The value will be one of the following datatypes:
full Void User uses a license and has full access to team resources like the shared quota.
limited Void User does not have access to the shared quota and team admins have restricted administrative control.
groups List of (String) List of group IDs of groups that the user belongs to.
external_id String? External ID that a team can attach to the user. An application using the API may find it easier to use their own IDs instead of Dropbox IDs like account_id or team_member_id. This field is optional.
account_id String(min_length=40, max_length=40)? A user's account identifier. This field is optional.
joined_on Timestamp(format="%Y-%m-%dT%H:%M:%SZ")? The date and time the user joined as a member of a specific team. This field is optional.
persistent_id String? Persistent ID that a team can attach to the user. The persistent ID is unique ID to be used for SAML authentication. This field is optional.
Errors
Example: mapping_not_found
{
    "error_summary": "mapping_not_found/...",
    "error": {
        ".tag": "mapping_not_found"
    }
}
Example: admin_not_active
{
    "error_summary": "admin_not_active/...",
    "error": {
        ".tag": "admin_not_active"
    }
}
Example: other
{
    "error_summary": "other/...",
    "error": {
        ".tag": "other"
    }
}
TokenGetAuthenticatedAdminError (open union)
Error returned by token/get_authenticated_admin. The value will be one of the following datatypes. New values may be introduced as our API evolves.
mapping_not_found Void The current token is not associated with a team admin, because mappings were not recorded when the token was created. Consider re-authorizing a new access token to record its authenticating admin.
admin_not_active Void Either the team admin that authorized this token is no longer an active member of the team or no longer a team admin.