Each Dropbox for Business API request should be made as a POST
request with an "application/json"
Content-Type header. Parameters should be passed in the body in a JSON dictionary (not form-encoded). Requests with no parameters should pass an empty JSON dictionary ({}
).
These JSON formatting conventions apply only to Dropbox for Business API endpoints. All "X-Dropbox-Perform-As-Team-Member"
calls are made using the Core API, and should continue to be form-encoded as specified in the Core API documentation.
The Dropbox for Business API uses the following HTTP status codes for errors:
https://api.dropbox.com/1/team/get_info
Information about a team.
Sample response body
{ "name": "Example Company", "team_id": "dbtid:1234abcd", "num_licensed_users": 5, "num_provisioned_users": 2 }
team_id
is a globally-unique team identifier.num_licensed_users
is the total number of licenses the team has authorized, while num_provisioned_users
is the number of accounts that have been invited or are already active members of the team.https://api.dropbox.com/1/team/members/list
Sample request body
{ "limit": 10, "cursor": "abcd1234" }
A list of team members.
Sample response body
{ "members": [ { "profile": { "given_name": "Jane", "surname": "User", "status": "active", "member_id": "dbmid:abcd1234", "email": "jane@example.com", "external_id": "54321", "groups": [] }, "permissions": { "is_admin": true } }, ... "cursor": "abcd1234", "has_more": false ] }
https://api.dropbox.com/1/team/members/get_info
Exactly one of member_id
, email
, and external_id
must be set.
Sample request body
{ "member_id": "dbmid:efgh5678" }
Information about a team member.
Sample response body
{ "profile": { "given_name": "John", "surname": "User", "status": "active", "member_id": "dbmid:efgh5678", "email": "john@example.com", "external_id": "09876", "groups": [] }, "permissions": { "is_admin": false } }
external_id
parameter will only be returned to apps with Team member management permissions. This value will be null if not set.https://api.dropbox.com/1/team/members/get_info_batch
Exactly one of member_id
, email
, and external_id
must be set.
Sample request body
{ "emails": ["jane@example.com", "john@example.com"] }
Information about multiple team members.
Sample response body
{ "jane@example.com": { "profile": { "given_name": "Jane", "surname": "User", "status": "active", "member_id": "dbmid:abcd1234", "email": "jane@example.com", "external_id": "54321", "groups": [] }, "permissions": { "is_admin": true } }, "john@example.com": { "profile": { "given_name": "John", "surname": "User", "status": "active", "member_id": "dbmid:efgh5678", "email": "john@example.com", "external_id": "09876", "groups": [] }, "permissions": { "is_admin": false } } }
email
and five by member_id
, you'll need to make two separate calls).https://api.dropbox.com/1/team/members/add
true
.Sample request body
{ "member_email": "jenny@example.com", "member_given_name": "Jenny", "member_surname": "User", "send_welcome_email": true }
Returns the profile of the created member. See /members/get_info for a sample response.
given_name
and surname
for a user to use in the team invitation and for "Perform as team member" actions taken on the user before they become "active".send_welcome_email
is false, no email invitation will be sent to the user. This may be useful for apps using single sign-on (SSO) flows for onboarding that want to handle Dropbox for Business announcements themselves.https://api.dropbox.com/1/team/members/set_profile
member_id
or external_id
.member_id
or external_id
.Sample request body
{ "member_id": "dbmid:efgh5678", "new_email": "jonathan.user@example.com", "new_given_name": "Jonathan" }
Returns the profile of the updated member. See /members/get_info for a sample response.
member_id
or an external_id
must be provided to identify the user account.new_email
, new_external_id
, new_given_name
, and/or new_surname
must be provided.https://api.dropbox.com/1/team/members/set_permissions
member_id
or external_id
.member_id
or external_id
.Sample request body
{ "member_id": "dbmid:efgh5678", "new_is_admin": true }
Returns the member's permissions.
Sample response body
{ "member_id": "dbmid:efgh5678", "is_admin": true }
member_id
or an external_id
must be provided to identify the user account.https://api.dropbox.com/1/team/members/remove
member_id
or external_id
.member_id
or external_id
.transfer_admin_member_id
.true
.Sample request body
{ "member_id": "dbmid:efgh5678", "transfer_dest_member_id": "dbmid:abcd1234", "transfer_admin_member_id": "dbmid:abcd1234" }
Empty response
member_id
does not exist on this team.member_id
or an external_id
must be provided to identify the user account.member_id
that will not have access to any content that was shared with the initial account.https://api.dropbox.com/1/team/groups/list
A list of all groups on the team.
Sample response body
{ "groups": [ { "group_name": "Marketing", "group_id": "abcd1234", "num_members": 23 }, ... ] }
https://api.dropbox.com/1/team/groups/get_info
Sample request body
{ "group_ids": ["abcd1234", "efgh5678"] }
Information about one or more groups.
Sample response body
{ "groups": [ { "group_name": "Sales", "group_id": "abcd1234", "num_members": 2, "members": [ { "profile": { "given_name": "John", "surname": "User", "status": "active", "member_id": "dbmid:efgh5678", "email": "john@example.com" "external_id": "09876" }, "access_type": "member" }, { "profile": { "given_name": "Jane", "surname": "User", "status": "active", "member_id": "dbmid:abcd1234", "email": "jane@example.com" "external_id": "54321" }, "access_type": "owner" } ], "created": 1412635269 }, ... ] }
created
field is the group creation time as a UTC timestamp in milliseconds since the Unix epoch.https://api.dropbox.com/1/team/groups/create
Sample request body
{ "group_name": "Support agents" }
Returns information about the created group.
Sample response body
{ "group_name": "Support agents", "group_id": "ijkl9101", "num_members": 0, "members": [], "created": 1418244977 }
group_name
.created
field is the group creation time as a UTC timestamp in milliseconds since the Unix epoch.https://api.dropbox.com/1/team/groups/delete
Empty response
https://api.dropbox.com/1/team/groups/members/add
Sample request body
{ "group_id": "ijkl9101", "members": [ { "team_member_id": "dbmid:efgh5678", "access_type": "member" }, { "team_member_id": "dbmid:abcd1234", "access_type": "owner" } ] }
Returns the updated group information.
Sample response body
{ "group_name": "Support agents", "group_id": "ijkl9101", "num_members": 2, "members": [ { "profile": { "given_name": "John", "surname": "User", "status": "active", "member_id": "dbmid:efgh5678", "email": "john@example.com", "external_id": "09876" }, "access_type": "member" }, { "profile": { "given_name": "Jane", "surname": "User", "status": "active", "member_id": "dbmid:abcd1234", "email": "jane@example.com", "external_id": "54321" }, "access_type": "owner" }, ], "created": 1418244977 }
created
field is the group creation time as a UTC timestamp in milliseconds since the Unix epoch.https://api.dropbox.com/1/team/groups/members/remove
Sample request body
{ "group_id": "ijkl9101", "members": [ { "team_member_id": "dbmid:efgh5678", }, { "team_member_id": "dbmid:abcd1234", } ] }
Returns the updated group information. See /groups/members/add for a sample response.
team_member_id
does not exist in this group.https://api.dropbox.com/1/team/groups/members/set_access_type
Sample request body
{ "group_id": "ijkl9101", "team_member_id": "dbmid:efgh5678", "access_type": "owner" }
Returns the updated group information. See /groups/members/add for a sample response.
team_member_id
does not exist in this group.https://api.dropbox.com/1/team/reports/get_storage
Dates should be in the format YYYY-MM-DD (partitioned on midnight UTC).
Sample request body
{ "start_date": "2014-10-26" }
Data about a team's storage usage. Each result is represented as an array ordered by date, where the first value corresponds to the data on the start_date
. Each subsequent array value represents one day's data in that series.
Sample response body
{ "start_date": "2014-10-26", "total_usage": [ 546626, 498318, ... ], "shared_usage": [ 0, 48308, ... ], "unshared_usage": [ 546626, 498318, ... ], "shared_folders": [ 1, 3, ... ], "member_storage_map": [ { "100+GB": 0, "1GB": 2 ... }, { "100GB": 0, "5GB": 0 ... } ] }
start_date
parameter.end_date
parameter.start_date
defaults to the earliest date tracked (current maximum is 6 months in the past), and end_date
defaults to the current date.null
if data is not yet available for the last day.https://api.dropbox.com/1/team/reports/get_activity
Dates should be in the format YYYY-MM-DD (partitioned on midnight UTC).
Sample request body
{ "start_date": "2014-10-26" }
Data about a team's user activity. Each result is represented as an array ordered by date, where the first value corresponds to the data on the start_date
. Each subsequent array value represents one day's data in that series.
Sample response body
{ "start_date": "2014-10-26", "active_users_1_day": [ 1, 4, ... ], "active_users_7_day": [ 1, 4, ... ], "active_users_28_day": [ 0, 3, ... ], "adds": [ 14, 23, ... ], "edits": [ 4, 12, ... ], "deletes": [ 7, 0, ... ], "active_shared_folders_1_day": [ 1, 4, ... ], "active_shared_folders_7_day": [ 1, 2, ... ], "active_shared_folders_28_day": [ 1, 1, ... ], "shared_links_created": [ 4, 9, ... ], "shared_links_viewed_total": [ 4, 13, ... ], "shared_links_viewed_by_team": [ 2, 36, ... ], "shared_links_viewed_by_outside_user": [ 1, 22, ... ], "shared_links_viewed_by_not_logged_in": [ 0, 13, ... ] }
start_date
parameter.end_date
parameter.start_date
defaults to the earliest date tracked (current maximum is 6 months in the past), and end_date
defaults to the current date.null
if data is not yet available for the last day.https://api.dropbox.com/1/team/reports/get_membership
Dates should be in the format YYYY-MM-DD (partitioned on midnight UTC).
Sample request body
{ "start_date": "2014-10-26" }
Data about a team's membership. Each result is represented as an array ordered by date, where the first value corresponds to the data on the start_date
. Each subsequent array value represents one day's data in that series.
Sample response body
{ "start_date": "2014-10-26", "team_size": [ 1, 4, ... ], "pending_invites": [ 1, 0, ... ], "members_joined": [ 1, 3, ... ], "licenses": [ 5, 5, ... ] }
start_date
parameter.end_date
parameter.start_date
defaults to the earliest date tracked (current maximum is 6 months in the past), and end_date
defaults to the current date.null
if data is not yet available for the last day.https://api.dropbox.com/1/team/reports/get_devices
Dates should be in the format YYYY-MM-DD (partitioned on midnight UTC).
Sample request body
{ "start_date": "2014-10-26" }
Data about a team's linked devices. Linked devices are those with a Dropbox client or mobile app installed and linked to a team member's Dropbox for Business account. Each result is represented as an array ordered by date, where the first value corresponds to the data on the start_date
. Each subsequent array value represents one day's data in that series.
Sample response body
{ "start_date": "2014-10-26", "total_devices_1_day": [ 6, 7, ... ], "total_devices_7_day": [ 4, 7, ... ], "total_devices_28_day": [ 6, 7, ... ], "ios_devices_1_day": [ 2, 2, ... ], "ios_devices_7_day": [ 2, 2, ... ], "ios_devices_28_day": [ 2, 2, ... ], "android_devices_1_day": [ 1, 2, ... ], "android_devices_7_day": [ 1, 2, ... ], "android_devices_28_day": [ 1, 2, ... ], "macos_devices_1_day": [ 4, 4, ... ], "macos_devices_7_day": [ 4, 4, ... ], "macos_devices_28_day": [ 0, 4, ... ], "windows_devices_1_day": [ 0, 1, ... ], "windows_devices_7_day": [ 0, 1, ... ], "windows_devices_28_day": [ 0, 0, ... ], "linux_devices_1_day": [ 1, 1, ... ], "linux_devices_7_day": [ 1, 1, ... ], "linux_devices_28_day": [ 1, 1, ... ], "other_devices_1_day": [ 0, 0, ... ], "other_devices_7_day": [ 0, 0, ... ], "other_devices_28_day": [ 0, 0, ... ] }
start_date
parameter.end_date
parameter.start_date
defaults to the earliest date tracked (current maximum is 6 months in the past), and end_date
defaults to the current date.null
if data is not yet available for the last day.https://api.dropbox.com/1/team/log/get_events
Sample request body
{ "user": { "member_id": "dbmid:efgh5678" }, "category": "devices" }
Audit log for a team.
Sample response body
{ "events": [ { "event_type": "member_join", "member_id": "dbmid:ijkl9012", "info_dict": { "initial_devices": "[]", "initial_apps": "[]" }, "ip_address": "192.0.2.0", "user_id": 12345678, "name": "Jenny", "country": "US", "event_type_description": "Joined the team", "event_category": "members", "time": "2014-10-01T17:23:05+00:00", "email": "jenny@example.com" }, { "event_type": "login_success", "member_id": "dbmid:efgh5678", "info_dict": null, "ip_address": "192.0.2.0", "user_id": 87654321, "name": "John", "country": "US", "event_type_description": "Signed in", "event_category": "logins", "time": "2014-10-03T01:16:32+00:00", "email": "john@example.com" }, ... ], "has_more": true, "cursor": "abcd1234efgh5678" }
cursor
, limit
, user
, or type
parameter.limit
are not provided when using a cursor
.member_id
that has never been on the team.start_ts
(occurs in the future).start_ts
and end_ts
combination (start_ts
> end_ts
).limit
is approximate. When one is specified, the endpoint may return as many as the larger of 2 * limit
and 100 events.cursor
and has_more
, indicating if there are more events in the log.cursor
is provided, only the limit
parameter may be (optionally) changed; all other parameters should be provided with their original values.user
parameter is included, events will only be returned where that user is the actor or a target user. Users can be specified using an member_id
, user_id
or email
. The value should be passed as a JSON dictionary specifying the chosen lookup method, e.g. {"email": "user@example.com"}
category
parameter is included, only events matching the given category
will be returned. Allowed category
values are: logins
, passwords
, apps
, members
, devices
, team_admin_actions
, and sharing
.name
, email
, and user
values for an event type, along with any entries in an event's info_dict
, reflect the state of those values at the time the event occurred and may not reflect the current state of the Dropbox for Business account.event_category |
event_type |
event_type_description |
---|---|---|
apps |
app_allow |
Authorized an application |
apps |
app_remove |
Removed an application |
apps |
team_app_allow |
Authorized a team application |
apps |
team_app_remove |
Removed a team application |
devices |
device_link |
Linked a device |
devices |
device_unlink |
Removed a device |
devices |
delete_on_unlink_success |
Successfully deleted files |
devices |
delete_on_unlink_fail |
Failed to delete some files |
members |
member_invite |
Invited a team member |
members |
member_join |
Joined the team |
members |
member_leave |
Removed a team member |
members |
domain_invites_email_existing_users |
Sent domain invites to existing domain accounts |
members |
domain_invites_request_to_join_team |
Requested to join the team |
members |
domain_invites_approve_request_to_join_team |
Approved a user request to join the team |
members |
domain_invites_decline_request_to_join_team |
Declined a user request to join the team |
passwords |
tfa_enable |
Enabled two-step verification |
passwords |
tfa_disable |
Disabled two-step verification |
passwords |
password_change |
Changed password |
passwords |
reset_password |
Reset password |
passwords |
reset_all_passwords |
Reset all passwords |
passwords |
add_tfa_backup_phone |
Added two-step verification backup phone |
passwords |
remove_tfa_backup_phone |
Removed two-step verification backup phone |
passwords |
edit_tfa_backup_phone |
Edited two-step verification backup phone |
passwords |
tfa_edit_authenticator |
Set two-step verification to use mobile app |
passwords |
tfa_edit_sms |
Set two-step verification to use SMS |
sharing |
shmodel_create |
Created a new link |
sharing |
shmodel_disable |
Removed a link |
sharing |
shmodel_visibility_public |
Made the contents of a link visible to anyone with the link |
sharing |
shmodel_visibility_team_only |
Made the contents of a link visible to team members only |
sharing |
shmodel_visibility_password |
Made the contents of a link password protected |
sharing |
shmodel_set_expiration |
Set the expiration date of a link |
sharing |
shmodel_remove_expiration |
Removed the expiration date of a link |
sharing |
shmodel_team_view |
Opened a link (team member) |
sharing |
shmodel_nonteam_view |
Opened a link (non-team member) |
sharing |
shmodel_team_download |
Downloaded the contents of a link (team member) |
sharing |
shmodel_nonteam_download |
Downloaded the contents of a link (non-team member) |
sharing |
shmodel_team_copy |
Copied the contents of a link to their Dropbox (team member) |
sharing |
shmodel_nonteam_copy |
Copied the contents of a link to their Dropbox (non-team member) |
sharing |
shmodel_app_create |
Created a link to a file via an API app |
sharing |
shmodel_team_share |
Shared a link with team members |
sharing |
shmodel_nonteam_share |
Shared a link with non-team members |
sharing |
shmodel_fb_share |
Shared a link with Facebook users |
sharing |
shmodel_group_share |
Shared a link with a group |
sharing |
sf_create |
Created a shared folder |
sharing |
sf_team_invite |
Invited team member(s) to a shared folder |
sharing |
sf_nonteam_invite |
Invited non-team member(s) to a shared folder |
sharing |
sf_fb_invite |
Invited Facebook user(s) to a shared folder |
sharing |
sf_add_group |
Added the team to a shared folder |
sharing |
sf_invite_group |
Invited a group to a shared folder |
sharing |
sf_team_uninvite |
Uninvited a team member from a shared folder |
sharing |
sf_nonteam_uninvite |
Uninvited a non-team member from a shared folder |
sharing |
sf_fb_uninvite |
Uninvited a Facebook user from a shared folder |
sharing |
sf_team_decline |
Declined an invitation to a shared folder (team member) |
sharing |
sf_nonteam_decline |
Declined an invitation to a shared folder (non-team member) |
sharing |
sf_team_join |
Joined a shared folder (team member) |
sharing |
sf_nonteam_join |
Joined a shared folder (non-team member) |
sharing |
sf_team_kick |
Removed a team member from a shared folder |
sharing |
sf_nonteam_kick |
Removed a non-team member from a shared folder |
sharing |
sf_team_invite_change_role |
Changed a team member's role in a shared folder |
sharing |
sf_nonteam_invite_change_role |
Changed a non-team member's role in a shared folder |
sharing |
sf_fb_invite_change_role |
Changed a Facebook user's role in a shared folder |
sharing |
sf_team_member_change_role |
Changed a team member's role in a shared folder |
sharing |
sf_nonteam_member_change_role |
Changed a non-team member's role in a shared folder |
sharing |
sf_team_leave |
Left a shared folder (team member) |
sharing |
sf_nonteam_leave |
Left a shared folder (non-team member) |
sharing |
sf_team_transfer |
Transferred folder ownership to a team member |
sharing |
sf_nonteam_transfer |
Transferred folder ownership to a non-team member |
sharing |
sf_unshare |
Unshared a folder |
sharing |
sf_request_access |
Requested access to a shared folder |
sharing |
sf_team_grant_access |
Added requesting user to a shared folder (team member) |
sharing |
sf_nonteam_grant_access |
Added requesting user to a shared folder (non-team meber) |
sharing |
sf_allow_invite_team |
Prevented non-team members from being invited to a folder |
sharing |
sf_allow_invite_anyone |
Allowed non-team members to be invited to a folder |
sharing |
sf_allow_inviter_owner |
Prevented anyone but the owner from inviting people to a folder |
sharing |
sf_allow_inviter_team |
Allowed any team member to invite people to a folder |
sharing |
collection_share |
Shared an album |
sharing |
sf_allow_non_members_to_view_shared_links |
Allowed non collaborators to view links to files in a shared folder |
sharing |
sf_block_non_members_from_viewing_shared_links |
Blocked non collaborators from viewing links to files in a shared folder |
team_admin_actions |
sf_external_accept_allow |
Admin settings: team members can join shared folders outside the team |
team_admin_actions |
sf_external_accept_forbid |
Admin settings: team members can't join shared folders outside the team |
team_admin_actions |
sf_external_invite_allow |
Admin settings: folders can be shared outside the team |
team_admin_actions |
sf_external_invite_warn |
Admin settings: team members see a warning before sharing folders outside the team |
team_admin_actions |
sf_external_invite_forbid |
Admin settings: folders can't be shared outside the team |
team_admin_actions |
shmodel_external_view_allow |
Admin settings: links can be viewed outside the team |
team_admin_actions |
shmodel_external_view_default_private |
Admin settings: new links can't be viewed outside the team by default |
team_admin_actions |
shmodel_external_view_forbid |
Admin settings: links can't be viewed outside the team |
team_admin_actions |
force_tfa_enable |
Prevented disabling two-step verification |
team_admin_actions |
force_tfa_disable |
Allowed disabling two-step verification |
team_admin_actions |
disable_sso |
Disabled single sign-on |
team_admin_actions |
allow_sso |
Allowed use of single sign-on |
team_admin_actions |
require_sso |
Required use of single sign-on |
team_admin_actions |
change_sso_url |
Changed single sign-on url |
team_admin_actions |
remove_sso_url |
Removed single sign-on url |
team_admin_actions |
update_sso_cert |
Updated single sign-on certificate |
team_admin_actions |
make_admin |
Gave admin status |
team_admin_actions |
remove_admin |
Removed admin status |
team_admin_actions |
team_name_change |
Changed team name |
team_admin_actions |
csv_download |
Created a team activity report |
team_admin_actions |
twoaccount_desktop_enabled |
Enabled multiple accounts for desktop computers |
team_admin_actions |
twoaccount_desktop_disabled |
Disabled multiple accounts for desktop computers |
team_admin_actions |
groups_all_users_can_create |
Allowed all team members to create groups |
team_admin_actions |
groups_only_admins_can_create |
Allowed only team admins to create groups |
team_admin_actions |
domain_invites_set_invite_new_user_pref_to_yes |
Turned on 'Automatically invite new users' |
team_admin_actions |
domain_invites_set_invite_new_user_pref_to_no |
Turned off 'Automatically invite new users' |
team_admin_actions |
enabled_domain_invites |
Enabled sending domain invites |
team_admin_actions |
disabled_domain_invites |
Disabled sending domain invites |
team_admin_actions |
transfer_account_contents |
Transferred account contents |
team_admin_actions |
permanently_delete_account_contents |
Deleted account contents |
team_admin_actions |
change_team_member_email |
Changed a team member's email address |