CIIFragments Studio is CII-accredited: recover up to 20% of your software development spendLearn more

API integration for Dropbox

We build your Dropbox connector

We wire Dropbox into your business file: a PDF added opens the job, deliverables leave as sharing links, without a magic link pasted in a field.

  • Senior product team
  • file connectors in production
  • from scoping to monitoring
In short

What does the Dropbox API provide and why connect Dropbox to a business application?

Dropbox is a widely used file-sharing tool among service providers, agencies and distributed teams that do not want to migrate to SharePoint. Its API lets your application deposit or retrieve files from a Dropbox folder, detect when a document is added and trigger an automated process. You integrate it when your clients or partners share files via Dropbox and you want to import them automatically into your software: without asking the user to change tools and without manually monitoring the folder.

Use cases

What our clients build on the Dropbox API

01

Client folder that creates the task

Webhook plus cursor: a PDF added opens the job. App Folder or a dedicated folder, not a magic link pasted in a field.

02

Deliverable export into App Folder

Sharing links via the live sharing API. Not sharing/get_shared_links, retired in October 2026.

03

DMS cutover via finish_batch

Thousands of files, one finish_batch per namespace. Parallel /files/upload takes the too_many_write_operations lock.

04

Attach button via the Chooser

No OAuth, for a business form. Often the right product, cheaper to audit than Full Dropbox.

For you

What this changes in your Dropbox files

Engineering in service of a measurable outcome: a folder that feeds the business, uploads that pass, links that stay valid.

The pasted link is no longer the connector

The binary stays in Dropbox, metadata in your record. An expired copied link stops breaking the journey.

Scoped access is a GDPR argument

The app only sees its space. Consent is readable; security review passes better than broad access to the whole account.

Migration does not lock up

Large transfers are paced properly. We avoid the too-many-writes lock that kills a naive parallel import.

Sharing links stay valid

We use current sharing routes, not end-of-life APIs. You do not discover the cut-over on day one.

Method

How we deliver your Dropbox connector

01

Scoping

App Folder or Full Dropbox (frozen at creation), Chooser or OAuth, team or account. We do not start from Full Dropbox "just in case".

02

Development

GET challenge, hex HMAC, lease per dbid, atomic cursor after success, upload session from 150 MB, finish_batch per namespace.

03

Acceptance

Synchronous handler over 10 s, 35 errors / 10 min, too_many_write_operations, cursor reset, legacy Paper. Replay before cutover.

04

Monitoring

Webhook failure rate before 35/10 min and 4.5%. Written console reactivation procedure. Retry-After alert, distinction of the two 429s.

What the API allows

What the Dropbox API allows

list_folder and cursor
POST /2/files/list_folder then continue. Adds, edits, deletes, shares. content_hash, rev, server_modified so you do not re-download.
Account webhooks, not file webhooks
JSON POST of dbids. files.metadata.read must have been granted, otherwise silence. GET challenge, nosniff. HMAC X-Dropbox-Signature, app secret on the server.
Simple upload and sessions
/2/files/upload under 150 MB. Beyond: start, append_v2, finish / finish_batch (up to 1,000, async_job_id). concurrent session_type, 4 MB chunks.
Team and live sharing
Dropbox-API-Select-User per member, user-endpoint limits per member. Links via the current sharing API. get_shared_links: retirement October 2026.
Glossary

Dropbox API vocabulary

cursor
list_folder state, persisted per account and per namespace. Invalidated (reset): recrawl. Persisting it before processing loses pages on a crash.
dbid
Account id in the webhook POST (list_folder.accounts). Several users per POST, several POSTs per user. Lease per dbid if the action is not idempotent.
X-Dropbox-Signature
HMAC-SHA256 hex of the raw body, application secret. Verified on the server: a SPA that embeds the app secret has already lost. compare_digest, not ==.
too_many_write_operations
Namespace lock (root, shared folder, team folder), not a quota. Retry-After sometimes 0. Workaround: batch of upload sessions, one finish_batch per namespace.
App Folder
Access frozen at creation: dedicated /Apps/.... Full Dropbox reads the account. Too narrow, you cannot read an existing client folder; too wide, app review gets heavier.
get_shared_links
Deprecated sharing route, retirement October 2026. Do not persist those links. Use the current sharing API to create. A dated project, of the same order as EWS on the Microsoft side.
Good to know

