Dropbox doesn't use static API keys. Instead, you create a Dropbox App in the App Console, grant it the scopes you need, and generate an access token that Univaultport uses to authenticate. This guide covers the full setup and the one configuration step everyone misses: making the token long-lived.
Step 1 — Open the Dropbox App Console
Go to www.dropbox.com/developers/apps and sign in.
Click Create app.
Step 2 — Configure the new app
Choose an API
Scoped access (the only option for new apps).Choose the type of access
Full Dropbox if you want to migrate any folder; App folder if you want Dropbox to sandbox the integration to its own folder under/Apps/<app-name>/. App folder is more secure but less flexible — pick Full Dropbox for general migrations.Name the app
Something likeasset-migrator-prod. Must be globally unique across Dropbox — try variations if it's taken.Create app
Click the button.
You'll land on the app's Settings tab. Don't generate a token yet — we need to set scopes first or the token won't be usable.
Step 3 — Enable the required scopes
Click the Permissions tab.
Tick these four scopes (they're grouped under "Files and folders" and "Account info"):
☑ files.metadata.read — list folders and files
☑ files.content.read — download file contents
☑ files.content.write — upload, rename, and create folders
☑ account_info.read — verify the connection on testConnectionScroll to the bottom and click Submit.
Step 4 — Set the token expiration to "No expiration"
Click back to the Settings tab.
Scroll to the OAuth 2 section. Find the Access token expiration setting.
Access token expiration: [ No expiration ▼ ] ← change to thisIf you leave the default (Short-lived), the token you generate next will expire in 4 hours and you'll have to re-paste it into Univaultport constantly. No expiration is the right choice for a server-to-server integration.
Step 5 — Generate the access token
Still in Settings, scroll to the Generated access token section.
Click Generate.
A long token string appears (looks like sl.B1234... for short-lived or just a hex string for long-lived). Copy it now — you can re-generate later but the displayed value disappears as soon as you navigate away.
Step 6 — Paste credentials into Univaultport
In the connector wizard:
Access Token
Paste the token from Step 5 exactly as shown — no quotes, no trimming.Root Path (optional)
A folder path to scope this connector to. Example:/Marketing/Assets. Leave blank to access the whole Dropbox. Paths are case-insensitive but should start with/.
Hit Save & test. Univaultport hits /2/users/get_current_account to verify the token — a green check means everything is wired correctly.
Step 7 — (Dropbox Business only) Team folder access
For Dropbox Business accounts, the token's owner sees only their own files plus team folders they've been added to. To migrate a team folder:
- As a team admin, add the user behind this token to the team folder with Edit access.
- The folder will then appear under that user's
/listing in Dropbox. - Set the connector's
rootPathto the team folder path.
For team-wide migrations across multiple users' personal folders, you'll need a Dropbox Team admin token with the additional team_data.member scope — that's a separate, more privileged setup. Contact us if you need that.
File size limits
Dropbox imposes these per-file caps:
| Plan | Max file size |
|---|---|
| Basic (free) | 50 GB |
| Plus | 50 GB |
| Business | 350 GB |
Univaultport handles large files with upload sessions automatically — files over 8 MB are uploaded in 4 MB chunks, each acknowledged by the API. There's no special configuration needed.
Common errors
| Error | Cause | Fix |
|---|---|---|
invalid_access_token | Token expired or revoked | Re-generate; ensure expiration is "No expiration" |
missing_scope | A required scope wasn't enabled before token generation | Enable scopes in step 3 → Submit → re-generate token |
path/not_found | rootPath or asset path doesn't exist | Check the path in Dropbox web UI; remember it's case-insensitive but the UI shows the canonical case |
too_many_write_operations | Hit the rate limit (typically 25-50 writes/sec) | Reduce job concurrency; Univaultport auto-retries |
insufficient_space | Dropbox account is full | Free up space or upgrade plan |
Rotating tokens
Dropbox doesn't auto-rotate long-lived tokens, but you should rotate them yearly anyway. The clean flow:
- In the App Console, click Revoke next to the existing token.
- Click Generate again to create a new one.
- Update Univaultport's connector with the new token.
- Run a test migration to confirm.
There's no overlap window — the old token stops working the instant you revoke. Plan a short maintenance window.
Next steps
With Dropbox connected, common patterns are:
- Dropbox → S3 / GCS for archival of legacy team files to cheaper storage
- Cloudinary / Drive → Dropbox for client-deliverable folders that internal teams need
- Dropbox → Dropbox between team accounts during reorgs
Folder hierarchy is preserved across migrations because Dropbox supports real folders (unlike WordPress, which has a flat media library).



