Dropbox for HTTP Developers

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.

Permissions

Scopes

Scopes control the level of access your app has into user and team data. After creating your app in the App Console, you can select your apps scopes on the Permissions tab. You can read more about scopes in the OAuth Guide.

Access types

[For new apps, we recommend using scopes.]

There are four different access types of Dropbox Business API permissions.

  • 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.

Testing your application

To test an app that calls the Dropbox Business API endpoints, you can request a free Dropbox Business Development Account here. This will allow you to test your app using a standard Dropbox Business team. Development accounts are granted on a by-request basis and are contingent on additional terms and conditions outlined in the request form.

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 may make calls to the Dropbox User API for any member of the Dropbox Business team, per the Permissions section above. Legacy apps must have Team member file access permissions while scoped apps must have the team_data.member scope selected. Read the DBX Team Files Guide for an in-depth overview of working with team member files.

To make calls on a member's behalf, pass a Dropbox-API-Select-User HTTP header with the team_member_id to act as a specific member.

Some User API endpoints also support the Dropbox-API-Select-Admin header, which enables executing user calls as an admin, enabling simple viewing or modification of team-owned content.

Read more about these headers in our Authentication Types Guide.

Note that some Dropbox Business teams use the Team Space. Accessing its contents requires passing the Dropbox-API-Path-Root header to calls to the Dropbox User API. Read more about this in the Path Root Header Modes Guide.

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

Two types of apps 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.

  • Apps with the Team member file access permission
  • Scoped apps whose link to the team contains team_data.member and files.metadata.read scope. See more info about OAuth 2 scopes here.

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

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

There are also two types of apps that are eligible for team change notifications

  • Apps with Team member management or Team member file access permissions will receive webhook notifications for changes to the team membership.
  • Scoped apps whose link to the team contains members.read scope. See more info about OAuth 2 scopes here.

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",
        ...
      ]
    },
    ...
  ]
}

file_properties

This namespace contains helpers for property and template metadata endpoints. These endpoints enable you to tag arbitrary key/value data to Dropbox files. The most basic unit in this namespace is the :type:`PropertyField`. These fields encapsulate the actual key/value data. Fields are added to a Dropbox file using a :type:`PropertyGroup`. Property groups contain a reference to a Dropbox file and a :type:`PropertyGroupTemplate`. Property groups are uniquely identified by the combination of their associated Dropbox file and template. The :type:`PropertyGroupTemplate` is a way of restricting the possible key names and value types of the data within a property group. The possible key names and value types are explicitly enumerated using :type:`PropertyFieldTemplate` objects. You can think of a property group template as a class definition for a particular key/value metadata object, and the property groups themselves as the instantiations of these objects. Templates are owned either by a user/app pair or team/app pair. Templates and their associated properties can't be accessed by any app other than the app that created them, and even then, only when the app is linked with the owner of the template (either a user or team). User-owned templates are accessed via the user-auth file_properties/templates/*_for_user endpoints, while team-owned templates are accessed via the team-auth file_properties/templates/*_for_team endpoints. Properties associated with either type of template can be accessed via the user-auth properties/* endpoints. Finally, properties can be accessed from a number of endpoints that return metadata, including `files/get_metadata`, and `files/list_folder`. Properties can also be added during upload, using `files/upload`.

/templates/add_for_team


Description

Add a template associated with a team. See properties/add to add properties to a file or folder. Note: this endpoint will create team-owned templates.

URL Structure
https://api.dropboxapi.com/2/file_properties/templates/add_for_team
Authentication
Team Authentication
Endpoint format
RPC
Required Scope
files.team_metadata.write
Example
Get access token for:
curl -X POST https://api.dropboxapi.com/2/file_properties/templates/add_for_team \
    --header "Authorization: Bearer <get access token>" \
    --header "Content-Type: application/json" \
    --data "{\"description\":\"These properties describe how confidential this file or folder is.\",\"fields\":[{\"description\":\"This is the security policy of the file or folder described.\nPolicies can be Confidential, Public or Internal.\",\"name\":\"Security Policy\",\"type\":\"string\"}],\"name\":\"Security\"}"
Parameters
{
    "description": "These properties describe how confidential this file or folder is.",
    "fields": [
        {
            "description": "This is the security policy of the file or folder described.\nPolicies can be Confidential, Public or Internal.",
            "name": "Security Policy",
            "type": "string"
        }
    ],
    "name": "Security"
}
AddTemplateArg
nameStringDisplay name for the template. Template names can be up to 256 bytes.
descriptionStringDescription for the template. Template descriptions can be up to 1024 bytes.
fieldsList of ()Definitions of the property fields associated with this template. There can be up to 32 properties in a single template.
Returns
{
    "template_id": "ptid:1a5n2i6d3OYEAAAAAAAAAYa"
}
AddTemplateResult
template_idString(min_length=1, pattern="(/|ptid:).*")An identifier for template added by See templates/add_for_user or templates/add_for_team.
Errors
Example: restricted_content
{
    "error": {
        ".tag": "restricted_content"
    },
    "error_summary": "restricted_content/..."
}
Example: other
{
    "error": {
        ".tag": "other"
    },
    "error_summary": "other/..."
}
Example: conflicting_property_names
{
    "error": {
        ".tag": "conflicting_property_names"
    },
    "error_summary": "conflicting_property_names/..."
}
Example: too_many_properties
{
    "error": {
        ".tag": "too_many_properties"
    },
    "error_summary": "too_many_properties/..."
}
Example: too_many_templates
{
    "error": {
        ".tag": "too_many_templates"
    },
    "error_summary": "too_many_templates/..."
}
Example: template_attribute_too_large
{
    "error": {
        ".tag": "template_attribute_too_large"
    },
    "error_summary": "template_attribute_too_large/..."
}
ModifyTemplateError (union)
template_not_foundString(min_length=1, pattern="(/|ptid:).*")Template does not exist for the given identifier.
restricted_contentVoidYou do not have permission to modify this template.
conflicting_property_namesVoidA property field key with that name already exists in the template.
too_many_propertiesVoidThere are too many properties in the changed template. The maximum number of properties per template is 32.
too_many_templatesVoidThere are too many templates for the team.
template_attribute_too_largeVoidThe template name, description or one or more of the property field keys is too large.
See also general errors.

/templates/get_for_team


Description

Get the schema for a specified template.

URL Structure
https://api.dropboxapi.com/2/file_properties/templates/get_for_team
Authentication
Team Authentication
Endpoint format
RPC
Required Scope
files.team_metadata.write
Example
Get access token for:
curl -X POST https://api.dropboxapi.com/2/file_properties/templates/get_for_team \
    --header "Authorization: Bearer <get access token>" \
    --header "Content-Type: application/json" \
    --data "{\"template_id\":\"ptid:1a5n2i6d3OYEAAAAAAAAAYa\"}"
Parameters
{
    "template_id": "ptid:1a5n2i6d3OYEAAAAAAAAAYa"
}
GetTemplateArg
template_idString(min_length=1, pattern="(/|ptid:).*")An identifier for template added by route See templates/add_for_user or templates/add_for_team.
Returns
{
    "description": "These properties describe how confidential this file or folder is.",
    "fields": [
        {
            "description": "This is the security policy of the file or folder described.\nPolicies can be Confidential, Public or Internal.",
            "name": "Security Policy",
            "type": {
                ".tag": "string"
            }
        }
    ],
    "name": "Security"
}
GetTemplateResult
nameStringDisplay name for the template. Template names can be up to 256 bytes.
descriptionStringDescription for the template. Template descriptions can be up to 1024 bytes.
fieldsList of ()Definitions of the property fields associated with this template. There can be up to 32 properties in a single template.
Errors
Example: restricted_content
{
    "error": {
        ".tag": "restricted_content"
    },
    "error_summary": "restricted_content/..."
}
Example: other
{
    "error": {
        ".tag": "other"
    },
    "error_summary": "other/..."
}
TemplateError (open union)
template_not_foundString(min_length=1, pattern="(/|ptid:).*")Template does not exist for the given identifier.
restricted_contentVoidYou do not have permission to modify this template.
See also general errors.

/templates/list_for_team


Description

Get the template identifiers for a team. To get the schema of each template use templates/get_for_team.

URL Structure
https://api.dropboxapi.com/2/file_properties/templates/list_for_team
Authentication
Team Authentication
Endpoint format
RPC
Required Scope
files.team_metadata.write
Example
Get access token for:
curl -X POST https://api.dropboxapi.com/2/file_properties/templates/list_for_team \
    --header "Authorization: Bearer <get access token>"
Parameters
No parameters.
Returns
{
    "template_ids": [
        "ptid:1a5n2i6d3OYEAAAAAAAAAYa"
    ]
}
ListTemplateResult
template_ids List of (String(min_length=1, pattern="(/|ptid:).*"))List of identifiers for templates added by See templates/add_for_user or templates/add_for_team.
Errors
Example: restricted_content
{
    "error": {
        ".tag": "restricted_content"
    },
    "error_summary": "restricted_content/..."
}
Example: other
{
    "error": {
        ".tag": "other"
    },
    "error_summary": "other/..."
}
TemplateError (open union)
template_not_foundString(min_length=1, pattern="(/|ptid:).*")Template does not exist for the given identifier.
restricted_contentVoidYou do not have permission to modify this template.
See also general errors.

/templates/remove_for_team


Description

Permanently removes the specified template created from templates/add_for_user. All properties associated with the template will also be removed. This action cannot be undone.

URL Structure
https://api.dropboxapi.com/2/file_properties/templates/remove_for_team
Authentication
Team Authentication
Endpoint format
RPC
Required Scope
files.team_metadata.write
Example
Get access token for:
curl -X POST https://api.dropboxapi.com/2/file_properties/templates/remove_for_team \
    --header "Authorization: Bearer <get access token>" \
    --header "Content-Type: application/json" \
    --data "{\"template_id\":\"ptid:1a5n2i6d3OYEAAAAAAAAAYa\"}"
Parameters
{
    "template_id": "ptid:1a5n2i6d3OYEAAAAAAAAAYa"
}
RemoveTemplateArg
template_idString(min_length=1, pattern="(/|ptid:).*")An identifier for a template created by templates/add_for_user or templates/add_for_team.
Returns
No return values.
Errors
Example: restricted_content
{
    "error": {
        ".tag": "restricted_content"
    },
    "error_summary": "restricted_content/..."
}
Example: other
{
    "error": {
        ".tag": "other"
    },
    "error_summary": "other/..."
}
TemplateError (open union)
template_not_foundString(min_length=1, pattern="(/|ptid:).*")Template does not exist for the given identifier.
restricted_contentVoidYou do not have permission to modify this template.
See also general errors.

/templates/update_for_team


Description

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

URL Structure
https://api.dropboxapi.com/2/file_properties/templates/update_for_team
Authentication
Team Authentication
Endpoint format
RPC
Required Scope
files.team_metadata.write
Example
Get access token for:
curl -X POST https://api.dropboxapi.com/2/file_properties/templates/update_for_team \
    --header "Authorization: Bearer <get access token>" \
    --header "Content-Type: application/json" \
    --data "{\"add_fields\":[{\"description\":\"This is the security policy of the file or folder described.\nPolicies can be Confidential, Public or Internal.\",\"name\":\"Security Policy\",\"type\":\"string\"}],\"description\":\"These properties will describe how confidential this file or folder is.\",\"name\":\"New Security Template Name\",\"template_id\":\"ptid:1a5n2i6d3OYEAAAAAAAAAYa\"}"
Parameters
{
    "add_fields": [
        {
            "description": "This is the security policy of the file or folder described.\nPolicies can be Confidential, Public or Internal.",
            "name": "Security Policy",
            "type": "string"
        }
    ],
    "description": "These properties will describe how confidential this file or folder is.",
    "name": "New Security Template Name",
    "template_id": "ptid:1a5n2i6d3OYEAAAAAAAAAYa"
}
UpdateTemplateArg
template_idString(min_length=1, pattern="(/|ptid:).*")An identifier for template added by See templates/add_for_user or templates/add_for_team.
name String?A display name for the template. template names can be up to 256 bytes. This field is optional.
description String?Description for the new template. Template descriptions can be up to 1024 bytes. This field is optional.
add_fieldsList of ()?Property field templates to be added to the group template. There can be up to 32 properties in a single template. This field is optional.
Returns
{
    "template_id": "ptid:1a5n2i6d3OYEAAAAAAAAAYa"
}
UpdateTemplateResult
template_idString(min_length=1, pattern="(/|ptid:).*")An identifier for template added by route See templates/add_for_user or templates/add_for_team.
Errors
Example: restricted_content
{
    "error": {
        ".tag": "restricted_content"
    },
    "error_summary": "restricted_content/..."
}
Example: other
{
    "error": {
        ".tag": "other"
    },
    "error_summary": "other/..."
}
Example: conflicting_property_names
{
    "error": {
        ".tag": "conflicting_property_names"
    },
    "error_summary": "conflicting_property_names/..."
}
Example: too_many_properties
{
    "error": {
        ".tag": "too_many_properties"
    },
    "error_summary": "too_many_properties/..."
}
Example: too_many_templates
{
    "error": {
        ".tag": "too_many_templates"
    },
    "error_summary": "too_many_templates/..."
}
Example: template_attribute_too_large
{
    "error": {
        ".tag": "template_attribute_too_large"
    },
    "error_summary": "template_attribute_too_large/..."
}
ModifyTemplateError (union)
template_not_foundString(min_length=1, pattern="(/|ptid:).*")Template does not exist for the given identifier.
restricted_contentVoidYou do not have permission to modify this template.
conflicting_property_namesVoidA property field key with that name already exists in the template.
too_many_propertiesVoidThere are too many properties in the changed template. The maximum number of properties per template is 32.
too_many_templatesVoidThere are too many templates for the team.
template_attribute_too_largeVoidThe template name, description or one or more of the property field keys is too large.
See also general errors.

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
Required Scope
sessions.list
Example
Get access token for:
curl -X POST https://api.dropboxapi.com/2/team/devices/list_member_devices \
    --header "Authorization: Bearer <get access token>" \
    --header "Content-Type: application/json" \
    --data "{\"include_desktop_clients\":true,\"include_mobile_clients\":true,\"include_web_sessions\":true,\"team_member_id\":\"dbmid:AAFdgehTzw7WlXhZJsbGCLePe8RvQGYDr-I\"}"
Parameters
{
    "include_desktop_clients": true,
    "include_mobile_clients": true,
    "include_web_sessions": true,
    "team_member_id": "dbmid:AAFdgehTzw7WlXhZJsbGCLePe8RvQGYDr-I"
}
ListMemberDevicesArg
team_member_idStringThe team's member id.
include_web_sessionsBooleanWhether to list web sessions of the team's member. The default for this field is True.
include_desktop_clientsBooleanWhether to list linked desktop devices of the team's member. The default for this field is True.
include_mobile_clientsBooleanWhether to list linked mobile devices of the team's member. The default for this field is True.
Returns
ListMemberDevicesResult
active_web_sessionsList of ()?List of web sessions made by this team member. This field is optional.
desktop_client_sessionsList of ()?List of desktop clients used by this team member. This field is optional.
mobile_client_sessionsList of ()?List of mobile client used by this team member. This field is optional.
Errors
Example: member_not_found
{
    "error": {
        ".tag": "member_not_found"
    },
    "error_summary": "member_not_found/..."
}
Example: other
{
    "error": {
        ".tag": "other"
    },
    "error_summary": "other/..."
}
ListMemberDevicesError (open union)
member_not_foundVoidMember not found.
See also general errors.

/devices/list_members_devices


Description

List all device sessions of a team. Permission : Team member file access.

URL Structure
https://api.dropboxapi.com/2/team/devices/list_members_devices
Authentication
Team Authentication
Endpoint format
RPC
Required Scope
sessions.list
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_sessionsBooleanWhether to list web sessions of the team members. The default for this field is True.
include_desktop_clientsBooleanWhether to list desktop clients of the team members. The default for this field is True.
include_mobile_clientsBooleanWhether to list mobile clients of the team members. The default for this field is True.
Returns
ListMembersDevicesResult
devicesList of ()The devices of each member of the team.
has_moreBooleanIf 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": {
        ".tag": "reset"
    },
    "error_summary": "reset/..."
}
Example: other
{
    "error": {
        ".tag": "other"
    },
    "error_summary": "other/..."
}
ListMembersDevicesError (open union)
resetVoidIndicates that the cursor has been invalidated. Call devices/list_members_devices again with an empty cursor to obtain a new cursor.
See also general errors.

/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
Required Scope
sessions.modify
Example
Get access token for:
curl -X POST https://api.dropboxapi.com/2/team/devices/revoke_device_session \
    --header "Authorization: Bearer <get access token>" \
    --header "Content-Type: application/json" \
    --data "{\".tag\":\"web_session\",\"session_id\":\"1234faaf0678bcde\",\"team_member_id\":\"dbmid:AAHhy7WsR0x-u4ZCqiDl5Fz5zvuL3kmspwU\"}"
Parameters
{
    ".tag": "web_session",
    "session_id": "1234faaf0678bcde",
    "team_member_id": "dbmid:AAHhy7WsR0x-u4ZCqiDl5Fz5zvuL3kmspwU"
}
RevokeDeviceSessionArg (union)
web_sessionEnd an active session.
desktop_clientUnlink a linked desktop device.
mobile_clientUnlink a linked mobile device.
Returns
No return values.
Errors
Example: device_session_not_found
{
    "error": {
        ".tag": "device_session_not_found"
    },
    "error_summary": "device_session_not_found/..."
}
Example: member_not_found
{
    "error": {
        ".tag": "member_not_found"
    },
    "error_summary": "member_not_found/..."
}
Example: other
{
    "error": {
        ".tag": "other"
    },
    "error_summary": "other/..."
}
RevokeDeviceSessionError (open union)
device_session_not_foundVoidDevice session not found.
member_not_foundVoidMember not found.
See also general errors.

/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
Required Scope
sessions.modify
Example
Get access token for:
curl -X POST https://api.dropboxapi.com/2/team/devices/revoke_device_session_batch \
    --header "Authorization: Bearer <get access token>" \
    --header "Content-Type: application/json" \
    --data "{\"revoke_devices\":[{\".tag\":\"web_session\",\"session_id\":\"1234faaf0678bcde\",\"team_member_id\":\"dbmid:AAHhy7WsR0x-u4ZCqiDl5Fz5zvuL3kmspwU\"}]}"
Parameters
{
    "revoke_devices": [
        {
            ".tag": "web_session",
            "session_id": "1234faaf0678bcde",
            "team_member_id": "dbmid:AAHhy7WsR0x-u4ZCqiDl5Fz5zvuL3kmspwU"
        }
    ]
}
RevokeDeviceSessionBatchArg
revoke_devicesList of ()
Returns
RevokeDeviceSessionBatchResult
revoke_devices_statusList of ()
Errors
No endpoint-specific errors.
See also general errors.

/features/get_values


Description

Get the values for one or more features. This route allows you to check your account's capability for what feature you can access or what value you have for certain features. Permission : Team information.

URL Structure
https://api.dropboxapi.com/2/team/features/get_values
Authentication
Team Authentication
Endpoint format
RPC
Required Scope
team_info.read
Example
Get access token for:
curl -X POST https://api.dropboxapi.com/2/team/features/get_values \
    --header "Authorization: Bearer <get access token>" \
    --header "Content-Type: application/json" \
    --data "{\"features\":[{\".tag\":\"upload_api_rate_limit\"},{\".tag\":\"has_team_shared_dropbox\"}]}"
Parameters
{
    "features": [
        {
            ".tag": "upload_api_rate_limit"
        },
        {
            ".tag": "has_team_shared_dropbox"
        }
    ]
}
FeaturesGetValuesBatchArg
featuresList of ()A list of features in Feature. If the list is empty, this route will return FeaturesGetValuesBatchError.
Returns
{
    "values": [
        {
            ".tag": "upload_api_rate_limit",
            "upload_api_rate_limit": {
                ".tag": "limit",
                "limit": 25000
            }
        },
        {
            ".tag": "has_team_shared_dropbox",
            "has_team_shared_dropbox": {
                ".tag": "has_team_shared_dropbox",
                "has_team_shared_dropbox": false
            }
        }
    ]
}
FeaturesGetValuesBatchResult
valuesList of ()
Errors
Example: empty_features_list
{
    "error": {
        ".tag": "empty_features_list"
    },
    "error_summary": "empty_features_list/..."
}
Example: other
{
    "error": {
        ".tag": "other"
    },
    "error_summary": "other/..."
}
FeaturesGetValuesBatchError (open union)
empty_features_listVoidAt least one Feature must be included in the FeaturesGetValuesBatchArg.features list.
See also general errors.

/get_info


Description

Retrieves information about a team.

URL Structure
https://api.dropboxapi.com/2/team/get_info
Authentication
Team Authentication
Endpoint format
RPC
Required Scope
team_info.read
Example
Get access token for:
curl -X POST https://api.dropboxapi.com/2/team/get_info \
    --header "Authorization: Bearer <get access token>"
Parameters
No parameters.
Returns
{
    "name": "Dropbox Inc.",
    "num_licensed_users": 5,
    "num_provisioned_users": 2,
    "num_used_licenses": 1,
    "policies": {
        "emm_state": {
            ".tag": "disabled"
        },
        "office_addin": {
            ".tag": "disabled"
        },
        "sharing": {
            "default_link_expiration_days_policy": {
                ".tag": "none"
            },
            "enforce_link_password_policy": {
                ".tag": "optional"
            },
            "group_creation_policy": {
                ".tag": "admins_only"
            },
            "shared_folder_join_policy": {
                ".tag": "from_anyone"
            },
            "shared_folder_link_restriction_policy": {
                ".tag": "anyone"
            },
            "shared_folder_member_policy": {
                ".tag": "team"
            },
            "shared_link_create_policy": {
                ".tag": "team_only"
            },
            "shared_link_default_permissions_policy": {
                ".tag": "default"
            }
        },
        "suggest_members_policy": {
            ".tag": "enabled"
        },
        "top_level_content_policy": {
            ".tag": "admin_only"
        }
    },
    "team_id": "dbtid:1234abcd"
}
TeamGetInfoResult
nameStringThe name of the team.
team_idStringThe ID of the team.
num_licensed_usersUInt32The number of licenses available to the team.
num_provisioned_usersUInt32The number of accounts that have been invited or are already active members of the team.
policies
num_used_licensesUInt32The number of licenses used on the team. The default for this field is 0.
Errors
No endpoint-specific errors.
See also general 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
Required Scope
groups.write
Example
Get access token for:
curl -X POST https://api.dropboxapi.com/2/team/groups/create \
    --header "Authorization: Bearer <get access token>" \
    --header "Content-Type: application/json" \
    --data "{\"add_creator_as_owner\":false,\"group_external_id\":\"group-134\",\"group_name\":\"Europe sales\"}"
Parameters
{
    "add_creator_as_owner": false,
    "group_external_id": "group-134",
    "group_name": "Europe sales"
}
GroupCreateArg
group_nameStringGroup name.
add_creator_as_ownerBooleanAutomatically add the creator of the group. The default for this field is False.
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?Whether the team can be managed by selected users, or only by team admins. This field is optional.
Returns
{
    "created": 1447255518000,
    "group_id": "g:e2db7665347abcd600000000001a2b3c",
    "group_management_type": {
        ".tag": "user_managed"
    },
    "group_name": "project launch",
    "member_count": 5,
    "members": [
        {
            "access_type": {
                ".tag": "member"
            },
            "profile": {
                "account_id": "dbid:AAH4f99T0taONIb-OurWxbNQ6ywGRopQngc",
                "email": "mary@lamb.com",
                "email_verified": true,
                "joined_on": "2015-05-12T15:50:38Z",
                "membership_type": {
                    ".tag": "full"
                },
                "name": {
                    "abbreviated_name": "FF",
                    "display_name": "Franz Ferdinand (Personal)",
                    "familiar_name": "Franz",
                    "given_name": "Franz",
                    "surname": "Ferdinand"
                },
                "profile_photo_url": "https://dl-web.dropbox.com/account_photo/get/dbaphid%3AAAHWGmIXV3sUuOmBfTz0wPsiqHUpBWvv3ZA?vers=1556069330102&size=128x128",
                "secondary_emails": [
                    {
                        "email": "apple@orange.com",
                        "is_verified": true
                    },
                    {
                        "email": "banana@honeydew.com",
                        "is_verified": true
                    },
                    {
                        "email": "grape@strawberry.com",
                        "is_verified": false
                    }
                ],
                "status": {
                    ".tag": "active"
                },
                "team_member_id": "dbmid:1234567"
            }
        }
    ]
}
GroupFullInfo
Full description of a group.
group_nameString
group_idString
group_management_typeWho is allowed to manage the group.
createdUInt64The 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.
membersList of ()?List of group members. This field is optional.
Errors
Example: group_name_already_used
{
    "error": {
        ".tag": "group_name_already_used"
    },
    "error_summary": "group_name_already_used/..."
}
Example: group_name_invalid
{
    "error": {
        ".tag": "group_name_invalid"
    },
    "error_summary": "group_name_invalid/..."
}
Example: external_id_already_in_use
{
    "error": {
        ".tag": "external_id_already_in_use"
    },
    "error_summary": "external_id_already_in_use/..."
}
Example: system_managed_group_disallowed
{
    "error": {
        ".tag": "system_managed_group_disallowed"
    },
    "error_summary": "system_managed_group_disallowed/..."
}
Example: other
{
    "error": {
        ".tag": "other"
    },
    "error_summary": "other/..."
}
GroupCreateError (open union)
group_name_already_usedVoidThe requested group name is already being used by another group.
group_name_invalidVoidGroup name is empty or has invalid characters.
external_id_already_in_useVoidThe requested external ID is already being used by another group.
system_managed_group_disallowedVoidSystem-managed group cannot be manually created.
See also general errors.

/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
Required Scope
groups.write
Example
Get access token for:
curl -X POST https://api.dropboxapi.com/2/team/groups/delete \
    --header "Authorization: Bearer <get access token>" \
    --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.
