Files
openclaw-backups/skills/api-gateway/references/dropbox-business.md

565 lines
12 KiB
Markdown

# Dropbox Business Routing Reference
**App name:** `dropbox-business`
**Base URL proxied:** `api.dropboxapi.com`
## API Path Pattern
```
/dropbox-business/2/{endpoint}
```
**Note:** Dropbox Business API uses POST for almost all endpoints, including read operations. Request bodies should be JSON (use `null` for endpoints with no parameters).
## Team Information
### Get Team Info
```bash
POST /dropbox-business/2/team/get_info
Content-Type: application/json
null
```
### Get Team Features
```bash
POST /dropbox-business/2/team/features/get_values
Content-Type: application/json
{
"features": [
{".tag": "upload_api_rate_limit"},
{".tag": "has_team_shared_dropbox"},
{".tag": "has_team_file_events"},
{".tag": "has_team_selective_sync"}
]
}
```
### Get Authenticated Admin
```bash
POST /dropbox-business/2/team/token/get_authenticated_admin
Content-Type: application/json
null
```
## Team Members
### List Members
```bash
POST /dropbox-business/2/team/members/list
Content-Type: application/json
{"limit": 100}
```
### List Members (V2) - Recommended
```bash
POST /dropbox-business/2/team/members/list_v2
Content-Type: application/json
{"limit": 100, "include_removed": false}
```
### Continue Listing Members
```bash
POST /dropbox-business/2/team/members/list/continue
Content-Type: application/json
{"cursor": "..."}
```
### Get Member Info
```bash
POST /dropbox-business/2/team/members/get_info
Content-Type: application/json
{"members": [{".tag": "email", "email": "user@company.com"}]}
```
### Get Member Info (V2) - Recommended
```bash
POST /dropbox-business/2/team/members/get_info_v2
Content-Type: application/json
{"members": [{".tag": "email", "email": "user@company.com"}]}
```
### Add Member
```bash
POST /dropbox-business/2/team/members/add
Content-Type: application/json
{
"new_members": [{
"member_email": "user@company.com",
"member_given_name": "John",
"member_surname": "Doe",
"send_welcome_email": true
}]
}
```
### Suspend Member
```bash
POST /dropbox-business/2/team/members/suspend
Content-Type: application/json
{"user": {".tag": "email", "email": "user@company.com"}, "wipe_data": false}
```
### Unsuspend Member
```bash
POST /dropbox-business/2/team/members/unsuspend
Content-Type: application/json
{"user": {".tag": "email", "email": "user@company.com"}}
```
### Remove Member
```bash
POST /dropbox-business/2/team/members/remove
Content-Type: application/json
{
"user": {".tag": "email", "email": "user@company.com"},
"wipe_data": true,
"transfer_dest_id": {".tag": "email", "email": "admin@company.com"},
"transfer_admin_id": {".tag": "email", "email": "admin@company.com"},
"keep_account": false
}
```
### Send Welcome Email
```bash
POST /dropbox-business/2/team/members/send_welcome_email
Content-Type: application/json
{".tag": "email", "email": "pending@company.com"}
```
### Set Member Profile (V2)
```bash
POST /dropbox-business/2/team/members/set_profile_v2
Content-Type: application/json
{
"user": {".tag": "team_member_id", "team_member_id": "dbmid:AAA..."},
"new_given_name": "John",
"new_surname": "Smith"
}
```
### Set Admin Permissions (V2)
```bash
POST /dropbox-business/2/team/members/set_admin_permissions_v2
Content-Type: application/json
{
"user": {".tag": "email", "email": "user@company.com"},
"new_roles": ["pid_dbtmr:..."]
}
```
### Delete Profile Photo (V2)
```bash
POST /dropbox-business/2/team/members/delete_profile_photo_v2
Content-Type: application/json
{"user": {".tag": "team_member_id", "team_member_id": "dbmid:AAA..."}}
```
## Secondary Emails
### Add Secondary Emails
```bash
POST /dropbox-business/2/team/members/secondary_emails/add
Content-Type: application/json
{
"new_secondary_emails": [{
"user": {".tag": "email", "email": "user@company.com"},
"secondary_emails": ["alias@company.com"]
}]
}
```
### Delete Secondary Emails
```bash
POST /dropbox-business/2/team/members/secondary_emails/delete
Content-Type: application/json
{
"emails_to_delete": [{
"user": {".tag": "email", "email": "user@company.com"},
"secondary_emails": ["alias@company.com"]
}]
}
```
### Resend Verification Emails
```bash
POST /dropbox-business/2/team/members/secondary_emails/resend_verification_emails
Content-Type: application/json
{
"emails_to_resend": [{
"user": {".tag": "email", "email": "user@company.com"},
"secondary_emails": ["alias@company.com"]
}]
}
```
## Groups
### List Groups
```bash
POST /dropbox-business/2/team/groups/list
Content-Type: application/json
{"limit": 100}
```
### Get Group Info
```bash
POST /dropbox-business/2/team/groups/get_info
Content-Type: application/json
{".tag": "group_ids", "group_ids": ["g:1d31f47b..."]}
```
### List Group Members
```bash
POST /dropbox-business/2/team/groups/members/list
Content-Type: application/json
{
"group": {".tag": "group_id", "group_id": "g:1d31f47b..."},
"limit": 100
}
```
### Create Group
```bash
POST /dropbox-business/2/team/groups/create
Content-Type: application/json
{
"group_name": "Team Name",
"group_management_type": {".tag": "company_managed"}
}
```
### Update Group
```bash
POST /dropbox-business/2/team/groups/update
Content-Type: application/json
{
"group": {".tag": "group_id", "group_id": "g:1d31f47b..."},
"new_group_name": "New Name"
}
```
### Add Members to Group
```bash
POST /dropbox-business/2/team/groups/members/add
Content-Type: application/json
{
"group": {".tag": "group_id", "group_id": "g:1d31f47b..."},
"members": [{"user": {".tag": "email", "email": "user@company.com"}, "access_type": {".tag": "member"}}],
"return_members": true
}
```
### Remove Members from Group
```bash
POST /dropbox-business/2/team/groups/members/remove
Content-Type: application/json
{
"group": {".tag": "group_id", "group_id": "g:1d31f47b..."},
"users": [{".tag": "email", "email": "user@company.com"}],
"return_members": true
}
```
### Delete Group
```bash
POST /dropbox-business/2/team/groups/delete
Content-Type: application/json
{".tag": "group_id", "group_id": "g:1d31f47b..."}
```
### Check Group Job Status
```bash
POST /dropbox-business/2/team/groups/job_status/get
Content-Type: application/json
{"async_job_id": "dbjid:..."}
```
## Team Folders
### List Team Folders
```bash
POST /dropbox-business/2/team/team_folder/list
Content-Type: application/json
{"limit": 100}
```
### Get Team Folder Info
```bash
POST /dropbox-business/2/team/team_folder/get_info
Content-Type: application/json
{"team_folder_ids": ["13646676387"]}
```
### Create Team Folder
```bash
POST /dropbox-business/2/team/team_folder/create
Content-Type: application/json
{"name": "Folder Name", "sync_setting": {".tag": "default"}}
```
### Rename Team Folder
```bash
POST /dropbox-business/2/team/team_folder/rename
Content-Type: application/json
{"team_folder_id": "13646676387", "name": "New Name"}
```
### Archive Team Folder
```bash
POST /dropbox-business/2/team/team_folder/archive
Content-Type: application/json
{"team_folder_id": "13646676387", "force_async_off": false}
```
### Activate Team Folder
```bash
POST /dropbox-business/2/team/team_folder/activate
Content-Type: application/json
{"team_folder_id": "13646676387"}
```
### Update Sync Settings
```bash
POST /dropbox-business/2/team/team_folder/update_sync_settings
Content-Type: application/json
{"team_folder_id": "13646676387", "sync_setting": {".tag": "default"}}
```
### Permanently Delete Team Folder
```bash
POST /dropbox-business/2/team/team_folder/permanently_delete
Content-Type: application/json
{"team_folder_id": "13646676387"}
```
## Namespaces
### List Namespaces
```bash
POST /dropbox-business/2/team/namespaces/list
Content-Type: application/json
{"limit": 100}
```
## Devices
### List Members' Devices
```bash
POST /dropbox-business/2/team/devices/list_members_devices
Content-Type: application/json
{}
```
### List Member Devices
```bash
POST /dropbox-business/2/team/devices/list_member_devices
Content-Type: application/json
{"team_member_id": "dbmid:AAA..."}
```
### Revoke Device Session
```bash
POST /dropbox-business/2/team/devices/revoke_device_session
Content-Type: application/json
{".tag": "web_session", "session_id": "dbwsid:...", "team_member_id": "dbmid:AAA..."}
```
### Revoke Device Sessions (Batch)
```bash
POST /dropbox-business/2/team/devices/revoke_device_session_batch
Content-Type: application/json
{
"revoke_devices": [
{".tag": "web_session", "session_id": "dbwsid:...", "team_member_id": "dbmid:AAA..."}
]
}
```
## Linked Apps
### List Members' Linked Apps
```bash
POST /dropbox-business/2/team/linked_apps/list_members_linked_apps
Content-Type: application/json
{}
```
### List Team Linked Apps
```bash
POST /dropbox-business/2/team/linked_apps/list_team_linked_apps
Content-Type: application/json
{}
```
### Revoke Linked App
```bash
POST /dropbox-business/2/team/linked_apps/revoke_linked_app
Content-Type: application/json
{"app_id": "...", "team_member_id": "dbmid:AAA..."}
```
## Member Space Limits
### Get Custom Quotas
```bash
POST /dropbox-business/2/team/member_space_limits/get_custom_quota
Content-Type: application/json
{"users": [{".tag": "email", "email": "user@company.com"}]}
```
### Set Custom Quotas
```bash
POST /dropbox-business/2/team/member_space_limits/set_custom_quota
Content-Type: application/json
{
"users_and_quotas": [{
"user": {".tag": "email", "email": "user@company.com"},
"quota_gb": 100
}]
}
```
### List Excluded Users
```bash
POST /dropbox-business/2/team/member_space_limits/excluded_users/list
Content-Type: application/json
{}
```
## Sharing Allowlist
### List Sharing Allowlist
```bash
POST /dropbox-business/2/team/sharing_allowlist/list
Content-Type: application/json
{}
```
### Add to Sharing Allowlist
```bash
POST /dropbox-business/2/team/sharing_allowlist/add
Content-Type: application/json
{"domains": ["partner.com"], "emails": ["external@client.com"]}
```
## Audit Log (Team Log)
### Get Events
```bash
POST /dropbox-business/2/team_log/get_events
Content-Type: application/json
{"limit": 100, "category": {".tag": "members"}}
```
### Continue Getting Events
```bash
POST /dropbox-business/2/team_log/get_events/continue
Content-Type: application/json
{"cursor": "..."}
```
## Member File Access
Use the `Dropbox-API-Select-User` header with a team_member_id to access files on behalf of a member.
### List Member's Files
```bash
POST /dropbox-business/2/files/list_folder
Content-Type: application/json
Dropbox-API-Select-User: dbmid:AAA...
{"path": ""}
```
### List Member's Shared Folders
```bash
POST /dropbox-business/2/sharing/list_folders
Content-Type: application/json
Dropbox-API-Select-User: dbmid:AAA...
{}
```
## Notes
- All endpoints use POST method (even read operations)
- Request bodies must be JSON (use `null` for no-parameter endpoints)
- Many fields use `.tag` format for type indication
- Pagination uses `cursor` and `has_more` fields
- Use V2 endpoints for enhanced responses with roles info
- `Dropbox-API-Select-User` header enables member file access
- System-managed groups cannot be modified
- Reports endpoints (`team/reports/*`) are deprecated
## OAuth Scopes
| Scope | Usage |
|-------|-------|
| `team_info.read` | Team info, features |
| `members.read` | List/get members |
| `members.write` | Add/modify members |
| `members.delete` | Remove members |
| `groups.read` | List/get groups |
| `groups.write` | Create/modify groups |
| `sessions.list` | List devices/sessions |
| `sessions.modify` | Revoke sessions |
| `events.read` | Team audit log |
| `team_data.member` | Select-User header |
## Resources
- [Dropbox Business API Documentation](https://www.dropbox.com/developers/documentation/http/teams)
- [Team Administration Guide](https://developers.dropbox.com/dbx-team-administration-guide)
- [Team Files Guide](https://developers.dropbox.com/dbx-team-files-guide)