The real constraints of the Dropbox API

01

Ten seconds, then disablement

The webhook POST has 10 s. More than 35 errors / 10 min and a failure rate > 4.5%: automatic disablement, plus an email. A handler that calls list_folder/continue in the request gets cut, then killed.

02

Two different 429s

too_many_requests (quota per authorisation) and too_many_write_operations (lock). 429s count toward the quota. Dropbox does not publish ceilings: we size on Retry-After and batch endpoints.

03

No event filter

Any account change notifies. Extension, folder, delete: after continue. The first crawl of a full account is the load peak.

04

PKCE and short-lived tokens, 2026

Long-lived tokens are deprecated. Implicit grant should be disabled in the console. Team token is not a user token: Select-User per member, not a mega service account.

Dropbox or SharePoint

Dropbox API or SharePoint API?

Two file spaces. The right one follows the reflex already there (sent folder vs Microsoft tenant).

CriterionDropboxThis pageMicrosoft 365Graph files
Typical estateFreelancers, agencies, engineering officesSharePoint / OneDrive on the tenant
Fine perimeterApp Folder, frozen at creationSites.Selected + POST /permissions
WebhookList of dbids, cursor afterwardsGraph signal, delta afterwards
SignatureHMAC hex, app secretGraph subscription, 202 first
Large volumesfinish_batch, namespace lockSharePoint units, 320 KiB session
Dated debtget_shared_links, October 2026CSOM/REST to Graph, EWS outside files
The right caseThe flow is already a Dropbox folderThe company is already on Microsoft 365

Google Drive comes up on a Workspace estate. Box when the DMS is already governed outside the office suites. The Dropbox Chooser without OAuth remains a separate product.

Our expertise

What we measure on a Dropbox integration

15 d
first Dropbox flow in production
10 s
webhook response ceiling
150 MB
threshold to switch to upload session
4
senior developers on the project
Compare

The other file APIs

If Dropbox is not the space already there, these options belong in the scoping conversation.

We combine Dropbox with

The stack around Dropbox on our projects.

  • HubSpot
  • n8n
  • PostgreSQL
  • Node.js
  • TypeScript
FAQ

Dropbox integration: your questions

App Folder or Full Dropbox at creation, OAuth with refresh (short-lived tokens), GET challenge endpoint and signed POST (X-Dropbox-Signature hex, server secret), 200 in under 10 s, worker with a lease per dbid, list_folder/continue cursor persisted after success. Upload: 150 MB, then sessions and finish_batch per namespace. The hard part is not the first upload, it is a synchronous webhook that gets disabled, and get_shared_links still pasted in the code.

A first useful flow, typically App Folder plus webhook into a business task, ships in two to three weeks. A DMS cutover (finish_batch, Select-User, live sharing) is closer to six to eight weeks. The Chooser without OAuth is shorter if the need is only "attach a file". We scope content access first, because you cannot change it after app creation. This is a scoping call, written down before the first request, not an acceptance surprise.

App Folder if the app can live in /Apps/...: readable consent, simpler review, GDPR argument. Full Dropbox if you must read a client folder already there. The decision is before the code. Full Dropbox plus wide scopes heavy the review. Too narrow, the use case breaks. Team: team token plus Select-User per member, not a single service account. This is a scoping call, written down before the first request, not an acceptance surprise.

Follow the reflex already there. Dropbox: sent folder, App Folder, list_folder cursor. Drive: Workspace estate, Picker, Docs export. SharePoint if the Microsoft tenant is the disk. Box if an enterprise DMS is already governed. All four have an increment and a push; only Box sends the detail in the webhook, Dropbox and Drive send a signal. This is a scoping call, written down before the first request, not an acceptance surprise.

The sharing/get_shared_links route has a deprecation notice and a retirement in October 2026 (official Dropbox specification). Stop reading it, stop persisting its URLs. Create links with the current sharing API, store the live link id, plan a migration job for links already served. This is a dated project, of the same order as the EWS cut on the Microsoft side: it goes in the scoping, not in a November 2026 ticket.

A Dropbox integration project?

Let's talk. 30 minutes to scope App Folder, webhooks, finish_batch, and replacing get_shared_links before October 2026.

Discuss my Dropbox project
Discuss my Dropbox project