group_idStringGroup ID.
group_external_idStringExternal 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.
async_job_idString(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.
completeVoidThe job finished synchronously and successfully.
Errors
Example: group_not_found
{
    "error": {
        ".tag": "group_not_found"
    },
    "error_summary": "group_not_found/..."
}
Example: other
{
    "error": {
        ".tag": "other"
    },
    "error_summary": "other/..."
}
Example: system_managed_group_disallowed
{
    "error": {
        ".tag": "system_managed_group_disallowed"
    },
    "error_summary": "system_managed_group_disallowed/..."
}
Example: group_already_deleted
{
    "error": {
        ".tag": "group_already_deleted"
    },
    "error_summary": "group_already_deleted/..."
}
GroupDeleteError (union)
group_not_foundVoidNo matching group found. No groups match the specified group ID.
system_managed_group_disallowedVoidThis operation is not supported on system-managed groups.
group_already_deletedVoidThis group has already been deleted.
See also general errors.

/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
Required Scope
groups.read
Example
Get access token for:
curl -X POST https://api.dropboxapi.com/2/team/groups/get_info \
    --header "Authorization: Bearer <get access token>" \
    --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.
group_ids List of (String)List of group IDs.
group_external_ids List of (String)List of external IDs of groups.
Returns
List of (GroupsGetInfoItem (union))
id_not_foundStringAn 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_infoInfo about a group.
Errors
Example: group_not_on_team
{
    "error": {
        ".tag": "group_not_on_team"
    },
    "error_summary": "group_not_on_team/..."
}
Example: other
{
    "error": {
        ".tag": "other"
    },
    "error_summary": "other/..."
}
GroupsGetInfoError (open union)
group_not_on_teamVoidThe group is not on your team.
See also general errors.

/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
Required Scope
groups.write
Example
Get access token for:
curl -X POST https://api.dropboxapi.com/2/team/groups/job_status/get \
    --header "Authorization: Bearer <get access token>" \
    --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_idString(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.
in_progressVoidThe asynchronous job is still in progress.
completeVoidThe asynchronous job has completed successfully.
Errors
Example: invalid_async_job_id
{
    "error": {
        ".tag": "invalid_async_job_id"
    },
    "error_summary": "invalid_async_job_id/..."
}
Example: internal_error
{
    "error": {
        ".tag": "internal_error"
    },
    "error_summary": "internal_error/..."
}
Example: other
{
    "error": {
        ".tag": "other"
    },
    "error_summary": "other/..."
}
Example: access_denied
{
    "error": {
        ".tag": "access_denied"
    },
    "error_summary": "access_denied/..."
}
GroupsPollError (union)
invalid_async_job_idVoidThe job ID is invalid.
internal_errorVoidSomething 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_deniedVoidYou are not allowed to poll this job.
See also general errors.

/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
Required Scope
groups.read
Example
Get access token for:
curl -X POST https://api.dropboxapi.com/2/team/groups/list \
    --header "Authorization: Bearer <get access token>" \
    --header "Content-Type: application/json" \
    --data "{\"limit\":100}"
Parameters
{
    "limit": 100
}
GroupsListArg
limitUInt32(min=1, max=1000)Number of results to return per call. The default for this field is 1000.
Returns
{
    "cursor": "ZtkX9_EHj3x7PMkVuFIhwKYXEpwpLwyxp9vMKomUhllil9q7eWiAu",
    "groups": [
        {
            "group_id": "g:e2db7665347abcd600000000001a2b3c",
            "group_management_type": {
                ".tag": "user_managed"
            },
            "group_name": "Test group",
            "member_count": 10
        }
    ],
    "has_more": false
}
GroupsListResult
groupsList of ()
cursorStringPass the cursor into groups/list/continue to obtain the additional groups.
has_moreBooleanIs true if there are additional groups that have not been returned yet. An additional call to groups/list/continue can retrieve them.
Errors
No endpoint-specific errors.
See also general 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
Required Scope
groups.read
Example
Get access token for:
curl -X POST https://api.dropboxapi.com/2/team/groups/list/continue \
    --header "Authorization: Bearer <get access token>" \
    --header "Content-Type: application/json" \
    --data "{\"cursor\":\"ZtkX9_EHj3x7PMkVuFIhwKYXEpwpLwyxp9vMKomUhllil9q7eWiAu\"}"
Parameters
{
    "cursor": "ZtkX9_EHj3x7PMkVuFIhwKYXEpwpLwyxp9vMKomUhllil9q7eWiAu"
}
GroupsListContinueArg
cursorStringIndicates from what point to get the next set of groups.
Returns
{
    "cursor": "ZtkX9_EHj3x7PMkVuFIhwKYXEpwpLwyxp9vMKomUhllil9q7eWiAu",
    "groups": [
        {
            "group_id": "g:e2db7665347abcd600000000001a2b3c",
            "group_management_type": {
                ".tag": "user_managed"
            },
            "group_name": "Test group",
            "member_count": 10
        }
    ],
    "has_more": false
}
GroupsListResult
groupsList of ()
cursorStringPass the cursor into groups/list/continue to obtain the additional groups.
has_moreBooleanIs 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": {
        ".tag": "invalid_cursor"
    },
    "error_summary": "invalid_cursor/..."
}
Example: other
{
    "error": {
        ".tag": "other"
    },
    "error_summary": "other/..."
}
GroupsListContinueError (open union)
invalid_cursorVoidThe cursor is invalid.
See also general errors.

/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
Required Scope
groups.write
Example
Get access token for:
curl -X POST https://api.dropboxapi.com/2/team/groups/members/add \
    --header "Authorization: Bearer <get access token>" \
    --header "Content-Type: application/json" \
    --data "{\"group\":{\".tag\":\"group_id\",\"group_id\":\"g:e2db7665347abcd600000000001a2b3c\"},\"members\":[{\"access_type\":\"member\",\"user\":{\".tag\":\"team_member_id\",\"team_member_id\":\"dbmid:efgh5678\"}}],\"return_members\":true}"
Parameters
{
    "group": {
        ".tag": "group_id",
        "group_id": "g:e2db7665347abcd600000000001a2b3c"
    },
    "members": [
        {
            "access_type": "member",
            "user": {
                ".tag": "team_member_id",
                "team_member_id": "dbmid:efgh5678"
            }
        }
    ],
    "return_members": true
}
GroupMembersAddArg
groupGroup to which users will be added.
membersList of ()List of users to be added to the group.
return_membersBooleanWhether 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
{
    "async_job_id": "99988877733388",
    "group_info": {
        "created": 1447255518000,
        "group_id": "g:e2db7665347abcd600000000001a2b3c",
        "group_management_type": {
            ".tag": "user_managed"
        },
        "group_name": "project launch",
        "member_count": 5,
        "members": [
            {
                "access_type": {
                    ".tag": "member"
                },
                "profile": {
                    "account_id": "dbid:AAH4f99T0taONIb-OurWxbNQ6ywGRopQngc",
                    "email": "mary@lamb.com",
                    "email_verified": true,
                    "joined_on": "2015-05-12T15:50:38Z",
                    "membership_type": {
                        ".tag": "full"
                    },
                    "name": {
                        "abbreviated_name": "FF",
                        "display_name": "Franz Ferdinand (Personal)",
                        "familiar_name": "Franz",
                        "given_name": "Franz",
                        "surname": "Ferdinand"
                    },
                    "profile_photo_url": "https://dl-web.dropbox.com/account_photo/get/dbaphid%3AAAHWGmIXV3sUuOmBfTz0wPsiqHUpBWvv3ZA?vers=1556069330102&size=128x128",
                    "secondary_emails": [
                        {
                            "email": "apple@orange.com",
                            "is_verified": true
                        },
                        {
                            "email": "banana@honeydew.com",
                            "is_verified": true
                        },
                        {
                            "email": "grape@strawberry.com",
                            "is_verified": false
                        }
                    ],
                    "status": {
                        ".tag": "active"
                    },
                    "team_member_id": "dbmid:1234567"
                }
            }
        ]
    }
}
GroupMembersChangeResult
Result returned by groups/members/add and groups/members/remove.
group_infoThe group info after member change operation has been performed.
async_job_iddeprecatedString(min_length=1)Field is deprecated. For legacy purposes async_job_id will always return one space ' '. Formerly, it was an ID that was used to obtain the status of granting/revoking group-owned resources. It's no longer necessary because the async processing now happens automatically.
Errors
Example: group_not_found
{
    "error": {
        ".tag": "group_not_found"
    },
    "error_summary": "group_not_found/..."
}
Example: other
{
    "error": {
        ".tag": "other"
    },
    "error_summary": "other/..."
}
Example: system_managed_group_disallowed
{
    "error": {
        ".tag": "system_managed_group_disallowed"
    },
    "error_summary": "system_managed_group_disallowed/..."
}
Example: duplicate_user
{
    "error": {
        ".tag": "duplicate_user"
    },
    "error_summary": "duplicate_user/..."
}
Example: group_not_in_team
{
    "error": {
        ".tag": "group_not_in_team"
    },
    "error_summary": "group_not_in_team/..."
}
Example: user_must_be_active_to_be_owner
{
    "error": {
        ".tag": "user_must_be_active_to_be_owner"
    },
    "error_summary": "user_must_be_active_to_be_owner/..."
}
GroupMembersAddError (union)
group_not_foundVoidNo matching group found. No groups match the specified group ID.
system_managed_group_disallowedVoidThis operation is not supported on system-managed groups.
duplicate_userVoidYou 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_teamVoidGroup 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_ownerVoidA 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.
See also general errors.

/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
Required Scope
groups.read
Example
Get access token for:
curl -X POST https://api.dropboxapi.com/2/team/groups/members/list \
    --header "Authorization: Bearer <get access token>" \
    --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
groupThe group whose members are to be listed.
limitUInt32(min=1, max=1000)Number of results to return per call. The default for this field is 1000.
Returns
{
    "cursor": "ZtkX9_EHj3x7PMkVuFIhwKYXEpwpLwyxp9vMKomUhllil9q7eWiAu",
    "has_more": false,
    "members": []
}
GroupsMembersListResult
membersList of ()
cursorStringPass the cursor into groups/members/list/continue to obtain additional group members.
has_moreBooleanIs 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": {
        ".tag": "group_not_found"
    },
    "error_summary": "group_not_found/..."
}
Example: other
{
    "error": {
        ".tag": "other"
    },
    "error_summary": "other/..."
}
GroupSelectorError (open union)
Error that can be raised when GroupSelector is used.
group_not_foundVoidNo matching group found. No groups match the specified group ID.
See also general errors.

/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
Required Scope
groups.read
Example
Get access token for:
curl -X POST https://api.dropboxapi.com/2/team/groups/members/list/continue \
    --header "Authorization: Bearer <get access token>" \
    --header "Content-Type: application/json" \
    --data "{\"cursor\":\"ZtkX9_EHj3x7PMkVuFIhwKYXEpwpLwyxp9vMKomUhllil9q7eWiAu\"}"
Parameters
{
    "cursor": "ZtkX9_EHj3x7PMkVuFIhwKYXEpwpLwyxp9vMKomUhllil9q7eWiAu"
}
GroupsMembersListContinueArg
cursorStringIndicates from what point to get the next set of groups.
Returns
{
    "cursor": "ZtkX9_EHj3x7PMkVuFIhwKYXEpwpLwyxp9vMKomUhllil9q7eWiAu",
    "has_more": false,
    "members": []
}
GroupsMembersListResult
membersList of ()
cursorStringPass the cursor into groups/members/list/continue to obtain additional group members.
has_moreBooleanIs 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": {
        ".tag": "invalid_cursor"
    },
    "error_summary": "invalid_cursor/..."
}
Example: other
{
    "error": {
        ".tag": "other"
    },
    "error_summary": "other/..."
}
GroupsMembersListContinueError (open union)
invalid_cursorVoidThe cursor is invalid.
See also general errors.

/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
Required Scope
groups.write
Example
Get access token for:
curl -X POST https://api.dropboxapi.com/2/team/groups/members/remove \
    --header "Authorization: Bearer <get access token>" \
    --header "Content-Type: application/json" \
    --data "{\"group\":{\".tag\":\"group_id\",\"group_id\":\"g:e2db7665347abcd600000000001a2b3c\"},\"return_members\":true,\"users\":[{\".tag\":\"team_member_id\",\"team_member_id\":\"dbmid:efgh5678\"}]}"
Parameters
{
    "group": {
        ".tag": "group_id",
        "group_id": "g:e2db7665347abcd600000000001a2b3c"
    },
    "return_members": true,
    "users": [
        {
            ".tag": "team_member_id",
            "team_member_id": "dbmid:efgh5678"
        }
    ]
}
GroupMembersRemoveArg
groupGroup from which users will be removed.
usersList of ()List of users to be removed from the group.
return_membersBooleanWhether 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
{
    "async_job_id": "99988877733388",
    "group_info": {
        "created": 1447255518000,
        "group_id": "g:e2db7665347abcd600000000001a2b3c",
        "group_management_type": {
            ".tag": "user_managed"
        },
        "group_name": "project launch",
        "member_count": 5,
        "members": [
            {
                "access_type": {
                    ".tag": "member"
                },
                "profile": {
                    "account_id": "dbid:AAH4f99T0taONIb-OurWxbNQ6ywGRopQngc",
                    "email": "mary@lamb.com",
                    "email_verified": true,
                    "joined_on": "2015-05-12T15:50:38Z",
                    "membership_type": {
                        ".tag": "full"
                    },
                    "name": {
                        "abbreviated_name": "FF",
                        "display_name": "Franz Ferdinand (Personal)",
                        "familiar_name": "Franz",
                        "given_name": "Franz",
                        "surname": "Ferdinand"
                    },
                    "profile_photo_url": "https://dl-web.dropbox.com/account_photo/get/dbaphid%3AAAHWGmIXV3sUuOmBfTz0wPsiqHUpBWvv3ZA?vers=1556069330102&size=128x128",
                    "secondary_emails": [
                        {
                            "email": "apple@orange.com",
                            "is_verified": true
                        },
                        {
                            "email": "banana@honeydew.com",
                            "is_verified": true
                        },
                        {
                            "email": "grape@strawberry.com",
                            "is_verified": false
                        }
                    ],
                    "status": {
                        ".tag": "active"
                    },
                    "team_member_id": "dbmid:1234567"
                }
            }
        ]
    }
}
GroupMembersChangeResult
Result returned by groups/members/add and groups/members/remove.
group_infoThe group info after member change operation has been performed.
async_job_iddeprecatedString(min_length=1)Field is deprecated. For legacy purposes async_job_id will always return one space ' '. Formerly, it was an ID that was used to obtain the status of granting/revoking group-owned resources. It's no longer necessary because the async processing now happens automatically.
Errors
Example: group_not_found
{
    "error": {
        ".tag": "group_not_found"
    },
    "error_summary": "group_not_found/..."
}
Example: other
{
    "error": {
        ".tag": "other"
    },
    "error_summary": "other/..."
}
Example: system_managed_group_disallowed
{
    "error": {
        ".tag": "system_managed_group_disallowed"
    },
    "error_summary": "system_managed_group_disallowed/..."
}
Example: member_not_in_group
{
    "error": {
        ".tag": "member_not_in_group"
    },
    "error_summary": "member_not_in_group/..."
}
Example: group_not_in_team
{
    "error": {
        ".tag": "group_not_in_team"
    },
    "error_summary": "group_not_in_team/..."
}
GroupMembersRemoveError (union)
group_not_foundVoidNo matching group found. No groups match the specified group ID.
system_managed_group_disallowedVoidThis operation is not supported on system-managed groups.
member_not_in_groupVoidAt least one of the specified users is not a member of the group.
group_not_in_teamVoidGroup 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.
See also general errors.

/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
Required Scope
groups.write
Example
Get access token for:
curl -X POST https://api.dropboxapi.com/2/team/groups/members/set_access_type \
    --header "Authorization: Bearer <get access token>" \
    --header "Content-Type: application/json" \
    --data "{\"access_type\":\"member\",\"group\":{\".tag\":\"group_id\",\"group_id\":\"g:e2db7665347abcd600000000001a2b3c\"},\"return_members\":true,\"user\":{\".tag\":\"team_member_id\",\"team_member_id\":\"dbmid:efgh5678\"}}"
Parameters
{
    "access_type": "member",
    "group": {
        ".tag": "group_id",
        "group_id": "g:e2db7665347abcd600000000001a2b3c"
    },
    "return_members": true,
    "user": {
        ".tag": "team_member_id",
        "team_member_id": "dbmid:efgh5678"
    }
}
GroupMembersSetAccessTypeArg
groupSpecify a group.
userIdentity of a user that is a member of group.
access_typeNew group access type the user will have.
return_membersBooleanWhether 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
List of (GroupsGetInfoItem (union))
id_not_foundStringAn 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_infoInfo about a group.
Errors
Example: group_not_found
{
    "error": {
        ".tag": "group_not_found"
    },
    "error_summary": "group_not_found/..."
}
Example: other
{
    "error": {
        ".tag": "other"
    },
    "error_summary": "other/..."
}
Example: system_managed_group_disallowed
{
    "error": {
        ".tag": "system_managed_group_disallowed"
    },
    "error_summary": "system_managed_group_disallowed/..."
}
Example: member_not_in_group
{
    "error": {
        ".tag": "member_not_in_group"
    },
    "error_summary": "member_not_in_group/..."
}
Example: user_cannot_be_manager_of_company_managed_group
{
    "error": {
        ".tag": "user_cannot_be_manager_of_company_managed_group"
    },
    "error_summary": "user_cannot_be_manager_of_company_managed_group/..."
}
GroupMemberSetAccessTypeError (union)
group_not_foundVoidNo matching group found. No groups match the specified group ID.
system_managed_group_disallowedVoidThis operation is not supported on system-managed groups.
member_not_in_groupVoidThe specified user is not a member of this group.
user_cannot_be_manager_of_company_managed_groupVoidA company managed group cannot be managed by a user.
See also general errors.

/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
Required Scope
groups.write
Example
Get access token for:
curl -X POST https://api.dropboxapi.com/2/team/groups/update \
    --header "Authorization: Bearer <get access token>" \
    --header "Content-Type: application/json" \
    --data "{\"group\":{\".tag\":\"group_id\",\"group_id\":\"g:e2db7665347abcd600000000001a2b3c\"},\"new_group_external_id\":\"sales-234\",\"new_group_management_type\":\"company_managed\",\"new_group_name\":\"Europe west sales\",\"return_members\":true}"
Parameters
{
    "group": {
        ".tag": "group_id",
        "group_id": "g:e2db7665347abcd600000000001a2b3c"
    },
    "new_group_external_id": "sales-234",
    "new_group_management_type": "company_managed",
    "new_group_name": "Europe west sales",
    "return_members": true
}
GroupUpdateArgs
groupSpecify a group.
return_membersBooleanWhether 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?Set new group management type, if provided. This field is optional.
Returns
{
    "created": 1447255518000,
    "group_id": "g:e2db7665347abcd600000000001a2b3c",
    "group_management_type": {
        ".tag": "user_managed"
    },
    "group_name": "project launch",
    "member_count": 5,
    "members": [
        {
            "access_type": {
                ".tag": "member"
            },
            "profile": {
                "account_id": "dbid:AAH4f99T0taONIb-OurWxbNQ6ywGRopQngc",
                "email": "mary@lamb.com",
                "email_verified": true,
                "joined_on": "2015-05-12T15:50:38Z",
                "membership_type": {
                    ".tag": "full"
                },
                "name": {
                    "abbreviated_name": "FF",
                    "display_name": "Franz Ferdinand (Personal)",
                    "familiar_name": "Franz",
                    "given_name": "Franz",
                    "surname": "Ferdinand"
                },
                "profile_photo_url": "https://dl-web.dropbox.com/account_photo/get/dbaphid%3AAAHWGmIXV3sUuOmBfTz0wPsiqHUpBWvv3ZA?vers=1556069330102&size=128x128",
                "secondary_emails": [
                    {
                        "email": "apple@orange.com",
                        "is_verified": true
                    },
                    {
                        "email": "banana@honeydew.com",
                        "is_verified": true
                    },
                    {
                        "email": "grape@strawberry.com",
                        "is_verified": false
                    }
                ],
                "status": {
                    ".tag": "active"
                },
                "team_member_id": "dbmid:1234567"
            }
        }
    ]
}
GroupFullInfo
Full description of a group.
group_nameString
group_idString
group_management_typeWho is allowed to manage the group.
createdUInt64The 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.
membersList of ()?List of group members. This field is optional.
Errors
Example: group_not_found
{
    "error": {
        ".tag": "group_not_found"
    },
    "error_summary": "group_not_found/..."
}
Example: other
{
    "error": {
        ".tag": "other"
    },
    "error_summary": "other/..."
}
Example: system_managed_group_disallowed
{
    "error": {
        ".tag": "system_managed_group_disallowed"
    },
    "error_summary": "system_managed_group_disallowed/..."
}
Example: group_name_already_used
{
    "error": {
        ".tag": "group_name_already_used"
    },
    "error_summary": "group_name_already_used/..."
}
Example: group_name_invalid
{
    "error": {
        ".tag": "group_name_invalid"
    },
    "error_summary": "group_name_invalid/..."
}
Example: external_id_already_in_use
{
    "error": {
        ".tag": "external_id_already_in_use"
    },
    "error_summary": "external_id_already_in_use/..."
}
GroupUpdateError (union)
group_not_foundVoidNo matching group found. No groups match the specified group ID.
system_managed_group_disallowedVoidThis operation is not supported on system-managed groups.
group_name_already_usedVoidThe requested group name is already being used by another group.
group_name_invalidVoidGroup name is empty or has invalid characters.
external_id_already_in_useVoidThe requested external ID is already being used by another group.
See also general errors.

Description

Creates new legal hold policy. Note: Legal Holds is a paid add-on. Not all teams have the feature. Permission : Team member file access.

URL Structure
https://api.dropboxapi.com/2/team/legal_holds/create_policy
Authentication
Team Authentication
Endpoint format
RPC
Required Scope
team_data.governance.write
Example
Get access token for:
curl -X POST https://api.dropboxapi.com/2/team/legal_holds/create_policy \
    --header "Authorization: Bearer <get access token>" \
    --header "Content-Type: application/json" \
    --data "{\"end_date\":\"2017-12-31T00:00:00Z\",\"members\":[\"dbmid:FDFSVF-DFSDF\"],\"name\":\"acme cfo policy\",\"start_date\":\"2016-01-01T00:00:00Z\"}"
Parameters
{
    "end_date": "2017-12-31T00:00:00Z",
    "members": [
        "dbmid:FDFSVF-DFSDF"
    ],
    "name": "acme cfo policy",
    "start_date": "2016-01-01T00:00:00Z"
}
LegalHoldsPolicyCreateArg
nameString(max_length=140)Policy name.
members List of (String)List of team member IDs added to the hold.
description String(max_length=501)?A description of the legal hold policy. This field is optional.
start_date Timestamp(format="%Y-%m-%dT%H:%M:%SZ")?start date of the legal hold policy. This field is optional.
end_date Timestamp(format="%Y-%m-%dT%H:%M:%SZ")?end date of the legal hold policy. This field is optional.
Returns
{
    "activation_time": "2016-01-20T00:00:10Z",
    "end_date": "2017-12-31T00:00:00Z",
    "id": "pid_dbhid:abcd1234",
    "members": {
        "permanently_deleted_users": 2,
        "team_member_ids": [
            "dbmid:efgh5678"
        ]
    },
    "name": "acme cfo policy",
    "start_date": "2016-01-01T00:00:00Z",
    "status": {
        ".tag": "active"
    }
}
LegalHoldPolicy
idString(pattern="^pid_dbhid:.+")The legal hold id.
nameString(max_length=140)Policy name.
membersTeam members IDs and number of permanently deleted members under hold.
statusThe current state of the hold.
start_dateTimestamp(format="%Y-%m-%dT%H:%M:%SZ")Start date of the legal hold policy.
description String(max_length=501)?A description of the legal hold policy. This field is optional.
activation_time Timestamp(format="%Y-%m-%dT%H:%M:%SZ")?The time at which the legal hold was activated. This field is optional.
end_date Timestamp(format="%Y-%m-%dT%H:%M:%SZ")?End date of the legal hold policy. This field is optional.
Errors
Example: unknown_legal_hold_error
{
    "error": {
        ".tag": "unknown_legal_hold_error"
    },
    "error_summary": "unknown_legal_hold_error/..."
}
Example: insufficient_permissions
{
    "error": {
        ".tag": "insufficient_permissions"
    },
    "error_summary": "insufficient_permissions/..."
}
Example: other
{
    "error": {
        ".tag": "other"
    },
    "error_summary": "other/..."
}
Example: start_date_is_later_than_end_date
{
    "error": {
        ".tag": "start_date_is_later_than_end_date"
    },
    "error_summary": "start_date_is_later_than_end_date/..."
}
Example: empty_members_list
{
    "error": {
        ".tag": "empty_members_list"
    },
    "error_summary": "empty_members_list/..."
}
Example: invalid_members
{
    "error": {
        ".tag": "invalid_members"
    },
    "error_summary": "invalid_members/..."
}
Example: number_of_users_on_hold_is_greater_than_hold_limitation
{
    "error": {
        ".tag": "number_of_users_on_hold_is_greater_than_hold_limitation"
    },
    "error_summary": "number_of_users_on_hold_is_greater_than_hold_limitation/..."
}
Example: transient_error
{
    "error": {
        ".tag": "transient_error"
    },
    "error_summary": "transient_error/..."
}
Example: name_must_be_unique
{
    "error": {
        ".tag": "name_must_be_unique"
    },
    "error_summary": "name_must_be_unique/..."
}
Example: team_exceeded_legal_hold_quota
{
    "error": {
        ".tag": "team_exceeded_legal_hold_quota"
    },
    "error_summary": "team_exceeded_legal_hold_quota/..."
}
Example: invalid_date
{
    "error": {
        ".tag": "invalid_date"
    },
    "error_summary": "invalid_date/..."
}
LegalHoldsPolicyCreateError (union)
unknown_legal_hold_errorVoidThere has been an unknown legal hold error.
insufficient_permissionsVoidYou don't have permissions to perform this action.
start_date_is_later_than_end_dateVoidStart date must be earlier than end date.
empty_members_listVoidThe users list must have at least one user.
invalid_membersVoidSome members in the members list are not valid to be placed under legal hold.
number_of_users_on_hold_is_greater_than_hold_limitationVoidYou cannot add more than 5 users in a legal hold.
transient_errorVoidTemporary infrastructure failure, please retry.
name_must_be_uniqueVoidThe name provided is already in use by another legal hold.
team_exceeded_legal_hold_quotaVoidTeam exceeded legal hold quota.
invalid_dateVoidThe provided date is invalid.
See also general errors.

