Dropbox
Required
Fields required for a valid configuration.
| Path | Type | Required | Description | Default | Constraints |
|---|---|---|---|---|---|
| required | object | Yes | — | — | — |
Masked
Sensitive fields under(secrets/credentials).
| Path | Type | Required | Description | Default | Constraints |
|---|---|---|---|---|---|
| masked | object | Yes | — | — | — |
Optional
Optional configuration fields.
| Path | Type | Required | Description | Default | Constraints |
|---|---|---|---|---|---|
| optional | object | No | — | — | no extra properties |
| optional.connection | object | No | Network and pagination controls for Dropbox API requests. | — | no extra properties |
| optional.connection.max_entries_per_page | integer | No | Maximum entries requested per list_folder call | 500 | min 1, max 2000 |
| optional.connection.max_object_bytes | integer | No | Maximum bytes downloaded per file for MIME detection and text extraction | 5242880 | min 1024, max 52428800 |
| optional.connection.max_retries | integer | No | Maximum retries on transient Dropbox errors (5xx and rate limits) | 4 | min 0, max 10 |
| optional.connection.request_timeout_seconds | number | No | Network timeout in seconds for list/download operations | 60 | min 1, max 300 |
| optional.scope | object | No | Folder selection and content filtering. | — | no extra properties |
| optional.scope.exclude_extensions | array | No | Optional extension denylist | — | — |
| optional.scope.exclude_extensions[] | string | No | — | — | — |
| optional.scope.export_non_downloadable | boolean | No | Export files that have no direct download (Dropbox Paper docs) to Markdown so their text can be scanned | true | — |
| optional.scope.folder_path | string | No | Folder to scan, for example /Finance/Exports. Leave empty to scan the whole account root. | — | — |
| optional.scope.include_content_preview | boolean | No | Download file bytes to infer MIME and extract detector-ready text previews | true | — |
| optional.scope.include_empty_objects | boolean | No | Include zero-byte files in extraction results | false | — |
| optional.scope.include_extensions | array | No | Optional extension allowlist (for example, .pdf, .csv, .docx) | — | — |
| optional.scope.include_extensions[] | string | No | — | — | — |
| optional.scope.include_mounted_folders | boolean | No | Include shared folders mounted into the account | true | — |
| optional.scope.include_object_metadata | boolean | No | Attach Dropbox metadata (content hash, size, revision, timestamps) to asset checksums | true | — |
| optional.scope.recursive | boolean | No | Descend into subfolders of the selected folder | true | — |
| optional.team | object | No | Dropbox Business team scanning. The credential shape is the same as for an individual account, but the Dropbox app must be created with a team access type ('Team member file access' plus 'Team information'). Leave disabled for individual accounts. | — | no extra properties |
| optional.team.as_admin | boolean | No | Traverse team-owned folders with a team administrator's privileges instead of acting as each member. Reaches content a member cannot list themselves and does not mark files as viewed by them. Requires at least one team admin on the team. | false | — |
| optional.team.enabled | boolean | No | Scan the whole Dropbox Business team instead of a single account | false | — |
| optional.team.include_member_folders | boolean | No | Scan each selected member's own Dropbox folder | true | — |
| optional.team.include_suspended_members | boolean | No | Also scan members whose account is suspended | false | — |
| optional.team.include_team_space | boolean | No | Scan the shared team folders in the team space | true | — |
| optional.team.member_emails | array | No | Only scan these team members (empty = every active member) | — | — |
| optional.team.member_emails[] | string | No | — | — | — |
Extracted Metadata
File
| Field | Type | Required | Description |
|---|---|---|---|
| size_bytes | integer | Yes | Raw byte size of the content |
| mime_type | string | Yes | Resolved MIME type |
| parse_error | string | No | Set when content extraction failed |
| image_width | integer | No | Width in pixels |
| image_height | integer | No | Height in pixels |
| page_count | integer | No | Number of pages (pdf) |
| paragraph_count | integer | No | Number of paragraphs (docx) |
| table_count | integer | No | Number of tables (docx) |
| row_count | integer | No | Number of data rows |
| columns | object[] | No | Columns as {name, type} objects (type may be empty for csv/xlsx) |
| encoding | string | No | Detected character encoding |
| json_root_type | string | No | Root JSON type: object, array, or scalar |
| top_level_keys | integer | No | Number of top-level keys when the root is an object |
| array_length | integer | No | Length when the root is an array |
| provider | string | Yes | Storage provider label |
| object_key | string | Yes | Display path of the file inside the Dropbox account |
| etag | string | No | Dropbox content hash (changes only when the bytes change) |
| file_id | string | Yes | Immutable Dropbox file ID (id:...), stable across moves and renames |
| rev | string | No | Dropbox revision identifier of the scanned version |
| web_url | string | No | Browser-accessible Dropbox preview URL, when the API returns one |
| team_member_email | string | No | Email of the Dropbox Business team member whose namespace the file was scanned from |
| team_member_id | string | No | Dropbox Business team member ID used to reach the file |
| team_namespace | string | No | Namespace the file lives in: account, member_folder or team_folder |
| exported_as | string | No | Export MIME type used for non-downloadable files such as Paper docs |
| source_hash | string | No | Hash of the parent asset (embedded images and archive members only) |
| location | string | No | Location within the parent (embedded image location or archive member path) |
Image
| Field | Type | Required | Description |
|---|---|---|---|
| size_bytes | integer | Yes | Raw byte size of the content |
| mime_type | string | Yes | Resolved MIME type |
| parse_error | string | No | Set when content extraction failed |
| image_width | integer | No | Width in pixels |
| image_height | integer | No | Height in pixels |
| provider | string | No | Storage provider label |
| object_key | string | No | Display path of the file inside the Dropbox account |
| etag | string | No | Dropbox content hash (changes only when the bytes change) |
| file_id | string | No | Immutable Dropbox file ID (id:...), stable across moves and renames |
| rev | string | No | Dropbox revision identifier of the scanned version |
| web_url | string | No | Browser-accessible Dropbox preview URL, when the API returns one |
| team_member_email | string | No | Email of the Dropbox Business team member whose namespace the file was scanned from |
| team_member_id | string | No | Dropbox Business team member ID used to reach the file |
| team_namespace | string | No | Namespace the file lives in: account, member_folder or team_folder |
| source_hash | string | No | Hash of the parent asset (embedded images and archive members only) |
| location | string | No | Location within the parent (embedded image location or archive member path) |
Audio
| Field | Type | Required | Description |
|---|---|---|---|
| size_bytes | integer | Yes | Raw byte size of the content |
| mime_type | string | Yes | Resolved MIME type |
| parse_error | string | No | Set when content extraction failed |
| provider | string | Yes | Storage provider label |
| object_key | string | Yes | Display path of the file inside the Dropbox account |
| file_id | string | No | Immutable Dropbox file ID (id:...), stable across moves and renames |
| rev | string | No | Dropbox revision identifier of the scanned version |
| web_url | string | No | Browser-accessible Dropbox preview URL, when the API returns one |
| team_member_email | string | No | Email of the Dropbox Business team member whose namespace the file was scanned from |
| team_member_id | string | No | Dropbox Business team member ID used to reach the file |
| team_namespace | string | No | Namespace the file lives in: account, member_folder or team_folder |
| source_hash | string | No | Hash of the parent asset (embedded images and archive members only) |
| location | string | No | Location within the parent (embedded image location or archive member path) |
Video
| Field | Type | Required | Description |
|---|---|---|---|
| size_bytes | integer | Yes | Raw byte size of the content |
| mime_type | string | Yes | Resolved MIME type |
| parse_error | string | No | Set when content extraction failed |
| provider | string | Yes | Storage provider label |
| object_key | string | Yes | Display path of the file inside the Dropbox account |
| file_id | string | No | Immutable Dropbox file ID (id:...), stable across moves and renames |
| rev | string | No | Dropbox revision identifier of the scanned version |
| web_url | string | No | Browser-accessible Dropbox preview URL, when the API returns one |
| team_member_email | string | No | Email of the Dropbox Business team member whose namespace the file was scanned from |
| team_member_id | string | No | Dropbox Business team member ID used to reach the file |
| team_namespace | string | No | Namespace the file lives in: account, member_folder or team_folder |
| source_hash | string | No | Hash of the parent asset (embedded images and archive members only) |
| location | string | No | Location within the parent (embedded image location or archive member path) |
Archive
| Field | Type | Required | Description |
|---|---|---|---|
| size_bytes | integer | Yes | Raw byte size of the content |
| mime_type | string | Yes | Resolved MIME type |
| parse_error | string | No | Set when content extraction failed |
| provider | string | Yes | Storage provider label |
| object_key | string | Yes | Display path of the file inside the Dropbox account |
| etag | string | No | Dropbox content hash (changes only when the bytes change) |
| file_id | string | No | Immutable Dropbox file ID (id:...), stable across moves and renames |
| rev | string | No | Dropbox revision identifier of the scanned version |
| web_url | string | No | Browser-accessible Dropbox preview URL, when the API returns one |
| team_member_email | string | No | Email of the Dropbox Business team member whose namespace the file was scanned from |
| team_member_id | string | No | Dropbox Business team member ID used to reach the file |
| team_namespace | string | No | Namespace the file lives in: account, member_folder or team_folder |
| source_hash | string | No | Hash of the parent asset (embedded images and archive members only) |
| location | string | No | Location within the parent (embedded image location or archive member path) |
Examples
Whole-account incremental scan
Walk every file in the Dropbox account with an App Console access token, ingesting a new slice on each run
Config Payload
{
"type": "DROPBOX",
"required": {
"auth_method": "access_token"
},
"masked": {
"access_token": "sl.your-dropbox-access-token"
},
"optional": {
"scope": {
"include_content_preview": true
}
},
"sampling": {
"strategy": "AUTOMATIC",
"rows_per_page": 100
}
}Schedule
{
"enabled": true,
"preset": "nightly",
"cron": "23 1 * * *",
"timezone": "UTC"
}Finance folder compliance scan
Scan one folder tree for PII and secrets using OAuth refresh-token credentials that never expire
Config Payload
{
"type": "DROPBOX",
"required": {
"auth_method": "oauth",
"app_key": "your-dropbox-app-key"
},
"masked": {
"app_secret": "your-dropbox-app-secret",
"refresh_token": "your-dropbox-refresh-token"
},
"optional": {
"scope": {
"folder_path": "/Finance/Exports",
"recursive": true,
"include_extensions": [
".pdf",
".docx",
".xlsx",
".csv"
],
"include_content_preview": true
},
"connection": {
"max_object_bytes": 10485760
}
},
"sampling": {
"strategy": "ALL"
},
"detectors": [
{
"type": "PII",
"enabled": true
},
{
"type": "SECRETS",
"enabled": true
}
]
}Schedule
{
"enabled": true,
"preset": "weekday_morning",
"cron": "35 7 * * 1-5",
"timezone": "UTC"
}Dropbox Business team-wide scan
Scan every active member's folder plus the shared team space with a team-scoped token, using admin privileges
Config Payload
{
"type": "DROPBOX",
"required": {
"auth_method": "oauth",
"app_key": "your-dropbox-team-app-key"
},
"masked": {
"app_secret": "your-dropbox-team-app-secret",
"refresh_token": "your-dropbox-team-refresh-token"
},
"optional": {
"team": {
"enabled": true,
"as_admin": true,
"include_member_folders": true,
"include_team_space": true
},
"scope": {
"include_content_preview": true
}
},
"sampling": {
"strategy": "AUTOMATIC",
"rows_per_page": 200
},
"detectors": [
{
"type": "PII",
"enabled": true
},
{
"type": "SECRETS",
"enabled": true
}
]
}Schedule
{
"enabled": true,
"preset": "weekly",
"cron": "40 2 * * 0",
"timezone": "UTC"
}Selected team members onboarding review
Scan only two named Dropbox Business members' own folders, acting as each member
Config Payload
{
"type": "DROPBOX",
"required": {
"auth_method": "access_token"
},
"masked": {
"access_token": "sl.your-dropbox-team-access-token"
},
"optional": {
"team": {
"enabled": true,
"member_emails": [
"[email protected]",
"[email protected]"
],
"include_member_folders": true,
"include_team_space": false
}
},
"sampling": {
"strategy": "ALL"
},
"detectors": [
{
"type": "PII",
"enabled": true
}
]
}Recently changed files audit
Review only the most recently modified files across the account, skipping images and archives
Config Payload
{
"type": "DROPBOX",
"required": {
"auth_method": "oauth",
"app_key": "your-dropbox-app-key"
},
"masked": {
"app_secret": "your-dropbox-app-secret",
"refresh_token": "your-dropbox-refresh-token"
},
"optional": {
"scope": {
"folder_path": "/Shared/Team",
"exclude_extensions": [
".png",
".jpg",
".zip"
],
"include_mounted_folders": true,
"export_non_downloadable": true
}
},
"sampling": {
"strategy": "LATEST",
"rows_per_page": 50
},
"detectors": [
{
"type": "PII",
"enabled": true
}
]
}Schedule
{
"enabled": true,
"preset": "daily",
"cron": "10 9 * * *",
"timezone": "UTC"
}