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.
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.
[For new apps, we recommend using scopes.]
There are four different access types of Dropbox Business API permissions.
To create a Dropbox Business app, visit the app creation page.
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.
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.
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.
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.
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.
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_id
s that have changes within their account. This is similar to the Dropbox API webhooks behavior.
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.
This type of notification will be triggered in the following cases:
There are also two types of apps that are eligible for team change notifications
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", ... ] }, ... ] }
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`.
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.
https://api.dropboxapi.com/2/file_properties/templates/add_for_team
curl -X POST https://api.dropboxapi.com/2/file_properties/templates/add_for_team \
--header "Authorization: Bearer " \
--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\"}"
{ "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" }
name
StringDisplay name for the template. Template names can be up to 256 bytes.description
StringDescription for the template. Template descriptions can be up to 1024 bytes.fields
List of ()Definitions of the property fields associated with this template. There can be up to 32 properties in a single template.{ "template_id": "ptid:1a5n2i6d3OYEAAAAAAAAAYa" }
template_id
String(min_length=1, pattern="(/|ptid:).*")An identifier for template added by See templates/add_for_user or templates/add_for_team.{ "error": { ".tag": "restricted_content" }, "error_summary": "restricted_content/..." }
{ "error": { ".tag": "other" }, "error_summary": "other/..." }
{ "error": { ".tag": "conflicting_property_names" }, "error_summary": "conflicting_property_names/..." }
{ "error": { ".tag": "too_many_properties" }, "error_summary": "too_many_properties/..." }
{ "error": { ".tag": "too_many_templates" }, "error_summary": "too_many_templates/..." }
{ "error": { ".tag": "template_attribute_too_large" }, "error_summary": "template_attribute_too_large/..." }
template_not_found
String(min_length=1, pattern="(/|ptid:).*")Template does not exist for the given identifier.restricted_content
VoidYou do not have permission to modify this template.conflicting_property_names
VoidA property field key with that name already exists in the template.too_many_properties
VoidThere are too many properties in the changed template. The maximum number of properties per template is 32.too_many_templates
VoidThere are too many templates for the team.template_attribute_too_large
VoidThe template name, description or one or more of the property field keys is too large.Get the schema for a specified template.
https://api.dropboxapi.com/2/file_properties/templates/get_for_team
curl -X POST https://api.dropboxapi.com/2/file_properties/templates/get_for_team \
--header "Authorization: Bearer " \
--header "Content-Type: application/json" \
--data "{\"template_id\":\"ptid:1a5n2i6d3OYEAAAAAAAAAYa\"}"
{ "template_id": "ptid:1a5n2i6d3OYEAAAAAAAAAYa" }
template_id
String(min_length=1, pattern="(/|ptid:).*")An identifier for template added by route See templates/add_for_user or templates/add_for_team.{ "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" }
name
StringDisplay name for the template. Template names can be up to 256 bytes.description
StringDescription for the template. Template descriptions can be up to 1024 bytes.fields
List of ()Definitions of the property fields associated with this template. There can be up to 32 properties in a single template.{ "error": { ".tag": "restricted_content" }, "error_summary": "restricted_content/..." }
{ "error": { ".tag": "other" }, "error_summary": "other/..." }
template_not_found
String(min_length=1, pattern="(/|ptid:).*")Template does not exist for the given identifier.restricted_content
VoidYou do not have permission to modify this template.Get the template identifiers for a team. To get the schema of each template use templates/get_for_team.
https://api.dropboxapi.com/2/file_properties/templates/list_for_team
curl -X POST https://api.dropboxapi.com/2/file_properties/templates/list_for_team \
--header "Authorization: Bearer "
{ "template_ids": [ "ptid:1a5n2i6d3OYEAAAAAAAAAYa" ] }
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.{ "error": { ".tag": "restricted_content" }, "error_summary": "restricted_content/..." }
{ "error": { ".tag": "other" }, "error_summary": "other/..." }
template_not_found
String(min_length=1, pattern="(/|ptid:).*")Template does not exist for the given identifier.restricted_content
VoidYou do not have permission to modify this template.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.
https://api.dropboxapi.com/2/file_properties/templates/remove_for_team
curl -X POST https://api.dropboxapi.com/2/file_properties/templates/remove_for_team \
--header "Authorization: Bearer " \
--header "Content-Type: application/json" \
--data "{\"template_id\":\"ptid:1a5n2i6d3OYEAAAAAAAAAYa\"}"
{ "template_id": "ptid:1a5n2i6d3OYEAAAAAAAAAYa" }
template_id
String(min_length=1, pattern="(/|ptid:).*")An identifier for a template created by templates/add_for_user or templates/add_for_team.{ "error": { ".tag": "restricted_content" }, "error_summary": "restricted_content/..." }
{ "error": { ".tag": "other" }, "error_summary": "other/..." }
template_not_found
String(min_length=1, pattern="(/|ptid:).*")Template does not exist for the given identifier.restricted_content
VoidYou do not have permission to modify this template.Update a template associated with a team. This route can update the template name, the template description and add optional properties to templates.
https://api.dropboxapi.com/2/file_properties/templates/update_for_team
curl -X POST https://api.dropboxapi.com/2/file_properties/templates/update_for_team \
--header "Authorization: Bearer " \
--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\"}"
{ "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" }
template_id
String(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_fields
List 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.{ "template_id": "ptid:1a5n2i6d3OYEAAAAAAAAAYa" }
template_id
String(min_length=1, pattern="(/|ptid:).*")An identifier for template added by route See templates/add_for_user or templates/add_for_team.{ "error": { ".tag": "restricted_content" }, "error_summary": "restricted_content/..." }
{ "error": { ".tag": "other" }, "error_summary": "other/..." }
{ "error": { ".tag": "conflicting_property_names" }, "error_summary": "conflicting_property_names/..." }
{ "error": { ".tag": "too_many_properties" }, "error_summary": "too_many_properties/..." }
{ "error": { ".tag": "too_many_templates" }, "error_summary": "too_many_templates/..." }
{ "error": { ".tag": "template_attribute_too_large" }, "error_summary": "template_attribute_too_large/..." }
template_not_found
String(min_length=1, pattern="(/|ptid:).*")Template does not exist for the given identifier.restricted_content
VoidYou do not have permission to modify this template.conflicting_property_names
VoidA property field key with that name already exists in the template.too_many_properties
VoidThere are too many properties in the changed template. The maximum number of properties per template is 32.too_many_templates
VoidThere are too many templates for the team.template_attribute_too_large
VoidThe template name, description or one or more of the property field keys is too large.List all device sessions of a team's member.
https://api.dropboxapi.com/2/team/devices/list_member_devices
curl -X POST https://api.dropboxapi.com/2/team/devices/list_member_devices \
--header "Authorization: Bearer " \
--header "Content-Type: application/json" \
--data "{\"include_desktop_clients\":true,\"include_mobile_clients\":true,\"include_web_sessions\":true,\"team_member_id\":\"dbmid:AAFdgehTzw7WlXhZJsbGCLePe8RvQGYDr-I\"}"
{ "include_desktop_clients": true, "include_mobile_clients": true, "include_web_sessions": true, "team_member_id": "dbmid:AAFdgehTzw7WlXhZJsbGCLePe8RvQGYDr-I" }
team_member_id
StringThe team's member id.include_web_sessions
BooleanWhether to list web sessions of the team's member. The default for this field is True.include_desktop_clients
BooleanWhether to list linked desktop devices of the team's member. The default for this field is True.include_mobile_clients
BooleanWhether to list linked mobile devices of the team's member. The default for this field is True.active_web_sessions
List of ()?List of web sessions made by this team member. This field is optional.desktop_client_sessions
List of ()?List of desktop clients used by this team member. This field is optional.mobile_client_sessions
List of ()?List of mobile client used by this team member. This field is optional.{ "error": { ".tag": "member_not_found" }, "error_summary": "member_not_found/..." }
{ "error": { ".tag": "other" }, "error_summary": "other/..." }
member_not_found
VoidMember not found.List all device sessions of a team. Permission : Team member file access.
https://api.dropboxapi.com/2/team/devices/list_members_devices
cursor
String?At the first call to the devices/list_members_devices the cursor shouldn't be passed. Then, if the result of the call includes a cursor, the following requests should include the received cursors in order to receive the next sub list of team devices. This field is optional.include_web_sessions
BooleanWhether to list web sessions of the team members. The default for this field is True.include_desktop_clients
BooleanWhether to list desktop clients of the team members. The default for this field is True.include_mobile_clients
BooleanWhether to list mobile clients of the team members. The default for this field is True.devices
List of ()The devices of each member of the team.has_more
BooleanIf 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.{ "error": { ".tag": "reset" }, "error_summary": "reset/..." }
{ "error": { ".tag": "other" }, "error_summary": "other/..." }
reset
VoidIndicates that the cursor has been invalidated. Call devices/list_members_devices again with an empty cursor to obtain a new cursor.Revoke a device session of a team's member.
https://api.dropboxapi.com/2/team/devices/revoke_device_session
curl -X POST https://api.dropboxapi.com/2/team/devices/revoke_device_session \
--header "Authorization: Bearer " \
--header "Content-Type: application/json" \
--data "{\".tag\":\"web_session\",\"session_id\":\"1234faaf0678bcde\",\"team_member_id\":\"dbmid:AAHhy7WsR0x-u4ZCqiDl5Fz5zvuL3kmspwU\"}"
{ ".tag": "web_session", "session_id": "1234faaf0678bcde", "team_member_id": "dbmid:AAHhy7WsR0x-u4ZCqiDl5Fz5zvuL3kmspwU" }
web_session
End an active session.desktop_client
Unlink a linked desktop device.mobile_client
Unlink a linked mobile device.{ "error": { ".tag": "device_session_not_found" }, "error_summary": "device_session_not_found/..." }
{ "error": { ".tag": "member_not_found" }, "error_summary": "member_not_found/..." }
{ "error": { ".tag": "other" }, "error_summary": "other/..." }
device_session_not_found
VoidDevice session not found.member_not_found
VoidMember not found.Revoke a list of device sessions of team members.
https://api.dropboxapi.com/2/team/devices/revoke_device_session_batch
curl -X POST https://api.dropboxapi.com/2/team/devices/revoke_device_session_batch \
--header "Authorization: Bearer " \
--header "Content-Type: application/json" \
--data "{\"revoke_devices\":[{\".tag\":\"web_session\",\"session_id\":\"1234faaf0678bcde\",\"team_member_id\":\"dbmid:AAHhy7WsR0x-u4ZCqiDl5Fz5zvuL3kmspwU\"}]}"
{ "revoke_devices": [ { ".tag": "web_session", "session_id": "1234faaf0678bcde", "team_member_id": "dbmid:AAHhy7WsR0x-u4ZCqiDl5Fz5zvuL3kmspwU" } ] }
revoke_devices
List of ()revoke_devices_status
List of ()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.
https://api.dropboxapi.com/2/team/features/get_values
curl -X POST https://api.dropboxapi.com/2/team/features/get_values \
--header "Authorization: Bearer " \
--header "Content-Type: application/json" \
--data "{\"features\":[{\".tag\":\"upload_api_rate_limit\"},{\".tag\":\"has_team_shared_dropbox\"}]}"
{ "features": [ { ".tag": "upload_api_rate_limit" }, { ".tag": "has_team_shared_dropbox" } ] }
features
List of ()A list of features in Feature. If the list is empty, this route will return FeaturesGetValuesBatchError.{ "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 } } ] }
values
List of (){ "error": { ".tag": "empty_features_list" }, "error_summary": "empty_features_list/..." }
{ "error": { ".tag": "other" }, "error_summary": "other/..." }
empty_features_list
VoidAt least one Feature must be included in the FeaturesGetValuesBatchArg.features list.Retrieves information about a team.
https://api.dropboxapi.com/2/team/get_info
curl -X POST https://api.dropboxapi.com/2/team/get_info \
--header "Authorization: Bearer "
{ "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" }
name
StringThe name of the team.team_id
StringThe ID of the team.num_licensed_users
UInt32The number of licenses available to the team.num_provisioned_users
UInt32The number of accounts that have been invited or are already active members of the team.policies
num_used_licenses
UInt32The number of licenses used on the team. The default for this field is 0.Creates a new, empty group, with a requested name. Permission : Team member management.
https://api.dropboxapi.com/2/team/groups/create
curl -X POST https://api.dropboxapi.com/2/team/groups/create \
--header "Authorization: Bearer " \
--header "Content-Type: application/json" \
--data "{\"add_creator_as_owner\":false,\"group_external_id\":\"group-134\",\"group_name\":\"Europe sales\"}"
{ "add_creator_as_owner": false, "group_external_id": "group-134", "group_name": "Europe sales" }
group_name
StringGroup name.add_creator_as_owner
BooleanAutomatically 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.{ "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" } } ] }
group_name
Stringgroup_id
Stringgroup_management_type
Who is allowed to manage the group.created
UInt64The group creation time as a UTC timestamp in milliseconds since the Unix epoch.group_external_id
String?External ID of group. This is an arbitrary ID that an admin can attach to a group. This field is optional.member_count
UInt32?The number of members in the group. This field is optional.members
List of ()?List of group members. This field is optional.{ "error": { ".tag": "group_name_already_used" }, "error_summary": "group_name_already_used/..." }
{ "error": { ".tag": "group_name_invalid" }, "error_summary": "group_name_invalid/..." }
{ "error": { ".tag": "external_id_already_in_use" }, "error_summary": "external_id_already_in_use/..." }
{ "error": { ".tag": "system_managed_group_disallowed" }, "error_summary": "system_managed_group_disallowed/..." }
{ "error": { ".tag": "other" }, "error_summary": "other/..." }
group_name_already_used
VoidThe requested group name is already being used by another group.group_name_invalid
VoidGroup name is empty or has invalid characters.external_id_already_in_use
VoidThe requested external ID is already being used by another group.system_managed_group_disallowed
VoidSystem-managed group cannot be manually created.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.
https://api.dropboxapi.com/2/team/groups/delete
curl -X POST https://api.dropboxapi.com/2/team/groups/delete \
--header "Authorization: Bearer " \
--header "Content-Type: application/json" \
--data "{\".tag\":\"group_id\",\"group_id\":\"g:e2db7665347abcd600000000001a2b3c\"}"
{ ".tag": "group_id", "group_id": "g:e2db7665347abcd600000000001a2b3c" }
group_id
StringGroup ID.group_external_id
StringExternal ID of the group.{ ".tag": "complete" }
{ ".tag": "async_job_id", "async_job_id": "34g93hh34h04y384084" }
async_job_id
String(min_length=1)This response indicates that the processing is asynchronous. The string is an id that can be used to obtain the status of the asynchronous job.complete
VoidThe job finished synchronously and successfully.{ "error": { ".tag": "group_not_found" }, "error_summary": "group_not_found/..." }
{ "error": { ".tag": "other" }, "error_summary": "other/..." }
{ "error": { ".tag": "system_managed_group_disallowed" }, "error_summary": "system_managed_group_disallowed/..." }
{ "error": { ".tag": "group_already_deleted" }, "error_summary": "group_already_deleted/..." }
group_not_found
VoidNo matching group found. No groups match the specified group ID.system_managed_group_disallowed
VoidThis operation is not supported on system-managed groups.group_already_deleted
VoidThis group has already been deleted.Retrieves information about one or more groups. Note that the optional field GroupFullInfo.members is not returned for system-managed groups. Permission : Team Information.
https://api.dropboxapi.com/2/team/groups/get_info
curl -X POST https://api.dropboxapi.com/2/team/groups/get_info \
--header "Authorization: Bearer " \
--header "Content-Type: application/json" \
--data "{\".tag\":\"group_ids\",\"group_ids\":[\"g:e2db7665347abcd600000000001a2b3c\",\"g:111111147abcd6000000000222222c\"]}"
{ ".tag": "group_ids", "group_ids": [ "g:e2db7665347abcd600000000001a2b3c", "g:111111147abcd6000000000222222c" ] }
group_ids
List of (String)List of group IDs.group_external_ids
List of (String)List of external IDs of groups.id_not_found
StringAn ID that was provided as a parameter to groups/get_info, and did not match a corresponding group. The ID can be a group ID, or an external ID, depending on how the method was called.group_info
Info about a group.{ "error": { ".tag": "group_not_on_team" }, "error_summary": "group_not_on_team/..." }
{ "error": { ".tag": "other" }, "error_summary": "other/..." }
group_not_on_team
VoidThe group is not on your team.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.
https://api.dropboxapi.com/2/team/groups/job_status/get
curl -X POST https://api.dropboxapi.com/2/team/groups/job_status/get \
--header "Authorization: Bearer " \
--header "Content-Type: application/json" \
--data "{\"async_job_id\":\"34g93hh34h04y384084\"}"
{ "async_job_id": "34g93hh34h04y384084" }
async_job_id
String(min_length=1)Id of the asynchronous job. This is the value of a response returned from the method that launched the job.{ ".tag": "complete" }
{ ".tag": "in_progress" }
in_progress
VoidThe asynchronous job is still in progress.complete
VoidThe asynchronous job has completed successfully.{ "error": { ".tag": "invalid_async_job_id" }, "error_summary": "invalid_async_job_id/..." }
{ "error": { ".tag": "internal_error" }, "error_summary": "internal_error/..." }
{ "error": { ".tag": "other" }, "error_summary": "other/..." }
{ "error": { ".tag": "access_denied" }, "error_summary": "access_denied/..." }
invalid_async_job_id
VoidThe job ID is invalid.internal_error
VoidSomething went wrong with the job on Dropbox's end. You'll need to verify that the action you were taking succeeded, and if not, try again. This should happen very rarely.access_denied
VoidYou are not allowed to poll this job.Lists groups on a team. Permission : Team Information.
https://api.dropboxapi.com/2/team/groups/list
curl -X POST https://api.dropboxapi.com/2/team/groups/list \
--header "Authorization: Bearer " \
--header "Content-Type: application/json" \
--data "{\"limit\":100}"
{ "limit": 100 }
limit
UInt32(min=1, max=1000)Number of results to return per call. The default for this field is 1000.{ "cursor": "ZtkX9_EHj3x7PMkVuFIhwKYXEpwpLwyxp9vMKomUhllil9q7eWiAu", "groups": [ { "group_id": "g:e2db7665347abcd600000000001a2b3c", "group_management_type": { ".tag": "user_managed" }, "group_name": "Test group", "member_count": 10 } ], "has_more": false }
groups
List of ()cursor
StringPass the cursor into groups/list/continue to obtain the additional groups.has_more
BooleanIs true if there are additional groups that have not been returned yet. An additional call to groups/list/continue can retrieve them.Once a cursor has been retrieved from groups/list, use this to paginate through all groups. Permission : Team Information.
https://api.dropboxapi.com/2/team/groups/list/continue
curl -X POST https://api.dropboxapi.com/2/team/groups/list/continue \
--header "Authorization: Bearer " \
--header "Content-Type: application/json" \
--data "{\"cursor\":\"ZtkX9_EHj3x7PMkVuFIhwKYXEpwpLwyxp9vMKomUhllil9q7eWiAu\"}"
{ "cursor": "ZtkX9_EHj3x7PMkVuFIhwKYXEpwpLwyxp9vMKomUhllil9q7eWiAu" }
cursor
StringIndicates from what point to get the next set of groups.{ "cursor": "ZtkX9_EHj3x7PMkVuFIhwKYXEpwpLwyxp9vMKomUhllil9q7eWiAu", "groups": [ { "group_id": "g:e2db7665347abcd600000000001a2b3c", "group_management_type": { ".tag": "user_managed" }, "group_name": "Test group", "member_count": 10 } ], "has_more": false }
groups
List of ()cursor
StringPass the cursor into groups/list/continue to obtain the additional groups.has_more
BooleanIs true if there are additional groups that have not been returned yet. An additional call to groups/list/continue can retrieve them.{ "error": { ".tag": "invalid_cursor" }, "error_summary": "invalid_cursor/..." }
{ "error": { ".tag": "other" }, "error_summary": "other/..." }
invalid_cursor
VoidThe cursor is invalid.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.
https://api.dropboxapi.com/2/team/groups/members/add
curl -X POST https://api.dropboxapi.com/2/team/groups/members/add \
--header "Authorization: Bearer " \
--header "Content-Type: application/json" \
--data "{\"group\":{\".tag\":\"group_id\",\"group_id\":\"g:e2db7665347abcd600000000001a2b3c\"},\"members\":[{\"access_type\":\"member\",\"user\":{\".tag\":\"team_member_id\",\"team_member_id\":\"dbmid:efgh5678\"}}],\"return_members\":true}"
{ "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 }
group
Group to which users will be added.members
List of ()List of users to be added to the group.return_members
BooleanWhether 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.{ "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" } } ] } }
group_info
The group info after member change operation has been performed.async_job_id
deprecatedString(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.{ "error": { ".tag": "group_not_found" }, "error_summary": "group_not_found/..." }
{ "error": { ".tag": "other" }, "error_summary": "other/..." }
{ "error": { ".tag": "system_managed_group_disallowed" }, "error_summary": "system_managed_group_disallowed/..." }
{ "error": { ".tag": "duplicate_user" }, "error_summary": "duplicate_user/..." }
{ "error": { ".tag": "group_not_in_team" }, "error_summary": "group_not_in_team/..." }
{ "error": { ".tag": "user_must_be_active_to_be_owner" }, "error_summary": "user_must_be_active_to_be_owner/..." }
group_not_found
VoidNo matching group found. No groups match the specified group ID.system_managed_group_disallowed
VoidThis operation is not supported on system-managed groups.duplicate_user
VoidYou cannot add duplicate users. One or more of the members you are trying to add is already a member of the group.group_not_in_team
VoidGroup is not in this team. You cannot add members to a group that is outside of your team.members_not_in_team
List of (String)These members are not part of your team. Currently, you cannot add members to a group if they are not part of your team, though this may change in a subsequent version. To add new members to your Dropbox Business team, use the members/add endpoint.users_not_found
List of (String)These users were not found in Dropbox.user_must_be_active_to_be_owner
VoidA 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.Lists members of a group. Permission : Team Information.
https://api.dropboxapi.com/2/team/groups/members/list
curl -X POST https://api.dropboxapi.com/2/team/groups/members/list \
--header "Authorization: Bearer " \
--header "Content-Type: application/json" \
--data "{\"group\":{\".tag\":\"group_id\",\"group_id\":\"g:e2db7665347abcd600000000001a2b3c\"},\"limit\":100}"
{ "group": { ".tag": "group_id", "group_id": "g:e2db7665347abcd600000000001a2b3c" }, "limit": 100 }
group
The group whose members are to be listed.limit
UInt32(min=1, max=1000)Number of results to return per call. The default for this field is 1000.{ "cursor": "ZtkX9_EHj3x7PMkVuFIhwKYXEpwpLwyxp9vMKomUhllil9q7eWiAu", "has_more": false, "members": [] }
members
List of ()cursor
StringPass the cursor into groups/members/list/continue to obtain additional group members.has_more
BooleanIs true if there are additional group members that have not been returned yet. An additional call to groups/members/list/continue can retrieve them.{ "error": { ".tag": "group_not_found" }, "error_summary": "group_not_found/..." }
{ "error": { ".tag": "other" }, "error_summary": "other/..." }
group_not_found
VoidNo matching group found. No groups match the specified group ID.Once a cursor has been retrieved from groups/members/list, use this to paginate through all members of the group. Permission : Team information.
https://api.dropboxapi.com/2/team/groups/members/list/continue
curl -X POST https://api.dropboxapi.com/2/team/groups/members/list/continue \
--header "Authorization: Bearer " \
--header "Content-Type: application/json" \
--data "{\"cursor\":\"ZtkX9_EHj3x7PMkVuFIhwKYXEpwpLwyxp9vMKomUhllil9q7eWiAu\"}"
{ "cursor": "ZtkX9_EHj3x7PMkVuFIhwKYXEpwpLwyxp9vMKomUhllil9q7eWiAu" }
cursor
StringIndicates from what point to get the next set of groups.{ "cursor": "ZtkX9_EHj3x7PMkVuFIhwKYXEpwpLwyxp9vMKomUhllil9q7eWiAu", "has_more": false, "members": [] }
members
List of ()cursor
StringPass the cursor into groups/members/list/continue to obtain additional group members.has_more
BooleanIs true if there are additional group members that have not been returned yet. An additional call to groups/members/list/continue can retrieve them.{ "error": { ".tag": "invalid_cursor" }, "error_summary": "invalid_cursor/..." }
{ "error": { ".tag": "other" }, "error_summary": "other/..." }
invalid_cursor
VoidThe cursor is invalid.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.
https://api.dropboxapi.com/2/team/groups/members/remove
curl -X POST https://api.dropboxapi.com/2/team/groups/members/remove \
--header "Authorization: Bearer " \
--header "Content-Type: application/json" \
--data "{\"group\":{\".tag\":\"group_id\",\"group_id\":\"g:e2db7665347abcd600000000001a2b3c\"},\"return_members\":true,\"users\":[{\".tag\":\"team_member_id\",\"team_member_id\":\"dbmid:efgh5678\"}]}"
{ "group": { ".tag": "group_id", "group_id": "g:e2db7665347abcd600000000001a2b3c" }, "return_members": true, "users": [ { ".tag": "team_member_id", "team_member_id": "dbmid:efgh5678" } ] }
group
Group from which users will be removed.users
List of ()List of users to be removed from the group.return_members
BooleanWhether 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.{ "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" } } ] } }
group_info
The group info after member change operation has been performed.async_job_id
deprecatedString(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.{ "error": { ".tag": "group_not_found" }, "error_summary": "group_not_found/..." }
{ "error": { ".tag": "other" }, "error_summary": "other/..." }
{ "error": { ".tag": "system_managed_group_disallowed" }, "error_summary": "system_managed_group_disallowed/..." }
{ "error": { ".tag": "member_not_in_group" }, "error_summary": "member_not_in_group/..." }
{ "error": { ".tag": "group_not_in_team" }, "error_summary": "group_not_in_team/..." }
group_not_found
VoidNo matching group found. No groups match the specified group ID.system_managed_group_disallowed
VoidThis operation is not supported on system-managed groups.member_not_in_group
VoidAt least one of the specified users is not a member of the group.group_not_in_team
VoidGroup 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.Sets a member's access type in a group. Permission : Team member management.
https://api.dropboxapi.com/2/team/groups/members/set_access_type
curl -X POST https://api.dropboxapi.com/2/team/groups/members/set_access_type \
--header "Authorization: Bearer " \
--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\"}}"
{ "access_type": "member", "group": { ".tag": "group_id", "group_id": "g:e2db7665347abcd600000000001a2b3c" }, "return_members": true, "user": { ".tag": "team_member_id", "team_member_id": "dbmid:efgh5678" } }
group
Specify a group.user
Identity of a user that is a member of group.access_type
New group access type the user will have.return_members
BooleanWhether 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.id_not_found
StringAn ID that was provided as a parameter to groups/get_info, and did not match a corresponding group. The ID can be a group ID, or an external ID, depending on how the method was called.group_info
Info about a group.{ "error": { ".tag": "group_not_found" }, "error_summary": "group_not_found/..." }
{ "error": { ".tag": "other" }, "error_summary": "other/..." }
{ "error": { ".tag": "system_managed_group_disallowed" }, "error_summary": "system_managed_group_disallowed/..." }
{ "error": { ".tag": "member_not_in_group" }, "error_summary": "member_not_in_group/..." }
{ "error": { ".tag": "user_cannot_be_manager_of_company_managed_group" }, "error_summary": "user_cannot_be_manager_of_company_managed_group/..." }
group_not_found
VoidNo matching group found. No groups match the specified group ID.system_managed_group_disallowed
VoidThis operation is not supported on system-managed groups.member_not_in_group
VoidThe specified user is not a member of this group.user_cannot_be_manager_of_company_managed_group
VoidA company managed group cannot be managed by a user.Updates a group's name and/or external ID. Permission : Team member management.
https://api.dropboxapi.com/2/team/groups/update
curl -X POST https://api.dropboxapi.com/2/team/groups/update \
--header "Authorization: Bearer " \
--header "Content-Type: application/json" \
--data "{\"group\":{\".tag\":\"group_id\",\"group_id\":\"g:e2db7665347abcd600000000001a2b3c\"},\"new_group_external_id\":\"sales-234\",\"new_group_management_type\":\"company_managed\",\"new_group_name\":\"Europe west sales\",\"return_members\":true}"
{ "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 }
group
Specify a group.return_members
BooleanWhether 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.{ "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" } } ] }
group_name
Stringgroup_id
Stringgroup_management_type
Who is allowed to manage the group.created
UInt64The group creation time as a UTC timestamp in milliseconds since the Unix epoch.group_external_id
String?External ID of group. This is an arbitrary ID that an admin can attach to a group. This field is optional.member_count
UInt32?The number of members in the group. This field is optional.members
List of ()?List of group members. This field is optional.{ "error": { ".tag": "group_not_found" }, "error_summary": "group_not_found/..." }
{ "error": { ".tag": "other" }, "error_summary": "other/..." }
{ "error": { ".tag": "system_managed_group_disallowed" }, "error_summary": "system_managed_group_disallowed/..." }
{ "error": { ".tag": "group_name_already_used" }, "error_summary": "group_name_already_used/..." }
{ "error": { ".tag": "group_name_invalid" }, "error_summary": "group_name_invalid/..." }
{ "error": { ".tag": "external_id_already_in_use" }, "error_summary": "external_id_already_in_use/..." }
group_not_found
VoidNo matching group found. No groups match the specified group ID.system_managed_group_disallowed
VoidThis operation is not supported on system-managed groups.group_name_already_used
VoidThe requested group name is already being used by another group.group_name_invalid
VoidGroup name is empty or has invalid characters.external_id_already_in_use
VoidThe requested external ID is already being used by another group.Creates new legal hold policy. Note: Legal Holds is a paid add-on. Not all teams have the feature. Permission : Team member file access.
https://api.dropboxapi.com/2/team/legal_holds/create_policy
curl -X POST https://api.dropboxapi.com/2/team/legal_holds/create_policy \
--header "Authorization: Bearer " \
--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\"}"
{ "end_date": "2017-12-31T00:00:00Z", "members": [ "dbmid:FDFSVF-DFSDF" ], "name": "acme cfo policy", "start_date": "2016-01-01T00:00:00Z" }
name
String(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.{ "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" } }
id
String(pattern="^pid_dbhid:.+")The legal hold id.name
String(max_length=140)Policy name.members
Team members IDs and number of permanently deleted members under hold.status
The current state of the hold.start_date
Timestamp(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.{ "error": { ".tag": "unknown_legal_hold_error" }, "error_summary": "unknown_legal_hold_error/..." }
{ "error": { ".tag": "insufficient_permissions" }, "error_summary": "insufficient_permissions/..." }
{ "error": { ".tag": "other" }, "error_summary": "other/..." }
{ "error": { ".tag": "start_date_is_later_than_end_date" }, "error_summary": "start_date_is_later_than_end_date/..." }
{ "error": { ".tag": "empty_members_list" }, "error_summary": "empty_members_list/..." }
{ "error": { ".tag": "invalid_members" }, "error_summary": "invalid_members/..." }
{ "error": { ".tag": "number_of_users_on_hold_is_greater_than_hold_limitation" }, "error_summary": "number_of_users_on_hold_is_greater_than_hold_limitation/..." }
{ "error": { ".tag": "transient_error" }, "error_summary": "transient_error/..." }
{ "error": { ".tag": "name_must_be_unique" }, "error_summary": "name_must_be_unique/..." }
{ "error": { ".tag": "team_exceeded_legal_hold_quota" }, "error_summary": "team_exceeded_legal_hold_quota/..." }
{ "error": { ".tag": "invalid_date" }, "error_summary": "invalid_date/..." }
unknown_legal_hold_error
VoidThere has been an unknown legal hold error.insufficient_permissions
VoidYou don't have permissions to perform this action.start_date_is_later_than_end_date
VoidStart date must be earlier than end date.empty_members_list
VoidThe users list must have at least one user.invalid_members
VoidSome members in the members list are not valid to be placed under legal hold.number_of_users_on_hold_is_greater_than_hold_limitation
VoidYou cannot add more than 5 users in a legal hold.transient_error
VoidTemporary infrastructure failure, please retry.name_must_be_unique
VoidThe name provided is already in use by another legal hold.team_exceeded_legal_hold_quota
VoidTeam exceeded legal hold quota.invalid_date
VoidThe provided date is invalid.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.
https://api.dropboxapi.com/2/team/legal_holds/get_policy
curl -X POST https://api.dropboxapi.com/2/team/legal_holds/get_policy \
--header "Authorization: Bearer " \
--header "Content-Type: application/json" \
--data "{\"id\":\"pid_dbhid:abcd1234\"}"
{ "id": "pid_dbhid:abcd1234" }
id
String(pattern="^pid_dbhid:.+")The legal hold Id.{ "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" } }
id
String(pattern="^pid_dbhid:.+")The legal hold id.name
String(max_length=140)Policy name.members
Team members IDs and number of permanently deleted members under hold.status
The current state of the hold.start_date
Timestamp(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.{ "error": { ".tag": "unknown_legal_hold_error" }, "error_summary": "unknown_legal_hold_error/..." }
{ "error": { ".tag": "insufficient_permissions" }, "error_summary": "insufficient_permissions/..." }
{ "error": { ".tag": "other" }, "error_summary": "other/..." }
{ "error": { ".tag": "legal_hold_policy_not_found" }, "error_summary": "legal_hold_policy_not_found/..." }
unknown_legal_hold_error
VoidThere has been an unknown legal hold error.insufficient_permissions
VoidYou don't have permissions to perform this action.legal_hold_policy_not_found
VoidLegal hold policy does not exist for LegalHoldsGetPolicyArg.id.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.
https://api.dropboxapi.com/2/team/legal_holds/list_held_revisions
curl -X POST https://api.dropboxapi.com/2/team/legal_holds/list_held_revisions \
--header "Authorization: Bearer " \
--header "Content-Type: application/json" \
--data "{\"id\":\"pid_dbhid:abcd1234\"}"
{ "id": "pid_dbhid:abcd1234" }
id
String(pattern="^pid_dbhid:.+")The legal hold Id.{ "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 }
entries
List of ()List of file entries that under the hold.has_more
BooleanTrue 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.{ "error": { ".tag": "unknown_legal_hold_error" }, "error_summary": "unknown_legal_hold_error/..." }
{ "error": { ".tag": "insufficient_permissions" }, "error_summary": "insufficient_permissions/..." }
{ "error": { ".tag": "other" }, "error_summary": "other/..." }
{ "error": { ".tag": "transient_error" }, "error_summary": "transient_error/..." }
{ "error": { ".tag": "legal_hold_still_empty" }, "error_summary": "legal_hold_still_empty/..." }
{ "error": { ".tag": "inactive_legal_hold" }, "error_summary": "inactive_legal_hold/..." }
unknown_legal_hold_error
VoidThere has been an unknown legal hold error.insufficient_permissions
VoidYou don't have permissions to perform this action.transient_error
VoidTemporary infrastructure failure, please retry.legal_hold_still_empty
VoidThe legal hold is not holding any revisions yet.inactive_legal_hold
VoidTrying to list revisions for an inactive legal hold.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.
https://api.dropboxapi.com/2/team/legal_holds/list_held_revisions_continue
curl -X POST https://api.dropboxapi.com/2/team/legal_holds/list_held_revisions_continue \
--header "Authorization: Bearer " \
--header "Content-Type: application/json" \
--data "{\"id\":\"pid_dbhid:abcd1234\"}"
{ "id": "pid_dbhid:abcd1234" }
id
String(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.{ "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 }
entries
List of ()List of file entries that under the hold.has_more
BooleanTrue 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.{ "error": { ".tag": "unknown_legal_hold_error" }, "error_summary": "unknown_legal_hold_error/..." }
{ "error": { ".tag": "insufficient_permissions" }, "error_summary": "insufficient_permissions/..." }
{ "error": { ".tag": "other" }, "error_summary": "other/..." }
{ "error": { ".tag": "transient_error" }, "error_summary": "transient_error/..." }
{ "error": { ".tag": "legal_hold_still_empty" }, "error_summary": "legal_hold_still_empty/..." }
{ "error": { ".tag": "inactive_legal_hold" }, "error_summary": "inactive_legal_hold/..." }
unknown_legal_hold_error
VoidThere has been an unknown legal hold error.insufficient_permissions
VoidYou don't have permissions to perform this action.transient_error
VoidTemporary infrastructure failure, please retry.legal_hold_still_empty
VoidThe legal hold is not holding any revisions yet.inactive_legal_hold
VoidTrying to list revisions for an inactive legal hold.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.
https://api.dropboxapi.com/2/team/legal_holds/list_policies
curl -X POST https://api.dropboxapi.com/2/team/legal_holds/list_policies \
--header "Authorization: Bearer " \
--header "Content-Type: application/json" \
--data "{\"include_released\":false}"
{ "include_released": false }
include_released
BooleanWhether to return holds that were released. The default for this field is False.{ "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" } } ] }
policies
List of (){ "error": { ".tag": "unknown_legal_hold_error" }, "error_summary": "unknown_legal_hold_error/..." }
{ "error": { ".tag": "insufficient_permissions" }, "error_summary": "insufficient_permissions/..." }
{ "error": { ".tag": "other" }, "error_summary": "other/..." }
{ "error": { ".tag": "transient_error" }, "error_summary": "transient_error/..." }
unknown_legal_hold_error
VoidThere has been an unknown legal hold error.insufficient_permissions
VoidYou don't have permissions to perform this action.transient_error
VoidTemporary infrastructure failure, please retry.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.
https://api.dropboxapi.com/2/team/legal_holds/release_policy
curl -X POST https://api.dropboxapi.com/2/team/legal_holds/release_policy \
--header "Authorization: Bearer " \
--header "Content-Type: application/json" \
--data "{\"id\":\"pid_dbhid:abcd1234\"}"
{ "id": "pid_dbhid:abcd1234" }
id
String(pattern="^pid_dbhid:.+")The legal hold Id.{ "error": { ".tag": "unknown_legal_hold_error" }, "error_summary": "unknown_legal_hold_error/..." }
{ "error": { ".tag": "insufficient_permissions" }, "error_summary": "insufficient_permissions/..." }
{ "error": { ".tag": "other" }, "error_summary": "other/..." }
{ "error": { ".tag": "legal_hold_performing_another_operation" }, "error_summary": "legal_hold_performing_another_operation/..." }
{ "error": { ".tag": "legal_hold_already_releasing" }, "error_summary": "legal_hold_already_releasing/..." }
{ "error": { ".tag": "legal_hold_policy_not_found" }, "error_summary": "legal_hold_policy_not_found/..." }
unknown_legal_hold_error
VoidThere has been an unknown legal hold error.insufficient_permissions
VoidYou don't have permissions to perform this action.legal_hold_performing_another_operation
VoidLegal hold is currently performing another operation.legal_hold_already_releasing
VoidLegal hold is currently performing a release or is already released.legal_hold_policy_not_found
VoidLegal hold policy does not exist for LegalHoldsPolicyReleaseArg.id.Updates a legal hold. Note: Legal Holds is a paid add-on. Not all teams have the feature. Permission : Team member file access.
https://api.dropboxapi.com/2/team/legal_holds/update_policy
curl -X POST https://api.dropboxapi.com/2/team/legal_holds/update_policy \
--header "Authorization: Bearer " \
--header "Content-Type: application/json" \
--data "{\"id\":\"pid_dbhid:abcd1234\",\"members\":[\"dbmid:FDFSVF-DFSDF\"]}"
{ "id": "pid_dbhid:abcd1234", "members": [ "dbmid:FDFSVF-DFSDF" ] }
id
String(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.{ "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" } }
id
String(pattern="^pid_dbhid:.+")The legal hold id.name
String(max_length=140)Policy name.members
Team members IDs and number of permanently deleted members under hold.status
The current state of the hold.start_date
Timestamp(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.{ "error": { ".tag": "unknown_legal_hold_error" }, "error_summary": "unknown_legal_hold_error/..." }
{ "error": { ".tag": "insufficient_permissions" }, "error_summary": "insufficient_permissions/..." }
{ "error": { ".tag": "other" }, "error_summary": "other/..." }
{ "error": { ".tag": "transient_error" }, "error_summary": "transient_error/..." }
{ "error": { ".tag": "inactive_legal_hold" }, "error_summary": "inactive_legal_hold/..." }
{ "error": { ".tag": "legal_hold_performing_another_operation" }, "error_summary": "legal_hold_performing_another_operation/..." }
{ "error": { ".tag": "invalid_members" }, "error_summary": "invalid_members/..." }
{ "error": { ".tag": "number_of_users_on_hold_is_greater_than_hold_limitation" }, "error_summary": "number_of_users_on_hold_is_greater_than_hold_limitation/..." }
{ "error": { ".tag": "empty_members_list" }, "error_summary": "empty_members_list/..." }
{ "error": { ".tag": "name_must_be_unique" }, "error_summary": "name_must_be_unique/..." }
{ "error": { ".tag": "legal_hold_policy_not_found" }, "error_summary": "legal_hold_policy_not_found/..." }
unknown_legal_hold_error
VoidThere has been an unknown legal hold error.insufficient_permissions
VoidYou don't have permissions to perform this action.transient_error
VoidTemporary infrastructure failure, please retry.inactive_legal_hold
VoidTrying to release an inactive legal hold.legal_hold_performing_another_operation
VoidLegal hold is currently performing another operation.invalid_members
VoidSome members in the members list are not valid to be placed under legal hold.number_of_users_on_hold_is_greater_than_hold_limitation
VoidYou cannot add more than 5 users in a legal hold.empty_members_list
VoidThe users list must have at least one user.name_must_be_unique
VoidThe name provided is already in use by another legal hold.legal_hold_policy_not_found
VoidLegal hold policy does not exist for LegalHoldsPolicyUpdateArg.id.List all linked applications of the team member. Note, this endpoint does not list any team-linked applications.
https://api.dropboxapi.com/2/team/linked_apps/list_member_linked_apps
curl -X POST https://api.dropboxapi.com/2/team/linked_apps/list_member_linked_apps \
--header "Authorization: Bearer " \
--header "Content-Type: application/json" \
--data "{\"team_member_id\":\"dbmid:AAFdgehTzw7WlXhZJsbGCLePe8RvQGYDr-I\"}"
{ "team_member_id": "dbmid:AAFdgehTzw7WlXhZJsbGCLePe8RvQGYDr-I" }
team_member_id
StringThe team member id.{ "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" } ] }
linked_api_apps
List of ()List of third party applications linked by this team member.{ "error": { ".tag": "member_not_found" }, "error_summary": "member_not_found/..." }
{ "error": { ".tag": "other" }, "error_summary": "other/..." }
member_not_found
VoidMember not found.List all applications linked to the team members' accounts. Note, this endpoint does not list any team-linked applications.
https://api.dropboxapi.com/2/team/linked_apps/list_members_linked_apps
curl -X POST https://api.dropboxapi.com/2/team/linked_apps/list_members_linked_apps \
--header "Authorization: Bearer " \
--header "Content-Type: application/json" \
--data "{\"cursor\":\"AADAQO8ZWKvBkSMXb1J9dAYVvwZ0wcvfyzIBo2e1H-_N-67pfrYKTb4oN_3LG9_ilWjblZXuiR8ubjjiQQkHq-MvDjbe_6bkcJgjnTpowrRaQA\"}"
{ "cursor": "AADAQO8ZWKvBkSMXb1J9dAYVvwZ0wcvfyzIBo2e1H-_N-67pfrYKTb4oN_3LG9_ilWjblZXuiR8ubjjiQQkHq-MvDjbe_6bkcJgjnTpowrRaQA" }
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.{ "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 }
apps
List of ()The linked applications of each member of the team.has_more
BooleanIf 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.{ "error": { ".tag": "reset" }, "error_summary": "reset/..." }
{ "error": { ".tag": "other" }, "error_summary": "other/..." }
reset
VoidIndicates that the cursor has been invalidated. Call linked_apps/list_members_linked_apps again with an empty cursor to obtain a new cursor.Revoke a linked application of the team member.
https://api.dropboxapi.com/2/team/linked_apps/revoke_linked_app
curl -X POST https://api.dropboxapi.com/2/team/linked_apps/revoke_linked_app \
--header "Authorization: Bearer " \
--header "Content-Type: application/json" \
--data "{\"app_id\":\"dbaid:AAFdgehTzw7WlXhZJsbGCLePe8RvQGYDr-I\",\"keep_app_folder\":true,\"team_member_id\":\"dbmid:AAFdgehTzw7WlXhZJsbGCLePe8RvQGYDr-I\"}"
{ "app_id": "dbaid:AAFdgehTzw7WlXhZJsbGCLePe8RvQGYDr-I", "keep_app_folder": true, "team_member_id": "dbmid:AAFdgehTzw7WlXhZJsbGCLePe8RvQGYDr-I" }
app_id
StringThe application's unique id.team_member_id
StringThe unique id of the member owning the device.keep_app_folder
deprecatedBooleanField 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.{ "error": { ".tag": "app_not_found" }, "error_summary": "app_not_found/..." }
{ "error": { ".tag": "member_not_found" }, "error_summary": "member_not_found/..." }
{ "error": { ".tag": "app_folder_removal_not_supported" }, "error_summary": "app_folder_removal_not_supported/..." }
{ "error": { ".tag": "other" }, "error_summary": "other/..." }
app_not_found
VoidApplication not found.member_not_found
VoidMember not found.app_folder_removal_not_supported
VoidApp folder removal is not supported.Revoke a list of linked applications of the team members.
https://api.dropboxapi.com/2/team/linked_apps/revoke_linked_app_batch
curl -X POST https://api.dropboxapi.com/2/team/linked_apps/revoke_linked_app_batch \
--header "Authorization: Bearer " \
--header "Content-Type: application/json" \
--data "{\"revoke_linked_app\":[{\"app_id\":\"dbaid:AAFdgehTzw7WlXhZJsbGCLePe8RvQGYDr-I\",\"keep_app_folder\":true,\"team_member_id\":\"dbmid:AAFdgehTzw7WlXhZJsbGCLePe8RvQGYDr-I\"}]}"
{ "revoke_linked_app": [ { "app_id": "dbaid:AAFdgehTzw7WlXhZJsbGCLePe8RvQGYDr-I", "keep_app_folder": true, "team_member_id": "dbmid:AAFdgehTzw7WlXhZJsbGCLePe8RvQGYDr-I" } ] }
revoke_linked_app
List of (){ "revoke_linked_app_status": [ { "error_type": { ".tag": "app_not_found" }, "success": false } ] }
revoke_linked_app_status
List of ()Add users to member space limits excluded users list.
https://api.dropboxapi.com/2/team/member_space_limits/excluded_users/add
curl -X POST https://api.dropboxapi.com/2/team/member_space_limits/excluded_users/add \
--header "Authorization: Bearer " \
--header "Content-Type: application/json" \
--data "{\"users\":[{\".tag\":\"team_member_id\",\"team_member_id\":\"dbmid:efgh5678\"}]}"
{ "users": [ { ".tag": "team_member_id", "team_member_id": "dbmid:efgh5678" } ] }
users
List of ()?List of users to be added/removed. This field is optional.{ "status": { ".tag": "success" } }
status
Update status.{ "error": { ".tag": "users_not_in_team" }, "error_summary": "users_not_in_team/..." }
{ "error": { ".tag": "too_many_users" }, "error_summary": "too_many_users/..." }
{ "error": { ".tag": "other" }, "error_summary": "other/..." }
users_not_in_team
VoidAt least one of the users is not part of your team.too_many_users
VoidA maximum of 1000 users for each of addition/removal can be supplied.List member space limits excluded users.
https://api.dropboxapi.com/2/team/member_space_limits/excluded_users/list
curl -X POST https://api.dropboxapi.com/2/team/member_space_limits/excluded_users/list \
--header "Authorization: Bearer " \
--header "Content-Type: application/json" \
--data "{\"limit\":100}"
{ "limit": 100 }
limit
UInt32(min=1, max=1000)Number of results to return per call. The default for this field is 1000.{ "cursor": "ZtkX9_EHj3x7PMkVuFIhwKYXEpwpLwyxp9vMKomUhllil9q7eWiAu", "has_more": false, "users": [] }
users
List of ()has_more
BooleanIs 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.{ "error": { ".tag": "list_error" }, "error_summary": "list_error/..." }
{ "error": { ".tag": "other" }, "error_summary": "other/..." }
list_error
VoidAn error occurred.Continue listing member space limits excluded users.
https://api.dropboxapi.com/2/team/member_space_limits/excluded_users/list/continue
curl -X POST https://api.dropboxapi.com/2/team/member_space_limits/excluded_users/list/continue \
--header "Authorization: Bearer " \
--header "Content-Type: application/json" \
--data "{\"cursor\":\"ZtkX9_EHj3x7PMkVuFIhwKYXEpwpLwyxp9vMKomUhllil9q7eWiAu\"}"
{ "cursor": "ZtkX9_EHj3x7PMkVuFIhwKYXEpwpLwyxp9vMKomUhllil9q7eWiAu" }
cursor
StringIndicates from what point to get the next set of users.{ "cursor": "ZtkX9_EHj3x7PMkVuFIhwKYXEpwpLwyxp9vMKomUhllil9q7eWiAu", "has_more": false, "users": [] }
users
List of ()has_more
BooleanIs 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.{ "error": { ".tag": "invalid_cursor" }, "error_summary": "invalid_cursor/..." }
{ "error": { ".tag": "other" }, "error_summary": "other/..." }
invalid_cursor
VoidThe cursor is invalid.Remove users from member space limits excluded users list.
https://api.dropboxapi.com/2/team/member_space_limits/excluded_users/remove
curl -X POST https://api.dropboxapi.com/2/team/member_space_limits/excluded_users/remove \
--header "Authorization: Bearer " \
--header "Content-Type: application/json" \
--data "{\"users\":[{\".tag\":\"team_member_id\",\"team_member_id\":\"dbmid:efgh5678\"}]}"
{ "users": [ { ".tag": "team_member_id", "team_member_id": "dbmid:efgh5678" } ] }
users
List of ()?List of users to be added/removed. This field is optional.{ "status": { ".tag": "success" } }
status
Update status.{ "error": { ".tag": "users_not_in_team" }, "error_summary": "users_not_in_team/..." }
{ "error": { ".tag": "too_many_users" }, "error_summary": "too_many_users/..." }
{ "error": { ".tag": "other" }, "error_summary": "other/..." }
users_not_in_team
VoidAt least one of the users is not part of your team.too_many_users
VoidA maximum of 1000 users for each of addition/removal can be supplied.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).
https://api.dropboxapi.com/2/team/member_space_limits/get_custom_quota
curl -X POST https://api.dropboxapi.com/2/team/member_space_limits/get_custom_quota \
--header "Authorization: Bearer " \
--header "Content-Type: application/json" \
--data "{\"users\":[{\".tag\":\"team_member_id\",\"team_member_id\":\"dbmid:efgh5678\"}]}"
{ "users": [ { ".tag": "team_member_id", "team_member_id": "dbmid:efgh5678" } ] }
users
List of ()List of users.success
User's custom quota.invalid_user
Invalid user (not in team).{ "error": { ".tag": "too_many_users" }, "error_summary": "too_many_users/..." }
{ "error": { ".tag": "other" }, "error_summary": "other/..." }
too_many_users
VoidA maximum of 1000 users can be set for a single call.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).
https://api.dropboxapi.com/2/team/member_space_limits/remove_custom_quota
curl -X POST https://api.dropboxapi.com/2/team/member_space_limits/remove_custom_quota \
--header "Authorization: Bearer " \
--header "Content-Type: application/json" \
--data "{\"users\":[{\".tag\":\"team_member_id\",\"team_member_id\":\"dbmid:efgh5678\"}]}"
{ "users": [ { ".tag": "team_member_id", "team_member_id": "dbmid:efgh5678" } ] }
users
List of ()List of users.success
Successfully removed user.invalid_user
Invalid user (not in team).{ "error": { ".tag": "too_many_users" }, "error_summary": "too_many_users/..." }
{ "error": { ".tag": "other" }, "error_summary": "other/..." }
too_many_users
VoidA maximum of 1000 users can be set for a single call.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).
https://api.dropboxapi.com/2/team/member_space_limits/set_custom_quota
curl -X POST https://api.dropboxapi.com/2/team/member_space_limits/set_custom_quota \
--header "Authorization: Bearer " \
--header "Content-Type: application/json" \
--data "{\"users_and_quotas\":[{\"quota_gb\":30,\"user\":{\".tag\":\"team_member_id\",\"team_member_id\":\"dbmid:efgh5678\"}}]}"
{ "users_and_quotas": [ { "quota_gb": 30, "user": { ".tag": "team_member_id", "team_member_id": "dbmid:efgh5678" } } ] }
users_and_quotas
List of ()List of users and their custom quotas.success
User's custom quota.invalid_user
Invalid user (not in team).{ "error": { ".tag": "too_many_users" }, "error_summary": "too_many_users/..." }
{ "error": { ".tag": "other" }, "error_summary": "other/..." }
{ "error": { ".tag": "some_users_are_excluded" }, "error_summary": "some_users_are_excluded/..." }
too_many_users
VoidA maximum of 1000 users can be set for a single call.some_users_are_excluded
VoidSome of the users are on the excluded users list and can't have custom quota set.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.
https://api.dropboxapi.com/2/team/members/add_v2
curl -X POST https://api.dropboxapi.com/2/team/members/add_v2 \
--header "Authorization: Bearer " \
--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}]}"
{ "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 } ] }
new_members
List of ()Details of new members to be added to the team.force_async
BooleanWhether to force the add to happen asynchronously. The default for this field is False.{ ".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" } ] } ] }
{ ".tag": "other" }
async_job_id
String(min_length=1)This response indicates that the processing is asynchronous. The string is an id that can be used to obtain the status of the asynchronous job.complete
List of ()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.
https://api.dropboxapi.com/2/team/members/add/job_status/get_v2
curl -X POST https://api.dropboxapi.com/2/team/members/add/job_status/get_v2 \
--header "Authorization: Bearer " \
--header "Content-Type: application/json" \
--data "{\"async_job_id\":\"34g93hh34h04y384084\"}"
{ "async_job_id": "34g93hh34h04y384084" }
async_job_id
String(min_length=1)Id of the asynchronous job. This is the value of a response returned from the method that launched the job.{ ".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" } ] } ] }
{ ".tag": "in_progress" }
{ ".tag": "other" }
in_progress
VoidThe asynchronous job is still in progress.complete
List 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.failed
StringThe asynchronous job returned an error. The string contains an error message.{ "error": { ".tag": "invalid_async_job_id" }, "error_summary": "invalid_async_job_id/..." }
{ "error": { ".tag": "internal_error" }, "error_summary": "internal_error/..." }
{ "error": { ".tag": "other" }, "error_summary": "other/..." }
invalid_async_job_id
VoidThe job ID is invalid.internal_error
VoidSomething 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.Deletes a team member's profile photo. Permission : Team member management.
https://api.dropboxapi.com/2/team/members/delete_profile_photo_v2
curl -X POST https://api.dropboxapi.com/2/team/members/delete_profile_photo_v2 \
--header "Authorization: Bearer " \
--header "Content-Type: application/json" \
--data "{\"user\":{\".tag\":\"team_member_id\",\"team_member_id\":\"dbmid:efgh5678\"}}"
{ "user": { ".tag": "team_member_id", "team_member_id": "dbmid:efgh5678" } }
user
Identity of the user whose profile photo will be deleted.{ "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" } ] } }
member_info
Member info, after the change.{ "error": { ".tag": "user_not_found" }, "error_summary": "user_not_found/..." }
{ "error": { ".tag": "user_not_in_team" }, "error_summary": "user_not_in_team/..." }
{ "error": { ".tag": "set_profile_disallowed" }, "error_summary": "set_profile_disallowed/..." }
{ "error": { ".tag": "other" }, "error_summary": "other/..." }
user_not_found
VoidNo matching user found. The provided team_member_id, email, or external_id does not exist on this team.user_not_in_team
VoidThe user is not a member of the team.set_profile_disallowed
VoidModifying deleted users is not allowed.Get available TeamMemberRoles for the connected team. To be used with members/set_admin_permissions:2. Permission : Team member management.
https://api.dropboxapi.com/2/team/members/get_available_team_member_roles
curl -X POST https://api.dropboxapi.com/2/team/members/get_available_team_member_roles \
--header "Authorization: Bearer "
{ "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" } ] }
roles
List of ()Available roles.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.
https://api.dropboxapi.com/2/team/members/get_info_v2
curl -X POST https://api.dropboxapi.com/2/team/members/get_info_v2 \
--header "Authorization: Bearer " \
--header "Content-Type: application/json" \
--data "{\"members\":[{\".tag\":\"team_member_id\",\"team_member_id\":\"dbmid:efgh5678\"}]}"
{ "members": [ { ".tag": "team_member_id", "team_member_id": "dbmid:efgh5678" } ] }
members
List of ()List of team members.{ "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" } ] } ] }
members_info
List of ()List of team members info.Lists members of a team. Permission : Team information.
https://api.dropboxapi.com/2/team/members/list_v2
curl -X POST https://api.dropboxapi.com/2/team/members/list_v2 \
--header "Authorization: Bearer " \
--header "Content-Type: application/json" \
--data "{\"include_removed\":false,\"limit\":100}"
{ "include_removed": false, "limit": 100 }
limit
UInt32(min=1, max=1000)Number of results to return per call. The default for this field is 1000.include_removed
BooleanWhether to return removed members. The default for this field is False.{ "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" } ] } ] }
members
List of ()List of team members.cursor
StringPass the cursor into members/list/continue:2 to obtain the additional members.has_more
BooleanIs true if there are additional team members that have not been returned yet. An additional call to members/list/continue:2 can retrieve them.Once a cursor has been retrieved from members/list:2, use this to paginate through all team members. Permission : Team information.
https://api.dropboxapi.com/2/team/members/list/continue_v2
curl -X POST https://api.dropboxapi.com/2/team/members/list/continue_v2 \
--header "Authorization: Bearer " \
--header "Content-Type: application/json" \
--data "{\"cursor\":\"ZtkX9_EHj3x7PMkVuFIhwKYXEpwpLwyxp9vMKomUhllil9q7eWiAu\"}"
{ "cursor": "ZtkX9_EHj3x7PMkVuFIhwKYXEpwpLwyxp9vMKomUhllil9q7eWiAu" }
cursor
StringIndicates from what point to get the next set of members.{ "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" } ] } ] }
members
List of ()List of team members.cursor
StringPass the cursor into members/list/continue:2 to obtain the additional members.has_more
BooleanIs true if there are additional team members that have not been returned yet. An additional call to members/list/continue:2 can retrieve them.{ "error": { ".tag": "invalid_cursor" }, "error_summary": "invalid_cursor/..." }
{ "error": { ".tag": "other" }, "error_summary": "other/..." }
invalid_cursor
VoidThe cursor is invalid.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.
https://api.dropboxapi.com/2/team/members/move_former_member_files
curl -X POST https://api.dropboxapi.com/2/team/members/move_former_member_files \
--header "Authorization: Bearer " \
--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\"}}"
{ "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" } }
user
Identity of user to remove/suspend/have their files moved.transfer_dest_id
Files from the deleted member account will be transferred to this user.transfer_admin_id
Errors during the transfer process will be sent via email to this user.{ ".tag": "complete" }
{ ".tag": "async_job_id", "async_job_id": "34g93hh34h04y384084" }
async_job_id
String(min_length=1)This response indicates that the processing is asynchronous. The string is an id that can be used to obtain the status of the asynchronous job.complete
VoidThe job finished synchronously and successfully.{ "error": { ".tag": "user_not_found" }, "error_summary": "user_not_found/..." }
{ "error": { ".tag": "user_not_in_team" }, "error_summary": "user_not_in_team/..." }
{ "error": { ".tag": "other" }, "error_summary": "other/..." }
{ "error": { ".tag": "removed_and_transfer_dest_should_differ" }, "error_summary": "removed_and_transfer_dest_should_differ/..." }
{ "error": { ".tag": "removed_and_transfer_admin_should_differ" }, "error_summary": "removed_and_transfer_admin_should_differ/..." }
{ "error": { ".tag": "transfer_dest_user_not_found" }, "error_summary": "transfer_dest_user_not_found/..." }
{ "error": { ".tag": "transfer_dest_user_not_in_team" }, "error_summary": "transfer_dest_user_not_in_team/..." }
{ "error": { ".tag": "transfer_admin_user_not_in_team" }, "error_summary": "transfer_admin_user_not_in_team/..." }
{ "error": { ".tag": "transfer_admin_user_not_found" }, "error_summary": "transfer_admin_user_not_found/..." }
{ "error": { ".tag": "unspecified_transfer_admin_id" }, "error_summary": "unspecified_transfer_admin_id/..." }
{ "error": { ".tag": "transfer_admin_is_not_admin" }, "error_summary": "transfer_admin_is_not_admin/..." }
{ "error": { ".tag": "recipient_not_verified" }, "error_summary": "recipient_not_verified/..." }
{ "error": { ".tag": "user_data_is_being_transferred" }, "error_summary": "user_data_is_being_transferred/..." }
{ "error": { ".tag": "user_not_removed" }, "error_summary": "user_not_removed/..." }
{ "error": { ".tag": "user_data_cannot_be_transferred" }, "error_summary": "user_data_cannot_be_transferred/..." }
{ "error": { ".tag": "user_data_already_transferred" }, "error_summary": "user_data_already_transferred/..." }
user_not_found
VoidNo matching user found. The provided team_member_id, email, or external_id does not exist on this team.user_not_in_team
VoidThe user is not a member of the team.removed_and_transfer_dest_should_differ
VoidExpected removed user and transfer_dest user to be different.removed_and_transfer_admin_should_differ
VoidExpected removed user and transfer_admin user to be different.transfer_dest_user_not_found
VoidNo matching user found for the argument transfer_dest_id.transfer_dest_user_not_in_team
VoidThe provided transfer_dest_id does not exist on this team.transfer_admin_user_not_in_team
VoidThe provided transfer_admin_id does not exist on this team.transfer_admin_user_not_found
VoidNo matching user found for the argument transfer_admin_id.unspecified_transfer_admin_id
VoidThe transfer_admin_id argument must be provided when file transfer is requested.transfer_admin_is_not_admin
VoidSpecified transfer_admin user is not a team admin.recipient_not_verified
VoidThe recipient user's email is not verified.user_data_is_being_transferred
VoidThe user's data is being transferred. Please wait some time before retrying.user_not_removed
VoidNo matching removed user found for the argument user.user_data_cannot_be_transferred
VoidUser files aren't transferable anymore.user_data_already_transferred
VoidUser's data has already been transferred to another user.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.
https://api.dropboxapi.com/2/team/members/move_former_member_files/job_status/check
curl -X POST https://api.dropboxapi.com/2/team/members/move_former_member_files/job_status/check \
--header "Authorization: Bearer " \
--header "Content-Type: application/json" \
--data "{\"async_job_id\":\"34g93hh34h04y384084\"}"
{ "async_job_id": "34g93hh34h04y384084" }
async_job_id
String(min_length=1)Id of the asynchronous job. This is the value of a response returned from the method that launched the job.{ ".tag": "complete" }
{ ".tag": "in_progress" }
in_progress
VoidThe asynchronous job is still in progress.complete
VoidThe asynchronous job has completed successfully.{ "error": { ".tag": "invalid_async_job_id" }, "error_summary": "invalid_async_job_id/..." }
{ "error": { ".tag": "internal_error" }, "error_summary": "internal_error/..." }
{ "error": { ".tag": "other" }, "error_summary": "other/..." }
invalid_async_job_id
VoidThe job ID is invalid.internal_error
VoidSomething 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.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.
https://api.dropboxapi.com/2/team/members/recover
curl -X POST https://api.dropboxapi.com/2/team/members/recover \
--header "Authorization: Bearer " \
--header "Content-Type: application/json" \
--data "{\"user\":{\".tag\":\"team_member_id\",\"team_member_id\":\"dbmid:efgh5678\"}}"
{ "user": { ".tag": "team_member_id", "team_member_id": "dbmid:efgh5678" } }
user
Identity of user to recover.{ "error": { ".tag": "user_not_found" }, "error_summary": "user_not_found/..." }
{ "error": { ".tag": "user_unrecoverable" }, "error_summary": "user_unrecoverable/..." }
{ "error": { ".tag": "user_not_in_team" }, "error_summary": "user_not_in_team/..." }
{ "error": { ".tag": "team_license_limit" }, "error_summary": "team_license_limit/..." }
{ "error": { ".tag": "other" }, "error_summary": "other/..." }
user_not_found
VoidNo matching user found. The provided team_member_id, email, or external_id does not exist on this team.user_unrecoverable
VoidThe user is not recoverable.user_not_in_team
VoidThe user is not a member of the team.team_license_limit
VoidTeam is full. The organization has no available licenses.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.
https://api.dropboxapi.com/2/team/members/remove
curl -X POST https://api.dropboxapi.com/2/team/members/remove \
--header "Authorization: Bearer " \
--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}"
{ "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 }
user
Identity of user to remove/suspend/have their files moved.wipe_data
BooleanIf 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_account
BooleanDowngrade 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_shares
BooleanIf 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.{ ".tag": "complete" }
{ ".tag": "async_job_id", "async_job_id": "34g93hh34h04y384084" }
async_job_id
String(min_length=1)This response indicates that the processing is asynchronous. The string is an id that can be used to obtain the status of the asynchronous job.complete
VoidThe job finished synchronously and successfully.{ "error": { ".tag": "user_not_found" }, "error_summary": "user_not_found/..." }
{ "error": { ".tag": "user_not_in_team" }, "error_summary": "user_not_in_team/..." }
{ "error": { ".tag": "other" }, "error_summary": "other/..." }
{ "error": { ".tag": "removed_and_transfer_dest_should_differ" }, "error_summary": "removed_and_transfer_dest_should_differ/..." }
{ "error": { ".tag": "removed_and_transfer_admin_should_differ" }, "error_summary": "removed_and_transfer_admin_should_differ/..." }
{ "error": { ".tag": "transfer_dest_user_not_found" }, "error_summary": "transfer_dest_user_not_found/..." }
{ "error": { ".tag": "transfer_dest_user_not_in_team" }, "error_summary": "transfer_dest_user_not_in_team/..." }
{ "error": { ".tag": "transfer_admin_user_not_in_team" }, "error_summary": "transfer_admin_user_not_in_team/..." }
{ "error": { ".tag": "transfer_admin_user_not_found" }, "error_summary": "transfer_admin_user_not_found/..." }
{ "error": { ".tag": "unspecified_transfer_admin_id" }, "error_summary": "unspecified_transfer_admin_id/..." }
{ "error": { ".tag": "transfer_admin_is_not_admin" }, "error_summary": "transfer_admin_is_not_admin/..." }
{ "error": { ".tag": "recipient_not_verified" }, "error_summary": "recipient_not_verified/..." }
{ "error": { ".tag": "remove_last_admin" }, "error_summary": "remove_last_admin/..." }
{ "error": { ".tag": "cannot_keep_account_and_transfer" }, "error_summary": "cannot_keep_account_and_transfer/..." }
{ "error": { ".tag": "cannot_keep_account_and_delete_data" }, "error_summary": "cannot_keep_account_and_delete_data/..." }
{ "error": { ".tag": "email_address_too_long_to_be_disabled" }, "error_summary": "email_address_too_long_to_be_disabled/..." }
{ "error": { ".tag": "cannot_keep_invited_user_account" }, "error_summary": "cannot_keep_invited_user_account/..." }
{ "error": { ".tag": "cannot_retain_shares_when_data_wiped" }, "error_summary": "cannot_retain_shares_when_data_wiped/..." }
{ "error": { ".tag": "cannot_retain_shares_when_no_account_kept" }, "error_summary": "cannot_retain_shares_when_no_account_kept/..." }
{ "error": { ".tag": "cannot_retain_shares_when_team_external_sharing_off" }, "error_summary": "cannot_retain_shares_when_team_external_sharing_off/..." }
{ "error": { ".tag": "cannot_keep_account" }, "error_summary": "cannot_keep_account/..." }
{ "error": { ".tag": "cannot_keep_account_under_legal_hold" }, "error_summary": "cannot_keep_account_under_legal_hold/..." }
{ "error": { ".tag": "cannot_keep_account_required_to_sign_tos" }, "error_summary": "cannot_keep_account_required_to_sign_tos/..." }
user_not_found
VoidNo matching user found. The provided team_member_id, email, or external_id does not exist on this team.user_not_in_team
VoidThe user is not a member of the team.removed_and_transfer_dest_should_differ
VoidExpected removed user and transfer_dest user to be different.removed_and_transfer_admin_should_differ
VoidExpected removed user and transfer_admin user to be different.transfer_dest_user_not_found
VoidNo matching user found for the argument transfer_dest_id.transfer_dest_user_not_in_team
VoidThe provided transfer_dest_id does not exist on this team.transfer_admin_user_not_in_team
VoidThe provided transfer_admin_id does not exist on this team.transfer_admin_user_not_found
VoidNo matching user found for the argument transfer_admin_id.unspecified_transfer_admin_id
VoidThe transfer_admin_id argument must be provided when file transfer is requested.transfer_admin_is_not_admin
VoidSpecified transfer_admin user is not a team admin.recipient_not_verified
VoidThe recipient user's email is not verified.remove_last_admin
VoidThe user is the last admin of the team, so it cannot be removed from it.cannot_keep_account_and_transfer
VoidCannot keep account and transfer the data to another user at the same time.cannot_keep_account_and_delete_data
VoidCannot keep account and delete the data at the same time. To keep the account the argument wipe_data should be set to false.email_address_too_long_to_be_disabled
VoidThe email address of the user is too long to be disabled.cannot_keep_invited_user_account
VoidCannot keep account of an invited user.cannot_retain_shares_when_data_wiped
VoidCannot 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_kept
VoidThe 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_off
VoidExternally sharing files, folders, and links must be enabled in team settings in order to retain team shares for the user.cannot_keep_account
VoidOnly a team admin, can convert this account to a Basic account.cannot_keep_account_under_legal_hold
VoidThis 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_tos
VoidTo convert this member to a Basic account, they'll first need to sign in to Dropbox and agree to the terms of service.Once an async_job_id is returned from members/remove , use this to poll the status of the asynchronous request. Permission : Team member management.
https://api.dropboxapi.com/2/team/members/remove/job_status/get
curl -X POST https://api.dropboxapi.com/2/team/members/remove/job_status/get \
--header "Authorization: Bearer " \
--header "Content-Type: application/json" \
--data "{\"async_job_id\":\"34g93hh34h04y384084\"}"
{ "async_job_id": "34g93hh34h04y384084" }
async_job_id
String(min_length=1)Id of the asynchronous job. This is the value of a response returned from the method that launched the job.{ ".tag": "complete" }
{ ".tag": "in_progress" }
in_progress
VoidThe asynchronous job is still in progress.complete
VoidThe asynchronous job has completed successfully.{ "error": { ".tag": "invalid_async_job_id" }, "error_summary": "invalid_async_job_id/..." }
{ "error": { ".tag": "internal_error" }, "error_summary": "internal_error/..." }
{ "error": { ".tag": "other" }, "error_summary": "other/..." }
invalid_async_job_id
VoidThe job ID is invalid.internal_error
VoidSomething 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.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.
https://api.dropboxapi.com/2/team/members/secondary_emails/add
curl -X POST https://api.dropboxapi.com/2/team/members/secondary_emails/add \
--header "Authorization: Bearer " \
--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\"}}]}"
{ "new_secondary_emails": [ { "secondary_emails": [ "bob2@hotmail.com", "bob@inst.gov" ], "user": { ".tag": "team_member_id", "team_member_id": "dbmid:efgh5678" } } ] }
new_secondary_emails
List of ()List of users and secondary emails to add.{ "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" } } ] }
results
List of ()List of users and secondary email results.{ "error": { ".tag": "secondary_emails_disabled" }, "error_summary": "secondary_emails_disabled/..." }
{ "error": { ".tag": "too_many_emails" }, "error_summary": "too_many_emails/..." }
{ "error": { ".tag": "other" }, "error_summary": "other/..." }
secondary_emails_disabled
VoidSecondary emails are disabled for the team.too_many_emails
VoidA maximum of 20 secondary emails can be added in a single call.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.
https://api.dropboxapi.com/2/team/members/secondary_emails/delete
curl -X POST https://api.dropboxapi.com/2/team/members/secondary_emails/delete \
--header "Authorization: Bearer " \
--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\"}}]}"
{ "emails_to_delete": [ { "secondary_emails": [ "bob2@hotmail.com", "bob@inst.gov" ], "user": { ".tag": "team_member_id", "team_member_id": "dbmid:efgh5678" } } ] }
emails_to_delete
List of ()List of users and their secondary emails to delete.{ "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" } } ] }
results
List of ()Resend secondary email verification emails. Permission : Team member management.
https://api.dropboxapi.com/2/team/members/secondary_emails/resend_verification_emails
curl -X POST https://api.dropboxapi.com/2/team/members/secondary_emails/resend_verification_emails \
--header "Authorization: Bearer " \
--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\"}}]}"
{ "emails_to_resend": [ { "secondary_emails": [ "bob2@hotmail.com", "bob@inst.gov" ], "user": { ".tag": "team_member_id", "team_member_id": "dbmid:efgh5678" } } ] }
emails_to_resend
List of ()List of users and secondary emails to resend verification emails to.{ "results": [ { ".tag": "success", "results": [ { ".tag": "success", "success": "alice@example.com" } ], "user": { ".tag": "team_member_id", "team_member_id": "dbmid:efgh5678" } } ] }
results
List of ()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.
https://api.dropboxapi.com/2/team/members/send_welcome_email
curl -X POST https://api.dropboxapi.com/2/team/members/send_welcome_email \
--header "Authorization: Bearer " \
--header "Content-Type: application/json" \
--data "{\".tag\":\"team_member_id\",\"team_member_id\":\"dbmid:efgh5678\"}"
{ ".tag": "team_member_id", "team_member_id": "dbmid:efgh5678" }
{ ".tag": "email", "email": "dan@hotmail.com" }
team_member_id
Stringexternal_id
String(max_length=64)email
String(max_length=255, pattern="^['#&A-Za-z0-9._%+-]+@[A-Za-z0-9-][A-Za-z0-9.-]*\.[A-Za-z]{2,15}$"){ "error": { ".tag": "user_not_found" }, "error_summary": "user_not_found/..." }
{ "error": { ".tag": "user_not_in_team" }, "error_summary": "user_not_in_team/..." }
{ "error": { ".tag": "other" }, "error_summary": "other/..." }
user_not_found
VoidNo matching user found. The provided team_member_id, email, or external_id does not exist on this team.user_not_in_team
VoidThe user is not a member of the team.Updates a team member's permissions. Permission : Team member management.
https://api.dropboxapi.com/2/team/members/set_admin_permissions_v2
curl -X POST https://api.dropboxapi.com/2/team/members/set_admin_permissions_v2 \
--header "Authorization: Bearer " \
--header "Content-Type: application/json" \
--data "{\"new_roles\":[\"pid_dbtmr:1234\"],\"user\":{\".tag\":\"team_member_id\",\"team_member_id\":\"dbmid:efgh5678\"}}"
{ "new_roles": [ "pid_dbtmr:1234" ], "user": { ".tag": "team_member_id", "team_member_id": "dbmid:efgh5678" } }
user
Identity 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.{ "roles": [ { "description": "Add, remove, and manage member accounts.", "name": "User management admin", "role_id": "pid_dbtmr:3456" } ], "team_member_id": "dbmid:9978889" }
team_member_id
StringThe member ID of the user to which the change was applied.roles
List of ()?The roles after the change. Empty in case the user become a non-admin. This field is optional.{ "error": { ".tag": "user_not_found" }, "error_summary": "user_not_found/..." }
{ "error": { ".tag": "last_admin" }, "error_summary": "last_admin/..." }
{ "error": { ".tag": "user_not_in_team" }, "error_summary": "user_not_in_team/..." }
{ "error": { ".tag": "cannot_set_permissions" }, "error_summary": "cannot_set_permissions/..." }
{ "error": { ".tag": "role_not_found" }, "error_summary": "role_not_found/..." }
{ "error": { ".tag": "other" }, "error_summary": "other/..." }
user_not_found
VoidNo matching user found. The provided team_member_id, email, or external_id does not exist on this team.last_admin
VoidCannot remove the admin setting of the last admin.user_not_in_team
VoidThe user is not a member of the team.cannot_set_permissions
VoidCannot remove/grant permissions. This can happen if the team member is suspended.role_not_found
VoidNo matching role found. At least one of the provided new_roles does not exist on this team.Updates a team member's profile. Permission : Team member management.
https://api.dropboxapi.com/2/team/members/set_profile_v2
curl -X POST https://api.dropboxapi.com/2/team/members/set_profile_v2 \
--header "Authorization: Bearer " \
--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\"}}"
{ "new_email": "t.smith@domain.com", "new_surname": "Smith", "user": { ".tag": "team_member_id", "team_member_id": "dbmid:efgh5678" } }
user
Identity 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.{ "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" } ] } }
member_info
Member info, after the change.{ "error": { ".tag": "user_not_found" }, "error_summary": "user_not_found/..." }
{ "error": { ".tag": "user_not_in_team" }, "error_summary": "user_not_in_team/..." }
{ "error": { ".tag": "external_id_and_new_external_id_unsafe" }, "error_summary": "external_id_and_new_external_id_unsafe/..." }
{ "error": { ".tag": "no_new_data_specified" }, "error_summary": "no_new_data_specified/..." }
{ "error": { ".tag": "email_reserved_for_other_user" }, "error_summary": "email_reserved_for_other_user/..." }
{ "error": { ".tag": "external_id_used_by_other_user" }, "error_summary": "external_id_used_by_other_user/..." }
{ "error": { ".tag": "set_profile_disallowed" }, "error_summary": "set_profile_disallowed/..." }
{ "error": { ".tag": "param_cannot_be_empty" }, "error_summary": "param_cannot_be_empty/..." }
{ "error": { ".tag": "persistent_id_disabled" }, "error_summary": "persistent_id_disabled/..." }
{ "error": { ".tag": "persistent_id_used_by_other_user" }, "error_summary": "persistent_id_used_by_other_user/..." }
{ "error": { ".tag": "directory_restricted_off" }, "error_summary": "directory_restricted_off/..." }
{ "error": { ".tag": "other" }, "error_summary": "other/..." }
user_not_found
VoidNo matching user found. The provided team_member_id, email, or external_id does not exist on this team.user_not_in_team
VoidThe user is not a member of the team.external_id_and_new_external_id_unsafe
VoidIt is unsafe to use both external_id and new_external_id.no_new_data_specified
VoidNone of new_email, new_given_name, new_surname, or new_external_id are specified.email_reserved_for_other_user
VoidEmail is already reserved for another user.external_id_used_by_other_user
VoidThe external ID is already in use by another team member.set_profile_disallowed
VoidModifying deleted users is not allowed.param_cannot_be_empty
VoidParameter new_email cannot be empty.persistent_id_disabled
VoidPersistent ID is only available to teams with persistent ID SAML configuration. Please contact Dropbox for more information.persistent_id_used_by_other_user
VoidThe persistent ID is already in use by another team member.directory_restricted_off
VoidDirectory Restrictions option is not available.Updates a team member's profile photo. Permission : Team member management.
https://api.dropboxapi.com/2/team/members/set_profile_photo_v2
curl -X POST https://api.dropboxapi.com/2/team/members/set_profile_photo_v2 \
--header "Authorization: Bearer " \
--header "Content-Type: application/json" \
--data "{\"photo\":{\".tag\":\"base64_data\",\"base64_data\":\"SW1hZ2UgZGF0YSBpbiBiYXNlNjQtZW5jb2RlZCBieXRlcy4gTm90IGEgdmFsaWQgZXhhbXBsZS4=\"},\"user\":{\".tag\":\"team_member_id\",\"team_member_id\":\"dbmid:efgh5678\"}}"
{ "photo": { ".tag": "base64_data", "base64_data": "SW1hZ2UgZGF0YSBpbiBiYXNlNjQtZW5jb2RlZCBieXRlcy4gTm90IGEgdmFsaWQgZXhhbXBsZS4=" }, "user": { ".tag": "team_member_id", "team_member_id": "dbmid:efgh5678" } }
user
Identity of the user whose profile photo will be set.photo
Image to set as the member's new profile photo.{ "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" } ] } }
member_info
Member info, after the change.{ "error": { ".tag": "user_not_found" }, "error_summary": "user_not_found/..." }
{ "error": { ".tag": "user_not_in_team" }, "error_summary": "user_not_in_team/..." }
{ "error": { ".tag": "set_profile_disallowed" }, "error_summary": "set_profile_disallowed/..." }
{ "error": { ".tag": "other" }, "error_summary": "other/..." }
user_not_found
VoidNo matching user found. The provided team_member_id, email, or external_id does not exist on this team.user_not_in_team
VoidThe user is not a member of the team.set_profile_disallowed
VoidModifying deleted users is not allowed.photo_error
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.
https://api.dropboxapi.com/2/team/members/suspend
curl -X POST https://api.dropboxapi.com/2/team/members/suspend \
--header "Authorization: Bearer " \
--header "Content-Type: application/json" \
--data "{\"user\":{\".tag\":\"team_member_id\",\"team_member_id\":\"dbmid:efgh5678\"},\"wipe_data\":false}"
{ "user": { ".tag": "team_member_id", "team_member_id": "dbmid:efgh5678" }, "wipe_data": false }
user
Identity of user to remove/suspend/have their files moved.wipe_data
BooleanIf provided, controls if the user's data will be deleted on their linked devices. The default for this field is True.{ "error": { ".tag": "user_not_found" }, "error_summary": "user_not_found/..." }
{ "error": { ".tag": "user_not_in_team" }, "error_summary": "user_not_in_team/..." }
{ "error": { ".tag": "other" }, "error_summary": "other/..." }
{ "error": { ".tag": "suspend_inactive_user" }, "error_summary": "suspend_inactive_user/..." }
{ "error": { ".tag": "suspend_last_admin" }, "error_summary": "suspend_last_admin/..." }
{ "error": { ".tag": "team_license_limit" }, "error_summary": "team_license_limit/..." }
user_not_found
VoidNo matching user found. The provided team_member_id, email, or external_id does not exist on this team.user_not_in_team
VoidThe user is not a member of the team.suspend_inactive_user
VoidThe user is not active, so it cannot be suspended.suspend_last_admin
VoidThe user is the last admin of the team, so it cannot be suspended.team_license_limit
VoidTeam is full. The organization has no available licenses.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.
https://api.dropboxapi.com/2/team/members/unsuspend
curl -X POST https://api.dropboxapi.com/2/team/members/unsuspend \
--header "Authorization: Bearer " \
--header "Content-Type: application/json" \
--data "{\"user\":{\".tag\":\"team_member_id\",\"team_member_id\":\"dbmid:efgh5678\"}}"
{ "user": { ".tag": "team_member_id", "team_member_id": "dbmid:efgh5678" } }
user
Identity of user to unsuspend.{ "error": { ".tag": "user_not_found" }, "error_summary": "user_not_found/..." }
{ "error": { ".tag": "user_not_in_team" }, "error_summary": "user_not_in_team/..." }
{ "error": { ".tag": "other" }, "error_summary": "other/..." }
{ "error": { ".tag": "unsuspend_non_suspended_member" }, "error_summary": "unsuspend_non_suspended_member/..." }
{ "error": { ".tag": "team_license_limit" }, "error_summary": "team_license_limit/..." }
user_not_found
VoidNo matching user found. The provided team_member_id, email, or external_id does not exist on this team.user_not_in_team
VoidThe user is not a member of the team.unsuspend_non_suspended_member
VoidThe user is unsuspended, so it cannot be unsuspended again.team_license_limit
VoidTeam is full. The organization has no available licenses.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.
https://api.dropboxapi.com/2/team/namespaces/list
curl -X POST https://api.dropboxapi.com/2/team/namespaces/list \
--header "Authorization: Bearer " \
--header "Content-Type: application/json" \
--data "{\"limit\":1}"
{ "limit": 1 }
limit
deprecatedUInt32(min=1, max=1000)Field is deprecated. Specifying a value here has no effect. The default for this field is 1000.{ "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" } ] }
namespaces
List of ()List of all namespaces the team can access.cursor
StringPass the cursor into namespaces/list/continue to obtain additional namespaces. Note that duplicate namespaces may be returned.has_more
BooleanIs true if there are additional namespaces that have not been returned yet.{ "error": { ".tag": "invalid_arg" }, "error_summary": "invalid_arg/..." }
{ "error": { ".tag": "other" }, "error_summary": "other/..." }
invalid_arg
VoidArgument passed in is invalid.Once a cursor has been retrieved from namespaces/list, use this to paginate through all team-accessible namespaces. Duplicates may occur in the list.
https://api.dropboxapi.com/2/team/namespaces/list/continue
curl -X POST https://api.dropboxapi.com/2/team/namespaces/list/continue \
--header "Authorization: Bearer " \
--header "Content-Type: application/json" \
--data "{\"cursor\":\"ZtkX9_EHj3x7PMkVuFIhwKYXEpwpLwyxp9vMKomUhllil9q7eWiAu\"}"
{ "cursor": "ZtkX9_EHj3x7PMkVuFIhwKYXEpwpLwyxp9vMKomUhllil9q7eWiAu" }
cursor
StringIndicates from what point to get the next set of team-accessible namespaces.{ "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" } ] }
namespaces
List of ()List of all namespaces the team can access.cursor
StringPass the cursor into namespaces/list/continue to obtain additional namespaces. Note that duplicate namespaces may be returned.has_more
BooleanIs true if there are additional namespaces that have not been returned yet.{ "error": { ".tag": "invalid_arg" }, "error_summary": "invalid_arg/..." }
{ "error": { ".tag": "other" }, "error_summary": "other/..." }
{ "error": { ".tag": "invalid_cursor" }, "error_summary": "invalid_cursor/..." }
invalid_arg
VoidArgument passed in is invalid.invalid_cursor
VoidThe cursor is invalid.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.
https://api.dropboxapi.com/2/team/sharing_allowlist/add
curl -X POST https://api.dropboxapi.com/2/team/sharing_allowlist/add \
--header "Authorization: Bearer " \
--header "Content-Type: application/json" \
--data "{\"domains\":[\"test-domain.com\",\"subdomain.some.com\"],\"emails\":[\"adam@test-domain.com\",\"john@some.com\"]}"
{ "domains": [ "test-domain.com", "subdomain.some.com" ], "emails": [ "adam@test-domain.com", "john@some.com" ] }
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.{ "error": { ".tag": "no_entries_provided" }, "error_summary": "no_entries_provided/..." }
{ "error": { ".tag": "too_many_entries_provided" }, "error_summary": "too_many_entries_provided/..." }
{ "error": { ".tag": "team_limit_reached" }, "error_summary": "team_limit_reached/..." }
{ "error": { ".tag": "unknown_error" }, "error_summary": "unknown_error/..." }
{ "error": { ".tag": "other" }, "error_summary": "other/..." }
malformed_entry
StringOne of provided values is not valid.no_entries_provided
VoidNeither single domain nor email provided.too_many_entries_provided
VoidToo many entries provided within one call.team_limit_reached
VoidTeam entries limit reached.unknown_error
VoidUnknown error.entries_already_exist
StringEntries already exists.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.
https://api.dropboxapi.com/2/team/sharing_allowlist/list
curl -X POST https://api.dropboxapi.com/2/team/sharing_allowlist/list \
--header "Authorization: Bearer " \
--header "Content-Type: application/json" \
--data "{\"limit\":100}"
{ "limit": 100 }
limit
UInt32(min=1, max=1000)The number of entries to fetch at one time. The default for this field is 1000.{ "cursor": "dGVzdF9jdXJzb3IK", "domains": [ "test-domain.com", "subdomain.some.com" ], "emails": [ "adam@test-domain.com", "john@some.com" ], "has_more": true }
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).cursor
StringIf this is nonempty, there are more entries that can be fetched with sharing_allowlist/list/continue. The default for this field is "".has_more
Booleanif true indicates that more entries can be fetched with sharing_allowlist/list/continue. The default for this field is False.Lists entries associated with given team, starting from a the cursor. See sharing_allowlist/list.
https://api.dropboxapi.com/2/team/sharing_allowlist/list/continue
curl -X POST https://api.dropboxapi.com/2/team/sharing_allowlist/list/continue \
--header "Authorization: Bearer " \
--header "Content-Type: application/json" \
--data "{\"cursor\":\"dGVzdF9jdXJzb3IK\"}"
{ "cursor": "dGVzdF9jdXJzb3IK" }
cursor
StringThe cursor returned from a previous call to sharing_allowlist/list or sharing_allowlist/list/continue.{ "cursor": "dGVzdF9jdXJzb3IK", "domains": [ "test-domain.com", "subdomain.some.com" ], "emails": [ "adam@test-domain.com", "john@some.com" ], "has_more": true }
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).cursor
StringIf this is nonempty, there are more entries that can be fetched with sharing_allowlist/list/continue. The default for this field is "".has_more
Booleanif true indicates that more entries can be fetched with sharing_allowlist/list/continue. The default for this field is False.{ "error": { ".tag": "invalid_cursor" }, "error_summary": "invalid_cursor/..." }
{ "error": { ".tag": "other" }, "error_summary": "other/..." }
invalid_cursor
VoidProvided cursor is not valid.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.
https://api.dropboxapi.com/2/team/sharing_allowlist/remove
curl -X POST https://api.dropboxapi.com/2/team/sharing_allowlist/remove \
--header "Authorization: Bearer " \
--header "Content-Type: application/json" \
--data "{\"domains\":[\"test-domain.com\",\"subdomain.some.com\"],\"emails\":[\"adam@test-domain.com\",\"john@some.com\"]}"
{ "domains": [ "test-domain.com", "subdomain.some.com" ], "emails": [ "adam@test-domain.com", "john@some.com" ] }
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.{ "error": { ".tag": "no_entries_provided" }, "error_summary": "no_entries_provided/..." }
{ "error": { ".tag": "too_many_entries_provided" }, "error_summary": "too_many_entries_provided/..." }
{ "error": { ".tag": "unknown_error" }, "error_summary": "unknown_error/..." }
{ "error": { ".tag": "other" }, "error_summary": "other/..." }
malformed_entry
StringOne of provided values is not valid.entries_do_not_exist
StringOne or more provided values do not exist.no_entries_provided
VoidNeither single domain nor email provided.too_many_entries_provided
VoidToo many entries provided within one call.unknown_error
VoidUnknown error.Sets an archived team folder's status to active. Permission : Team member file access.
https://api.dropboxapi.com/2/team/team_folder/activate
curl -X POST https://api.dropboxapi.com/2/team/team_folder/activate \
--header "Authorization: Bearer " \
--header "Content-Type: application/json" \
--data "{\"team_folder_id\":\"123456789\"}"
{ "team_folder_id": "123456789" }
team_folder_id
String(pattern="[-_0-9a-zA-Z:]+")The ID of the team folder.{ "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" }
team_folder_id
String(pattern="[-_0-9a-zA-Z:]+")The ID of the team folder.name
StringThe name of the team folder.status
The status of the team folder.is_team_shared_dropbox
BooleanTrue if this team folder is a shared team root.sync_setting
The sync setting applied to this team folder.content_sync_settings
List of ()Sync settings applied to contents of this team folder.access_error
status_error
team_shared_dropbox_error
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.
https://api.dropboxapi.com/2/team/team_folder/archive
curl -X POST https://api.dropboxapi.com/2/team/team_folder/archive \
--header "Authorization: Bearer " \
--header "Content-Type: application/json" \
--data "{\"force_async_off\":false,\"team_folder_id\":\"123456789\"}"
{ "force_async_off": false, "team_folder_id": "123456789" }
team_folder_id
String(pattern="[-_0-9a-zA-Z:]+")The ID of the team folder.force_async_off
BooleanWhether to force the archive to happen synchronously. The default for this field is False.{ ".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" }
{ ".tag": "async_job_id", "async_job_id": "34g93hh34h04y384084" }
async_job_id
String(min_length=1)This response indicates that the processing is asynchronous. The string is an id that can be used to obtain the status of the asynchronous job.complete
access_error
status_error
team_shared_dropbox_error
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.
https://api.dropboxapi.com/2/team/team_folder/archive/check
curl -X POST https://api.dropboxapi.com/2/team/team_folder/archive/check \
--header "Authorization: Bearer " \
--header "Content-Type: application/json" \
--data "{\"async_job_id\":\"34g93hh34h04y384084\"}"
{ "async_job_id": "34g93hh34h04y384084" }
async_job_id
String(min_length=1)Id of the asynchronous job. This is the value of a response returned from the method that launched the job.{ ".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" }
{ ".tag": "in_progress" }
in_progress
VoidThe asynchronous job is still in progress.complete
The archive job has finished. The value is the metadata for the resulting team folder.failed
Error occurred while performing an asynchronous job from team_folder/archive.{ "error": { ".tag": "invalid_async_job_id" }, "error_summary": "invalid_async_job_id/..." }
{ "error": { ".tag": "internal_error" }, "error_summary": "internal_error/..." }
{ "error": { ".tag": "other" }, "error_summary": "other/..." }
invalid_async_job_id
VoidThe job ID is invalid.internal_error
VoidSomething 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.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.
https://api.dropboxapi.com/2/team/team_folder/create
curl -X POST https://api.dropboxapi.com/2/team/team_folder/create \
--header "Authorization: Bearer " \
--header "Content-Type: application/json" \
--data "{\"name\":\"Marketing\",\"sync_setting\":\"not_synced\"}"
{ "name": "Marketing", "sync_setting": "not_synced" }
name
StringName 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.{ "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" }
team_folder_id
String(pattern="[-_0-9a-zA-Z:]+")The ID of the team folder.name
StringThe name of the team folder.status
The status of the team folder.is_team_shared_dropbox
BooleanTrue if this team folder is a shared team root.sync_setting
The sync setting applied to this team folder.content_sync_settings
List of ()Sync settings applied to contents of this team folder.{ "error": { ".tag": "invalid_folder_name" }, "error_summary": "invalid_folder_name/..." }
{ "error": { ".tag": "folder_name_already_used" }, "error_summary": "folder_name_already_used/..." }
{ "error": { ".tag": "folder_name_reserved" }, "error_summary": "folder_name_reserved/..." }
{ "error": { ".tag": "other" }, "error_summary": "other/..." }
invalid_folder_name
VoidThe provided name cannot be used.folder_name_already_used
VoidThere is already a team folder with the provided name.folder_name_reserved
VoidThe provided name cannot be used because it is reserved.sync_settings_error
An error occurred setting the sync settings.Retrieves metadata for team folders. Permission : Team member file access.
https://api.dropboxapi.com/2/team/team_folder/get_info
curl -X POST https://api.dropboxapi.com/2/team/team_folder/get_info \
--header "Authorization: Bearer " \
--header "Content-Type: application/json" \
--data "{\"team_folder_ids\":[\"947182\",\"5819424\",\"852307532\"]}"
{ "team_folder_ids": [ "947182", "5819424", "852307532" ] }
team_folder_ids
List of (String(pattern="[-_0-9a-zA-Z:]+"), min_items=1)The list of team folder IDs.id_not_found
StringAn ID that was provided as a parameter to team_folder/get_info did not match any of the team's team folders.team_folder_metadata
Properties of a team folder.Lists all team folders. Permission : Team member file access.
https://api.dropboxapi.com/2/team/team_folder/list
curl -X POST https://api.dropboxapi.com/2/team/team_folder/list \
--header "Authorization: Bearer " \
--header "Content-Type: application/json" \
--data "{\"limit\":100}"
{ "limit": 100 }
limit
UInt32(min=1, max=1000)The maximum number of results to return per request. The default for this field is 1000.{ "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" } ] }
team_folders
List of ()List of all team folders in the authenticated team.cursor
StringPass the cursor into team_folder/list/continue to obtain additional team folders.has_more
BooleanIs true if there are additional team folders that have not been returned yet. An additional call to team_folder/list/continue can retrieve them.access_error
Once a cursor has been retrieved from team_folder/list, use this to paginate through all team folders. Permission : Team member file access.
https://api.dropboxapi.com/2/team/team_folder/list/continue
curl -X POST https://api.dropboxapi.com/2/team/team_folder/list/continue \
--header "Authorization: Bearer " \
--header "Content-Type: application/json" \
--data "{\"cursor\":\"ZtkX9_EHj3x7PMkVuFIhwKYXEpwpLwyxp9vMKomUhllil9q7eWiAu\"}"
{ "cursor": "ZtkX9_EHj3x7PMkVuFIhwKYXEpwpLwyxp9vMKomUhllil9q7eWiAu" }
cursor
StringIndicates from what point to get the next set of team folders.{ "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" } ] }
team_folders
List of ()List of all team folders in the authenticated team.cursor
StringPass the cursor into team_folder/list/continue to obtain additional team folders.has_more
BooleanIs true if there are additional team folders that have not been returned yet. An additional call to team_folder/list/continue can retrieve them.{ "error": { ".tag": "invalid_cursor" }, "error_summary": "invalid_cursor/..." }
{ "error": { ".tag": "other" }, "error_summary": "other/..." }
invalid_cursor
VoidThe cursor is invalid.Permanently deletes an archived team folder. This endpoint cannot be used for teams that have a shared team space. Permission : Team member file access.
https://api.dropboxapi.com/2/team/team_folder/permanently_delete
curl -X POST https://api.dropboxapi.com/2/team/team_folder/permanently_delete \
--header "Authorization: Bearer " \
--header "Content-Type: application/json" \
--data "{\"team_folder_id\":\"123456789\"}"
{ "team_folder_id": "123456789" }
team_folder_id
String(pattern="[-_0-9a-zA-Z:]+")The ID of the team folder.access_error
status_error
team_shared_dropbox_error
Changes an active team folder's name. Permission : Team member file access.
https://api.dropboxapi.com/2/team/team_folder/rename
curl -X POST https://api.dropboxapi.com/2/team/team_folder/rename \
--header "Authorization: Bearer " \
--header "Content-Type: application/json" \
--data "{\"name\":\"Sales\",\"team_folder_id\":\"123456789\"}"
{ "name": "Sales", "team_folder_id": "123456789" }
team_folder_id
String(pattern="[-_0-9a-zA-Z:]+")The ID of the team folder.name
StringNew team folder name.{ "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" }
team_folder_id
String(pattern="[-_0-9a-zA-Z:]+")The ID of the team folder.name
StringThe name of the team folder.status
The status of the team folder.is_team_shared_dropbox
BooleanTrue if this team folder is a shared team root.sync_setting
The sync setting applied to this team folder.content_sync_settings
List of ()Sync settings applied to contents of this team folder.{ "error": { ".tag": "other" }, "error_summary": "other/..." }
{ "error": { ".tag": "invalid_folder_name" }, "error_summary": "invalid_folder_name/..." }
{ "error": { ".tag": "folder_name_already_used" }, "error_summary": "folder_name_already_used/..." }
{ "error": { ".tag": "folder_name_reserved" }, "error_summary": "folder_name_reserved/..." }
access_error
status_error
team_shared_dropbox_error
invalid_folder_name
VoidThe provided folder name cannot be used.folder_name_already_used
VoidThere is already a team folder with the same name.folder_name_reserved
VoidThe provided name cannot be used because it is reserved.Sets an inactive team folder's status to active. Permission: Team member file access.
https://api.dropboxapi.com/2/team/team_folder/restore
curl -X POST https://api.dropboxapi.com/2/team/team_folder/restore \
--header "Authorization: Bearer " \
--header "Content-Type: application/json" \
--data "{\"team_folder_id\":\"123456789\"}"
{ "team_folder_id": "123456789" }
team_folder_id
String(pattern="[-_0-9a-zA-Z:]+")The ID of the team folder.{ "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" }
team_folder_id
String(pattern="[-_0-9a-zA-Z:]+")The ID of the team folder.name
StringThe name of the team folder.status
The status of the team folder.is_team_shared_dropbox
BooleanTrue if this team folder is a shared team root.sync_setting
The sync setting applied to this team folder.content_sync_settings
List of ()Sync settings applied to contents of this team folder.access_error
status_error
team_shared_dropbox_error
Updates the sync settings on a team folder or its contents. Use of this endpoint requires that the team has team selective sync enabled.
https://api.dropboxapi.com/2/team/team_folder/update_sync_settings
curl -X POST https://api.dropboxapi.com/2/team/team_folder/update_sync_settings \
--header "Authorization: Bearer " \
--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\"}"
{ "content_sync_settings": [ { "id": "id:a4ayc_80_OEAAAAAAAAAXw", "sync_setting": "not_synced" } ], "sync_setting": "not_synced", "team_folder_id": "123456789" }
team_folder_id
String(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_settings
List of ()?Sync settings to apply to contents of this team folder. This field is optional.{ "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" }
team_folder_id
String(pattern="[-_0-9a-zA-Z:]+")The ID of the team folder.name
StringThe name of the team folder.status
The status of the team folder.is_team_shared_dropbox
BooleanTrue if this team folder is a shared team root.sync_setting
The sync setting applied to this team folder.content_sync_settings
List of ()Sync settings applied to contents of this team folder.access_error
status_error
team_shared_dropbox_error
sync_settings_error
An error occurred setting the sync settings.Returns the member profile of the admin who generated the team access token used to make the call.
https://api.dropboxapi.com/2/team/token/get_authenticated_admin
curl -X POST https://api.dropboxapi.com/2/team/token/get_authenticated_admin \
--header "Authorization: Bearer "
{ "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" } }
admin_profile
The admin who authorized the token.{ "error": { ".tag": "mapping_not_found" }, "error_summary": "mapping_not_found/..." }
{ "error": { ".tag": "admin_not_active" }, "error_summary": "admin_not_active/..." }
{ "error": { ".tag": "other" }, "error_summary": "other/..." }
mapping_not_found
VoidThe current token is not associated with a team admin, because mappings were not recorded when the token was created. Consider re-authorizing a new access token to record its authenticating admin.admin_not_active
VoidEither the team admin that authorized this token is no longer an active member of the team or no longer a team admin.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.
https://api.dropboxapi.com/2/team_log/get_events
curl -X POST https://api.dropboxapi.com/2/team_log/get_events \
--header "Authorization: Bearer " \
--header "Content-Type: application/json" \
--data "{\"category\":\"groups\",\"limit\":50}"
{ "category": "groups", "limit": 50 }
limit
UInt32(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.{ "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 }
events
List of ()List of events. Note that events are not guaranteed to be sorted by their timestamp value.cursor
StringPass 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_more
BooleanIs 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.{ "error": { ".tag": "account_id_not_found" }, "error_summary": "account_id_not_found/..." }
{ "error": { ".tag": "account_id_not_found" }, "error_summary": "account_id_not_found/..." }
{ "error": { ".tag": "invalid_time_range" }, "error_summary": "invalid_time_range/..." }
{ "error": { ".tag": "invalid_filters" }, "error_summary": "invalid_filters/..." }
{ "error": { ".tag": "other" }, "error_summary": "other/..." }
account_id_not_found
VoidNo user found matching the provided account_id.invalid_time_range
VoidInvalid time range.invalid_filters
VoidInvalid filters. Do not specify both event_type and category parameters for the same call.Once a cursor has been retrieved from get_events, use this to paginate through all events. Permission : Team Auditing.
https://api.dropboxapi.com/2/team_log/get_events/continue
curl -X POST https://api.dropboxapi.com/2/team_log/get_events/continue \
--header "Authorization: Bearer " \
--header "Content-Type: application/json" \
--data "{\"cursor\":\"ZtkX9_EHj3x7PMkVuFIhwKYXEpwpLwyxp9vMKomUhllil9q7eWiAu\"}"
{ "cursor": "ZtkX9_EHj3x7PMkVuFIhwKYXEpwpLwyxp9vMKomUhllil9q7eWiAu" }
cursor
StringIndicates from what point to get the next set of events.{ "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 }
events
List of ()List of events. Note that events are not guaranteed to be sorted by their timestamp value.cursor
StringPass 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_more
BooleanIs 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.{ "error": { ".tag": "bad_cursor" }, "error_summary": "bad_cursor/..." }
{ "error": { ".tag": "bad_cursor" }, "error_summary": "bad_cursor/..." }
{ "error": { ".tag": "other" }, "error_summary": "other/..." }
bad_cursor
VoidBad cursor.reset
Timestamp(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.All deprecated endpoints, across namespaces
Deprecated endpoints for team
List all device sessions of a team. Permission : Team member file access.
https://api.dropboxapi.com/2/team/devices/list_team_devices
curl -X POST https://api.dropboxapi.com/2/team/devices/list_team_devices \
--header "Authorization: Bearer " \
--header "Content-Type: application/json" \
--data "{\"cursor\":\"ZtkX9_EHj3x7PMkVuFIhwKYXEpwpLwyxp9vMKomUhllil9q7eWiAu\",\"include_desktop_clients\":true,\"include_mobile_clients\":true,\"include_web_sessions\":true}"
{ "cursor": "ZtkX9_EHj3x7PMkVuFIhwKYXEpwpLwyxp9vMKomUhllil9q7eWiAu", "include_desktop_clients": true, "include_mobile_clients": true, "include_web_sessions": true }
cursor
String?At the first call to the devices/list_team_devices the cursor shouldn't be passed. Then, if the result of the call includes a cursor, the following requests should include the received cursors in order to receive the next sub list of team devices. This field is optional.include_web_sessions
BooleanWhether to list web sessions of the team members. The default for this field is True.include_desktop_clients
BooleanWhether to list desktop clients of the team members. The default for this field is True.include_mobile_clients
BooleanWhether to list mobile clients of the team members. The default for this field is True.{ "devices": [ { "team_member_id": "dbmid:AAHhy7WsR0x-u4ZCqiDl5Fz5zvuL3kmspwU" } ], "has_more": false }
devices
List of ()The devices of each member of the team.has_more
BooleanIf 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.{ "error": { ".tag": "reset" }, "error_summary": "reset/..." }
{ "error": { ".tag": "other" }, "error_summary": "other/..." }
reset
VoidIndicates that the cursor has been invalidated. Call devices/list_team_devices again with an empty cursor to obtain a new cursor.List all applications linked to the team members' accounts. Note, this endpoint doesn't list any team-linked applications.
https://api.dropboxapi.com/2/team/linked_apps/list_team_linked_apps
curl -X POST https://api.dropboxapi.com/2/team/linked_apps/list_team_linked_apps \
--header "Authorization: Bearer " \
--header "Content-Type: application/json" \
--data "{\"cursor\":\"AADAQO8ZWKvBkSMXb1J9dAYVvwZ0wcvfyzIBo2e1H-_N-67pfrYKTb4oN_3LG9_ilWjblZXuiR8ubjjiQQkHq-MvDjbe_6bkcJgjnTpowrRaQA\"}"
{ "cursor": "AADAQO8ZWKvBkSMXb1J9dAYVvwZ0wcvfyzIBo2e1H-_N-67pfrYKTb4oN_3LG9_ilWjblZXuiR8ubjjiQQkHq-MvDjbe_6bkcJgjnTpowrRaQA" }
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.{ "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 }
apps
List of ()The linked applications of each member of the team.has_more
BooleanIf 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.{ "error": { ".tag": "reset" }, "error_summary": "reset/..." }
{ "error": { ".tag": "other" }, "error_summary": "other/..." }
reset
VoidIndicates that the cursor has been invalidated. Call linked_apps/list_team_linked_apps again with an empty cursor to obtain a new cursor.Permission : Team member file access.
https://api.dropboxapi.com/2/team/properties/template/add
curl -X POST https://api.dropboxapi.com/2/team/properties/template/add \
--header "Authorization: Bearer " \
--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\"}"
{ "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" }
name
StringDisplay name for the template. Template names can be up to 256 bytes.description
StringDescription for the template. Template descriptions can be up to 1024 bytes.fields
List of ()Definitions of the property fields associated with this template. There can be up to 32 properties in a single template.{ "template_id": "ptid:1a5n2i6d3OYEAAAAAAAAAYa" }
template_id
String(min_length=1, pattern="(/|ptid:).*")An identifier for template added by See templates/add_for_user or templates/add_for_team.{ "error": { ".tag": "restricted_content" }, "error_summary": "restricted_content/..." }
{ "error": { ".tag": "other" }, "error_summary": "other/..." }
{ "error": { ".tag": "conflicting_property_names" }, "error_summary": "conflicting_property_names/..." }
{ "error": { ".tag": "too_many_properties" }, "error_summary": "too_many_properties/..." }
{ "error": { ".tag": "too_many_templates" }, "error_summary": "too_many_templates/..." }
{ "error": { ".tag": "template_attribute_too_large" }, "error_summary": "template_attribute_too_large/..." }
template_not_found
String(min_length=1, pattern="(/|ptid:).*")Template does not exist for the given identifier.restricted_content
VoidYou do not have permission to modify this template.conflicting_property_names
VoidA property field key with that name already exists in the template.too_many_properties
VoidThere are too many properties in the changed template. The maximum number of properties per template is 32.too_many_templates
VoidThere are too many templates for the team.template_attribute_too_large
VoidThe template name, description or one or more of the property field keys is too large.Permission : Team member file access. The scope for the route is files.team_metadata.write.
https://api.dropboxapi.com/2/team/properties/template/get
curl -X POST https://api.dropboxapi.com/2/team/properties/template/get \
--header "Authorization: Bearer " \
--header "Content-Type: application/json" \
--data "{\"template_id\":\"ptid:1a5n2i6d3OYEAAAAAAAAAYa\"}"
{ "template_id": "ptid:1a5n2i6d3OYEAAAAAAAAAYa" }
template_id
String(min_length=1, pattern="(/|ptid:).*")An identifier for template added by route See templates/add_for_user or templates/add_for_team.{ "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" }
name
StringDisplay name for the template. Template names can be up to 256 bytes.description
StringDescription for the template. Template descriptions can be up to 1024 bytes.fields
List of ()Definitions of the property fields associated with this template. There can be up to 32 properties in a single template.{ "error": { ".tag": "restricted_content" }, "error_summary": "restricted_content/..." }
{ "error": { ".tag": "other" }, "error_summary": "other/..." }
template_not_found
String(min_length=1, pattern="(/|ptid:).*")Template does not exist for the given identifier.restricted_content
VoidYou do not have permission to modify this template.Permission : Team member file access. The scope for the route is files.team_metadata.write.
https://api.dropboxapi.com/2/team/properties/template/list
curl -X POST https://api.dropboxapi.com/2/team/properties/template/list \
--header "Authorization: Bearer "
{ "template_ids": [ "ptid:1a5n2i6d3OYEAAAAAAAAAYa" ] }
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.{ "error": { ".tag": "restricted_content" }, "error_summary": "restricted_content/..." }
{ "error": { ".tag": "other" }, "error_summary": "other/..." }
template_not_found
String(min_length=1, pattern="(/|ptid:).*")Template does not exist for the given identifier.restricted_content
VoidYou do not have permission to modify this template.Permission : Team member file access.
https://api.dropboxapi.com/2/team/properties/template/update
curl -X POST https://api.dropboxapi.com/2/team/properties/template/update \
--header "Authorization: Bearer " \
--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\"}"
{ "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" }
template_id
String(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_fields
List 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.{ "template_id": "ptid:1a5n2i6d3OYEAAAAAAAAAYa" }
template_id
String(min_length=1, pattern="(/|ptid:).*")An identifier for template added by route See templates/add_for_user or templates/add_for_team.{ "error": { ".tag": "restricted_content" }, "error_summary": "restricted_content/..." }
{ "error": { ".tag": "other" }, "error_summary": "other/..." }
{ "error": { ".tag": "conflicting_property_names" }, "error_summary": "conflicting_property_names/..." }
{ "error": { ".tag": "too_many_properties" }, "error_summary": "too_many_properties/..." }
{ "error": { ".tag": "too_many_templates" }, "error_summary": "too_many_templates/..." }
{ "error": { ".tag": "template_attribute_too_large" }, "error_summary": "template_attribute_too_large/..." }
template_not_found
String(min_length=1, pattern="(/|ptid:).*")Template does not exist for the given identifier.restricted_content
VoidYou do not have permission to modify this template.conflicting_property_names
VoidA property field key with that name already exists in the template.too_many_properties
VoidThere are too many properties in the changed template. The maximum number of properties per template is 32.too_many_templates
VoidThere are too many templates for the team.template_attribute_too_large
VoidThe template name, description or one or more of the property field keys is too large.Retrieves reporting data about a team's user activity. Deprecated: Will be removed on July 1st 2021.
https://api.dropboxapi.com/2/team/reports/get_activity
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.start_date
StringFirst 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.Retrieves reporting data about a team's linked devices. Deprecated: Will be removed on July 1st 2021.
https://api.dropboxapi.com/2/team/reports/get_devices
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.start_date
StringFirst date present in the results as 'YYYY-MM-DD' or None.active_1_day
Report of the number of devices active in the last day.active_7_day
Report of the number of devices active in the last 7 days.active_28_day
Report of the number of devices active in the last 28 days.Retrieves reporting data about a team's membership. Deprecated: Will be removed on July 1st 2021.
https://api.dropboxapi.com/2/team/reports/get_membership
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.start_date
StringFirst 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.Retrieves reporting data about a team's storage usage. Deprecated: Will be removed on July 1st 2021.
https://api.dropboxapi.com/2/team/reports/get_storage
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.start_date
StringFirst date present in the results as 'YYYY-MM-DD' or None.total_usage
List of (UInt64?)Sum of the shared, unshared, and datastore usages, for each day. This field is optional.shared_usage
List of (UInt64?)Array of the combined size (bytes) of team members' shared folders, for each day. This field is optional.unshared_usage
List of (UInt64?)Array of the combined size (bytes) of team members' root namespaces, for each day. This field is optional.shared_folders
List of (UInt64?)Array of the number of shared folders owned by team members, for each day. This field is optional.member_storage_map
List of (List of ())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.