Description

Gets a legal hold by Id. Note: Legal Holds is a paid add-on. Not all teams have the feature. Permission : Team member file access.

URL Structure
https://api.dropboxapi.com/2/team/legal_holds/get_policy
Authentication
Team Authentication
Endpoint format
RPC
Required Scope
team_data.governance.write
Example
Get access token for:
curl -X POST https://api.dropboxapi.com/2/team/legal_holds/get_policy \
    --header "Authorization: Bearer <get access token>" \
    --header "Content-Type: application/json" \
    --data "{\"id\":\"pid_dbhid:abcd1234\"}"
Parameters
{
    "id": "pid_dbhid:abcd1234"
}
LegalHoldsGetPolicyArg
idString(pattern="^pid_dbhid:.+")The legal hold Id.
Returns
{
    "activation_time": "2016-01-20T00:00:10Z",
    "end_date": "2017-12-31T00:00:00Z",
    "id": "pid_dbhid:abcd1234",
    "members": {
        "permanently_deleted_users": 2,
        "team_member_ids": [
            "dbmid:efgh5678"
        ]
    },
    "name": "acme cfo policy",
    "start_date": "2016-01-01T00:00:00Z",
    "status": {
        ".tag": "active"
    }
}
LegalHoldPolicy
idString(pattern="^pid_dbhid:.+")The legal hold id.
nameString(max_length=140)Policy name.
membersTeam members IDs and number of permanently deleted members under hold.
statusThe current state of the hold.
start_dateTimestamp(format="%Y-%m-%dT%H:%M:%SZ")Start date of the legal hold policy.
description String(max_length=501)?A description of the legal hold policy. This field is optional.
activation_time Timestamp(format="%Y-%m-%dT%H:%M:%SZ")?The time at which the legal hold was activated. This field is optional.
end_date Timestamp(format="%Y-%m-%dT%H:%M:%SZ")?End date of the legal hold policy. This field is optional.
Errors
Example: unknown_legal_hold_error
{
    "error": {
        ".tag": "unknown_legal_hold_error"
    },
    "error_summary": "unknown_legal_hold_error/..."
}
Example: insufficient_permissions
{
    "error": {
        ".tag": "insufficient_permissions"
    },
    "error_summary": "insufficient_permissions/..."
}
Example: other
{
    "error": {
        ".tag": "other"
    },
    "error_summary": "other/..."
}
Example: legal_hold_policy_not_found
{
    "error": {
        ".tag": "legal_hold_policy_not_found"
    },
    "error_summary": "legal_hold_policy_not_found/..."
}
LegalHoldsGetPolicyError (union)
unknown_legal_hold_errorVoidThere has been an unknown legal hold error.
insufficient_permissionsVoidYou don't have permissions to perform this action.
legal_hold_policy_not_foundVoidLegal hold policy does not exist for LegalHoldsGetPolicyArg.id.
See also general errors.

Description

List the file metadata that's under the hold. Note: Legal Holds is a paid add-on. Not all teams have the feature. Permission : Team member file access.

URL Structure
https://api.dropboxapi.com/2/team/legal_holds/list_held_revisions
Authentication
Team Authentication
Endpoint format
RPC
Required Scope
team_data.governance.write
Example
Get access token for:
curl -X POST https://api.dropboxapi.com/2/team/legal_holds/list_held_revisions \
    --header "Authorization: Bearer <get access token>" \
    --header "Content-Type: application/json" \
    --data "{\"id\":\"pid_dbhid:abcd1234\"}"
Parameters
{
    "id": "pid_dbhid:abcd1234"
}
LegalHoldsListHeldRevisionsArg
idString(pattern="^pid_dbhid:.+")The legal hold Id.
Returns
{
    "entries": [
        {
            "author_email": "a@a.com",
            "author_member_id": "dbmid:abcd1234abcd1234abcd1234abcd1234a23",
            "author_member_status": {
                ".tag": "active"
            },
            "content_hash": "abcd1234abcd1234abcd1234abcd1234abcd1234abcd1234abcd1234abcd1234",
            "file_type": "Document",
            "new_filename": "111_222.pdf",
            "original_file_path": "/a.pdf",
            "original_revision_id": "ab2rij4i5ojgfd",
            "server_modified": "2019-08-12T12:08:52Z",
            "size": 3
        }
    ],
    "has_more": false
}
LegalHoldsListHeldRevisionResult
entriesList of ()List of file entries that under the hold.
has_moreBooleanTrue if there are more file entries that haven't been returned. You can retrieve them with a call to /legal_holds/list_held_revisions_continue.
cursor String(min_length=1)?The cursor idicates where to continue reading file metadata entries for the next API call. When there are no more entries, the cursor will return none. Pass the cursor into /2/team/legal_holds/list_held_revisions/continue. This field is optional.
Errors
Example: unknown_legal_hold_error
{
    "error": {
        ".tag": "unknown_legal_hold_error"
    },
    "error_summary": "unknown_legal_hold_error/..."
}
Example: insufficient_permissions
{
    "error": {
        ".tag": "insufficient_permissions"
    },
    "error_summary": "insufficient_permissions/..."
}
Example: other
{
    "error": {
        ".tag": "other"
    },
    "error_summary": "other/..."
}
Example: transient_error
{
    "error": {
        ".tag": "transient_error"
    },
    "error_summary": "transient_error/..."
}
Example: legal_hold_still_empty
{
    "error": {
        ".tag": "legal_hold_still_empty"
    },
    "error_summary": "legal_hold_still_empty/..."
}
Example: inactive_legal_hold
{
    "error": {
        ".tag": "inactive_legal_hold"
    },
    "error_summary": "inactive_legal_hold/..."
}
LegalHoldsListHeldRevisionsError (union)
unknown_legal_hold_errorVoidThere has been an unknown legal hold error.
insufficient_permissionsVoidYou don't have permissions to perform this action.
transient_errorVoidTemporary infrastructure failure, please retry.
legal_hold_still_emptyVoidThe legal hold is not holding any revisions yet.
inactive_legal_holdVoidTrying to list revisions for an inactive legal hold.
See also general errors.

Description

Continue listing the file metadata that's under the hold. Note: Legal Holds is a paid add-on. Not all teams have the feature. Permission : Team member file access.

URL Structure
https://api.dropboxapi.com/2/team/legal_holds/list_held_revisions_continue
Authentication
Team Authentication
Endpoint format
RPC
Required Scope
team_data.governance.write
Example
Get access token for:
curl -X POST https://api.dropboxapi.com/2/team/legal_holds/list_held_revisions_continue \
    --header "Authorization: Bearer <get access token>" \
    --header "Content-Type: application/json" \
    --data "{\"id\":\"pid_dbhid:abcd1234\"}"
Parameters
{
    "id": "pid_dbhid:abcd1234"
}
LegalHoldsListHeldRevisionsContinueArg
idString(pattern="^pid_dbhid:.+")The legal hold Id.
cursor String(min_length=1)?The cursor idicates where to continue reading file metadata entries for the next API call. When there are no more entries, the cursor will return none. This field is optional.
Returns
{
    "entries": [
        {
            "author_email": "a@a.com",
            "author_member_id": "dbmid:abcd1234abcd1234abcd1234abcd1234a23",
            "author_member_status": {
                ".tag": "active"
            },
            "content_hash": "abcd1234abcd1234abcd1234abcd1234abcd1234abcd1234abcd1234abcd1234",
            "file_type": "Document",
            "new_filename": "111_222.pdf",
            "original_file_path": "/a.pdf",
            "original_revision_id": "ab2rij4i5ojgfd",
            "server_modified": "2019-08-12T12:08:52Z",
            "size": 3
        }
    ],
    "has_more": false
}
LegalHoldsListHeldRevisionResult
entriesList of ()List of file entries that under the hold.
has_moreBooleanTrue if there are more file entries that haven't been returned. You can retrieve them with a call to /legal_holds/list_held_revisions_continue.
cursor String(min_length=1)?The cursor idicates where to continue reading file metadata entries for the next API call. When there are no more entries, the cursor will return none. Pass the cursor into /2/team/legal_holds/list_held_revisions/continue. This field is optional.
Errors
Example: unknown_legal_hold_error
{
    "error": {
        ".tag": "unknown_legal_hold_error"
    },
    "error_summary": "unknown_legal_hold_error/..."
}
Example: insufficient_permissions
{
    "error": {
        ".tag": "insufficient_permissions"
    },
    "error_summary": "insufficient_permissions/..."
}
Example: other
{
    "error": {
        ".tag": "other"
    },
    "error_summary": "other/..."
}
Example: transient_error
{
    "error": {
        ".tag": "transient_error"
    },
    "error_summary": "transient_error/..."
}
Example: legal_hold_still_empty
{
    "error": {
        ".tag": "legal_hold_still_empty"
    },
    "error_summary": "legal_hold_still_empty/..."
}
Example: inactive_legal_hold
{
    "error": {
        ".tag": "inactive_legal_hold"
    },
    "error_summary": "inactive_legal_hold/..."
}
LegalHoldsListHeldRevisionsError (union)
unknown_legal_hold_errorVoidThere has been an unknown legal hold error.
insufficient_permissionsVoidYou don't have permissions to perform this action.
transient_errorVoidTemporary infrastructure failure, please retry.
legal_hold_still_emptyVoidThe legal hold is not holding any revisions yet.
inactive_legal_holdVoidTrying to list revisions for an inactive legal hold.
See also general errors.

Description

Lists legal holds on a team. Note: Legal Holds is a paid add-on. Not all teams have the feature. Permission : Team member file access.

URL Structure
https://api.dropboxapi.com/2/team/legal_holds/list_policies
Authentication
Team Authentication
Endpoint format
RPC
Required Scope
team_data.governance.write
Example
Get access token for:
curl -X POST https://api.dropboxapi.com/2/team/legal_holds/list_policies \
    --header "Authorization: Bearer <get access token>" \
    --header "Content-Type: application/json" \
    --data "{\"include_released\":false}"
Parameters
{
    "include_released": false
}
LegalHoldsListPoliciesArg
include_releasedBooleanWhether to return holds that were released. The default for this field is False.
Returns
{
    "policies": [
        {
            "activation_time": "2016-01-20T00:00:10Z",
            "end_date": "2017-12-31T00:00:00Z",
            "id": "pid_dbhid:abcd1234",
            "members": {
                "permanently_deleted_users": 2,
                "team_member_ids": [
                    "dbmid:efgh5678"
                ]
            },
            "name": "acme cfo policy",
            "start_date": "2016-01-01T00:00:00Z",
            "status": {
                ".tag": "active"
            }
        }
    ]
}
LegalHoldsListPoliciesResult
policiesList of ()
Errors
Example: unknown_legal_hold_error
{
    "error": {
        ".tag": "unknown_legal_hold_error"
    },
    "error_summary": "unknown_legal_hold_error/..."
}
Example: insufficient_permissions
{
    "error": {
        ".tag": "insufficient_permissions"
    },
    "error_summary": "insufficient_permissions/..."
}
Example: other
{
    "error": {
        ".tag": "other"
    },
    "error_summary": "other/..."
}
Example: transient_error
{
    "error": {
        ".tag": "transient_error"
    },
    "error_summary": "transient_error/..."
}
LegalHoldsListPoliciesError (union)
unknown_legal_hold_errorVoidThere has been an unknown legal hold error.
insufficient_permissionsVoidYou don't have permissions to perform this action.
transient_errorVoidTemporary infrastructure failure, please retry.
See also general errors.

Description

Releases a legal hold by Id. Note: Legal Holds is a paid add-on. Not all teams have the feature. Permission : Team member file access.

URL Structure
https://api.dropboxapi.com/2/team/legal_holds/release_policy
Authentication
Team Authentication
Endpoint format
RPC
Required Scope
team_data.governance.write
Example
Get access token for:
curl -X POST https://api.dropboxapi.com/2/team/legal_holds/release_policy \
    --header "Authorization: Bearer <get access token>" \
    --header "Content-Type: application/json" \
    --data "{\"id\":\"pid_dbhid:abcd1234\"}"
Parameters
{
    "id": "pid_dbhid:abcd1234"
}
LegalHoldsPolicyReleaseArg
idString(pattern="^pid_dbhid:.+")The legal hold Id.
Returns
No return values.
Errors
Example: unknown_legal_hold_error
{
    "error": {
        ".tag": "unknown_legal_hold_error"
    },
    "error_summary": "unknown_legal_hold_error/..."
}
Example: insufficient_permissions
{
    "error": {
        ".tag": "insufficient_permissions"
    },
    "error_summary": "insufficient_permissions/..."
}
Example: other
{
    "error": {
        ".tag": "other"
    },
    "error_summary": "other/..."
}
Example: legal_hold_performing_another_operation
{
    "error": {
        ".tag": "legal_hold_performing_another_operation"
    },
    "error_summary": "legal_hold_performing_another_operation/..."
}
Example: legal_hold_already_releasing
{
    "error": {
        ".tag": "legal_hold_already_releasing"
    },
    "error_summary": "legal_hold_already_releasing/..."
}
Example: legal_hold_policy_not_found
{
    "error": {
        ".tag": "legal_hold_policy_not_found"
    },
    "error_summary": "legal_hold_policy_not_found/..."
}
LegalHoldsPolicyReleaseError (union)
unknown_legal_hold_errorVoidThere has been an unknown legal hold error.
insufficient_permissionsVoidYou don't have permissions to perform this action.
legal_hold_performing_another_operationVoidLegal hold is currently performing another operation.
legal_hold_already_releasingVoidLegal hold is currently performing a release or is already released.
legal_hold_policy_not_foundVoidLegal hold policy does not exist for LegalHoldsPolicyReleaseArg.id.
See also general errors.

Description

Updates a legal hold. Note: Legal Holds is a paid add-on. Not all teams have the feature. Permission : Team member file access.

URL Structure
https://api.dropboxapi.com/2/team/legal_holds/update_policy
Authentication
Team Authentication
Endpoint format
RPC
Required Scope
team_data.governance.write
Example
Get access token for:
curl -X POST https://api.dropboxapi.com/2/team/legal_holds/update_policy \
    --header "Authorization: Bearer <get access token>" \
    --header "Content-Type: application/json" \
    --data "{\"id\":\"pid_dbhid:abcd1234\",\"members\":[\"dbmid:FDFSVF-DFSDF\"]}"
Parameters
{
    "id": "pid_dbhid:abcd1234",
    "members": [
        "dbmid:FDFSVF-DFSDF"
    ]
}
LegalHoldsPolicyUpdateArg
idString(pattern="^pid_dbhid:.+")The legal hold Id.
name String(max_length=140)?Policy new name. This field is optional.
description String(max_length=501)?Policy new description. This field is optional.
members List of (String)?List of team member IDs to apply the policy on. This field is optional.
Returns
{
    "activation_time": "2016-01-20T00:00:10Z",
    "end_date": "2017-12-31T00:00:00Z",
    "id": "pid_dbhid:abcd1234",
    "members": {
        "permanently_deleted_users": 2,
        "team_member_ids": [
            "dbmid:efgh5678"
        ]
    },
    "name": "acme cfo policy",
    "start_date": "2016-01-01T00:00:00Z",
    "status": {
        ".tag": "active"
    }
}
LegalHoldPolicy
idString(pattern="^pid_dbhid:.+")The legal hold id.
nameString(max_length=140)Policy name.
membersTeam members IDs and number of permanently deleted members under hold.
statusThe current state of the hold.
start_dateTimestamp(format="%Y-%m-%dT%H:%M:%SZ")Start date of the legal hold policy.
description String(max_length=501)?A description of the legal hold policy. This field is optional.
activation_time Timestamp(format="%Y-%m-%dT%H:%M:%SZ")?The time at which the legal hold was activated. This field is optional.
end_date Timestamp(format="%Y-%m-%dT%H:%M:%SZ")?End date of the legal hold policy. This field is optional.
Errors
Example: unknown_legal_hold_error
{
    "error": {
        ".tag": "unknown_legal_hold_error"
    },
    "error_summary": "unknown_legal_hold_error/..."
}
Example: insufficient_permissions
{
    "error": {
        ".tag": "insufficient_permissions"
    },
    "error_summary": "insufficient_permissions/..."
}
Example: other
{
    "error": {
        ".tag": "other"
    },
    "error_summary": "other/..."
}
Example: transient_error
{
    "error": {
        ".tag": "transient_error"
    },
    "error_summary": "transient_error/..."
}
Example: inactive_legal_hold
{
    "error": {
        ".tag": "inactive_legal_hold"
    },
    "error_summary": "inactive_legal_hold/..."
}
Example: legal_hold_performing_another_operation
{
    "error": {
        ".tag": "legal_hold_performing_another_operation"
    },
    "error_summary": "legal_hold_performing_another_operation/..."
}
Example: invalid_members
{
    "error": {
        ".tag": "invalid_members"
    },
    "error_summary": "invalid_members/..."
}
Example: number_of_users_on_hold_is_greater_than_hold_limitation
{
    "error": {
        ".tag": "number_of_users_on_hold_is_greater_than_hold_limitation"
    },
    "error_summary": "number_of_users_on_hold_is_greater_than_hold_limitation/..."
}
Example: empty_members_list
{
    "error": {
        ".tag": "empty_members_list"
    },
    "error_summary": "empty_members_list/..."
}
Example: name_must_be_unique
{
    "error": {
        ".tag": "name_must_be_unique"
    },
    "error_summary": "name_must_be_unique/..."
}
Example: legal_hold_policy_not_found
{
    "error": {
        ".tag": "legal_hold_policy_not_found"
    },
    "error_summary": "legal_hold_policy_not_found/..."
}
LegalHoldsPolicyUpdateError (union)
unknown_legal_hold_errorVoidThere has been an unknown legal hold error.
insufficient_permissionsVoidYou don't have permissions to perform this action.
transient_errorVoidTemporary infrastructure failure, please retry.
inactive_legal_holdVoidTrying to release an inactive legal hold.
legal_hold_performing_another_operationVoidLegal hold is currently performing another operation.
invalid_membersVoidSome members in the members list are not valid to be placed under legal hold.
number_of_users_on_hold_is_greater_than_hold_limitationVoidYou cannot add more than 5 users in a legal hold.
empty_members_listVoidThe users list must have at least one user.
name_must_be_uniqueVoidThe name provided is already in use by another legal hold.
legal_hold_policy_not_foundVoidLegal hold policy does not exist for LegalHoldsPolicyUpdateArg.id.
See also general errors.

/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
Required Scope
sessions.list
Example
Get access token for:
curl -X POST https://api.dropboxapi.com/2/team/linked_apps/list_member_linked_apps \
    --header "Authorization: Bearer <get access token>" \
    --header "Content-Type: application/json" \
    --data "{\"team_member_id\":\"dbmid:AAFdgehTzw7WlXhZJsbGCLePe8RvQGYDr-I\"}"
Parameters
{
    "team_member_id": "dbmid:AAFdgehTzw7WlXhZJsbGCLePe8RvQGYDr-I"
}
ListMemberAppsArg
team_member_idStringThe team member id.
Returns
{
    "linked_api_apps": [
        {
            "app_id": "dbaid:AAFdgehTzw7WlXhZJsbGCLePe8RvQGYDr-I",
            "app_name": "Notes",
            "is_app_folder": true,
            "linked": "2015-05-12T15:50:38Z",
            "publisher": "Notes company",
            "publisher_url": "http://company.com"
        }
    ]
}
ListMemberAppsResult
linked_api_appsList of ()List of third party applications linked by this team member.
Errors
Example: member_not_found
{
    "error": {
        ".tag": "member_not_found"
    },
    "error_summary": "member_not_found/..."
}
Example: other
{
    "error": {
        ".tag": "other"
    },
    "error_summary": "other/..."
}
ListMemberAppsError (open union)
Error returned by linked_apps/list_member_linked_apps.
member_not_foundVoidMember not found.
See also general errors.

/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
Required Scope
sessions.list
Example
Get access token for:
curl -X POST https://api.dropboxapi.com/2/team/linked_apps/list_members_linked_apps \
    --header "Authorization: Bearer <get access token>" \
    --header "Content-Type: application/json" \
    --data "{\"cursor\":\"AADAQO8ZWKvBkSMXb1J9dAYVvwZ0wcvfyzIBo2e1H-_N-67pfrYKTb4oN_3LG9_ilWjblZXuiR8ubjjiQQkHq-MvDjbe_6bkcJgjnTpowrRaQA\"}"
Parameters
{
    "cursor": "AADAQO8ZWKvBkSMXb1J9dAYVvwZ0wcvfyzIBo2e1H-_N-67pfrYKTb4oN_3LG9_ilWjblZXuiR8ubjjiQQkHq-MvDjbe_6bkcJgjnTpowrRaQA"
}
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
{
    "apps": [
        {
            "linked_api_apps": [
                {
                    "app_id": "dbaid:AAFdgehTzw7WlXhZJsbGCLePe8RvQGYDr-I",
                    "app_name": "Notes",
                    "is_app_folder": true,
                    "linked": "2015-05-12T15:50:38Z",
                    "publisher": "Notes company",
                    "publisher_url": "http://company.com"
                }
            ],
            "team_member_id": "dbmid:AAFdgehTzw7WlXhZJsbGCLePe8RvQGYDr-I"
        }
    ],
    "cursor": "AADAQO8ZWKvBkSMXb1J9dAYVvwZ0wcvfyzIBo2e1H-_N-67pfrYKTb4oN_3LG9_ilWjblZXuiR8ubjjiQQkHq-MvDjbe_6bkcJgjnTpowrRaQA",
    "has_more": true
}
ListMembersAppsResult
Information returned by linked_apps/list_members_linked_apps.
appsList of ()The linked applications of each member of the team.
has_moreBooleanIf 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": {
        ".tag": "reset"
    },
    "error_summary": "reset/..."
}
Example: other
{
    "error": {
        ".tag": "other"
    },
    "error_summary": "other/..."
}
ListMembersAppsError (open union)
Error returned by linked_apps/list_members_linked_apps.
resetVoidIndicates that the cursor has been invalidated. Call linked_apps/list_members_linked_apps again with an empty cursor to obtain a new cursor.
See also general errors.

/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
Required Scope
sessions.modify
Example
Get access token for:
curl -X POST https://api.dropboxapi.com/2/team/linked_apps/revoke_linked_app \
    --header "Authorization: Bearer <get access token>" \
    --header "Content-Type: application/json" \
    --data "{\"app_id\":\"dbaid:AAFdgehTzw7WlXhZJsbGCLePe8RvQGYDr-I\",\"keep_app_folder\":true,\"team_member_id\":\"dbmid:AAFdgehTzw7WlXhZJsbGCLePe8RvQGYDr-I\"}"
Parameters
{
    "app_id": "dbaid:AAFdgehTzw7WlXhZJsbGCLePe8RvQGYDr-I",
    "keep_app_folder": true,
    "team_member_id": "dbmid:AAFdgehTzw7WlXhZJsbGCLePe8RvQGYDr-I"
}
RevokeLinkedApiAppArg
app_idStringThe application's unique id.
team_member_idStringThe unique id of the member owning the device.
keep_app_folderdeprecatedBooleanField is deprecated. This flag is not longer supported, the application dedicated folder (in case the application uses one) will be kept. The default for this field is True.
Returns
No return values.
Errors
Example: app_not_found
{
    "error": {
        ".tag": "app_not_found"
    },
    "error_summary": "app_not_found/..."
}
Example: member_not_found
{
    "error": {
        ".tag": "member_not_found"
    },
    "error_summary": "member_not_found/..."
}
Example: app_folder_removal_not_supported
{
    "error": {
        ".tag": "app_folder_removal_not_supported"
    },
    "error_summary": "app_folder_removal_not_supported/..."
}
Example: other
{
    "error": {
        ".tag": "other"
    },
    "error_summary": "other/..."
}
RevokeLinkedAppError (open union)
Error returned by linked_apps/revoke_linked_app.
app_not_foundVoidApplication not found.
member_not_foundVoidMember not found.
app_folder_removal_not_supportedVoidApp folder removal is not supported.
See also general errors.

/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
Required Scope
sessions.modify
Example
Get access token for:
curl -X POST https://api.dropboxapi.com/2/team/linked_apps/revoke_linked_app_batch \
    --header "Authorization: Bearer <get access token>" \
    --header "Content-Type: application/json" \
    --data "{\"revoke_linked_app\":[{\"app_id\":\"dbaid:AAFdgehTzw7WlXhZJsbGCLePe8RvQGYDr-I\",\"keep_app_folder\":true,\"team_member_id\":\"dbmid:AAFdgehTzw7WlXhZJsbGCLePe8RvQGYDr-I\"}]}"
Parameters
{
    "revoke_linked_app": [
        {
            "app_id": "dbaid:AAFdgehTzw7WlXhZJsbGCLePe8RvQGYDr-I",
            "keep_app_folder": true,
            "team_member_id": "dbmid:AAFdgehTzw7WlXhZJsbGCLePe8RvQGYDr-I"
        }
    ]
}
RevokeLinkedApiAppBatchArg
revoke_linked_appList of ()
Returns
{
    "revoke_linked_app_status": [
        {
            "error_type": {
                ".tag": "app_not_found"
            },
            "success": false
        }
    ]
}
RevokeLinkedAppBatchResult
revoke_linked_app_statusList of ()
Errors
No endpoint-specific errors.
See also general errors.

