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 identifiernum_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 teamhttps://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".given_name and surname fields using the set_profile endpoint.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/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 provided when using a cursor.member_id that isn't on the team.start_ts (occurs in the future).start_ts and end_ts combination (start_ts > end_ts).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 will be based on the cursor settings.user parameter is included, events will only be returned where that user is the actor. 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_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 |