#
Dropbox
Monitor your Dropbox files, folders, shared content, and team activity with AI-powered insights into your cloud storage.
#
Overview
Connect Weavestream to Dropbox to monitor:
- 📁 Files & Folders - Your complete Dropbox file structure
- 🔄 Recent Changes - Files added, modified, or deleted
- 👥 Shared Content - Files and folders shared with you or by you
- 📊 File Requests - Active file request links
- 🔗 Shared Links - All your shared file/folder links
- 📦 Team Activity - For Dropbox Business accounts
Estimated Setup Time: 10 minutes
#
Prerequisites
- Dropbox account (Personal or Business)
- Admin access to create apps (for Business accounts)
- Weavestream installed on your Mac
#
Part 1: Create Dropbox App & Get OAuth Credentials
#
Step 1: Go to Dropbox App Console
- Go to https://www.dropbox.com/developers/apps
- Sign in with your Dropbox account
- Click "Create app"
#
Step 2: Configure Your App
Choose an API:
- Select "Scoped access" (recommended - more granular permissions)
Choose the type of access:
- Select "Full Dropbox" (access to all files/folders)
- Or "App folder" if you only want to monitor specific folder
Name your app:
Weavestream Monitor
(Must be unique across all Dropbox apps)
Click "Create app"
#
Step 3: Configure OAuth Settings
On your app's settings page:
Redirect URIs: Add this URI:
http://localhost:8080/callback
Click "Add"
OAuth 2:
- Make sure "Allow implicit grant" is OFF
- Set "Token access type" to "Offline" (enables refresh tokens)
#
Step 4: Set Permissions
Click on the "Permissions" tab.
Select these scopes (minimum required):
- ✅ account_info.read - Read account information
- ✅ files.metadata.read - View file/folder metadata
- ✅ files.content.read - View file/folder content
- ✅ sharing.read - View shared folders/files
- ✅ file_requests.read - View file requests
Optional (for advanced features):
- ✅ contacts.read - View shared folder members
- ✅ team_info.read - View team information (Business only)
- ✅ team_data.member - View team member info (Business only)
Click "Submit" to save permissions
#
Step 5: Get Your Credentials
Go back to the "Settings" tab.
📋 App key (Client ID)
- Example:
abc123xyz789 - Copy this value
📋 App secret (Client Secret)
- Click "Show" to reveal
- Example:
secret123abc456 - Copy this value
Save these credentials securely - you'll need them for Weavestream.
#
Part 2: Configure Weavestream
#
Step 1: Add Dropbox as a Source
- Open Weavestream
- Click the "+" button in the sidebar
- Select "Add Source"
- Fill in the source details:
- Name:
Dropbox - Base URL:
https://api.dropboxapi.com/2 - Auth Type:
OAuth - OAuth Flow Type:
Authorization Code - Authorization URL:
https://www.dropbox.com/oauth2/authorize - Token URL:
https://api.dropbox.com/oauth2/token - Client ID: Paste your App key
- Client Secret: Paste your App secret
- Scopes:
account_info.read files.metadata.read files.content.read sharing.read file_requests.read - Additional OAuth Parameters:
- Parameter:
token_access_type - Value:
offline
- Parameter:
- Redirect Port:
8080 - Use Basic Auth: Yes (checked)
- Custom Headers:
- Header Name:
Content-Type - Header Value:
application/json
- Header Name:
- Icon: Select
icloud.and.arrow.downor customdropboxicon if available - Color: Choose your preference (suggested:
#0061FF- Dropbox blue, or#5856D6- purple) - Refresh Interval:
60minutes (Dropbox doesn't change constantly)
- Name:
- Click "Add" or "Save"
- OAuth Authorization Flow:
- A browser window will open
- Sign into Dropbox if prompted
- Click "Allow" to grant access
- Browser will redirect back to Weavestream
- You should see "Authorization successful"
#
Step 2: Add Endpoints
Now we'll add endpoints to monitor different aspects of your Dropbox.
#
Endpoint 1: List All Files & Folders
Get your complete Dropbox file structure.
Configuration:
- Name:
All Files & Folders - Path:
/files/list_folder - Method:
POST
Body Parameters (JSON):
{
"path": "",
"recursive": true,
"include_deleted": false,
"include_mounted_folders": true,
"limit": 2000
}
In Weavestream:
- Body Params:
path: `` (empty string = root)limit:2000(max per request)
- Body Params (Boolean):
recursive:true(traverse all subfolders)include_deleted:falseinclude_mounted_folders:true
Field Mapping:
- Array Path:
entries - ID Field:
id - Title Field:
name - Date Field:
server_modified(orclient_modified) - Summary Fields:
.tag(file or folder),path_display,size - Status Field: (none)
Retention Mode: Keep All (preserve file history)
Note: Dropbox API has pagination via cursor. Weavestream should handle this automatically.
#
Endpoint 2: Recent Changes (Last 30 Days)
Track files modified in the last 30 days.
Configuration:
- Name:
Recent Changes - Path:
/files/list_folder - Method:
POST
Body Parameters:
{
"path": "",
"recursive": true,
"include_deleted": false,
"limit": 2000
}
Then create a Smart Filter:
- Field:
server_modified - Operator:
in last - Value:
30 days
Alternative: Use /files/list_revisions endpoint for specific file history
#
Endpoint 3: Shared Folders
Get all folders shared with you or by you.
Configuration:
- Name:
Shared Folders - Path:
/sharing/list_folders - Method:
POST
Body Parameters:
{
"limit": 1000,
"actions": []
}
Field Mapping:
- Array Path:
entries - ID Field:
shared_folder_id - Title Field:
name - Date Field:
time_invited - Summary Fields:
policy.acl_update_policy,policy.shared_link_policy,path_lower - Status Field:
access_type- Map
owner→ok - Map
editor→info - Map
viewer→warning
- Map
Retention Mode: Keep All
#
Endpoint 4: Shared Files
Get all individual files you've shared.
Configuration:
- Name:
Shared Files - Path:
/sharing/list_shared_links - Method:
POST
Body Parameters:
{
"path": "",
"direct_only": false
}
Field Mapping:
- Array Path:
links - ID Field:
id - Title Field:
name - Date Field:
client_modified - Summary Fields:
url,link_permissions.resolved_visibility,path_lower - Status Field: (none)
Retention Mode: Keep All
#
Endpoint 5: File Requests
Monitor active file request links (where others can upload to your Dropbox).
Configuration:
- Name:
File Requests - Path:
/file_requests/list_v2 - Method:
POST
Body Parameters:
{
"limit": 1000
}
Field Mapping:
- Array Path:
file_requests - ID Field:
id - Title Field:
title - Date Field:
created - Summary Fields:
url,destination,is_open - Status Field:
is_open- Map
true→ok - Map
false→info
- Map
Retention Mode: Keep All
#
Endpoint 6: Recently Deleted Files
Track files deleted in the last 30 days.
Configuration:
- Name:
Recently Deleted - Path:
/files/list_folder - Method:
POST
Body Parameters:
{
"path": "",
"recursive": true,
"include_deleted": true,
"limit": 2000
}
Then create a Smart Filter:
- Field:
.tag - Operator:
equals - Value:
deleted
Alternative Approach: Use the Get Deleted Files endpoint:
- Path:
/files/list_folder/get_latest_cursorthen/files/list_folder/continue - More complex but gives you chronological deletion history
#
Endpoint 7: Search Files
Search your entire Dropbox for specific files.
Configuration:
- Name:
Search - [Search Term] - Path:
/files/search_v2 - Method:
POST
Body Parameters:
{
"query": "contract",
"options": {
"path": "",
"max_results": 100,
"file_status": "active",
"filename_only": false
}
}
Field Mapping:
- Array Path:
matches - ID Field:
metadata.metadata.id - Title Field:
metadata.metadata.name - Date Field:
metadata.metadata.server_modified - Summary Fields:
metadata.metadata.path_display
Use Case: Create separate endpoints for important search terms (e.g., "invoices", "contracts", "reports")
#
Endpoint 8: Specific Folder Contents
Monitor a specific folder (e.g., "Documents" or "Work Projects").
Configuration:
- Name:
[Folder Name] Contents - Path:
/files/list_folder - Method:
POST
Body Parameters:
{
"path": "/Documents",
"recursive": false,
"include_deleted": false,
"limit": 2000
}
Replace /Documents with your folder path.
Field Mapping: Same as "All Files & Folders"
#
Endpoint 9: Team Activity (Dropbox Business Only)
Monitor team member activity and events.
Configuration:
- Name:
Team Activity - Path:
/team_log/get_events - Method:
POST
Body Parameters:
{
"limit": 1000,
"category": {
".tag": "file_operations"
}
}
Field Mapping:
- Array Path:
events - ID Field:
event_id - Title Field:
event_type.description - Date Field:
timestamp - Summary Fields:
actor.display_name,context.geo_location
Requires: Team admin permissions and team scopes enabled
#
Endpoint 10: Account Space Usage
Monitor storage space usage.
Configuration:
- Name:
Space Usage - Path:
/users/get_space_usage - Method:
POST
Body Parameters: (none needed)
Field Mapping:
- ID Field: Use static value or timestamp
- Title Field: Create computed field showing "Dropbox Storage"
- Summary Fields:
used,allocation.allocated(total space)
Note: This returns a single object, not an array. You may need to wrap it for Weavestream.
#
Part 3: Understanding Dropbox API Data
#
File/Folder Data Structure
{
"entries": [
{
".tag": "file",
"name": "Proposal.docx",
"id": "id:abc123xyz",
"client_modified": "2024-01-26T14:30:00Z",
"server_modified": "2024-01-26T14:31:00Z",
"rev": "abc123",
"size": 1048576,
"path_lower": "/documents/proposal.docx",
"path_display": "/Documents/Proposal.docx",
"is_downloadable": true,
"content_hash": "abc123..."
},
{
".tag": "folder",
"name": "Projects",
"id": "id:xyz789abc",
"path_lower": "/projects",
"path_display": "/Projects"
}
],
"cursor": "abc123...",
"has_more": false
}
Key Fields:
.tag- Type:file,folder, ordeletedname- File/folder nameid- Unique Dropbox IDpath_display- Full path with proper capitalizationsize- File size in bytesserver_modified- Last modified timestampis_downloadable- Whether file can be downloaded
#
Shared Folder Data Structure
{
"shared_folder_id": "123456789",
"name": "Team Documents",
"policy": {
"acl_update_policy": {
".tag": "editors"
},
"shared_link_policy": {
".tag": "members"
}
},
"path_lower": "/team documents",
"link_metadata": {
"url": "https://www.dropbox.com/...",
"visibility": {
".tag": "public"
}
},
"time_invited": "2024-01-15T10:00:00Z",
"access_type": {
".tag": "owner"
}
}
#
File Request Data Structure
{
"id": "abc123xyz",
"url": "https://www.dropbox.com/request/...",
"title": "Client Documents Upload",
"destination": "/File Requests/Client Docs",
"created": "2024-01-20T10:00:00Z",
"deadline": null,
"is_open": true,
"file_count": 5
}
#
Part 4: Create Useful Filters
#
Filter 1: Large Files (>100MB)
- Under Dropbox source, click "+" → "New Filter"
- Name:
Large Files (100MB+) - Select Endpoint: All Files & Folders
- Add Conditions:
- Field:
.tag - Operator:
equals - Value:
file - AND
- Field:
size - Type: Number
- Operator:
greater than - Value:
104857600(100MB in bytes)
- Field:
- Save
#
Filter 2: Recently Modified (Last 7 Days)
- Create new filter
- Name:
Modified This Week - Select Endpoint: All Files & Folders
- Add Condition:
- Field:
server_modified - Operator:
in last - Value:
7 days
- Field:
- Save
#
Filter 3: Shared Publicly
- Create new filter
- Name:
Publicly Shared Files - Select Endpoint: Shared Files
- Add Condition:
- Field:
link_permissions.resolved_visibility.tag - Operator:
contains - Value:
public
- Field:
- Save
#
Filter 4: Specific File Types (e.g., PDFs)
- Create new filter
- Name:
PDF Files - Select Endpoint: All Files & Folders
- Add Condition:
- Field:
name - Operator:
ends with - Value:
.pdf
- Field:
- Save
Repeat for other file types: .docx, .xlsx, .jpg, etc.
#
Filter 5: Files in Specific Folder
- Create new filter
- Name:
Documents Folder - Select Endpoint: All Files & Folders
- Add Condition:
- Field:
path_lower - Operator:
starts with - Value:
/documents
- Field:
- Save
#
Filter 6: Folders Only
- Create new filter
- Name:
Folders - Select Endpoint: All Files & Folders
- Add Condition:
- Field:
.tag - Operator:
equals - Value:
folder
- Field:
- Save
#
Part 5: Use AI to Manage Your Files
Now you can ask intelligent questions about your Dropbox!
#
Example Questions:
File Management:
- "What files did I add this week?"
- "Show me all PDFs in my Documents folder"
- "Find files larger than 100MB"
- "What's taking up the most space in my Dropbox?"
Collaboration:
- "What folders am I sharing with others?"
- "Show me all publicly shared files"
- "Which file requests are still active?"
- "List all files shared with john@example.com"
Search & Discovery:
- "Find all files containing 'invoice'"
- "Show me Word documents from last month"
- "What Excel files haven't I touched in 6 months?"
- "Find duplicate file names"
Organization:
- "What's in my root folder?"
- "How many files do I have in each folder?"
- "Show me folders I created but never used"
- "Which folders have the most files?"
Security & Cleanup:
- "What files are publicly accessible?"
- "Show me files I deleted recently"
- "Find old files I can archive"
- "What shared links should I revoke?"
Business (Team Accounts):
- "Who accessed sensitive documents today?"
- "What files were shared externally this week?"
- "Show me team member activity"
- "Which folders have the most collaborators?"
#
Part 6: Advanced Configuration
#
Pagination Handling
Dropbox uses cursor-based pagination:
Initial Request:
POST /files/list_folder
{
"path": "",
"recursive": true,
"limit": 2000
}
Response includes:
{
"entries": [...],
"cursor": "abc123xyz...",
"has_more": true
}
Continue Request:
POST /files/list_folder/continue
{
"cursor": "abc123xyz..."
}
Weavestream should handle this automatically, but be aware of it for large libraries.
#
File Size Conversions
Dropbox returns size in bytes:
- 1 KB = 1,024 bytes
- 1 MB = 1,048,576 bytes
- 1 GB = 1,073,741,824 bytes
Example filters:
- 10MB:
10485760 - 100MB:
104857600 - 1GB:
1073741824
#
Path Handling
Dropbox paths:
- Case-insensitive:
/documents=/Documents=/DOCUMENTS - Use
path_lowerfor filtering (consistent casing) - Use
path_displayfor showing to users (preserves original casing) - Root path: Empty string
""or just/
#
File Type Detection
Dropbox doesn't have a dedicated "file_type" field. Detect via:
- File extension: Check
namefield (e.g., ends with.pdf) - MIME type: Not directly available, infer from extension
- .tag field: Only shows
file,folder, ordeleted
Common extensions by category:
Documents:
.pdf,.doc,.docx,.txt,.rtf,.odt
Spreadsheets:
.xls,.xlsx,.csv,.numbers
Presentations:
.ppt,.pptx,.key
Images:
.jpg,.jpeg,.png,.gif,.bmp,.svg,.heic
Videos:
.mp4,.mov,.avi,.mkv,.wmv
Audio:
.mp3,.wav,.aac,.flac,.m4a
Archives:
.zip,.rar,.7z,.tar,.gz
Code:
.py,.js,.java,.cpp,.html,.css,.json
#
Part 7: Dropbox Business Features
If you have a Dropbox Business account:
#
Team Folders
Access shared team folders:
- Path:
/team/team_folder/list - Lists all team folders your team has access to
#
Team Members
Get list of team members:
- Path:
/team/members/list_v2 - Returns team member info, roles, status
#
Admin Reports
Generate usage reports:
- Path:
/team/reports/get_activity - Requires team admin permissions
#
Linked Devices
Monitor devices connected to team accounts:
- Path:
/team/devices/list_team_devices - Shows computers, phones, tablets accessing Dropbox
#
Troubleshooting
#
Issue: "OAuth authorization failed"
Solution:
- Verify Authorization URL is
https://www.dropbox.com/oauth2/authorize - Check Token URL is
https://api.dropbox.com/oauth2/token - Ensure redirect URI matches:
http://localhost:8080/callback - Verify "Use Basic Auth" is checked
- Make sure
token_access_type=offlineis in authorization URL - Check app has required scopes enabled
#
Issue: "No files returned" or empty entries
Solution:
- Verify
pathparameter is""(empty string) for root - Check
recursiveis set totrueto see subfolders - Ensure account actually has files
- Try setting
pathto specific folder:/Documents - Check array path is set to
entries
#
Issue: "Error in call to API function"
Solution:
- Verify Content-Type header is
application/json - Check body parameters are properly formatted JSON
- Ensure boolean values are actually booleans, not strings
- Check endpoint path starts with
/(e.g.,/files/list_folder)
#
Issue: "Token expired" or "401 Unauthorized"
Solution:
- Refresh tokens should auto-renew with
token_access_type=offline - Check refresh token is being stored by Weavestream
- Try re-authorizing OAuth flow
- Verify app permissions haven't been revoked
#
Issue: "Insufficient permissions"
Solution:
- Go to Dropbox App Console → Your App → Permissions tab
- Verify required scopes are enabled
- Click "Submit" after changing permissions
- Re-authorize OAuth flow in Weavestream (permissions only apply to new tokens)
#
Issue: "Rate limited" or "Too many requests"
Solution: Dropbox rate limits vary by endpoint:
- Most endpoints: ~200 requests/hour per user
- Search: Lower limits
Best practices:
- Increase refresh interval (60+ minutes)
- Reduce
limitparameter if hitting timeouts - Don't poll frequently for file changes (use webhooks in production apps)
#
Security Best Practices
#
✅ Do:
- Request minimum scopes needed (don't enable write if only reading)
- Use offline access (
token_access_type=offline) for refresh tokens - Rotate app secrets every 90 days
- Create separate apps for different integrations
- Monitor app access in Dropbox settings
- Store credentials securely (Weavestream uses macOS Keychain)
#
❌ Don't:
- Grant write permissions unless absolutely necessary
- Share App secret with anyone
- Use "Full Dropbox" access if "App folder" would suffice
- Store credentials in plain text
- Leave unused apps with active tokens
#
Additional Resources
#
Dropbox API Documentation:
- Main Docs: https://www.dropbox.com/developers/documentation
- API Explorer: https://dropbox.github.io/dropbox-api-v2-explorer/
- Webhooks: https://www.dropbox.com/developers/reference/webhooks (for real-time updates)
- Rate Limits: https://www.dropbox.com/developers/reference/rate-limits
#
Useful API Endpoints Reference:
#
Summary Checklist
Before you finish, verify:
- ✅ Dropbox app created with required scopes
- ✅ OAuth credentials (App key and App secret) obtained
- ✅ Redirect URI configured in app settings
- ✅ Dropbox source added to Weavestream
- ✅ OAuth authorization completed successfully
- ✅ At least one endpoint configured (All Files & Folders)
- ✅ Array path set to
entries - ✅ Field mappings working (file names and dates visible)
- ✅ Smart filters created for file organization
- ✅ Tested AI questions about your Dropbox
You're all set! Manage your cloud files with intelligent AI insights! ☁️
Last updated: February 2026 Dropbox API version: v2