/member_space_limits/excluded_users/add


Description

Add users to member space limits excluded users list.

URL Structure
https://api.dropboxapi.com/2/team/member_space_limits/excluded_users/add
Authentication
Team Authentication
Endpoint format
RPC
Required Scope
members.write
Example
Get access token for:
curl -X POST https://api.dropboxapi.com/2/team/member_space_limits/excluded_users/add \
    --header "Authorization: Bearer <get access token>" \
    --header "Content-Type: application/json" \
    --data "{\"users\":[{\".tag\":\"team_member_id\",\"team_member_id\":\"dbmid:efgh5678\"}]}"
Parameters
{
    "users": [
        {
            ".tag": "team_member_id",
            "team_member_id": "dbmid:efgh5678"
        }
    ]
}
ExcludedUsersUpdateArg
Argument of excluded users update operation. Should include a list of users to add/remove (according to endpoint), Maximum size of the list is 1000 users.
usersList of ()?List of users to be added/removed. This field is optional.
Returns
{
    "status": {
        ".tag": "success"
    }
}
ExcludedUsersUpdateResult
Excluded users update result.
statusUpdate status.
Errors
Example: users_not_in_team
{
    "error": {
        ".tag": "users_not_in_team"
    },
    "error_summary": "users_not_in_team/..."
}
Example: too_many_users
{
    "error": {
        ".tag": "too_many_users"
    },
    "error_summary": "too_many_users/..."
}
Example: other
{
    "error": {
        ".tag": "other"
    },
    "error_summary": "other/..."
}
ExcludedUsersUpdateError (open union)
Excluded users update error.
users_not_in_teamVoidAt least one of the users is not part of your team.
too_many_usersVoidA maximum of 1000 users for each of addition/removal can be supplied.
See also general errors.

/member_space_limits/excluded_users/list


Description

List member space limits excluded users.

URL Structure
https://api.dropboxapi.com/2/team/member_space_limits/excluded_users/list
Authentication
Team Authentication
Endpoint format
RPC
Required Scope
members.read
Example
Get access token for:
curl -X POST https://api.dropboxapi.com/2/team/member_space_limits/excluded_users/list \
    --header "Authorization: Bearer <get access token>" \
    --header "Content-Type: application/json" \
    --data "{\"limit\":100}"
Parameters
{
    "limit": 100
}
ExcludedUsersListArg
Excluded users list argument.
limitUInt32(min=1, max=1000)Number of results to return per call. The default for this field is 1000.
Returns
{
    "cursor": "ZtkX9_EHj3x7PMkVuFIhwKYXEpwpLwyxp9vMKomUhllil9q7eWiAu",
    "has_more": false,
    "users": []
}
ExcludedUsersListResult
Excluded users list result.
usersList of ()
has_moreBooleanIs true if there are additional excluded users that have not been returned yet. An additional call to member_space_limits/excluded_users/list/continue can retrieve them.
cursor String?Pass the cursor into member_space_limits/excluded_users/list/continue to obtain additional excluded users. This field is optional.
Errors
Example: list_error
{
    "error": {
        ".tag": "list_error"
    },
    "error_summary": "list_error/..."
}
Example: other
{
    "error": {
        ".tag": "other"
    },
    "error_summary": "other/..."
}
ExcludedUsersListError (open union)
Excluded users list error.
list_errorVoidAn error occurred.
See also general errors.

/member_space_limits/excluded_users/list/continue


Description

Continue listing member space limits excluded users.

URL Structure
https://api.dropboxapi.com/2/team/member_space_limits/excluded_users/list/continue
Authentication
Team Authentication
Endpoint format
RPC
Required Scope
members.read
Example
Get access token for:
curl -X POST https://api.dropboxapi.com/2/team/member_space_limits/excluded_users/list/continue \
    --header "Authorization: Bearer <get access token>" \
    --header "Content-Type: application/json" \
    --data "{\"cursor\":\"ZtkX9_EHj3x7PMkVuFIhwKYXEpwpLwyxp9vMKomUhllil9q7eWiAu\"}"
Parameters
{
    "cursor": "ZtkX9_EHj3x7PMkVuFIhwKYXEpwpLwyxp9vMKomUhllil9q7eWiAu"
}
ExcludedUsersListContinueArg
Excluded users list continue argument.
cursorStringIndicates from what point to get the next set of users.
Returns
{
    "cursor": "ZtkX9_EHj3x7PMkVuFIhwKYXEpwpLwyxp9vMKomUhllil9q7eWiAu",
    "has_more": false,
    "users": []
}
ExcludedUsersListResult
Excluded users list result.
usersList of ()
has_moreBooleanIs true if there are additional excluded users that have not been returned yet. An additional call to member_space_limits/excluded_users/list/continue can retrieve them.
cursor String?Pass the cursor into member_space_limits/excluded_users/list/continue to obtain additional excluded users. This field is optional.
Errors
Example: invalid_cursor
{
    "error": {
        ".tag": "invalid_cursor"
    },
    "error_summary": "invalid_cursor/..."
}
Example: other
{
    "error": {
        ".tag": "other"
    },
    "error_summary": "other/..."
}
ExcludedUsersListContinueError (open union)
Excluded users list continue error.
invalid_cursorVoidThe cursor is invalid.
See also general errors.

/member_space_limits/excluded_users/remove


Description

Remove users from member space limits excluded users list.

URL Structure
https://api.dropboxapi.com/2/team/member_space_limits/excluded_users/remove
Authentication
Team Authentication
Endpoint format
RPC
Required Scope
members.write
Example
Get access token for:
curl -X POST https://api.dropboxapi.com/2/team/member_space_limits/excluded_users/remove \
    --header "Authorization: Bearer <get access token>" \
    --header "Content-Type: application/json" \
    --data "{\"users\":[{\".tag\":\"team_member_id\",\"team_member_id\":\"dbmid:efgh5678\"}]}"
Parameters
{
    "users": [
        {
            ".tag": "team_member_id",
            "team_member_id": "dbmid:efgh5678"
        }
    ]
}
ExcludedUsersUpdateArg
Argument of excluded users update operation. Should include a list of users to add/remove (according to endpoint), Maximum size of the list is 1000 users.
usersList of ()?List of users to be added/removed. This field is optional.
Returns
{
    "status": {
        ".tag": "success"
    }
}
ExcludedUsersUpdateResult
Excluded users update result.
statusUpdate status.
Errors
Example: users_not_in_team
{
    "error": {
        ".tag": "users_not_in_team"
    },
    "error_summary": "users_not_in_team/..."
}
Example: too_many_users
{
    "error": {
        ".tag": "too_many_users"
    },
    "error_summary": "too_many_users/..."
}
Example: other
{
    "error": {
        ".tag": "other"
    },
    "error_summary": "other/..."
}
ExcludedUsersUpdateError (open union)
Excluded users update error.
users_not_in_teamVoidAt least one of the users is not part of your team.
too_many_usersVoidA maximum of 1000 users for each of addition/removal can be supplied.
See also general errors.

/member_space_limits/get_custom_quota


Description

Get users custom quota. A maximum of 1000 members can be specified in a single call. Note: to apply a custom space limit, a team admin needs to set a member space limit for the team first. (the team admin can check the settings here: https://www.dropbox.com/team/admin/settings/space).

URL Structure
https://api.dropboxapi.com/2/team/member_space_limits/get_custom_quota
Authentication
Team Authentication
Endpoint format
RPC
Required Scope
members.read
Example
Get access token for:
curl -X POST https://api.dropboxapi.com/2/team/member_space_limits/get_custom_quota \
    --header "Authorization: Bearer <get access token>" \
    --header "Content-Type: application/json" \
    --data "{\"users\":[{\".tag\":\"team_member_id\",\"team_member_id\":\"dbmid:efgh5678\"}]}"
Parameters
{
    "users": [
        {
            ".tag": "team_member_id",
            "team_member_id": "dbmid:efgh5678"
        }
    ]
}
CustomQuotaUsersArg
usersList of ()List of users.
Returns
List of (CustomQuotaResult (open union))
User custom quota.
successUser's custom quota.
invalid_userInvalid user (not in team).
Errors
Example: too_many_users
{
    "error": {
        ".tag": "too_many_users"
    },
    "error_summary": "too_many_users/..."
}
Example: other
{
    "error": {
        ".tag": "other"
    },
    "error_summary": "other/..."
}
CustomQuotaError (open union)
Error returned when getting member custom quota.
too_many_usersVoidA maximum of 1000 users can be set for a single call.
See also general errors.

/member_space_limits/remove_custom_quota


Description

Remove users custom quota. A maximum of 1000 members can be specified in a single call. Note: to apply a custom space limit, a team admin needs to set a member space limit for the team first. (the team admin can check the settings here: https://www.dropbox.com/team/admin/settings/space).

URL Structure
https://api.dropboxapi.com/2/team/member_space_limits/remove_custom_quota
Authentication
Team Authentication
Endpoint format
RPC
Required Scope
members.write
Example
Get access token for:
curl -X POST https://api.dropboxapi.com/2/team/member_space_limits/remove_custom_quota \
    --header "Authorization: Bearer <get access token>" \
    --header "Content-Type: application/json" \
    --data "{\"users\":[{\".tag\":\"team_member_id\",\"team_member_id\":\"dbmid:efgh5678\"}]}"
Parameters
{
    "users": [
        {
            ".tag": "team_member_id",
            "team_member_id": "dbmid:efgh5678"
        }
    ]
}
CustomQuotaUsersArg
usersList of ()List of users.
Returns
List of (RemoveCustomQuotaResult (open union))
User result for setting member custom quota.
successSuccessfully removed user.
invalid_userInvalid user (not in team).
Errors
Example: too_many_users
{
    "error": {
        ".tag": "too_many_users"
    },
    "error_summary": "too_many_users/..."
}
Example: other
{
    "error": {
        ".tag": "other"
    },
    "error_summary": "other/..."
}
CustomQuotaError (open union)
Error returned when getting member custom quota.
too_many_usersVoidA maximum of 1000 users can be set for a single call.
See also general errors.

/member_space_limits/set_custom_quota


Description

Set users custom quota. Custom quota has to be at least 15GB. A maximum of 1000 members can be specified in a single call. Note: to apply a custom space limit, a team admin needs to set a member space limit for the team first. (the team admin can check the settings here: https://www.dropbox.com/team/admin/settings/space).

URL Structure
https://api.dropboxapi.com/2/team/member_space_limits/set_custom_quota
Authentication
Team Authentication
Endpoint format
RPC
Required Scope
members.read
Example
Get access token for:
curl -X POST https://api.dropboxapi.com/2/team/member_space_limits/set_custom_quota \
    --header "Authorization: Bearer <get access token>" \
    --header "Content-Type: application/json" \
    --data "{\"users_and_quotas\":[{\"quota_gb\":30,\"user\":{\".tag\":\"team_member_id\",\"team_member_id\":\"dbmid:efgh5678\"}}]}"
Parameters
{
    "users_and_quotas": [
        {
            "quota_gb": 30,
            "user": {
                ".tag": "team_member_id",
                "team_member_id": "dbmid:efgh5678"
            }
        }
    ]
}
SetCustomQuotaArg
users_and_quotasList of ()List of users and their custom quotas.
Returns
List of (CustomQuotaResult (open union))
User custom quota.
successUser's custom quota.
invalid_userInvalid user (not in team).
Errors
Example: too_many_users
{
    "error": {
        ".tag": "too_many_users"
    },
    "error_summary": "too_many_users/..."
}
Example: other
{
    "error": {
        ".tag": "other"
    },
    "error_summary": "other/..."
}
Example: some_users_are_excluded
{
    "error": {
        ".tag": "some_users_are_excluded"
    },
    "error_summary": "some_users_are_excluded/..."
}
SetCustomQuotaError (union)
Error returned when setting member custom quota.
too_many_usersVoidA maximum of 1000 users can be set for a single call.
some_users_are_excludedVoidSome of the users are on the excluded users list and can't have custom quota set.
See also general errors.

/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.

URL Structure
https://api.dropboxapi.com/2/team/members/add_v2
Authentication
Team Authentication
Endpoint format
RPC
Required Scope
members.write
Example
Get access token for:
curl -X POST https://api.dropboxapi.com/2/team/members/add_v2 \
    --header "Authorization: Bearer <get access token>" \
    --header "Content-Type: application/json" \
    --data "{\"force_async\":false,\"new_members\":[{\"member_email\":\"tom.s@company.com\",\"member_external_id\":\"company_id:342432\",\"member_given_name\":\"Tom\",\"member_surname\":\"Silverstone\",\"role_ids\":[\"pid_dbtmr:2345\"],\"send_welcome_email\":true}]}"
Parameters
{
    "force_async": false,
    "new_members": [
        {
            "member_email": "tom.s@company.com",
            "member_external_id": "company_id:342432",
            "member_given_name": "Tom",
            "member_surname": "Silverstone",
            "role_ids": [
                "pid_dbtmr:2345"
            ],
            "send_welcome_email": true
        }
    ]
}
MembersAddV2Arg
new_membersList of ()Details of new members to be added to the team.
force_asyncBooleanWhether to force the add to happen asynchronously. The default for this field is False.
Returns
{
    ".tag": "complete",
    "complete": [
        {
            ".tag": "success",
            "profile": {
                "account_id": "dbid:AAH4f99T0taONIb-OurWxbNQ6ywGRopQngc",
                "email": "tami@seagull.com",
                "email_verified": false,
                "external_id": "244423",
                "groups": [
                    "g:e2db7665347abcd600000000001a2b3c"
                ],
                "joined_on": "2015-05-12T15:50:38Z",
                "member_folder_id": "20",
                "membership_type": {
                    ".tag": "full"
                },
                "name": {
                    "abbreviated_name": "FF",
                    "display_name": "Franz Ferdinand (Personal)",
                    "familiar_name": "Franz",
                    "given_name": "Franz",
                    "surname": "Ferdinand"
                },
                "profile_photo_url": "https://dl-web.dropbox.com/account_photo/get/dbaphid%3AAAHWGmIXV3sUuOmBfTz0wPsiqHUpBWvv3ZA?vers=1556069330102&size=128x128",
                "root_folder_id": "30",
                "secondary_emails": [
                    {
                        "email": "grape@strawberry.com",
                        "is_verified": false
                    },
                    {
                        "email": "apple@orange.com",
                        "is_verified": true
                    }
                ],
                "status": {
                    ".tag": "active"
                },
                "team_member_id": "dbmid:FDFSVF-DFSDF"
            },
            "roles": [
                {
                    "description": "Add, remove, and manage member accounts.",
                    "name": "User management admin",
                    "role_id": "pid_dbtmr:3456"
                }
            ]
        }
    ]
}
Example: other
{
    ".tag": "other"
}
MembersAddLaunchV2Result (open union)
async_job_idString(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.
completeList of ()
Errors
No endpoint-specific errors.
See also general errors.

/members/add/job_status/get


Description

Once an async_job_id is returned from members/add:2 , 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_v2
Authentication
Team Authentication
Endpoint format
RPC
Required Scope
members.write
Example
Get access token for:
curl -X POST https://api.dropboxapi.com/2/team/members/add/job_status/get_v2 \
    --header "Authorization: Bearer <get access token>" \
    --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_idString(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": {
                "account_id": "dbid:AAH4f99T0taONIb-OurWxbNQ6ywGRopQngc",
                "email": "tami@seagull.com",
                "email_verified": false,
                "external_id": "244423",
                "groups": [
                    "g:e2db7665347abcd600000000001a2b3c"
                ],
                "joined_on": "2015-05-12T15:50:38Z",
                "member_folder_id": "20",
                "membership_type": {
                    ".tag": "full"
                },
                "name": {
                    "abbreviated_name": "FF",
                    "display_name": "Franz Ferdinand (Personal)",
                    "familiar_name": "Franz",
                    "given_name": "Franz",
                    "surname": "Ferdinand"
                },
                "profile_photo_url": "https://dl-web.dropbox.com/account_photo/get/dbaphid%3AAAHWGmIXV3sUuOmBfTz0wPsiqHUpBWvv3ZA?vers=1556069330102&size=128x128",
                "root_folder_id": "30",
                "secondary_emails": [
                    {
                        "email": "grape@strawberry.com",
                        "is_verified": false
                    },
                    {
                        "email": "apple@orange.com",
                        "is_verified": true
                    }
                ],
                "status": {
                    ".tag": "active"
                },
                "team_member_id": "dbmid:FDFSVF-DFSDF"
            },
            "roles": [
                {
                    "description": "Add, remove, and manage member accounts.",
                    "name": "User management admin",
                    "role_id": "pid_dbtmr:3456"
                }
            ]
        }
    ]
}
Example: in_progress
{
    ".tag": "in_progress"
}
Example: other
{
    ".tag": "other"
}
MembersAddJobStatusV2Result (open union)
in_progressVoidThe asynchronous job is still in progress.
completeList of ()The asynchronous job has finished. For each member that was specified in the parameter MembersAddArg that was provided to members/add:2, a corresponding item is returned in this list.
failedStringThe asynchronous job returned an error. The string contains an error message.
Errors
Example: invalid_async_job_id
{
    "error": {
        ".tag": "invalid_async_job_id"
    },
    "error_summary": "invalid_async_job_id/..."
}
Example: internal_error
{
    "error": {
        ".tag": "internal_error"
    },
    "error_summary": "internal_error/..."
}
Example: other
{
    "error": {
        ".tag": "other"
    },
    "error_summary": "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.
invalid_async_job_idVoidThe job ID is invalid.
internal_errorVoidSomething 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.
See also general errors.

/members/delete_profile_photo


Description

Deletes a team member's profile photo. Permission : Team member management.

URL Structure
https://api.dropboxapi.com/2/team/members/delete_profile_photo_v2
Authentication
Team Authentication
Endpoint format
RPC
Required Scope
members.write
Example
Get access token for:
curl -X POST https://api.dropboxapi.com/2/team/members/delete_profile_photo_v2 \
    --header "Authorization: Bearer <get access token>" \
    --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"
    }
}
MembersDeleteProfilePhotoArg
userIdentity of the user whose profile photo will be deleted.
Returns
{
    "member_info": {
        "profile": {
            "account_id": "dbid:AAH4f99T0taONIb-OurWxbNQ6ywGRopQngc",
            "email": "tami@seagull.com",
            "email_verified": false,
            "external_id": "244423",
            "groups": [
                "g:e2db7665347abcd600000000001a2b3c"
            ],
            "joined_on": "2015-05-12T15:50:38Z",
            "member_folder_id": "20",
            "membership_type": {
                ".tag": "full"
            },
            "name": {
                "abbreviated_name": "FF",
                "display_name": "Franz Ferdinand (Personal)",
                "familiar_name": "Franz",
                "given_name": "Franz",
                "surname": "Ferdinand"
            },
            "profile_photo_url": "https://dl-web.dropbox.com/account_photo/get/dbaphid%3AAAHWGmIXV3sUuOmBfTz0wPsiqHUpBWvv3ZA?vers=1556069330102&size=128x128",
            "root_folder_id": "30",
            "secondary_emails": [
                {
                    "email": "grape@strawberry.com",
                    "is_verified": false
                },
                {
                    "email": "apple@orange.com",
                    "is_verified": true
                }
            ],
            "status": {
                ".tag": "active"
            },
            "team_member_id": "dbmid:FDFSVF-DFSDF"
        },
        "roles": [
            {
                "description": "Add, remove, and manage member accounts.",
                "name": "User management admin",
                "role_id": "pid_dbtmr:3456"
            }
        ]
    }
}
TeamMemberInfoV2Result
Information about a team member, after the change, like at members/set_profile:2.
member_infoMember info, after the change.
Errors
Example: user_not_found
{
    "error": {
        ".tag": "user_not_found"
    },
    "error_summary": "user_not_found/..."
}
Example: user_not_in_team
{
    "error": {
        ".tag": "user_not_in_team"
    },
    "error_summary": "user_not_in_team/..."
}
Example: set_profile_disallowed
{
    "error": {
        ".tag": "set_profile_disallowed"
    },
    "error_summary": "set_profile_disallowed/..."
}
Example: other
{
    "error": {
        ".tag": "other"
    },
    "error_summary": "other/..."
}
MembersDeleteProfilePhotoError (open union)
user_not_foundVoidNo matching user found. The provided team_member_id, email, or external_id does not exist on this team.
user_not_in_teamVoidThe user is not a member of the team.
set_profile_disallowedVoidModifying deleted users is not allowed.
See also general errors.

/members/get_available_team_member_roles


Description

Get available TeamMemberRoles for the connected team. To be used with members/set_admin_permissions:2. Permission : Team member management.

URL Structure
https://api.dropboxapi.com/2/team/members/get_available_team_member_roles
Authentication
Team Authentication
Endpoint format
RPC
Required Scope
members.read
Example
Get access token for:
curl -X POST https://api.dropboxapi.com/2/team/members/get_available_team_member_roles \
    --header "Authorization: Bearer <get access token>"
Parameters
No parameters.
Returns
{
    "roles": [
        {
            "description": "User can do most user provisioning, de-provisioning and management.",
            "name": "Team admin",
            "role_id": "pid_dbtmr:2345"
        },
        {
            "description": "Make payments and renew contracts.",
            "name": "Billing admin",
            "role_id": "pid_dbtmr:5678"
        },
        {
            "description": "Add, remove, and manage member accounts.",
            "name": "User management admin",
            "role_id": "pid_dbtmr:3456"
        },
        {
            "description": "Help members with limited tasks, including password reset.",
            "name": "Support admin",
            "role_id": "pid_dbtmr:4567"
        }
    ]
}
MembersGetAvailableTeamMemberRolesResult
Available TeamMemberRole for the connected team. To be used with members/set_admin_permissions:2.
rolesList of ()Available roles.
Errors
No endpoint-specific errors.
See also general errors.

/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_v2
Authentication
Team Authentication
Endpoint format
RPC
Required Scope
members.read
Example
Get access token for:
curl -X POST https://api.dropboxapi.com/2/team/members/get_info_v2 \
    --header "Authorization: Bearer <get access token>" \
    --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"
        }
    ]
}
MembersGetInfoV2Arg
membersList of ()List of team members.
Returns
{
    "members_info": [
        {
            ".tag": "member_info",
            "profile": {
                "account_id": "dbid:AAH4f99T0taONIb-OurWxbNQ6ywGRopQngc",
                "email": "tami@seagull.com",
                "email_verified": false,
                "external_id": "244423",
                "groups": [
                    "g:e2db7665347abcd600000000001a2b3c"
                ],
                "joined_on": "2015-05-12T15:50:38Z",
                "member_folder_id": "20",
                "membership_type": {
                    ".tag": "full"
                },
                "name": {
                    "abbreviated_name": "FF",
                    "display_name": "Franz Ferdinand (Personal)",
                    "familiar_name": "Franz",
                    "given_name": "Franz",
                    "surname": "Ferdinand"
                },
                "profile_photo_url": "https://dl-web.dropbox.com/account_photo/get/dbaphid%3AAAHWGmIXV3sUuOmBfTz0wPsiqHUpBWvv3ZA?vers=1556069330102&size=128x128",
                "root_folder_id": "30",
                "secondary_emails": [
                    {
                        "email": "grape@strawberry.com",
                        "is_verified": false
                    },
                    {
                        "email": "apple@orange.com",
                        "is_verified": true
                    }
                ],
                "status": {
                    ".tag": "active"
                },
                "team_member_id": "dbmid:FDFSVF-DFSDF"
            },
            "roles": [
                {
                    "description": "Add, remove, and manage member accounts.",
                    "name": "User management admin",
                    "role_id": "pid_dbtmr:3456"
                }
            ]
        }
    ]
}
MembersGetInfoV2Result
members_infoList of ()List of team members info.
Errors
No endpoint-specific errors.
See also general errors.

/members/list


Description

Lists members of a team. Permission : Team information.

URL Structure
https://api.dropboxapi.com/2/team/members/list_v2
Authentication
Team Authentication
Endpoint format
RPC
Required Scope
members.read
Example
Get access token for:
curl -X POST https://api.dropboxapi.com/2/team/members/list_v2 \
    --header "Authorization: Bearer <get access token>" \
    --header "Content-Type: application/json" \
    --data "{\"include_removed\":false,\"limit\":100}"
Parameters
{
    "include_removed": false,
    "limit": 100
}
MembersListArg
limitUInt32(min=1, max=1000)Number of results to return per call. The default for this field is 1000.
include_removedBooleanWhether to return removed members. The default for this field is False.
Returns
{
    "cursor": "ZtkX9_EHj3x7PMkVuFIhwKYXEpwpLwyxp9vMKomUhllil9q7eWiAu",
    "has_more": true,
    "members": [
        {
            "profile": {
                "account_id": "dbid:AAH4f99T0taONIb-OurWxbNQ6ywGRopQngc",
                "email": "tami@seagull.com",
                "email_verified": false,
                "external_id": "244423",
                "groups": [
                    "g:e2db7665347abcd600000000001a2b3c"
                ],
                "joined_on": "2015-05-12T15:50:38Z",
                "member_folder_id": "20",
                "membership_type": {
                    ".tag": "full"
                },
                "name": {
                    "abbreviated_name": "FF",
                    "display_name": "Franz Ferdinand (Personal)",
                    "familiar_name": "Franz",
                    "given_name": "Franz",
                    "surname": "Ferdinand"
                },
                "profile_photo_url": "https://dl-web.dropbox.com/account_photo/get/dbaphid%3AAAHWGmIXV3sUuOmBfTz0wPsiqHUpBWvv3ZA?vers=1556069330102&size=128x128",
                "root_folder_id": "30",
                "secondary_emails": [
                    {
                        "email": "grape@strawberry.com",
                        "is_verified": false
                    },
                    {
                        "email": "apple@orange.com",
                        "is_verified": true
                    }
                ],
                "status": {
                    ".tag": "active"
                },
                "team_member_id": "dbmid:FDFSVF-DFSDF"
            },
            "roles": [
                {
                    "description": "Add, remove, and manage member accounts.",
                    "name": "User management admin",
                    "role_id": "pid_dbtmr:3456"
                }
            ]
        }
    ]
}
MembersListV2Result
membersList of ()List of team members.
cursorStringPass the cursor into members/list/continue:2 to obtain the additional members.
has_moreBooleanIs true if there are additional team members that have not been returned yet. An additional call to members/list/continue:2 can retrieve them.
Errors
No endpoint-specific errors.
See also general errors.

/members/list/continue


Description

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

URL Structure
https://api.dropboxapi.com/2/team/members/list/continue_v2
Authentication
Team Authentication
Endpoint format
RPC
Required Scope
members.read
Example
Get access token for:
curl -X POST https://api.dropboxapi.com/2/team/members/list/continue_v2 \
    --header "Authorization: Bearer <get access token>" \
    --header "Content-Type: application/json" \
    --data "{\"cursor\":\"ZtkX9_EHj3x7PMkVuFIhwKYXEpwpLwyxp9vMKomUhllil9q7eWiAu\"}"
Parameters
{
    "cursor": "ZtkX9_EHj3x7PMkVuFIhwKYXEpwpLwyxp9vMKomUhllil9q7eWiAu"
}
MembersListContinueArg
cursorStringIndicates from what point to get the next set of members.
Returns
{
    "cursor": "ZtkX9_EHj3x7PMkVuFIhwKYXEpwpLwyxp9vMKomUhllil9q7eWiAu",
    "has_more": true,
    "members": [
        {
            "profile": {
                "account_id": "dbid:AAH4f99T0taONIb-OurWxbNQ6ywGRopQngc",
                "email": "tami@seagull.com",
                "email_verified": false,
                "external_id": "244423",
                "groups": [
                    "g:e2db7665347abcd600000000001a2b3c"
                ],
                "joined_on": "2015-05-12T15:50:38Z",
                "member_folder_id": "20",
                "membership_type": {
                    ".tag": "full"
                },
                "name": {
                    "abbreviated_name": "FF",
                    "display_name": "Franz Ferdinand (Personal)",
                    "familiar_name": "Franz",
                    "given_name": "Franz",
                    "surname": "Ferdinand"
                },
                "profile_photo_url": "https://dl-web.dropbox.com/account_photo/get/dbaphid%3AAAHWGmIXV3sUuOmBfTz0wPsiqHUpBWvv3ZA?vers=1556069330102&size=128x128",
                "root_folder_id": "30",
                "secondary_emails": [
                    {
                        "email": "grape@strawberry.com",
                        "is_verified": false
                    },
                    {
                        "email": "apple@orange.com",
                        "is_verified": true
                    }
                ],
                "status": {
                    ".tag": "active"
                },
                "team_member_id": "dbmid:FDFSVF-DFSDF"
            },
            "roles": [
                {
                    "description": "Add, remove, and manage member accounts.",
                    "name": "User management admin",
                    "role_id": "pid_dbtmr:3456"
                }
            ]
        }
    ]
}
MembersListV2Result
membersList of ()List of team members.
cursorStringPass the cursor into members/list/continue:2 to obtain the additional members.
has_moreBooleanIs true if there are additional team members that have not been returned yet. An additional call to members/list/continue:2 can retrieve them.
Errors
Example: invalid_cursor
{
    "error": {
        ".tag": "invalid_cursor"
    },
    "error_summary": "invalid_cursor/..."
}
Example: other
{
    "error": {
        ".tag": "other"
    },
    "error_summary": "other/..."
}
MembersListContinueError (open union)
invalid_cursorVoidThe cursor is invalid.
See also general errors.

/members/move_former_member_files


Description

Moves removed member's files to a different member. This endpoint initiates an asynchronous job. To obtain the final result of the job, the client should periodically poll members/move_former_member_files/job_status/check. Permission : Team member management.

URL Structure
https://api.dropboxapi.com/2/team/members/move_former_member_files
Authentication
Team Authentication
Endpoint format
RPC
Required Scope
members.write
Example
Get access token for:
curl -X POST https://api.dropboxapi.com/2/team/members/move_former_member_files \
    --header "Authorization: Bearer <get access token>" \
    --header "Content-Type: application/json" \
    --data "{\"transfer_admin_id\":{\".tag\":\"team_member_id\",\"team_member_id\":\"dbmid:efgh5678\"},\"transfer_dest_id\":{\".tag\":\"team_member_id\",\"team_member_id\":\"dbmid:efgh5678\"},\"user\":{\".tag\":\"team_member_id\",\"team_member_id\":\"dbmid:efgh5678\"}}"
Parameters
{
    "transfer_admin_id": {
        ".tag": "team_member_id",
        "team_member_id": "dbmid:efgh5678"
    },
    "transfer_dest_id": {
        ".tag": "team_member_id",
        "team_member_id": "dbmid:efgh5678"
    },
    "user": {
        ".tag": "team_member_id",
        "team_member_id": "dbmid:efgh5678"
    }
}
MembersDataTransferArg
userIdentity of user to remove/suspend/have their files moved.
transfer_dest_idFiles from the deleted member account will be transferred to this user.
transfer_admin_idErrors during the transfer process will be sent via email to this user.
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.
async_job_idString(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.
completeVoidThe job finished synchronously and successfully.
Errors
Example: user_not_found
{
    "error": {
        ".tag": "user_not_found"
    },
    "error_summary": "user_not_found/..."
}
Example: user_not_in_team
{
    "error": {
        ".tag": "user_not_in_team"
    },
    "error_summary": "user_not_in_team/..."
}
Example: other
{
    "error": {
        ".tag": "other"
    },
    "error_summary": "other/..."
}
Example: removed_and_transfer_dest_should_differ
{
    "error": {
        ".tag": "removed_and_transfer_dest_should_differ"
    },
    "error_summary": "removed_and_transfer_dest_should_differ/..."
}
Example: removed_and_transfer_admin_should_differ
{
    "error": {
        ".tag": "removed_and_transfer_admin_should_differ"
    },
    "error_summary": "removed_and_transfer_admin_should_differ/..."
}
Example: transfer_dest_user_not_found
{
    "error": {
        ".tag": "transfer_dest_user_not_found"
    },
    "error_summary": "transfer_dest_user_not_found/..."
}
Example: transfer_dest_user_not_in_team
{
    "error": {
        ".tag": "transfer_dest_user_not_in_team"
    },
    "error_summary": "transfer_dest_user_not_in_team/..."
}
Example: transfer_admin_user_not_in_team
{
    "error": {
        ".tag": "transfer_admin_user_not_in_team"
    },
    "error_summary": "transfer_admin_user_not_in_team/..."
}
Example: transfer_admin_user_not_found
{
    "error": {
        ".tag": "transfer_admin_user_not_found"
    },
    "error_summary": "transfer_admin_user_not_found/..."
}
Example: unspecified_transfer_admin_id
{
    "error": {
        ".tag": "unspecified_transfer_admin_id"
    },
    "error_summary": "unspecified_transfer_admin_id/..."
}
Example: transfer_admin_is_not_admin
{
    "error": {
        ".tag": "transfer_admin_is_not_admin"
    },
    "error_summary": "transfer_admin_is_not_admin/..."
}
Example: recipient_not_verified
{
    "error": {
        ".tag": "recipient_not_verified"
    },
    "error_summary": "recipient_not_verified/..."
}
Example: user_data_is_being_transferred
{
    "error": {
        ".tag": "user_data_is_being_transferred"
    },
    "error_summary": "user_data_is_being_transferred/..."
}
Example: user_not_removed
{
    "error": {
        ".tag": "user_not_removed"
    },
    "error_summary": "user_not_removed/..."
}
Example: user_data_cannot_be_transferred
{
    "error": {
        ".tag": "user_data_cannot_be_transferred"
    },
    "error_summary": "user_data_cannot_be_transferred/..."
}
Example: user_data_already_transferred
{
    "error": {
        ".tag": "user_data_already_transferred"
    },
    "error_summary": "user_data_already_transferred/..."
}
MembersTransferFormerMembersFilesError (union)
user_not_foundVoidNo matching user found. The provided team_member_id, email, or external_id does not exist on this team.
user_not_in_teamVoidThe user is not a member of the team.
removed_and_transfer_dest_should_differVoidExpected removed user and transfer_dest user to be different.
removed_and_transfer_admin_should_differVoidExpected removed user and transfer_admin user to be different.
transfer_dest_user_not_foundVoidNo matching user found for the argument transfer_dest_id.
transfer_dest_user_not_in_teamVoidThe provided transfer_dest_id does not exist on this team.
transfer_admin_user_not_in_teamVoidThe provided transfer_admin_id does not exist on this team.
transfer_admin_user_not_foundVoidNo matching user found for the argument transfer_admin_id.
unspecified_transfer_admin_idVoidThe transfer_admin_id argument must be provided when file transfer is requested.
transfer_admin_is_not_adminVoidSpecified transfer_admin user is not a team admin.
recipient_not_verifiedVoidThe recipient user's email is not verified.
user_data_is_being_transferredVoidThe user's data is being transferred. Please wait some time before retrying.
user_not_removedVoidNo matching removed user found for the argument user.
user_data_cannot_be_transferredVoidUser files aren't transferable anymore.
user_data_already_transferredVoidUser's data has already been transferred to another user.
See also general errors.

/members/move_former_member_files/job_status/check


Description

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

URL Structure
https://api.dropboxapi.com/2/team/members/move_former_member_files/job_status/check
Authentication
Team Authentication
Endpoint format
RPC
Required Scope
members.write
Example
Get access token for:
curl -X POST https://api.dropboxapi.com/2/team/members/move_former_member_files/job_status/check \
    --header "Authorization: Bearer <get access token>" \
    --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_idString(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.
in_progressVoidThe asynchronous job is still in progress.
completeVoidThe asynchronous job has completed successfully.
Errors
Example: invalid_async_job_id
{
    "error": {
        ".tag": "invalid_async_job_id"
    },
    "error_summary": "invalid_async_job_id/..."
}
Example: internal_error
{
    "error": {
        ".tag": "internal_error"
    },
    "error_summary": "internal_error/..."
}
Example: other
{
    "error": {
        ".tag": "other"
    },
    "error_summary": "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.
invalid_async_job_idVoidThe job ID is invalid.
internal_errorVoidSomething 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.
See also general errors.

/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
Required Scope
members.delete
Example
Get access token for:
curl -X POST https://api.dropboxapi.com/2/team/members/recover \
    --header "Authorization: Bearer <get access token>" \
    --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.
userIdentity of user to recover.
Returns
No return values.
Errors
Example: user_not_found
{
    "error": {
        ".tag": "user_not_found"
    },
    "error_summary": "user_not_found/..."
}
Example: user_unrecoverable
{
    "error": {
        ".tag": "user_unrecoverable"
    },
    "error_summary": "user_unrecoverable/..."
}
Example: user_not_in_team
{
    "error": {
        ".tag": "user_not_in_team"
    },
    "error_summary": "user_not_in_team/..."
}
Example: team_license_limit
{
    "error": {
        ".tag": "team_license_limit"
    },
    "error_summary": "team_license_limit/..."
}
Example: other
{
    "error": {
        ".tag": "other"
    },
    "error_summary": "other/..."
}
MembersRecoverError (open union)
user_not_foundVoidNo matching user found. The provided team_member_id, email, or external_id does not exist on this team.
user_unrecoverableVoidThe user is not recoverable.
user_not_in_teamVoidThe user is not a member of the team.
team_license_limitVoidTeam is full. The organization has no available licenses.
See also general errors.

/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. Accounts can have their files transferred via the admin console for a limited time, based on the version history length associated with the team (180 days for most teams). Accounts can have their stacks transferred through the admin console. This only transfers stacks that they have created. 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
Required Scope
members.delete
Example
Get access token for:
curl -X POST https://api.dropboxapi.com/2/team/members/remove \
    --header "Authorization: Bearer <get access token>" \
    --header "Content-Type: application/json" \
    --data "{\"keep_account\":false,\"retain_team_shares\":false,\"transfer_admin_id\":{\".tag\":\"team_member_id\",\"team_member_id\":\"dbmid:efgh5678\"},\"transfer_dest_id\":{\".tag\":\"team_member_id\",\"team_member_id\":\"dbmid:efgh5678\"},\"user\":{\".tag\":\"team_member_id\",\"team_member_id\":\"dbmid:efgh5678\"},\"wipe_data\":true}"
Parameters
{
    "keep_account": false,
    "retain_team_shares": false,
    "transfer_admin_id": {
        ".tag": "team_member_id",
        "team_member_id": "dbmid:efgh5678"
    },
    "transfer_dest_id": {
        ".tag": "team_member_id",
        "team_member_id": "dbmid:efgh5678"
    },
    "user": {
        ".tag": "team_member_id",
        "team_member_id": "dbmid:efgh5678"
    },
    "wipe_data": true
}
MembersRemoveArg
userIdentity of user to remove/suspend/have their files moved.
wipe_dataBooleanIf provided, controls if the user's data will be deleted on their linked devices. The default for this field is True.
transfer_dest_id?If provided, files from the deleted member account will be transferred to this user. This field is optional.
transfer_admin_id?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.
keep_accountBooleanDowngrade 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.
retain_team_sharesBooleanIf provided, allows removed users to keep access to Dropbox folders (not Dropbox Paper folders) already explicitly shared with them (not via a group) when they are downgraded to a Basic account. Users will not retain access to folders that do not allow external sharing. In order to keep the sharing relationships, the arguments wipe_data should be set to false and keep_account should be set to true. 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.
async_job_idString(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.
completeVoidThe job finished synchronously and successfully.
Errors
Example: user_not_found
{
    "error": {
        ".tag": "user_not_found"
    },
    "error_summary": "user_not_found/..."
}
Example: user_not_in_team
{
    "error": {
        ".tag": "user_not_in_team"
    },
    "error_summary": "user_not_in_team/..."
}
Example: other
{
    "error": {
        ".tag": "other"
    },
    "error_summary": "other/..."
}
Example: removed_and_transfer_dest_should_differ
{
    "error": {
        ".tag": "removed_and_transfer_dest_should_differ"
    },
    "error_summary": "removed_and_transfer_dest_should_differ/..."
}
Example: removed_and_transfer_admin_should_differ
{
    "error": {
        ".tag": "removed_and_transfer_admin_should_differ"
    },
    "error_summary": "removed_and_transfer_admin_should_differ/..."
}
Example: transfer_dest_user_not_found
{
    "error": {
        ".tag": "transfer_dest_user_not_found"
    },
    "error_summary": "transfer_dest_user_not_found/..."
}
Example: transfer_dest_user_not_in_team
{
    "error": {
        ".tag": "transfer_dest_user_not_in_team"
    },
    "error_summary": "transfer_dest_user_not_in_team/..."
}
Example: transfer_admin_user_not_in_team
{
    "error": {
        ".tag": "transfer_admin_user_not_in_team"
    },
    "error_summary": "transfer_admin_user_not_in_team/..."
}
Example: transfer_admin_user_not_found
{
    "error": {
        ".tag": "transfer_admin_user_not_found"
    },
    "error_summary": "transfer_admin_user_not_found/..."
}
Example: unspecified_transfer_admin_id
{
    "error": {
        ".tag": "unspecified_transfer_admin_id"
    },
    "error_summary": "unspecified_transfer_admin_id/..."
}
Example: transfer_admin_is_not_admin
{
    "error": {
        ".tag": "transfer_admin_is_not_admin"
    },
    "error_summary": "transfer_admin_is_not_admin/..."
}
Example: recipient_not_verified
{
    "error": {
        ".tag": "recipient_not_verified"
    },
    "error_summary": "recipient_not_verified/..."
}
Example: remove_last_admin
{
    "error": {
        ".tag": "remove_last_admin"
    },
    "error_summary": "remove_last_admin/..."
}
Example: cannot_keep_account_and_transfer
{
    "error": {
        ".tag": "cannot_keep_account_and_transfer"
    },
    "error_summary": "cannot_keep_account_and_transfer/..."
}
Example: cannot_keep_account_and_delete_data
{
    "error": {
        ".tag": "cannot_keep_account_and_delete_data"
    },
    "error_summary": "cannot_keep_account_and_delete_data/..."
}
Example: email_address_too_long_to_be_disabled
{
    "error": {
        ".tag": "email_address_too_long_to_be_disabled"
    },
    "error_summary": "email_address_too_long_to_be_disabled/..."
}
Example: cannot_keep_invited_user_account
{
    "error": {
        ".tag": "cannot_keep_invited_user_account"
    },
    "error_summary": "cannot_keep_invited_user_account/..."
}
Example: cannot_retain_shares_when_data_wiped
{
    "error": {
        ".tag": "cannot_retain_shares_when_data_wiped"
    },
    "error_summary": "cannot_retain_shares_when_data_wiped/..."
}
Example: cannot_retain_shares_when_no_account_kept
{
    "error": {
        ".tag": "cannot_retain_shares_when_no_account_kept"
    },
    "error_summary": "cannot_retain_shares_when_no_account_kept/..."
}
Example: cannot_retain_shares_when_team_external_sharing_off
{
    "error": {
        ".tag": "cannot_retain_shares_when_team_external_sharing_off"
    },
    "error_summary": "cannot_retain_shares_when_team_external_sharing_off/..."
}
Example: cannot_keep_account
{
    "error": {
        ".tag": "cannot_keep_account"
    },
    "error_summary": "cannot_keep_account/..."
}
Example: cannot_keep_account_under_legal_hold
{
    "error": {
        ".tag": "cannot_keep_account_under_legal_hold"
    },
    "error_summary": "cannot_keep_account_under_legal_hold/..."
}
Example: cannot_keep_account_required_to_sign_tos
{
    "error": {
        ".tag": "cannot_keep_account_required_to_sign_tos"
    },
    "error_summary": "cannot_keep_account_required_to_sign_tos/..."
}
MembersRemoveError (union)
user_not_foundVoidNo matching user found. The provided team_member_id, email, or external_id does not exist on this team.
user_not_in_teamVoidThe user is not a member of the team.
removed_and_transfer_dest_should_differVoidExpected removed user and transfer_dest user to be different.
removed_and_transfer_admin_should_differVoidExpected removed user and transfer_admin user to be different.
transfer_dest_user_not_foundVoidNo matching user found for the argument transfer_dest_id.
transfer_dest_user_not_in_teamVoidThe provided transfer_dest_id does not exist on this team.
transfer_admin_user_not_in_teamVoidThe provided transfer_admin_id does not exist on this team.
transfer_admin_user_not_foundVoidNo matching user found for the argument transfer_admin_id.
unspecified_transfer_admin_idVoidThe transfer_admin_id argument must be provided when file transfer is requested.
transfer_admin_is_not_adminVoidSpecified transfer_admin user is not a team admin.
recipient_not_verifiedVoidThe recipient user's email is not verified.
remove_last_adminVoidThe user is the last admin of the team, so it cannot be removed from it.
cannot_keep_account_and_transferVoidCannot keep account and transfer the data to another user at the same time.
cannot_keep_account_and_delete_dataVoidCannot 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_disabledVoidThe email address of the user is too long to be disabled.
cannot_keep_invited_user_accountVoidCannot keep account of an invited user.
cannot_retain_shares_when_data_wipedVoidCannot retain team shares when the user's data is marked for deletion on their linked devices. The argument wipe_data should be set to false.
cannot_retain_shares_when_no_account_keptVoidThe user's account must be kept in order to retain team shares. The argument keep_account should be set to true.
cannot_retain_shares_when_team_external_sharing_offVoidExternally sharing files, folders, and links must be enabled in team settings in order to retain team shares for the user.
cannot_keep_accountVoidOnly a team admin, can convert this account to a Basic account.
cannot_keep_account_under_legal_holdVoidThis user content is currently being held. To convert this member's account to a Basic account, you'll first need to remove them from the hold.
cannot_keep_account_required_to_sign_tosVoidTo convert this member to a Basic account, they'll first need to sign in to Dropbox and agree to the terms of service.
See also general errors.

/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
Required Scope
members.delete
Example
Get access token for:
curl -X POST https://api.dropboxapi.com/2/team/members/remove/job_status/get \
    --header "Authorization: Bearer <get access token>" \
    --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_idString(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.
in_progressVoidThe asynchronous job is still in progress.
completeVoidThe asynchronous job has completed successfully.
Errors
Example: invalid_async_job_id
{
    "error": {
        ".tag": "invalid_async_job_id"
    },
    "error_summary": "invalid_async_job_id/..."
}
Example: internal_error
{
    "error": {
        ".tag": "internal_error"
    },
    "error_summary": "internal_error/..."
}
Example: other
{
    "error": {
        ".tag": "other"
    },
    "error_summary": "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.
invalid_async_job_idVoidThe job ID is invalid.
internal_errorVoidSomething 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.
See also general errors.

/members/secondary_emails/add


Description

Add secondary emails to users. Permission : Team member management. Emails that are on verified domains will be verified automatically. For each email address not on a verified domain a verification email will be sent.

URL Structure
https://api.dropboxapi.com/2/team/members/secondary_emails/add
Authentication
Team Authentication
Endpoint format
RPC
Required Scope
members.write
Example
Get access token for:
curl -X POST https://api.dropboxapi.com/2/team/members/secondary_emails/add \
    --header "Authorization: Bearer <get access token>" \
    --header "Content-Type: application/json" \
    --data "{\"new_secondary_emails\":[{\"secondary_emails\":[\"bob2@hotmail.com\",\"bob@inst.gov\"],\"user\":{\".tag\":\"team_member_id\",\"team_member_id\":\"dbmid:efgh5678\"}}]}"
Parameters
{
    "new_secondary_emails": [
        {
            "secondary_emails": [
                "bob2@hotmail.com",
                "bob@inst.gov"
            ],
            "user": {
                ".tag": "team_member_id",
                "team_member_id": "dbmid:efgh5678"
            }
        }
    ]
}
AddSecondaryEmailsArg
new_secondary_emailsList of ()List of users and secondary emails to add.
Returns
{
    "results": [
        {
            ".tag": "success",
            "results": [
                {
                    ".tag": "success",
                    "success": {
                        "email": "apple@orange.com",
                        "is_verified": true
                    }
                },
                {
                    ".tag": "unavailable",
                    "unavailable": "alice@example.com"
                }
            ],
            "user": {
                ".tag": "team_member_id",
                "team_member_id": "dbmid:efgh5678"
            }
        },
        {
            ".tag": "invalid_user",
            "invalid_user": {
                ".tag": "team_member_id",
                "team_member_id": "dbmid:efgh5678"
            }
        }
    ]
}
AddSecondaryEmailsResult
resultsList of ()List of users and secondary email results.
Errors
Example: secondary_emails_disabled
{
    "error": {
        ".tag": "secondary_emails_disabled"
    },
    "error_summary": "secondary_emails_disabled/..."
}
Example: too_many_emails
{
    "error": {
        ".tag": "too_many_emails"
    },
    "error_summary": "too_many_emails/..."
}
Example: other
{
    "error": {
        ".tag": "other"
    },
    "error_summary": "other/..."
}
AddSecondaryEmailsError (open union)
Error returned when adding secondary emails fails.
secondary_emails_disabledVoidSecondary emails are disabled for the team.
too_many_emailsVoidA maximum of 20 secondary emails can be added in a single call.
See also general errors.

/members/secondary_emails/delete


Description

Delete secondary emails from users Permission : Team member management. Users will be notified of deletions of verified secondary emails at both the secondary email and their primary email.

URL Structure
https://api.dropboxapi.com/2/team/members/secondary_emails/delete
Authentication
Team Authentication
Endpoint format
RPC
Required Scope
members.write
Example
Get access token for:
curl -X POST https://api.dropboxapi.com/2/team/members/secondary_emails/delete \
    --header "Authorization: Bearer <get access token>" \
    --header "Content-Type: application/json" \
    --data "{\"emails_to_delete\":[{\"secondary_emails\":[\"bob2@hotmail.com\",\"bob@inst.gov\"],\"user\":{\".tag\":\"team_member_id\",\"team_member_id\":\"dbmid:efgh5678\"}}]}"
Parameters
{
    "emails_to_delete": [
        {
            "secondary_emails": [
                "bob2@hotmail.com",
                "bob@inst.gov"
            ],
            "user": {
                ".tag": "team_member_id",
                "team_member_id": "dbmid:efgh5678"
            }
        }
    ]
}
DeleteSecondaryEmailsArg
emails_to_deleteList of ()List of users and their secondary emails to delete.
Returns
{
    "results": [
        {
            ".tag": "success",
            "results": [
                {
                    ".tag": "success",
                    "success": "alice@example.com"
                },
                {
                    ".tag": "not_found",
                    "not_found": "alic@example.com"
                }
            ],
            "user": {
                ".tag": "team_member_id",
                "team_member_id": "dbmid:efgh5678"
            }
        }
    ]
}
DeleteSecondaryEmailsResult
resultsList of ()
Errors
No endpoint-specific errors.
See also general errors.

/members/secondary_emails/resend_verification_emails


Description

Resend secondary email verification emails. Permission : Team member management.

URL Structure
https://api.dropboxapi.com/2/team/members/secondary_emails/resend_verification_emails
Authentication
Team Authentication
Endpoint format
RPC
Required Scope
members.write
Example
Get access token for:
curl -X POST https://api.dropboxapi.com/2/team/members/secondary_emails/resend_verification_emails \
    --header "Authorization: Bearer <get access token>" \
    --header "Content-Type: application/json" \
    --data "{\"emails_to_resend\":[{\"secondary_emails\":[\"bob2@hotmail.com\",\"bob@inst.gov\"],\"user\":{\".tag\":\"team_member_id\",\"team_member_id\":\"dbmid:efgh5678\"}}]}"
Parameters
{
    "emails_to_resend": [
        {
            "secondary_emails": [
                "bob2@hotmail.com",
                "bob@inst.gov"
            ],
            "user": {
                ".tag": "team_member_id",
                "team_member_id": "dbmid:efgh5678"
            }
        }
    ]
}
ResendVerificationEmailArg
emails_to_resendList of ()List of users and secondary emails to resend verification emails to.
Returns
{
    "results": [
        {
            ".tag": "success",
            "results": [
                {
                    ".tag": "success",
                    "success": "alice@example.com"
                }
            ],
            "user": {
                ".tag": "team_member_id",
                "team_member_id": "dbmid:efgh5678"
            }
        }
    ]
}
ResendVerificationEmailResult
List of users and resend results.
resultsList of ()
Errors
No endpoint-specific errors.
See also general errors.

/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
Required Scope
members.write
Example
Get access token for:
curl -X POST https://api.dropboxapi.com/2/team/members/send_welcome_email \
    --header "Authorization: Bearer <get access token>" \
    --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.
team_member_idString
external_idString(max_length=64)
emailString(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": {
        ".tag": "user_not_found"
    },
    "error_summary": "user_not_found/..."
}
Example: user_not_in_team
{
    "error": {
        ".tag": "user_not_in_team"
    },
    "error_summary": "user_not_in_team/..."
}
Example: other
{
    "error": {
        ".tag": "other"
    },
    "error_summary": "other/..."
}
MembersSendWelcomeError (open union)
user_not_foundVoidNo matching user found. The provided team_member_id, email, or external_id does not exist on this team.
user_not_in_teamVoidThe user is not a member of the team.
See also general errors.

/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_v2
Authentication
Team Authentication
Endpoint format
RPC
Required Scope
members.write
Example
Get access token for:
curl -X POST https://api.dropboxapi.com/2/team/members/set_admin_permissions_v2 \
    --header "Authorization: Bearer <get access token>" \
    --header "Content-Type: application/json" \
    --data "{\"new_roles\":[\"pid_dbtmr:1234\"],\"user\":{\".tag\":\"team_member_id\",\"team_member_id\":\"dbmid:efgh5678\"}}"
Parameters
{
    "new_roles": [
        "pid_dbtmr:1234"
    ],
    "user": {
        ".tag": "team_member_id",
        "team_member_id": "dbmid:efgh5678"
    }
}
MembersSetPermissions2Arg
Exactly one of team_member_id, email, or external_id must be provided to identify the user account.
userIdentity of user whose role will be set.
new_roles List of (String(max_length=128, pattern="pid_dbtmr:.*"), max_items=1)?The new roles for the member. Send empty list to make user member only. For now, only up to one role is allowed. This field is optional.
Returns
{
    "roles": [
        {
            "description": "Add, remove, and manage member accounts.",
            "name": "User management admin",
            "role_id": "pid_dbtmr:3456"
        }
    ],
    "team_member_id": "dbmid:9978889"
}
MembersSetPermissions2Result
team_member_idStringThe member ID of the user to which the change was applied.
rolesList of ()?The roles after the change. Empty in case the user become a non-admin. This field is optional.
Errors
Example: user_not_found
{
    "error": {
        ".tag": "user_not_found"
    },
    "error_summary": "user_not_found/..."
}
Example: last_admin
{
    "error": {
        ".tag": "last_admin"
    },
    "error_summary": "last_admin/..."
}
Example: user_not_in_team
{
    "error": {
        ".tag": "user_not_in_team"
    },
    "error_summary": "user_not_in_team/..."
}
Example: cannot_set_permissions
{
    "error": {
        ".tag": "cannot_set_permissions"
    },
    "error_summary": "cannot_set_permissions/..."
}
Example: role_not_found
{
    "error": {
        ".tag": "role_not_found"
    },
    "error_summary": "role_not_found/..."
}
Example: other
{
    "error": {
        ".tag": "other"
    },
    "error_summary": "other/..."
}
MembersSetPermissions2Error (open union)
user_not_foundVoidNo matching user found. The provided team_member_id, email, or external_id does not exist on this team.
last_adminVoidCannot remove the admin setting of the last admin.
user_not_in_teamVoidThe user is not a member of the team.
cannot_set_permissionsVoidCannot remove/grant permissions. This can happen if the team member is suspended.
role_not_foundVoidNo matching role found. At least one of the provided new_roles does not exist on this team.
See also general errors.

/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_v2
Authentication
Team Authentication
Endpoint format
RPC
Required Scope
members.write
Example
Get access token for:
curl -X POST https://api.dropboxapi.com/2/team/members/set_profile_v2 \
    --header "Authorization: Bearer <get access token>" \
    --header "Content-Type: application/json" \
    --data "{\"new_email\":\"t.smith@domain.com\",\"new_surname\":\"Smith\",\"user\":{\".tag\":\"team_member_id\",\"team_member_id\":\"dbmid:efgh5678\"}}"
Parameters
{
    "new_email": "t.smith@domain.com",
    "new_surname": "Smith",
    "user": {
        ".tag": "team_member_id",
        "team_member_id": "dbmid:efgh5678"
    }
}
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.
userIdentity of user whose profile will be set.
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(max_length=100, pattern="[^/:?*<>"|]*")?New given name for member. This field is optional.
new_surname String(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.
new_is_directory_restricted Boolean?New value for whether the user is a directory restricted user. This field is optional.
Returns
{
    "member_info": {
        "profile": {
            "account_id": "dbid:AAH4f99T0taONIb-OurWxbNQ6ywGRopQngc",
            "email": "tami@seagull.com",
            "email_verified": false,
            "external_id": "244423",
            "groups": [
                "g:e2db7665347abcd600000000001a2b3c"
            ],
            "joined_on": "2015-05-12T15:50:38Z",
            "member_folder_id": "20",
            "membership_type": {
                ".tag": "full"
            },
            "name": {
                "abbreviated_name": "FF",
                "display_name": "Franz Ferdinand (Personal)",
                "familiar_name": "Franz",
                "given_name": "Franz",
                "surname": "Ferdinand"
            },
            "profile_photo_url": "https://dl-web.dropbox.com/account_photo/get/dbaphid%3AAAHWGmIXV3sUuOmBfTz0wPsiqHUpBWvv3ZA?vers=1556069330102&size=128x128",
            "root_folder_id": "30",
            "secondary_emails": [
                {
                    "email": "grape@strawberry.com",
                    "is_verified": false
                },
                {
                    "email": "apple@orange.com",
                    "is_verified": true
                }
            ],
            "status": {
                ".tag": "active"
            },
            "team_member_id": "dbmid:FDFSVF-DFSDF"
        },
        "roles": [
            {
                "description": "Add, remove, and manage member accounts.",
                "name": "User management admin",
                "role_id": "pid_dbtmr:3456"
            }
        ]
    }
}
TeamMemberInfoV2Result
Information about a team member, after the change, like at members/set_profile:2.
member_infoMember info, after the change.
Errors
Example: user_not_found
{
    "error": {
        ".tag": "user_not_found"
    },
    "error_summary": "user_not_found/..."
}
Example: user_not_in_team
{
    "error": {
        ".tag": "user_not_in_team"
    },
    "error_summary": "user_not_in_team/..."
}
Example: external_id_and_new_external_id_unsafe
{
    "error": {
        ".tag": "external_id_and_new_external_id_unsafe"
    },
    "error_summary": "external_id_and_new_external_id_unsafe/..."
}
Example: no_new_data_specified
{
    "error": {
        ".tag": "no_new_data_specified"
    },
    "error_summary": "no_new_data_specified/..."
}
Example: email_reserved_for_other_user
{
    "error": {
        ".tag": "email_reserved_for_other_user"
    },
    "error_summary": "email_reserved_for_other_user/..."
}
Example: external_id_used_by_other_user
{
    "error": {
        ".tag": "external_id_used_by_other_user"
    },
    "error_summary": "external_id_used_by_other_user/..."
}
Example: set_profile_disallowed
{
    "error": {
        ".tag": "set_profile_disallowed"
    },
    "error_summary": "set_profile_disallowed/..."
}
Example: param_cannot_be_empty
{
    "error": {
        ".tag": "param_cannot_be_empty"
    },
    "error_summary": "param_cannot_be_empty/..."
}
Example: persistent_id_disabled
{
    "error": {
        ".tag": "persistent_id_disabled"
    },
    "error_summary": "persistent_id_disabled/..."
}
Example: persistent_id_used_by_other_user
{
    "error": {
        ".tag": "persistent_id_used_by_other_user"
    },
    "error_summary": "persistent_id_used_by_other_user/..."
}
Example: directory_restricted_off
{
    "error": {
        ".tag": "directory_restricted_off"
    },
    "error_summary": "directory_restricted_off/..."
}
Example: other
{
    "error": {
        ".tag": "other"
    },
    "error_summary": "other/..."
}
MembersSetProfileError (open union)
user_not_foundVoidNo matching user found. The provided team_member_id, email, or external_id does not exist on this team.
user_not_in_teamVoidThe user is not a member of the team.
external_id_and_new_external_id_unsafeVoidIt is unsafe to use both external_id and new_external_id.
no_new_data_specifiedVoidNone of new_email, new_given_name, new_surname, or new_external_id are specified.
email_reserved_for_other_userVoidEmail is already reserved for another user.
external_id_used_by_other_userVoidThe external ID is already in use by another team member.
set_profile_disallowedVoidModifying deleted users is not allowed.
param_cannot_be_emptyVoidParameter new_email cannot be empty.
persistent_id_disabledVoidPersistent ID is only available to teams with persistent ID SAML configuration. Please contact Dropbox for more information.
persistent_id_used_by_other_userVoidThe persistent ID is already in use by another team member.
directory_restricted_offVoidDirectory Restrictions option is not available.
See also general errors.

/members/set_profile_photo


Description

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

URL Structure
https://api.dropboxapi.com/2/team/members/set_profile_photo_v2
Authentication
Team Authentication
Endpoint format
RPC
Required Scope
members.write
Example
Get access token for:
curl -X POST https://api.dropboxapi.com/2/team/members/set_profile_photo_v2 \
    --header "Authorization: Bearer <get access token>" \
    --header "Content-Type: application/json" \
    --data "{\"photo\":{\".tag\":\"base64_data\",\"base64_data\":\"SW1hZ2UgZGF0YSBpbiBiYXNlNjQtZW5jb2RlZCBieXRlcy4gTm90IGEgdmFsaWQgZXhhbXBsZS4=\"},\"user\":{\".tag\":\"team_member_id\",\"team_member_id\":\"dbmid:efgh5678\"}}"
Parameters
{
    "photo": {
        ".tag": "base64_data",
        "base64_data": "SW1hZ2UgZGF0YSBpbiBiYXNlNjQtZW5jb2RlZCBieXRlcy4gTm90IGEgdmFsaWQgZXhhbXBsZS4="
    },
    "user": {
        ".tag": "team_member_id",
        "team_member_id": "dbmid:efgh5678"
    }
}
MembersSetProfilePhotoArg
userIdentity of the user whose profile photo will be set.
photoImage to set as the member's new profile photo.
Returns
{
    "member_info": {
        "profile": {
            "account_id": "dbid:AAH4f99T0taONIb-OurWxbNQ6ywGRopQngc",
            "email": "tami@seagull.com",
            "email_verified": false,
            "external_id": "244423",
            "groups": [
                "g:e2db7665347abcd600000000001a2b3c"
            ],
            "joined_on": "2015-05-12T15:50:38Z",
            "member_folder_id": "20",
            "membership_type": {
                ".tag": "full"
            },
            "name": {
                "abbreviated_name": "FF",
                "display_name": "Franz Ferdinand (Personal)",
                "familiar_name": "Franz",
                "given_name": "Franz",
                "surname": "Ferdinand"
            },
            "profile_photo_url": "https://dl-web.dropbox.com/account_photo/get/dbaphid%3AAAHWGmIXV3sUuOmBfTz0wPsiqHUpBWvv3ZA?vers=1556069330102&size=128x128",
            "root_folder_id": "30",
            "secondary_emails": [
                {
                    "email": "grape@strawberry.com",
                    "is_verified": false
                },
                {
                    "email": "apple@orange.com",
                    "is_verified": true
                }
            ],
            "status": {
                ".tag": "active"
            },
            "team_member_id": "dbmid:FDFSVF-DFSDF"
        },
        "roles": [
            {
                "description": "Add, remove, and manage member accounts.",
                "name": "User management admin",
                "role_id": "pid_dbtmr:3456"
            }
        ]
    }
}
TeamMemberInfoV2Result
Information about a team member, after the change, like at members/set_profile:2.
member_infoMember info, after the change.
Errors
Example: user_not_found
{
    "error": {
        ".tag": "user_not_found"
    },
    "error_summary": "user_not_found/..."
}
Example: user_not_in_team
{
    "error": {
        ".tag": "user_not_in_team"
    },
    "error_summary": "user_not_in_team/..."
}
Example: set_profile_disallowed
{
    "error": {
        ".tag": "set_profile_disallowed"
    },
    "error_summary": "set_profile_disallowed/..."
}
Example: other
{
    "error": {
        ".tag": "other"
    },
    "error_summary": "other/..."
}
MembersSetProfilePhotoError (open union)
user_not_foundVoidNo matching user found. The provided team_member_id, email, or external_id does not exist on this team.
user_not_in_teamVoidThe user is not a member of the team.
set_profile_disallowedVoidModifying deleted users is not allowed.
photo_error
See also general errors.

/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
Required Scope
members.write
Example
Get access token for:
curl -X POST https://api.dropboxapi.com/2/team/members/suspend \
    --header "Authorization: Bearer <get access token>" \
    --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
userIdentity of user to remove/suspend/have their files moved.
wipe_dataBooleanIf 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": {
        ".tag": "user_not_found"
    },
    "error_summary": "user_not_found/..."
}
Example: user_not_in_team
{
    "error": {
        ".tag": "user_not_in_team"
    },
    "error_summary": "user_not_in_team/..."
}
Example: other
{
    "error": {
        ".tag": "other"
    },
    "error_summary": "other/..."
}
Example: suspend_inactive_user
{
    "error": {
        ".tag": "suspend_inactive_user"
    },
    "error_summary": "suspend_inactive_user/..."
}
Example: suspend_last_admin
{
    "error": {
        ".tag": "suspend_last_admin"
    },
    "error_summary": "suspend_last_admin/..."
}
Example: team_license_limit
{
    "error": {
        ".tag": "team_license_limit"
    },
    "error_summary": "team_license_limit/..."
}
MembersSuspendError (union)
user_not_foundVoidNo matching user found. The provided team_member_id, email, or external_id does not exist on this team.
user_not_in_teamVoidThe user is not a member of the team.
suspend_inactive_userVoidThe user is not active, so it cannot be suspended.
suspend_last_adminVoidThe user is the last admin of the team, so it cannot be suspended.
team_license_limitVoidTeam is full. The organization has no available licenses.
See also general errors.

/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
Required Scope
members.write
Example
Get access token for:
curl -X POST https://api.dropboxapi.com/2/team/members/unsuspend \
    --header "Authorization: Bearer <get access token>" \
    --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.
userIdentity of user to unsuspend.
Returns
No return values.
Errors
Example: user_not_found
{
    "error": {
        ".tag": "user_not_found"
    },
    "error_summary": "user_not_found/..."
}
Example: user_not_in_team
{
    "error": {
        ".tag": "user_not_in_team"
    },
    "error_summary": "user_not_in_team/..."
}
Example: other
{
    "error": {
        ".tag": "other"
    },
    "error_summary": "other/..."
}
Example: unsuspend_non_suspended_member
{
    "error": {
        ".tag": "unsuspend_non_suspended_member"
    },
    "error_summary": "unsuspend_non_suspended_member/..."
}
Example: team_license_limit
{
    "error": {
        ".tag": "team_license_limit"
    },
    "error_summary": "team_license_limit/..."
}
MembersUnsuspendError (union)
user_not_foundVoidNo matching user found. The provided team_member_id, email, or external_id does not exist on this team.
user_not_in_teamVoidThe user is not a member of the team.
unsuspend_non_suspended_memberVoidThe user is unsuspended, so it cannot be unsuspended again.
team_license_limitVoidTeam is full. The organization has no available licenses.
See also general errors.

/namespaces/list


Description

Returns a list of all team-accessible namespaces. This list includes team folders, shared folders containing team members, team members' home namespaces, and team members' app folders. Home namespaces and app folders are always owned by this team or members of the team, but shared folders may be owned by other users or other teams. Duplicates may occur in the list.

URL Structure
https://api.dropboxapi.com/2/team/namespaces/list
Authentication
Team Authentication
Endpoint format
RPC
Required Scope
team_data.member
Example
Get access token for:
curl -X POST https://api.dropboxapi.com/2/team/namespaces/list \
    --header "Authorization: Bearer <get access token>" \
    --header "Content-Type: application/json" \
    --data "{\"limit\":1}"
Parameters
{
    "limit": 1
}
TeamNamespacesListArg
limitdeprecatedUInt32(min=1, max=1000)Field is deprecated. Specifying a value here has no effect. The default for this field is 1000.
Returns
{
    "cursor": "ZtkX9_EHj3x7PMkVuFIhwKYXEpwpLwyxp9vMKomUhllil9q7eWiAu",
    "has_more": false,
    "namespaces": [
        {
            "name": "Marketing",
            "namespace_id": "123456789",
            "namespace_type": {
                ".tag": "shared_folder"
            }
        },
        {
            "name": "Franz Ferdinand",
            "namespace_id": "123456789",
            "namespace_type": {
                ".tag": "team_member_folder"
            },
            "team_member_id": "dbmid:1234567"
        }
    ]
}
TeamNamespacesListResult
Result for namespaces/list.
namespacesList of ()List of all namespaces the team can access.
cursorStringPass the cursor into namespaces/list/continue to obtain additional namespaces. Note that duplicate namespaces may be returned.
has_moreBooleanIs true if there are additional namespaces that have not been returned yet.
Errors
Example: invalid_arg
{
    "error": {
        ".tag": "invalid_arg"
    },
    "error_summary": "invalid_arg/..."
}
Example: other
{
    "error": {
        ".tag": "other"
    },
    "error_summary": "other/..."
}
TeamNamespacesListError (open union)
invalid_argVoidArgument passed in is invalid.
See also general errors.

/namespaces/list/continue


Description

Once a cursor has been retrieved from namespaces/list, use this to paginate through all team-accessible namespaces. Duplicates may occur in the list.

URL Structure
https://api.dropboxapi.com/2/team/namespaces/list/continue
Authentication
Team Authentication
Endpoint format
RPC
Required Scope
team_data.member
Example
Get access token for:
curl -X POST https://api.dropboxapi.com/2/team/namespaces/list/continue \
    --header "Authorization: Bearer <get access token>" \
    --header "Content-Type: application/json" \
    --data "{\"cursor\":\"ZtkX9_EHj3x7PMkVuFIhwKYXEpwpLwyxp9vMKomUhllil9q7eWiAu\"}"
Parameters
{
    "cursor": "ZtkX9_EHj3x7PMkVuFIhwKYXEpwpLwyxp9vMKomUhllil9q7eWiAu"
}
TeamNamespacesListContinueArg
cursorStringIndicates from what point to get the next set of team-accessible namespaces.
Returns
{
    "cursor": "ZtkX9_EHj3x7PMkVuFIhwKYXEpwpLwyxp9vMKomUhllil9q7eWiAu",
    "has_more": false,
    "namespaces": [
        {
            "name": "Marketing",
            "namespace_id": "123456789",
            "namespace_type": {
                ".tag": "shared_folder"
            }
        },
        {
            "name": "Franz Ferdinand",
            "namespace_id": "123456789",
            "namespace_type": {
                ".tag": "team_member_folder"
            },
            "team_member_id": "dbmid:1234567"
        }
    ]
}
TeamNamespacesListResult
Result for namespaces/list.
namespacesList of ()List of all namespaces the team can access.
cursorStringPass the cursor into namespaces/list/continue to obtain additional namespaces. Note that duplicate namespaces may be returned.
has_moreBooleanIs true if there are additional namespaces that have not been returned yet.
Errors
Example: invalid_arg
{
    "error": {
        ".tag": "invalid_arg"
    },
    "error_summary": "invalid_arg/..."
}
Example: other
{
    "error": {
        ".tag": "other"
    },
    "error_summary": "other/..."
}
Example: invalid_cursor
{
    "error": {
        ".tag": "invalid_cursor"
    },
    "error_summary": "invalid_cursor/..."
}
TeamNamespacesListContinueError (union)
invalid_argVoidArgument passed in is invalid.
invalid_cursorVoidThe cursor is invalid.
See also general errors.

/sharing_allowlist/add


PREVIEW - may change or disappear without notice
Description

Endpoint adds Approve List entries. Changes are effective immediately. Changes are committed in transaction. In case of single validation error - all entries are rejected. Valid domains (RFC-1034/5) and emails (RFC-5322/822) are accepted. Added entries cannot overflow limit of 10000 entries per team. Maximum 100 entries per call is allowed.

URL Structure
https://api.dropboxapi.com/2/team/sharing_allowlist/add
Authentication
Team Authentication
Endpoint format
RPC
Required Scope
team_info.write
Example
Get access token for:
curl -X POST https://api.dropboxapi.com/2/team/sharing_allowlist/add \
    --header "Authorization: Bearer <get access token>" \
    --header "Content-Type: application/json" \
    --data "{\"domains\":[\"test-domain.com\",\"subdomain.some.com\"],\"emails\":[\"adam@test-domain.com\",\"john@some.com\"]}"
Parameters
{
    "domains": [
        "test-domain.com",
        "subdomain.some.com"
    ],
    "emails": [
        "adam@test-domain.com",
        "john@some.com"
    ]
}
SharingAllowlistAddArgs
Structure representing Approve List entries. Domain and emails are supported. At least one entry of any supported type is required.
domains List of (String)?List of domains represented by valid string representation (RFC-1034/5). This field is optional.
emails List of (String)?List of emails represented by valid string representation (RFC-5322/822). This field is optional.
Returns
No return values.
Errors
Example: no_entries_provided
{
    "error": {
        ".tag": "no_entries_provided"
    },
    "error_summary": "no_entries_provided/..."
}
Example: too_many_entries_provided
{
    "error": {
        ".tag": "too_many_entries_provided"
    },
    "error_summary": "too_many_entries_provided/..."
}
Example: team_limit_reached
{
    "error": {
        ".tag": "team_limit_reached"
    },
    "error_summary": "team_limit_reached/..."
}
Example: unknown_error
{
    "error": {
        ".tag": "unknown_error"
    },
    "error_summary": "unknown_error/..."
}
Example: other
{
    "error": {
        ".tag": "other"
    },
    "error_summary": "other/..."
}
SharingAllowlistAddError (open union)
malformed_entryStringOne of provided values is not valid.
no_entries_providedVoidNeither single domain nor email provided.
too_many_entries_providedVoidToo many entries provided within one call.
team_limit_reachedVoidTeam entries limit reached.
unknown_errorVoidUnknown error.
entries_already_existStringEntries already exists.
See also general errors.

/sharing_allowlist/list


PREVIEW - may change or disappear without notice
Description

Lists Approve List entries for given team, from newest to oldest, returning up to `limit` entries at a time. If there are more than `limit` entries associated with the current team, more can be fetched by passing the returned `cursor` to sharing_allowlist/list/continue.

URL Structure
https://api.dropboxapi.com/2/team/sharing_allowlist/list
Authentication
Team Authentication
Endpoint format
RPC
Required Scope
team_info.read
Example
Get access token for:
curl -X POST https://api.dropboxapi.com/2/team/sharing_allowlist/list \
    --header "Authorization: Bearer <get access token>" \
    --header "Content-Type: application/json" \
    --data "{\"limit\":100}"
Parameters
{
    "limit": 100
}
SharingAllowlistListArg
limitUInt32(min=1, max=1000)The number of entries to fetch at one time. The default for this field is 1000.
Returns
{
    "cursor": "dGVzdF9jdXJzb3IK",
    "domains": [
        "test-domain.com",
        "subdomain.some.com"
    ],
    "emails": [
        "adam@test-domain.com",
        "john@some.com"
    ],
    "has_more": true
}
SharingAllowlistListResponse
domains List of (String)List of domains represented by valid string representation (RFC-1034/5).
emails List of (String)List of emails represented by valid string representation (RFC-5322/822).
cursorStringIf this is nonempty, there are more entries that can be fetched with sharing_allowlist/list/continue. The default for this field is "".
has_moreBooleanif true indicates that more entries can be fetched with sharing_allowlist/list/continue. The default for this field is False.
Errors
No endpoint-specific errors.
See also general errors.

/sharing_allowlist/list/continue


PREVIEW - may change or disappear without notice
Description

Lists entries associated with given team, starting from a the cursor. See sharing_allowlist/list.

URL Structure
https://api.dropboxapi.com/2/team/sharing_allowlist/list/continue
Authentication
Team Authentication
Endpoint format
RPC
Required Scope
team_info.read
Example
Get access token for:
curl -X POST https://api.dropboxapi.com/2/team/sharing_allowlist/list/continue \
    --header "Authorization: Bearer <get access token>" \
    --header "Content-Type: application/json" \
    --data "{\"cursor\":\"dGVzdF9jdXJzb3IK\"}"
Parameters
{
    "cursor": "dGVzdF9jdXJzb3IK"
}
SharingAllowlistListContinueArg
cursorStringThe cursor returned from a previous call to sharing_allowlist/list or sharing_allowlist/list/continue.
Returns
{
    "cursor": "dGVzdF9jdXJzb3IK",
    "domains": [
        "test-domain.com",
        "subdomain.some.com"
    ],
    "emails": [
        "adam@test-domain.com",
        "john@some.com"
    ],
    "has_more": true
}
SharingAllowlistListResponse
domains List of (String)List of domains represented by valid string representation (RFC-1034/5).
emails List of (String)List of emails represented by valid string representation (RFC-5322/822).
cursorStringIf this is nonempty, there are more entries that can be fetched with sharing_allowlist/list/continue. The default for this field is "".
has_moreBooleanif true indicates that more entries can be fetched with sharing_allowlist/list/continue. The default for this field is False.
Errors
Example: invalid_cursor
{
    "error": {
        ".tag": "invalid_cursor"
    },
    "error_summary": "invalid_cursor/..."
}
Example: other
{
    "error": {
        ".tag": "other"
    },
    "error_summary": "other/..."
}
SharingAllowlistListContinueError (open union)
invalid_cursorVoidProvided cursor is not valid.
See also general errors.

/sharing_allowlist/remove


PREVIEW - may change or disappear without notice
Description

Endpoint removes Approve List entries. Changes are effective immediately. Changes are committed in transaction. In case of single validation error - all entries are rejected. Valid domains (RFC-1034/5) and emails (RFC-5322/822) are accepted. Entries being removed have to be present on the list. Maximum 1000 entries per call is allowed.

URL Structure
https://api.dropboxapi.com/2/team/sharing_allowlist/remove
Authentication
Team Authentication
Endpoint format
RPC
Required Scope
team_info.write
Example
Get access token for:
curl -X POST https://api.dropboxapi.com/2/team/sharing_allowlist/remove \
    --header "Authorization: Bearer <get access token>" \
    --header "Content-Type: application/json" \
    --data "{\"domains\":[\"test-domain.com\",\"subdomain.some.com\"],\"emails\":[\"adam@test-domain.com\",\"john@some.com\"]}"
Parameters
{
    "domains": [
        "test-domain.com",
        "subdomain.some.com"
    ],
    "emails": [
        "adam@test-domain.com",
        "john@some.com"
    ]
}
SharingAllowlistRemoveArgs
domains List of (String)?List of domains represented by valid string representation (RFC-1034/5). This field is optional.
emails List of (String)?List of emails represented by valid string representation (RFC-5322/822). This field is optional.
Returns
No return values.
Errors
Example: no_entries_provided
{
    "error": {
        ".tag": "no_entries_provided"
    },
    "error_summary": "no_entries_provided/..."
}
Example: too_many_entries_provided
{
    "error": {
        ".tag": "too_many_entries_provided"
    },
    "error_summary": "too_many_entries_provided/..."
}
Example: unknown_error
{
    "error": {
        ".tag": "unknown_error"
    },
    "error_summary": "unknown_error/..."
}
Example: other
{
    "error": {
        ".tag": "other"
    },
    "error_summary": "other/..."
}
SharingAllowlistRemoveError (open union)
malformed_entryStringOne of provided values is not valid.
entries_do_not_existStringOne or more provided values do not exist.
no_entries_providedVoidNeither single domain nor email provided.
too_many_entries_providedVoidToo many entries provided within one call.
unknown_errorVoidUnknown error.
See also general errors.

/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
Required Scope
team_data.content.write
Example
Get access token for:
curl -X POST https://api.dropboxapi.com/2/team/team_folder/activate \
    --header "Authorization: Bearer <get access token>" \
    --header "Content-Type: application/json" \
    --data "{\"team_folder_id\":\"123456789\"}"
Parameters
{
    "team_folder_id": "123456789"
}
TeamFolderIdArg
team_folder_idString(pattern="[-_0-9a-zA-Z:]+")The ID of the team folder.
Returns
{
    "content_sync_settings": [
        {
            "id": "id:a4ayc_80_OEAAAAAAAAAXw",
            "sync_setting": {
                ".tag": "default"
            }
        }
    ],
    "is_team_shared_dropbox": false,
    "name": "Marketing",
    "status": {
        ".tag": "active"
    },
    "sync_setting": {
        ".tag": "default"
    },
    "team_folder_id": "123456789"
}
TeamFolderMetadata
Properties of a team folder.
team_folder_idString(pattern="[-_0-9a-zA-Z:]+")The ID of the team folder.
nameStringThe name of the team folder.
statusThe status of the team folder.
is_team_shared_dropboxBooleanTrue if this team folder is a shared team root.
sync_settingThe sync setting applied to this team folder.
content_sync_settingsList of ()Sync settings applied to contents of this team folder.
Errors
TeamFolderActivateError (union)
access_error
status_error
team_shared_dropbox_error
See also general errors.

/team_folder/archive


Description

Sets an active team folder's status to archived and removes all folder and file members. This endpoint cannot be used for teams that have a shared team space. This route will either finish synchronously, or return a job ID and do the async archive job in background. Please use team_folder/archive/check to check the job status. Permission : Team member file access.

URL Structure
https://api.dropboxapi.com/2/team/team_folder/archive
Authentication
Team Authentication
Endpoint format
RPC
Required Scope
team_data.content.write
Example
Get access token for:
curl -X POST https://api.dropboxapi.com/2/team/team_folder/archive \
    --header "Authorization: Bearer <get access token>" \
    --header "Content-Type: application/json" \
    --data "{\"force_async_off\":false,\"team_folder_id\":\"123456789\"}"
Parameters
{
    "force_async_off": false,
    "team_folder_id": "123456789"
}
TeamFolderArchiveArg
team_folder_idString(pattern="[-_0-9a-zA-Z:]+")The ID of the team folder.
force_async_offBooleanWhether to force the archive to happen synchronously. The default for this field is False.
Returns
{
    ".tag": "complete",
    "content_sync_settings": [
        {
            "id": "id:a4ayc_80_OEAAAAAAAAAXw",
            "sync_setting": {
                ".tag": "default"
            }
        }
    ],
    "is_team_shared_dropbox": false,
    "name": "Marketing",
    "status": {
        ".tag": "active"
    },
    "sync_setting": {
        ".tag": "default"
    },
    "team_folder_id": "123456789"
}
Example: async_job_id
{
    ".tag": "async_job_id",
    "async_job_id": "34g93hh34h04y384084"
}
TeamFolderArchiveLaunch (union)
async_job_idString(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
Errors
TeamFolderArchiveError (union)
access_error
status_error
team_shared_dropbox_error
See also general errors.

/team_folder/archive/check


Description

Returns the status of an asynchronous job for archiving a team folder. The job may show '.tag' as complete, but the team folder could still be in the process of archiving (indicated by TeamFolderMetadata.status with 'archive_in_progress'). To confirm that the team folder is fully archived, check the field TeamFolderMetadata.status in the response for the value 'archived'. Permission : Team member file access.

URL Structure
https://api.dropboxapi.com/2/team/team_folder/archive/check
Authentication
Team Authentication
Endpoint format
RPC
Required Scope
team_data.content.write
Example
Get access token for:
curl -X POST https://api.dropboxapi.com/2/team/team_folder/archive/check \
    --header "Authorization: Bearer <get access token>" \
    --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_idString(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",
    "content_sync_settings": [
        {
            "id": "id:a4ayc_80_OEAAAAAAAAAXw",
            "sync_setting": {
                ".tag": "default"
            }
        }
    ],
    "is_team_shared_dropbox": false,
    "name": "Marketing",
    "status": {
        ".tag": "active"
    },
    "sync_setting": {
        ".tag": "default"
    },
    "team_folder_id": "123456789"
}
Example: in_progress
{
    ".tag": "in_progress"
}
TeamFolderArchiveJobStatus (union)
in_progressVoidThe asynchronous job is still in progress.
completeThe archive job has finished. The value is the metadata for the resulting team folder.
failedError occurred while performing an asynchronous job from team_folder/archive.
Errors
Example: invalid_async_job_id
{
    "error": {
        ".tag": "invalid_async_job_id"
    },
    "error_summary": "invalid_async_job_id/..."
}
Example: internal_error
{
    "error": {
        ".tag": "internal_error"
    },
    "error_summary": "internal_error/..."
}
Example: other
{
    "error": {
        ".tag": "other"
    },
    "error_summary": "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.
invalid_async_job_idVoidThe job ID is invalid.
internal_errorVoidSomething 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.
See also general errors.

/team_folder/create


Description

Creates a new, active, team folder with no members. This endpoint can only be used for teams that do not already have a shared team space. Permission : Team member file access.

URL Structure
https://api.dropboxapi.com/2/team/team_folder/create
Authentication
Team Authentication
Endpoint format
RPC
Required Scope
team_data.content.write
Example
Get access token for:
curl -X POST https://api.dropboxapi.com/2/team/team_folder/create \
    --header "Authorization: Bearer <get access token>" \
    --header "Content-Type: application/json" \
    --data "{\"name\":\"Marketing\",\"sync_setting\":\"not_synced\"}"
Parameters
{
    "name": "Marketing",
    "sync_setting": "not_synced"
}
TeamFolderCreateArg
nameStringName for the new team folder.
sync_setting?The sync setting to apply to this team folder. Only permitted if the team has team selective sync enabled. This field is optional.
Returns
{
    "content_sync_settings": [
        {
            "id": "id:a4ayc_80_OEAAAAAAAAAXw",
            "sync_setting": {
                ".tag": "default"
            }
        }
    ],
    "is_team_shared_dropbox": false,
    "name": "Marketing",
    "status": {
        ".tag": "active"
    },
    "sync_setting": {
        ".tag": "default"
    },
    "team_folder_id": "123456789"
}
TeamFolderMetadata
Properties of a team folder.
team_folder_idString(pattern="[-_0-9a-zA-Z:]+")The ID of the team folder.
nameStringThe name of the team folder.
statusThe status of the team folder.
is_team_shared_dropboxBooleanTrue if this team folder is a shared team root.
sync_settingThe sync setting applied to this team folder.
content_sync_settingsList of ()Sync settings applied to contents of this team folder.
Errors
Example: invalid_folder_name
{
    "error": {
        ".tag": "invalid_folder_name"
    },
    "error_summary": "invalid_folder_name/..."
}
Example: folder_name_already_used
{
    "error": {
        ".tag": "folder_name_already_used"
    },
    "error_summary": "folder_name_already_used/..."
}
Example: folder_name_reserved
{
    "error": {
        ".tag": "folder_name_reserved"
    },
    "error_summary": "folder_name_reserved/..."
}
Example: other
{
    "error": {
        ".tag": "other"
    },
    "error_summary": "other/..."
}
TeamFolderCreateError (open union)
invalid_folder_nameVoidThe provided name cannot be used.
folder_name_already_usedVoidThere is already a team folder with the provided name.
folder_name_reservedVoidThe provided name cannot be used because it is reserved.
sync_settings_errorAn error occurred setting the sync settings.
See also general errors.

/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
Required Scope
team_data.content.read
Example
Get access token for:
curl -X POST https://api.dropboxapi.com/2/team/team_folder/get_info \
    --header "Authorization: Bearer <get access token>" \
    --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
List of (TeamFolderGetInfoItem (union))
id_not_foundStringAn ID that was provided as a parameter to team_folder/get_info did not match any of the team's team folders.
team_folder_metadataProperties of a team folder.
Errors
No endpoint-specific errors.
See also general 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
Required Scope
team_data.content.read
Example
Get access token for:
curl -X POST https://api.dropboxapi.com/2/team/team_folder/list \
    --header "Authorization: Bearer <get access token>" \
    --header "Content-Type: application/json" \
    --data "{\"limit\":100}"
Parameters
{
    "limit": 100
}
TeamFolderListArg
limitUInt32(min=1, max=1000)The maximum number of results to return per request. The default for this field is 1000.
Returns
{
    "cursor": "ZtkX9_EHj3x7PMkVuFIhwKYXEpwpLwyxp9vMKomUhllil9q7eWiAu",
    "has_more": false,
    "team_folders": [
        {
            "content_sync_settings": [
                {
                    "id": "id:a4ayc_80_OEAAAAAAAAAXw",
                    "sync_setting": {
                        ".tag": "default"
                    }
                }
            ],
            "is_team_shared_dropbox": false,
            "name": "Marketing",
            "status": {
                ".tag": "active"
            },
            "sync_setting": {
                ".tag": "default"
            },
            "team_folder_id": "123456789"
        }
    ]
}
TeamFolderListResult
Result for team_folder/list and team_folder/list/continue.
team_foldersList of ()List of all team folders in the authenticated team.
cursorStringPass the cursor into team_folder/list/continue to obtain additional team folders.
has_moreBooleanIs true if there are additional team folders that have not been returned yet. An additional call to team_folder/list/continue can retrieve them.
Errors
TeamFolderListError
access_error
See also general errors.

/team_folder/list/continue


Description

Once a cursor has been retrieved from team_folder/list, use this to paginate through all team folders. Permission : Team member file access.

URL Structure
https://api.dropboxapi.com/2/team/team_folder/list/continue
Authentication
Team Authentication
Endpoint format
RPC
Required Scope
team_data.content.read
Example
Get access token for:
curl -X POST https://api.dropboxapi.com/2/team/team_folder/list/continue \
    --header "Authorization: Bearer <get access token>" \
    --header "Content-Type: application/json" \
    --data "{\"cursor\":\"ZtkX9_EHj3x7PMkVuFIhwKYXEpwpLwyxp9vMKomUhllil9q7eWiAu\"}"
Parameters
{
    "cursor": "ZtkX9_EHj3x7PMkVuFIhwKYXEpwpLwyxp9vMKomUhllil9q7eWiAu"
}
TeamFolderListContinueArg
cursorStringIndicates from what point to get the next set of team folders.
Returns
{
    "cursor": "ZtkX9_EHj3x7PMkVuFIhwKYXEpwpLwyxp9vMKomUhllil9q7eWiAu",
    "has_more": false,
    "team_folders": [
        {
            "content_sync_settings": [
                {
                    "id": "id:a4ayc_80_OEAAAAAAAAAXw",
                    "sync_setting": {
                        ".tag": "default"
                    }
                }
            ],
            "is_team_shared_dropbox": false,
            "name": "Marketing",
            "status": {
                ".tag": "active"
            },
            "sync_setting": {
                ".tag": "default"
            },
            "team_folder_id": "123456789"
        }
    ]
}
TeamFolderListResult
Result for team_folder/list and team_folder/list/continue.
team_foldersList of ()List of all team folders in the authenticated team.
cursorStringPass the cursor into team_folder/list/continue to obtain additional team folders.
has_moreBooleanIs true if there are additional team folders that have not been returned yet. An additional call to team_folder/list/continue can retrieve them.
Errors
Example: invalid_cursor
{
    "error": {
        ".tag": "invalid_cursor"
    },
    "error_summary": "invalid_cursor/..."
}
Example: other
{
    "error": {
        ".tag": "other"
    },
    "error_summary": "other/..."
}
TeamFolderListContinueError (open union)
invalid_cursorVoidThe cursor is invalid.
See also general errors.

/team_folder/permanently_delete


Description

Permanently deletes an archived team folder. This endpoint cannot be used for teams that have a shared team space. Permission : Team member file access.

URL Structure
https://api.dropboxapi.com/2/team/team_folder/permanently_delete
Authentication
Team Authentication
Endpoint format
RPC
Required Scope
team_data.content.write
Example
Get access token for:
curl -X POST https://api.dropboxapi.com/2/team/team_folder/permanently_delete \
    --header "Authorization: Bearer <get access token>" \
    --header "Content-Type: application/json" \
    --data "{\"team_folder_id\":\"123456789\"}"
Parameters
{
    "team_folder_id": "123456789"
}
TeamFolderIdArg
team_folder_idString(pattern="[-_0-9a-zA-Z:]+")The ID of the team folder.
Returns
No return values.
Errors
TeamFolderPermanentlyDeleteError (union)
access_error
status_error
team_shared_dropbox_error
See also general errors.

/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
Required Scope
team_data.content.write
Example
Get access token for:
curl -X POST https://api.dropboxapi.com/2/team/team_folder/rename \
    --header "Authorization: Bearer <get access token>" \
    --header "Content-Type: application/json" \
    --data "{\"name\":\"Sales\",\"team_folder_id\":\"123456789\"}"
Parameters
{
    "name": "Sales",
    "team_folder_id": "123456789"
}
TeamFolderRenameArg
team_folder_idString(pattern="[-_0-9a-zA-Z:]+")The ID of the team folder.
nameStringNew team folder name.
Returns
{
    "content_sync_settings": [
        {
            "id": "id:a4ayc_80_OEAAAAAAAAAXw",
            "sync_setting": {
                ".tag": "default"
            }
        }
    ],
    "is_team_shared_dropbox": false,
    "name": "Marketing",
    "status": {
        ".tag": "active"
    },
    "sync_setting": {
        ".tag": "default"
    },
    "team_folder_id": "123456789"
}
TeamFolderMetadata
Properties of a team folder.
team_folder_idString(pattern="[-_0-9a-zA-Z:]+")The ID of the team folder.
nameStringThe name of the team folder.
statusThe status of the team folder.
is_team_shared_dropboxBooleanTrue if this team folder is a shared team root.
sync_settingThe sync setting applied to this team folder.
content_sync_settingsList of ()Sync settings applied to contents of this team folder.
Errors
Example: other
{
    "error": {
        ".tag": "other"
    },
    "error_summary": "other/..."
}
Example: invalid_folder_name
{
    "error": {
        ".tag": "invalid_folder_name"
    },
    "error_summary": "invalid_folder_name/..."
}
Example: folder_name_already_used
{
    "error": {
        ".tag": "folder_name_already_used"
    },
    "error_summary": "folder_name_already_used/..."
}
Example: folder_name_reserved
{
    "error": {
        ".tag": "folder_name_reserved"
    },
    "error_summary": "folder_name_reserved/..."
}
TeamFolderRenameError (union)
access_error
status_error
team_shared_dropbox_error
invalid_folder_nameVoidThe provided folder name cannot be used.
folder_name_already_usedVoidThere is already a team folder with the same name.
folder_name_reservedVoidThe provided name cannot be used because it is reserved.
See also general errors.

/team_folder/restore


PREVIEW - may change or disappear without notice
Description

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

URL Structure
https://api.dropboxapi.com/2/team/team_folder/restore
Authentication
Team Authentication
Endpoint format
RPC
Required Scope
team_data.content.write
Example
Get access token for:
curl -X POST https://api.dropboxapi.com/2/team/team_folder/restore \
    --header "Authorization: Bearer <get access token>" \
    --header "Content-Type: application/json" \
    --data "{\"team_folder_id\":\"123456789\"}"
Parameters
{
    "team_folder_id": "123456789"
}
TeamFolderIdArg
team_folder_idString(pattern="[-_0-9a-zA-Z:]+")The ID of the team folder.
Returns
{
    "content_sync_settings": [
        {
            "id": "id:a4ayc_80_OEAAAAAAAAAXw",
            "sync_setting": {
                ".tag": "default"
            }
        }
    ],
    "is_team_shared_dropbox": false,
    "name": "Marketing",
    "status": {
        ".tag": "active"
    },
    "sync_setting": {
        ".tag": "default"
    },
    "team_folder_id": "123456789"
}
TeamFolderMetadata
Properties of a team folder.
team_folder_idString(pattern="[-_0-9a-zA-Z:]+")The ID of the team folder.
nameStringThe name of the team folder.
statusThe status of the team folder.
is_team_shared_dropboxBooleanTrue if this team folder is a shared team root.
sync_settingThe sync setting applied to this team folder.
content_sync_settingsList of ()Sync settings applied to contents of this team folder.
Errors
TeamFolderRestoreError (union)
access_error
status_error
team_shared_dropbox_error
See also general errors.

/team_folder/update_sync_settings


Description

Updates the sync settings on a team folder or its contents. Use of this endpoint requires that the team has team selective sync enabled.

URL Structure
https://api.dropboxapi.com/2/team/team_folder/update_sync_settings
Authentication
Team Authentication
Endpoint format
RPC
Required Scope
team_data.content.write
Example
Get access token for:
curl -X POST https://api.dropboxapi.com/2/team/team_folder/update_sync_settings \
    --header "Authorization: Bearer <get access token>" \
    --header "Content-Type: application/json" \
    --data "{\"content_sync_settings\":[{\"id\":\"id:a4ayc_80_OEAAAAAAAAAXw\",\"sync_setting\":\"not_synced\"}],\"sync_setting\":\"not_synced\",\"team_folder_id\":\"123456789\"}"
Parameters
{
    "content_sync_settings": [
        {
            "id": "id:a4ayc_80_OEAAAAAAAAAXw",
            "sync_setting": "not_synced"
        }
    ],
    "sync_setting": "not_synced",
    "team_folder_id": "123456789"
}
TeamFolderUpdateSyncSettingsArg
team_folder_idString(pattern="[-_0-9a-zA-Z:]+")The ID of the team folder.
sync_setting?Sync setting to apply to the team folder itself. Only meaningful if the team folder is not a shared team root. This field is optional.
content_sync_settingsList of ()?Sync settings to apply to contents of this team folder. This field is optional.
Returns
{
    "content_sync_settings": [
        {
            "id": "id:a4ayc_80_OEAAAAAAAAAXw",
            "sync_setting": {
                ".tag": "default"
            }
        }
    ],
    "is_team_shared_dropbox": false,
    "name": "Marketing",
    "status": {
        ".tag": "active"
    },
    "sync_setting": {
        ".tag": "default"
    },
    "team_folder_id": "123456789"
}
TeamFolderMetadata
Properties of a team folder.
team_folder_idString(pattern="[-_0-9a-zA-Z:]+")The ID of the team folder.
nameStringThe name of the team folder.
statusThe status of the team folder.
is_team_shared_dropboxBooleanTrue if this team folder is a shared team root.
sync_settingThe sync setting applied to this team folder.
content_sync_settingsList of ()Sync settings applied to contents of this team folder.
Errors
TeamFolderUpdateSyncSettingsError (union)
access_error
status_error
team_shared_dropbox_error
sync_settings_errorAn error occurred setting the sync settings.
See also general errors.

/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
Required Scope
team_info.read
Example
Get access token for:
curl -X POST https://api.dropboxapi.com/2/team/token/get_authenticated_admin \
    --header "Authorization: Bearer <get access token>"
Parameters
No parameters.
Returns
{
    "admin_profile": {
        "account_id": "dbid:AAH4f99T0taONIb-OurWxbNQ6ywGRopQngc",
        "email": "tami@seagull.com",
        "email_verified": false,
        "external_id": "244423",
        "groups": [
            "g:e2db7665347abcd600000000001a2b3c"
        ],
        "joined_on": "2015-05-12T15:50:38Z",
        "member_folder_id": "20",
        "membership_type": {
            ".tag": "full"
        },
        "name": {
            "abbreviated_name": "FF",
            "display_name": "Franz Ferdinand (Personal)",
            "familiar_name": "Franz",
            "given_name": "Franz",
            "surname": "Ferdinand"
        },
        "profile_photo_url": "https://dl-web.dropbox.com/account_photo/get/dbaphid%3AAAHWGmIXV3sUuOmBfTz0wPsiqHUpBWvv3ZA?vers=1556069330102&size=128x128",
        "root_folder_id": "30",
        "secondary_emails": [
            {
                "email": "grape@strawberry.com",
                "is_verified": false
            },
            {
                "email": "apple@orange.com",
                "is_verified": true
            }
        ],
        "status": {
            ".tag": "active"
        },
        "team_member_id": "dbmid:FDFSVF-DFSDF"
    }
}
TokenGetAuthenticatedAdminResult
Results for token/get_authenticated_admin.
admin_profileThe admin who authorized the token.
Errors
Example: mapping_not_found
{
    "error": {
        ".tag": "mapping_not_found"
    },
    "error_summary": "mapping_not_found/..."
}
Example: admin_not_active
{
    "error": {
        ".tag": "admin_not_active"
    },
    "error_summary": "admin_not_active/..."
}
Example: other
{
    "error": {
        ".tag": "other"
    },
    "error_summary": "other/..."
}
TokenGetAuthenticatedAdminError (open union)
Error returned by token/get_authenticated_admin.
mapping_not_foundVoidThe 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_activeVoidEither the team admin that authorized this token is no longer an active member of the team or no longer a team admin.
See also general errors.

team_log

/get_events


Description

Retrieves team events. If the result's GetTeamEventsResult.has_more field is true, call get_events/continue with the returned cursor to retrieve more entries. If end_time is not specified in your request, you may use the returned cursor to poll get_events/continue for new events. Many attributes note 'may be missing due to historical data gap'. Note that the file_operations category and & analogous paper events are not available on all Dropbox Business plans. Use features/get_values to check for this feature. Permission : Team Auditing.

URL Structure
https://api.dropboxapi.com/2/team_log/get_events
Authentication
Team Authentication
Endpoint format
RPC
Required Scope
events.read
Example
Get access token for:
curl -X POST https://api.dropboxapi.com/2/team_log/get_events \
    --header "Authorization: Bearer <get access token>" \
    --header "Content-Type: application/json" \
    --data "{\"category\":\"groups\",\"limit\":50}"
Parameters
{
    "category": "groups",
    "limit": 50
}
GetTeamEventsArg
limitUInt32(min=1, max=1000)The maximal number of results to return per call. Note that some calls may not return limit number of events, and may even return no events, even with `has_more` set to true. In this case, callers should fetch again using get_events/continue. The default for this field is 1000.
account_id String(min_length=40, max_length=40)?Filter the events by account ID. Return only events with this account_id as either Actor, Context, or Participants. This field is optional.
time?Filter by time range. This field is optional.
category?Filter the returned events to a single category. Note that category shouldn't be provided together with event_type. This field is optional.
event_type?Filter the returned events to a single event type. Note that event_type shouldn't be provided together with category. This field is optional.
Returns
{
    "cursor": "ZtkX9_EHj3x7PMkVuFIhwKYXEpwpLwyxp9vMKomUhllil9q7eWiAu",
    "events": [
        {
            "actor": {
                ".tag": "user",
                "user": {
                    ".tag": "non_team_member",
                    "account_id": "dbid:AAHgR8xsQP48a5DQUGPo-Vxsrjd0OByVmho",
                    "display_name": "John Smith",
                    "email": "john_smith@acmecorp.com"
                }
            },
            "assets": [
                {
                    ".tag": "file",
                    "display_name": "reports.xls",
                    "file_id": "id:jQKLsZFQImAAAAAAEZAAQt",
                    "file_size": 4,
                    "path": {
                        "contextual": "/Contract Work/Draft",
                        "namespace_relative": {
                            "is_shared_namespace": false,
                            "ns_id": "1234",
                            "relative_path": "/Contract Work/Draft"
                        }
                    }
                }
            ],
            "context": {
                ".tag": "team_member",
                "account_id": "dbid:AAHgR8xsQP48a5DQUGPo-Vxsrjd0OByVmho",
                "display_name": "John Smith",
                "email": "john_smith@acmecorp.com",
                "member_external_id": "ADSYNC S-1-5-21-1004296348-1135238915-682003432-1224",
                "team": {
                    "display_name": "A Team"
                },
                "team_member_id": "dbmid:AAFoi-tmvRuQR0jU-3fN4B-9nZo6nHcDO9Q"
            },
            "details": {
                ".tag": "shared_content_download_details",
                "shared_content_access_level": {
                    ".tag": "traverse"
                },
                "shared_content_link": "abc",
                "shared_content_owner": {
                    ".tag": "non_team_member",
                    "account_id": "dbid:AAHgR8xsQP48a5DQUGPo-Vxsrjd0OByVmho",
                    "display_name": "John Smith",
                    "email": "john_smith@acmecorp.com"
                }
            },
            "event_category": {
                ".tag": "tfa"
            },
            "event_type": {
                ".tag": "shared_content_download",
                "description": "(sharing) Downloaded shared file/folder"
            },
            "involve_non_team_member": true,
            "origin": {
                "access_method": {
                    ".tag": "end_user",
                    "end_user": {
                        ".tag": "desktop",
                        "session_id": "dbwsid:123456789012345678901234567890123456789"
                    }
                },
                "geo_location": {
                    "city": "San Francisco",
                    "country": "US",
                    "ip_address": "45.56.78.100",
                    "region": "California"
                }
            },
            "participants": [
                {
                    ".tag": "user",
                    "user": {
                        ".tag": "non_team_member",
                        "account_id": "dbid:AAGx4oiLtHdvRdNxUpvvJBXYgR4BS19c9kw",
                        "display_name": "Jane Smith",
                        "email": "jane_smith@acmecorp.com"
                    }
                }
            ],
            "timestamp": "2017-01-25T15:51:30Z"
        }
    ],
    "has_more": false
}
GetTeamEventsResult
eventsList of ()List of events. Note that events are not guaranteed to be sorted by their timestamp value.
cursorStringPass the cursor into get_events/continue to obtain additional events. The value of cursor may change for each response from get_events/continue, regardless of the value of has_more; older cursor strings may expire. Thus, callers should ensure that they update their cursor based on the latest value of cursor after each call, and poll regularly if they wish to poll for new events. Callers should handle reset exceptions for expired cursors.
has_moreBooleanIs true if there may be additional events that have not been returned yet. An additional call to get_events/continue can retrieve them. Note that has_more may be true, even if events is empty.
Errors
{
    "error": {
        ".tag": "account_id_not_found"
    },
    "error_summary": "account_id_not_found/..."
}
Example: account_id_not_found
{
    "error": {
        ".tag": "account_id_not_found"
    },
    "error_summary": "account_id_not_found/..."
}
Example: invalid_time_range
{
    "error": {
        ".tag": "invalid_time_range"
    },
    "error_summary": "invalid_time_range/..."
}
Example: invalid_filters
{
    "error": {
        ".tag": "invalid_filters"
    },
    "error_summary": "invalid_filters/..."
}
Example: other
{
    "error": {
        ".tag": "other"
    },
    "error_summary": "other/..."
}
GetTeamEventsError (open union)
Errors that can be raised when calling get_events.
account_id_not_foundVoidNo user found matching the provided account_id.
invalid_time_rangeVoidInvalid time range.
invalid_filtersVoidInvalid filters. Do not specify both event_type and category parameters for the same call.
See also general errors.

/get_events/continue


Description

Once a cursor has been retrieved from get_events, use this to paginate through all events. Permission : Team Auditing.

URL Structure
https://api.dropboxapi.com/2/team_log/get_events/continue
Authentication
Team Authentication
Endpoint format
RPC
Required Scope
events.read
Example
Get access token for:
curl -X POST https://api.dropboxapi.com/2/team_log/get_events/continue \
    --header "Authorization: Bearer <get access token>" \
    --header "Content-Type: application/json" \
    --data "{\"cursor\":\"ZtkX9_EHj3x7PMkVuFIhwKYXEpwpLwyxp9vMKomUhllil9q7eWiAu\"}"
Parameters
{
    "cursor": "ZtkX9_EHj3x7PMkVuFIhwKYXEpwpLwyxp9vMKomUhllil9q7eWiAu"
}
GetTeamEventsContinueArg
cursorStringIndicates from what point to get the next set of events.
Returns
{
    "cursor": "ZtkX9_EHj3x7PMkVuFIhwKYXEpwpLwyxp9vMKomUhllil9q7eWiAu",
    "events": [
        {
            "actor": {
                ".tag": "user",
                "user": {
                    ".tag": "non_team_member",
                    "account_id": "dbid:AAHgR8xsQP48a5DQUGPo-Vxsrjd0OByVmho",
                    "display_name": "John Smith",
                    "email": "john_smith@acmecorp.com"
                }
            },
            "assets": [
                {
                    ".tag": "file",
                    "display_name": "reports.xls",
                    "file_id": "id:jQKLsZFQImAAAAAAEZAAQt",
                    "file_size": 4,
                    "path": {
                        "contextual": "/Contract Work/Draft",
                        "namespace_relative": {
                            "is_shared_namespace": false,
                            "ns_id": "1234",
                            "relative_path": "/Contract Work/Draft"
                        }
                    }
                }
            ],
            "context": {
                ".tag": "team_member",
                "account_id": "dbid:AAHgR8xsQP48a5DQUGPo-Vxsrjd0OByVmho",
                "display_name": "John Smith",
                "email": "john_smith@acmecorp.com",
                "member_external_id": "ADSYNC S-1-5-21-1004296348-1135238915-682003432-1224",
                "team": {
                    "display_name": "A Team"
                },
                "team_member_id": "dbmid:AAFoi-tmvRuQR0jU-3fN4B-9nZo6nHcDO9Q"
            },
            "details": {
                ".tag": "shared_content_download_details",
                "shared_content_access_level": {
                    ".tag": "traverse"
                },
                "shared_content_link": "abc",
                "shared_content_owner": {
                    ".tag": "non_team_member",
                    "account_id": "dbid:AAHgR8xsQP48a5DQUGPo-Vxsrjd0OByVmho",
                    "display_name": "John Smith",
                    "email": "john_smith@acmecorp.com"
                }
            },
            "event_category": {
                ".tag": "tfa"
            },
            "event_type": {
                ".tag": "shared_content_download",
                "description": "(sharing) Downloaded shared file/folder"
            },
            "involve_non_team_member": true,
            "origin": {
                "access_method": {
                    ".tag": "end_user",
                    "end_user": {
                        ".tag": "desktop",
                        "session_id": "dbwsid:123456789012345678901234567890123456789"
                    }
                },
                "geo_location": {
                    "city": "San Francisco",
                    "country": "US",
                    "ip_address": "45.56.78.100",
                    "region": "California"
                }
            },
            "participants": [
                {
                    ".tag": "user",
                    "user": {
                        ".tag": "non_team_member",
                        "account_id": "dbid:AAGx4oiLtHdvRdNxUpvvJBXYgR4BS19c9kw",
                        "display_name": "Jane Smith",
                        "email": "jane_smith@acmecorp.com"
                    }
                }
            ],
            "timestamp": "2017-01-25T15:51:30Z"
        }
    ],
    "has_more": false
}
GetTeamEventsResult
eventsList of ()List of events. Note that events are not guaranteed to be sorted by their timestamp value.
cursorStringPass the cursor into get_events/continue to obtain additional events. The value of cursor may change for each response from get_events/continue, regardless of the value of has_more; older cursor strings may expire. Thus, callers should ensure that they update their cursor based on the latest value of cursor after each call, and poll regularly if they wish to poll for new events. Callers should handle reset exceptions for expired cursors.
has_moreBooleanIs true if there may be additional events that have not been returned yet. An additional call to get_events/continue can retrieve them. Note that has_more may be true, even if events is empty.
Errors
{
    "error": {
        ".tag": "bad_cursor"
    },
    "error_summary": "bad_cursor/..."
}
Example: bad_cursor
{
    "error": {
        ".tag": "bad_cursor"
    },
    "error_summary": "bad_cursor/..."
}
Example: other
{
    "error": {
        ".tag": "other"
    },
    "error_summary": "other/..."
}
GetTeamEventsContinueError (open union)
Errors that can be raised when calling get_events/continue.
bad_cursorVoidBad cursor.
resetTimestamp(format="%Y-%m-%dT%H:%M:%SZ")Cursors are intended to be used quickly. Individual cursor values are normally valid for days, but in rare cases may be reset sooner. Cursor reset errors should be handled by fetching a new cursor from get_events. The associated value is the approximate timestamp of the most recent event returned by the cursor. This should be used as a resumption point when calling get_events to obtain a new cursor.
See also general errors.

Deprecated

All deprecated endpoints, across namespaces

Deprecated: team

Deprecated endpoints for team

/devices/list_team_devices


Description

List all device sessions of a team. Permission : Team member file access.

URL Structure
https://api.dropboxapi.com/2/team/devices/list_team_devices
Authentication
Team Authentication
Endpoint format
RPC
Required Scope
sessions.list
Example
Get access token for:
curl -X POST https://api.dropboxapi.com/2/team/devices/list_team_devices \
    --header "Authorization: Bearer <get access token>" \
    --header "Content-Type: application/json" \
    --data "{\"cursor\":\"ZtkX9_EHj3x7PMkVuFIhwKYXEpwpLwyxp9vMKomUhllil9q7eWiAu\",\"include_desktop_clients\":true,\"include_mobile_clients\":true,\"include_web_sessions\":true}"
Parameters
{
    "cursor": "ZtkX9_EHj3x7PMkVuFIhwKYXEpwpLwyxp9vMKomUhllil9q7eWiAu",
    "include_desktop_clients": true,
    "include_mobile_clients": true,
    "include_web_sessions": true
}
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_sessionsBooleanWhether to list web sessions of the team members. The default for this field is True.
include_desktop_clientsBooleanWhether to list desktop clients of the team members. The default for this field is True.
include_mobile_clientsBooleanWhether to list mobile clients of the team members. The default for this field is True.
Returns
{
    "devices": [
        {
            "team_member_id": "dbmid:AAHhy7WsR0x-u4ZCqiDl5Fz5zvuL3kmspwU"
        }
    ],
    "has_more": false
}
ListTeamDevicesResult
devicesList of ()The devices of each member of the team.
has_moreBooleanIf 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": {
        ".tag": "reset"
    },
    "error_summary": "reset/..."
}
Example: other
{
    "error": {
        ".tag": "other"
    },
    "error_summary": "other/..."
}
ListTeamDevicesError (open union)
resetVoidIndicates that the cursor has been invalidated. Call devices/list_team_devices again with an empty cursor to obtain a new cursor.
See also general errors.

/linked_apps/list_team_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
Required Scope
sessions.list
Example
Get access token for:
curl -X POST https://api.dropboxapi.com/2/team/linked_apps/list_team_linked_apps \
    --header "Authorization: Bearer <get access token>" \
    --header "Content-Type: application/json" \
    --data "{\"cursor\":\"AADAQO8ZWKvBkSMXb1J9dAYVvwZ0wcvfyzIBo2e1H-_N-67pfrYKTb4oN_3LG9_ilWjblZXuiR8ubjjiQQkHq-MvDjbe_6bkcJgjnTpowrRaQA\"}"
Parameters
{
    "cursor": "AADAQO8ZWKvBkSMXb1J9dAYVvwZ0wcvfyzIBo2e1H-_N-67pfrYKTb4oN_3LG9_ilWjblZXuiR8ubjjiQQkHq-MvDjbe_6bkcJgjnTpowrRaQA"
}
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
{
    "apps": [
        {
            "linked_api_apps": [
                {
                    "app_id": "dbaid:AAFdgehTzw7WlXhZJsbGCLePe8RvQGYDr-I",
                    "app_name": "Notes",
                    "is_app_folder": true,
                    "linked": "2015-05-12T15:50:38Z",
                    "publisher": "Notes company",
                    "publisher_url": "http://company.com"
                }
            ],
            "team_member_id": "dbmid:AAFdgehTzw7WlXhZJsbGCLePe8RvQGYDr-I"
        }
    ],
    "cursor": "AADAQO8ZWKvBkSMXb1J9dAYVvwZ0wcvfyzIBo2e1H-_N-67pfrYKTb4oN_3LG9_ilWjblZXuiR8ubjjiQQkHq-MvDjbe_6bkcJgjnTpowrRaQA",
    "has_more": true
}
ListTeamAppsResult
Information returned by linked_apps/list_team_linked_apps.
appsList of ()The linked applications of each member of the team.
has_moreBooleanIf 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": {
        ".tag": "reset"
    },
    "error_summary": "reset/..."
}
Example: other
{
    "error": {
        ".tag": "other"
    },
    "error_summary": "other/..."
}
ListTeamAppsError (open union)
Error returned by linked_apps/list_team_linked_apps.
resetVoidIndicates that the cursor has been invalidated. Call linked_apps/list_team_linked_apps again with an empty cursor to obtain a new cursor.
See also general errors.

/properties/template/add


"DEPRECATED"
Description

Permission : Team member file access.

URL Structure
https://api.dropboxapi.com/2/team/properties/template/add
Authentication
Team Authentication
Endpoint format
RPC
Required Scope
files.team_metadata.write
Example
Get access token for:
curl -X POST https://api.dropboxapi.com/2/team/properties/template/add \
    --header "Authorization: Bearer <get access token>" \
    --header "Content-Type: application/json" \
    --data "{\"description\":\"These properties describe how confidential this file or folder is.\",\"fields\":[{\"description\":\"This is the security policy of the file or folder described.\nPolicies can be Confidential, Public or Internal.\",\"name\":\"Security Policy\",\"type\":\"string\"}],\"name\":\"Security\"}"
Parameters
{
    "description": "These properties describe how confidential this file or folder is.",
    "fields": [
        {
            "description": "This is the security policy of the file or folder described.\nPolicies can be Confidential, Public or Internal.",
            "name": "Security Policy",
            "type": "string"
        }
    ],
    "name": "Security"
}
AddTemplateArg
This datatype comes from an imported namespace originally defined in the file_properties namespace.
nameStringDisplay name for the template. Template names can be up to 256 bytes.
descriptionStringDescription for the template. Template descriptions can be up to 1024 bytes.
fieldsList of ()Definitions of the property fields associated with this template. There can be up to 32 properties in a single template.
Returns
{
    "template_id": "ptid:1a5n2i6d3OYEAAAAAAAAAYa"
}
AddTemplateResult
This datatype comes from an imported namespace originally defined in the file_properties namespace.
template_idString(min_length=1, pattern="(/|ptid:).*")An identifier for template added by See templates/add_for_user or templates/add_for_team.
Errors
Example: restricted_content
{
    "error": {
        ".tag": "restricted_content"
    },
    "error_summary": "restricted_content/..."
}
Example: other
{
    "error": {
        ".tag": "other"
    },
    "error_summary": "other/..."
}
Example: conflicting_property_names
{
    "error": {
        ".tag": "conflicting_property_names"
    },
    "error_summary": "conflicting_property_names/..."
}
Example: too_many_properties
{
    "error": {
        ".tag": "too_many_properties"
    },
    "error_summary": "too_many_properties/..."
}
Example: too_many_templates
{
    "error": {
        ".tag": "too_many_templates"
    },
    "error_summary": "too_many_templates/..."
}
Example: template_attribute_too_large
{
    "error": {
        ".tag": "template_attribute_too_large"
    },
    "error_summary": "template_attribute_too_large/..."
}
ModifyTemplateError (union)
This datatype comes from an imported namespace originally defined in the file_properties namespace.
template_not_foundString(min_length=1, pattern="(/|ptid:).*")Template does not exist for the given identifier.
restricted_contentVoidYou do not have permission to modify this template.
conflicting_property_namesVoidA property field key with that name already exists in the template.
too_many_propertiesVoidThere are too many properties in the changed template. The maximum number of properties per template is 32.
too_many_templatesVoidThere are too many templates for the team.
template_attribute_too_largeVoidThe template name, description or one or more of the property field keys is too large.
See also general errors.

/properties/template/get


"DEPRECATED"
Description

Permission : Team member file access. The scope for the route is files.team_metadata.write.

URL Structure
https://api.dropboxapi.com/2/team/properties/template/get
Authentication
Team Authentication
Endpoint format
RPC
Required Scope
files.team_metadata.write
Example
Get access token for:
curl -X POST https://api.dropboxapi.com/2/team/properties/template/get \
    --header "Authorization: Bearer <get access token>" \
    --header "Content-Type: application/json" \
    --data "{\"template_id\":\"ptid:1a5n2i6d3OYEAAAAAAAAAYa\"}"
Parameters
{
    "template_id": "ptid:1a5n2i6d3OYEAAAAAAAAAYa"
}
GetTemplateArg
This datatype comes from an imported namespace originally defined in the file_properties namespace.
template_idString(min_length=1, pattern="(/|ptid:).*")An identifier for template added by route See templates/add_for_user or templates/add_for_team.
Returns
{
    "description": "These properties describe how confidential this file or folder is.",
    "fields": [
        {
            "description": "This is the security policy of the file or folder described.\nPolicies can be Confidential, Public or Internal.",
            "name": "Security Policy",
            "type": {
                ".tag": "string"
            }
        }
    ],
    "name": "Security"
}
GetTemplateResult
This datatype comes from an imported namespace originally defined in the file_properties namespace.
nameStringDisplay name for the template. Template names can be up to 256 bytes.
descriptionStringDescription for the template. Template descriptions can be up to 1024 bytes.
fieldsList of ()Definitions of the property fields associated with this template. There can be up to 32 properties in a single template.
Errors
Example: restricted_content
{
    "error": {
        ".tag": "restricted_content"
    },
    "error_summary": "restricted_content/..."
}
Example: other
{
    "error": {
        ".tag": "other"
    },
    "error_summary": "other/..."
}
TemplateError (open union)
This datatype comes from an imported namespace originally defined in the file_properties namespace.
template_not_foundString(min_length=1, pattern="(/|ptid:).*")Template does not exist for the given identifier.
restricted_contentVoidYou do not have permission to modify this template.
See also general errors.

/properties/template/list


"DEPRECATED"
Description

Permission : Team member file access. The scope for the route is files.team_metadata.write.

URL Structure
https://api.dropboxapi.com/2/team/properties/template/list
Authentication
Team Authentication
Endpoint format
RPC
Required Scope
files.team_metadata.write
Example
Get access token for:
curl -X POST https://api.dropboxapi.com/2/team/properties/template/list \
    --header "Authorization: Bearer <get access token>"
Parameters
No parameters.
Returns
{
    "template_ids": [
        "ptid:1a5n2i6d3OYEAAAAAAAAAYa"
    ]
}
ListTemplateResult
This datatype comes from an imported namespace originally defined in the file_properties namespace.
template_ids List of (String(min_length=1, pattern="(/|ptid:).*"))List of identifiers for templates added by See templates/add_for_user or templates/add_for_team.
Errors
Example: restricted_content
{
    "error": {
        ".tag": "restricted_content"
    },
    "error_summary": "restricted_content/..."
}
Example: other
{
    "error": {
        ".tag": "other"
    },
    "error_summary": "other/..."
}
TemplateError (open union)
This datatype comes from an imported namespace originally defined in the file_properties namespace.
template_not_foundString(min_length=1, pattern="(/|ptid:).*")Template does not exist for the given identifier.
restricted_contentVoidYou do not have permission to modify this template.
See also general errors.

/properties/template/update


"DEPRECATED"
Description

Permission : Team member file access.

URL Structure
https://api.dropboxapi.com/2/team/properties/template/update
Authentication
Team Authentication
Endpoint format
RPC
Required Scope
files.team_metadata.write
Example
Get access token for:
curl -X POST https://api.dropboxapi.com/2/team/properties/template/update \
    --header "Authorization: Bearer <get access token>" \
    --header "Content-Type: application/json" \
    --data "{\"add_fields\":[{\"description\":\"This is the security policy of the file or folder described.\nPolicies can be Confidential, Public or Internal.\",\"name\":\"Security Policy\",\"type\":\"string\"}],\"description\":\"These properties will describe how confidential this file or folder is.\",\"name\":\"New Security Template Name\",\"template_id\":\"ptid:1a5n2i6d3OYEAAAAAAAAAYa\"}"
Parameters
{
    "add_fields": [
        {
            "description": "This is the security policy of the file or folder described.\nPolicies can be Confidential, Public or Internal.",
            "name": "Security Policy",
            "type": "string"
        }
    ],
    "description": "These properties will describe how confidential this file or folder is.",
    "name": "New Security Template Name",
    "template_id": "ptid:1a5n2i6d3OYEAAAAAAAAAYa"
}
UpdateTemplateArg
This datatype comes from an imported namespace originally defined in the file_properties namespace.
template_idString(min_length=1, pattern="(/|ptid:).*")An identifier for template added by See templates/add_for_user or templates/add_for_team.
name String?A display name for the template. template names can be up to 256 bytes. This field is optional.
description String?Description for the new template. Template descriptions can be up to 1024 bytes. This field is optional.
add_fieldsList of ()?Property field templates to be added to the group template. There can be up to 32 properties in a single template. This field is optional.
Returns
{
    "template_id": "ptid:1a5n2i6d3OYEAAAAAAAAAYa"
}
UpdateTemplateResult
This datatype comes from an imported namespace originally defined in the file_properties namespace.
template_idString(min_length=1, pattern="(/|ptid:).*")An identifier for template added by route See templates/add_for_user or templates/add_for_team.
Errors
Example: restricted_content
{
    "error": {
        ".tag": "restricted_content"
    },
    "error_summary": "restricted_content/..."
}
Example: other
{
    "error": {
        ".tag": "other"
    },
    "error_summary": "other/..."
}
Example: conflicting_property_names
{
    "error": {
        ".tag": "conflicting_property_names"
    },
    "error_summary": "conflicting_property_names/..."
}
Example: too_many_properties
{
    "error": {
        ".tag": "too_many_properties"
    },
    "error_summary": "too_many_properties/..."
}
Example: too_many_templates
{
    "error": {
        ".tag": "too_many_templates"
    },
    "error_summary": "too_many_templates/..."
}
Example: template_attribute_too_large
{
    "error": {
        ".tag": "template_attribute_too_large"
    },
    "error_summary": "template_attribute_too_large/..."
}
ModifyTemplateError (union)
This datatype comes from an imported namespace originally defined in the file_properties namespace.
template_not_foundString(min_length=1, pattern="(/|ptid:).*")Template does not exist for the given identifier.
restricted_contentVoidYou do not have permission to modify this template.
conflicting_property_namesVoidA property field key with that name already exists in the template.
too_many_propertiesVoidThere are too many properties in the changed template. The maximum number of properties per template is 32.
too_many_templatesVoidThere are too many templates for the team.
template_attribute_too_largeVoidThe template name, description or one or more of the property field keys is too large.
See also general errors.

/reports/get_activity


"DEPRECATED"
Description

Retrieves reporting data about a team's user activity. Deprecated: Will be removed on July 1st 2021.

URL Structure
https://api.dropboxapi.com/2/team/reports/get_activity
Authentication
Team Authentication
Endpoint format
RPC
Required Scope
team_info.read
Parameters
DateRange
Input arguments that can be provided for most reports.
start_date Timestamp(format="%Y-%m-%d")?Optional starting date (inclusive). If start_date is None or too long ago, this field will be set to 6 months ago. 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_dateStringFirst 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
No endpoint-specific errors.
See also general errors.

/reports/get_devices


"DEPRECATED"
Description

Retrieves reporting data about a team's linked devices. Deprecated: Will be removed on July 1st 2021.

URL Structure
https://api.dropboxapi.com/2/team/reports/get_devices
Authentication
Team Authentication
Endpoint format
RPC
Required Scope
team_info.read
Parameters
DateRange
Input arguments that can be provided for most reports.
start_date Timestamp(format="%Y-%m-%d")?Optional starting date (inclusive). If start_date is None or too long ago, this field will be set to 6 months ago. 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_dateStringFirst date present in the results as 'YYYY-MM-DD' or None.
active_1_dayReport of the number of devices active in the last day.
active_7_dayReport of the number of devices active in the last 7 days.
active_28_dayReport of the number of devices active in the last 28 days.
Errors
No endpoint-specific errors.
See also general errors.

/reports/get_membership


"DEPRECATED"
Description

Retrieves reporting data about a team's membership. Deprecated: Will be removed on July 1st 2021.

URL Structure
https://api.dropboxapi.com/2/team/reports/get_membership
Authentication
Team Authentication
Endpoint format
RPC
Required Scope
team_info.read
Parameters
DateRange
Input arguments that can be provided for most reports.
start_date Timestamp(format="%Y-%m-%d")?Optional starting date (inclusive). If start_date is None or too long ago, this field will be set to 6 months ago. 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_dateStringFirst 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
No endpoint-specific errors.
See also general errors.

/reports/get_storage


"DEPRECATED"
Description

Retrieves reporting data about a team's storage usage. Deprecated: Will be removed on July 1st 2021.

URL Structure
https://api.dropboxapi.com/2/team/reports/get_storage
Authentication
Team Authentication
Endpoint format
RPC
Required Scope
team_info.read
Parameters
DateRange
Input arguments that can be provided for most reports.
start_date Timestamp(format="%Y-%m-%d")?Optional starting date (inclusive). If start_date is None or too long ago, this field will be set to 6 months ago. 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_dateStringFirst 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_mapList of (List of ())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.
Errors
No endpoint-specific errors.
See also general errors.