> **Building with AI coding agents?** Install the authstack plugin with one command. This equips your agent with accurate Scalekit implementation patterns.
>
> **Recommended** (the `-y` flags skip prompts, so the command runs without an interactive terminal):
> ```bash
> npx -y @scalekit-inc/cli setup -y
> ```
>
> Global:
> ```bash
> npm install -g @scalekit-inc/cli
> scalekit setup -y
> ```
>
> Supports Claude Code, Cursor, GitHub Copilot, Codex + skills for other Agent Skills-compatible agents in `~/.agents/skills`.
> Skills: integrate-agentkit, implement-saaskit, add-mcp-oauth, implement-sso, implement-scim.
> [Full setup guide](https://docs.scalekit.com/dev-kit/build-with-ai/)

---

# Connect AI agents to Dropbox

The Dropbox connector lets your AI agent act in each user's Dropbox account. Each user signs in to Dropbox once, and Scalekit stores and refreshes their tokens, so your agent never handles credentials. It comes with 53 tools.

**Authentication:** OAuth 2.0
**Categories:** Files & Documents
**Tools:** 53: 27 read, 17 write, 9 destructive
**Users sign in with:** OAuth
**OAuth app:** Scalekit's or your own
**Built by:** Scalekit connector
**Try it:** [Playground in the Scalekit dashboard](https://app.scalekit.com/ws/signup?sk_intent=playground&provider=DROPBOX)

## Setup

1. ### Install the SDK

   **Node.js**

   ```bash
   npm install @scalekit-sdk/node dotenv
   ```

   **Python**

   ```bash
   pip install scalekit-sdk-python python-dotenv
   ```

2. ### Set your credentials

   Add your Scalekit credentials to your `.env` file. Find values in **[app.scalekit.com](https://app.scalekit.com)** > **Developers** > **API Credentials**.

   ```sh title=".env"
   SCALEKIT_ENVIRONMENT_URL=<your-environment-url>
   SCALEKIT_CLIENT_ID=<your-client-id>
   SCALEKIT_CLIENT_SECRET=<your-client-secret>
   ```

3. ### Create the Dropbox connection

   In **AgentKit > Connections**, create a Dropbox connection. The name you give it is the `connection_name` your code passes. See [Configure connections](/agentkit/connections/).

   Scalekit credentials are available for Dropbox, so you don't need to register an OAuth app. To show your own app on the consent screen, use your own credentials instead.

   **Use your own OAuth app:**

   Register your Scalekit environment with the Dropbox connector so Scalekit handles the authentication flow and token lifecycle for you. The connection name you create will be used to identify and invoke the connection programmatically. You'll need your app credentials from the [Dropbox App Console](https://www.dropbox.com/developers/apps).

   1. ### Set up auth redirects

       - In [Scalekit dashboard](https://app.scalekit.com), go to **AgentKit** > **Connections** > **Create Connection**.

       - Find **Dropbox** from the list of providers and click **Create**.

         > By default, the connection uses Scalekit's credentials, so you can skip to the next section. To show your own app's name on the consent screen, update the connection with the steps below.

       - Click **Use your own credentials** and copy the redirect URI. It looks like `https://<SCALEKIT_ENVIRONMENT_URL>/sso/v1/oauth/<CONNECTION_ID>/callback`.

         > Image: Copy redirect URI from Scalekit dashboard

       - In the [Dropbox App Console](https://www.dropbox.com/developers/apps), open your app and go to the **Settings** tab.

       - Under **Redirect URIs**, paste the copied URI and click **Add**.

         > Image: Add redirect URI in Dropbox App Console

   2. ### Get client credentials

       - In the [Dropbox App Console](https://www.dropbox.com/developers/apps), open your app and go to the **Settings** tab:
         - **Client ID** — listed under **App key**
         - **Client Secret** — listed under **App secret**

   3. ### Add credentials in Scalekit

       - In [Scalekit dashboard](https://app.scalekit.com), go to **AgentKit** > **Connections** and open the connection you created.

       - Enter your credentials:
         - Client ID (App key from your Dropbox app)
         - Client Secret (App secret from your Dropbox app)
         - Permissions — select the scopes your app needs

         > Image: Add credentials in Scalekit dashboard
       - Click **Save**.

4. ### Authorize a user and make your first call

   **Node.js** (`quickstart.mts`)

   ```typescript
   import { ScalekitClient } from '@scalekit-sdk/node'
   import 'dotenv/config'
   import { createInterface } from 'node:readline/promises'

   const scalekit = new ScalekitClient(
     process.env.SCALEKIT_ENVIRONMENT_URL,
     process.env.SCALEKIT_CLIENT_ID,
     process.env.SCALEKIT_CLIENT_SECRET,
   )
   const actions = scalekit.actions

   const connector = 'dropbox'
   const identifier = 'user_123'

   // Generate an authorization link for the user
   const { link } = await actions.getAuthorizationLink({ connectionName: connector, identifier })
   console.log('Authorize Dropbox:', link)
   const rl = createInterface({ input: process.stdin, output: process.stdout })
   await rl.question('Press Enter after authorizing...')
   rl.close()

   // Make your first call
   const result = await actions.executeTool({
     connector,
     identifier,
     toolName: 'dropbox_file_requests_list',
     toolInput: {},
   })
   console.log(result)
   ```

   ```bash
   npx tsx quickstart.mts
   ```

   **Python** (`quickstart.py`)

   ```python
   import os
   from scalekit import ScalekitClient
   from dotenv import load_dotenv
   load_dotenv()

   scalekit_client = ScalekitClient(
       env_url=os.getenv("SCALEKIT_ENVIRONMENT_URL"),
       client_id=os.getenv("SCALEKIT_CLIENT_ID"),
       client_secret=os.getenv("SCALEKIT_CLIENT_SECRET"),
   )
   actions = scalekit_client.actions

   connection_name = "dropbox"
   identifier = "user_123"

   # Generate an authorization link for the user
   link_response = actions.get_authorization_link(
       connection_name=connection_name,
       identifier=identifier,
   )
   print("Authorize Dropbox:", link_response.link)
   input("Press Enter after authorizing...")

   # Make your first call
   result = actions.execute_tool(
       tool_input={},
       tool_name="dropbox_file_requests_list",
       connection_name=connection_name,
       identifier=identifier,
   )
   print(result)
   ```

   ```bash
   python quickstart.py
   ```

   Each user signs in once. See [Authorize a user](/agentkit/tools/authorize/) for the full flow and statuses.

## Tools

Pass the exact name to `execute_tool`, with an input like each tool's example. To ask for a tool that's missing, use the [request form](https://scalekitsupport.portal.usepylon.com/forms/request-a-connector-tool).

**Node.js**

```typescript
const result = await actions.executeTool({
  toolName: 'dropbox_file_requests_get',
  toolInput: {
    id: '<id>',
  },
  connector: 'dropbox',
  identifier: 'user_123',
})
```

**Python**

```python
result = actions.execute_tool(
    tool_name="dropbox_file_requests_get",
    tool_input={
        "id": "<id>",
    },
    connection_name="dropbox",
    identifier="user_123",
)
```

`result.data` is the app's response as JSON, and `result.execution_id` (`executionId` in Node.js) is the ID of the call.

### `dropbox_file_requests_get`

Get File Request · Read-only

Retrieve details for a single Dropbox file request by its ID, including title, destination folder, deadline, and open/closed state.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `id` (`string`, required): The ID of the file request to retrieve.

Example input: `{"id":"<id>"}`

### `dropbox_file_requests_list`

List File Requests · Read-only

List all file requests created by the current Dropbox user.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `limit` (`integer`, optional): Maximum number of file requests to return.

Example input: `{}`

### `dropbox_files_copy_batch_check`

Check Copy Batch Job Status · Read-only

Poll the status of an asynchronous copy_batch_v2 job. When dropbox_files_copy_batch returns an in-progress async_job_id instead of completing immediately, use this to check whether the copy has finished.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `async_job_id` (`string`, required): The async job ID returned by a previous copy_batch_v2 call that reported an in-progress status.

Example input: `{"async_job_id":"<async_job_id>"}`

### `dropbox_files_delete_batch_check`

Check Delete Batch Job Status · Read-only

Poll the status of an asynchronous delete_batch job. When dropbox_files_delete_batch returns an in-progress async_job_id instead of completing immediately, use this to check whether the deletion has finished.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `async_job_id` (`string`, required): The async job ID returned by a previous delete_batch call that reported an in-progress status.

Example input: `{"async_job_id":"<async_job_id>"}`

### `dropbox_files_download`

Download File · Read-only

Download the raw contents of a file from Dropbox by path or file ID. Returns the file bytes directly (not wrapped in JSON) via Dropbox's content API host.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `path` (`string`, required): The path or ID of the file to download.

Example input: `{"path":"/Documents"}`

### `dropbox_files_get_metadata`

Get File/Folder Metadata · Read-only

Get metadata for a file or folder at the specified Dropbox path. Returns name, path, size, modification date, and other properties.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `path` (`string`, required): The path to the file or folder to get metadata for.
- `include_deleted` (`boolean`, optional): If true, deleted files and folders will be included in the results. Default: `false`.
- `include_has_explicit_shared_members` (`boolean`, optional): If true, the result will include a flag indicating whether the file has explicit shared members. Default: `false`.
- `include_media_info` (`boolean`, optional): If true, the result will include media info (e.g., dimensions, duration) for photo and video files. Default: `false`.

Example input: `{"path":"/Documents"}`

### `dropbox_files_get_temporary_link`

Get Temporary Download Link · Read-only

Get a temporary link to download a file from Dropbox. The link expires after 4 hours. Use this to share a file download URL without granting permanent access.

Read only: yes. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `path` (`string`, required): The path of the file to get a temporary download link for.

Example input: `{"path":"/Documents"}`

### `dropbox_files_get_temporary_upload_link`

Get Temporary Upload Link · Read-only

Get a one-time link that a third party can POST raw file bytes to directly, without needing Dropbox API credentials. The uploaded content is committed to the given Dropbox path once the link is used.

Read only: yes. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `path` (`string`, required): The Dropbox path the uploaded file will be committed to once the link is used.
- `autorename` (`boolean`, optional): If there's a conflict at the destination path, have the Dropbox server try to autorename the file to avoid it. Default: `false`.
- `duration` (`integer`, optional): How long the link should remain valid, in seconds. Defaults to 14400 (4 hours), which is also the maximum. Default: `14400`.

Example input: `{"path":"/Documents"}`

### `dropbox_files_get_thumbnail`

Get File Thumbnail · Read-only

Get a rendered thumbnail image for an image, video, or document file stored in Dropbox. Returns the raw thumbnail bytes (JPEG) directly via Dropbox's content API host, not wrapped in JSON.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `path` (`string`, required): The path or ID of the file to generate a thumbnail for.

Example input: `{"path":"/Documents"}`

### `dropbox_files_list_folder`

List Folder · Read-only

List the contents of a folder in Dropbox. Returns files and subfolders at the given path. Supports recursive listing, filtering for deleted items, and pagination via cursor.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `path` (`string`, required): The path to the folder to list. Use an empty string or '' to list the root of the Dropbox.
- `include_deleted` (`boolean`, optional): If true, deleted files and folders will be included in the results. Default: `false`.
- `include_has_explicit_shared_members` (`boolean`, optional): If true, the results will include a flag for each file indicating whether it has explicit shared members. Default: `false`.
- `include_media_info` (`boolean`, optional): If true, the results will include media info (e.g., dimensions, duration) for photo and video files. Default: `false`.
- `limit` (`integer`, optional): The maximum number of results to return per page. Default is determined by the server (typically 2000).
- `recursive` (`boolean`, optional): If true, the listing will recurse into subfolders. Default: `false`.

Example input: `{"path":"/Documents"}`

### `dropbox_files_list_folder_continue`

List Folder Continue · Read-only

Continue listing folder contents using a cursor returned from a previous list_folder call. Use this to paginate through large folder listings.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `cursor` (`string`, required): The cursor returned by a previous list_folder or list_folder/continue call.

Example input: `{"cursor":"<cursor>"}`

### `dropbox_files_list_revisions`

List File Revisions · Read-only

List all revisions of a file at the given path in Dropbox. Returns revision history including IDs, sizes, and modification dates. Useful for viewing version history and recovering older versions.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `path` (`string`, required): The path of the file to list revisions for.
- `limit` (`integer`, optional): The maximum number of revisions to return (1–100). Defaults to 10.
- `mode` (`string`, optional): Determines how the path is interpreted. 'path' uses the file's current path; 'id' uses the file's unique ID. One of: `path`, `id`. Default: `path`.

Example input: `{"path":"/Documents"}`

### `dropbox_files_move_batch_check`

Check Move Batch Job Status · Read-only

Poll the status of an asynchronous move_batch_v2 job. When dropbox_files_move_batch returns an in-progress async_job_id instead of completing immediately, use this to check whether the move has finished.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `async_job_id` (`string`, required): The async job ID returned by a previous move_batch_v2 call that reported an in-progress status.

Example input: `{"async_job_id":"<async_job_id>"}`

### `dropbox_files_save_url_check_job_status`

Check Save URL Job Status · Read-only

Poll the status of an asynchronous save_url job. Saving a file from a URL to Dropbox is asynchronous; when dropbox_files_save_url returns an in-progress async_job_id, use this to check whether the download has finished.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `async_job_id` (`string`, required): The async job ID returned by a previous save_url call that reported an in-progress status.

Example input: `{"async_job_id":"<async_job_id>"}`

### `dropbox_files_search`

Search Files and Folders · Read-only

Search for files and folders in Dropbox by name or content. Supports filtering by path, file status, and limiting results. Returns matching file and folder entries.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `query` (`string`, required): The search query string. Matches file names, extensions, and content.
- `options_file_status` (`string`, optional): Restricts search to files with this status. 'active' returns non-deleted files; 'deleted' returns only deleted files. One of: `active`, `deleted`. Default: `active`.
- `options_filename_only` (`boolean`, optional): If true, the search only matches filenames and not file content. Default: `false`.
- `options_max_results` (`integer`, optional): The maximum number of search results to return (1–1000).
- `options_path` (`string`, optional): Restricts the search to this folder path and its subfolders.

Example input: `{"query":"<query>"}`

### `dropbox_files_search_continue`

Continue File Search · Read-only

Fetch the next page of results for a previous dropbox_files_search call, using the cursor returned in that call's response.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `cursor` (`string`, required): The cursor returned by the previous search call. Used to fetch the next page of results.

Example input: `{"cursor":"<cursor>"}`

### `dropbox_sharing_check_share_job_status`

Check Share Folder Job Status · Read-only

Poll the status of an asynchronous share_folder job. Sharing a folder can be asynchronous; when dropbox_sharing_share_folder returns an in-progress async_job_id, use this to check whether the folder has finished being shared.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `async_job_id` (`string`, required): The async job ID returned by a previous share_folder call that reported an in-progress status.

Example input: `{"async_job_id":"<async_job_id>"}`

### `dropbox_sharing_get_folder_metadata`

Get Shared Folder Metadata · Read-only

Retrieve metadata for a single Dropbox shared folder by its ID, including name, policies, and the current user's permissions.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `shared_folder_id` (`string`, required): The ID of the shared folder to look up.

Example input: `{"shared_folder_id":"<shared_folder_id>"}`

### `dropbox_sharing_get_shared_link_metadata`

Get Shared Link Metadata · Read-only

Retrieve metadata about a Dropbox shared link, including file details, permissions, and expiry.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `url` (`string`, required): The shared link URL to get metadata for.
- `link_password` (`string`, optional): The password for a password-protected shared link.
- `path` (`string`, optional): If the shared link is for a folder, filter to a specific sub-path within it.

Example input: `{"url":"<url>"}`

### `dropbox_sharing_list_file_members`

List Shared File Members · Read-only

List the users and groups that have access to a specific shared file in Dropbox, including access levels and permissions.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `file` (`string`, required): The path or ID of the file whose members to list.
- `include_inherited` (`boolean`, optional): Whether to include members who only have access from a parent shared folder. Default: `true`.
- `limit` (`integer`, optional): Maximum number of members to return per page (1-300). Defaults to 100. Default: `100`.

Example input: `{"file":"<file>"}`

### `dropbox_sharing_list_folder_members`

List Shared Folder Members · Read-only

List all members (users and groups) of a Dropbox shared folder.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `shared_folder_id` (`string`, required): The ID of the shared folder whose members to list.
- `limit` (`integer`, optional): Maximum number of members to return per page.

Example input: `{"shared_folder_id":"<shared_folder_id>"}`

### `dropbox_sharing_list_folders`

List Shared Folders · Read-only

List all shared folders the current Dropbox user is a member of, including folders they own and folders shared with them.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `limit` (`integer`, optional): The maximum number of shared folders to return per request (1-1000). Defaults to 1000. Default: `1000`.

Example input: `{}`

### `dropbox_sharing_list_received_files`

List Received Files · Read-only

List files that other people have shared directly with the current Dropbox user. Distinct from listing the members of a specific file or folder you already know about.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `limit` (`integer`, optional): The maximum number of files to return per request. Default: `100`.

Example input: `{}`

### `dropbox_sharing_list_shared_links`

List Shared Links · Read-only

List shared links for a file or folder in Dropbox. Optionally filter by path or use a cursor for pagination.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `cursor` (`string`, optional): Pagination cursor returned from a previous call to continue listing.
- `direct_only` (`boolean`, optional): If true, only return links directly for the path, not inherited from parent folders.
- `path` (`string`, optional): Filter shared links by file or folder path, e.g. '/Documents'.

Example input: `{}`

### `dropbox_users_get_account`

Get Account Info · Read-only

Retrieve basic account information (name, profile photo, team membership) for any Dropbox user by their account ID. Use dropbox_users_get_current_account for the connected user's own account.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `account_id` (`string`, required): The Dropbox account ID of the user to look up.

Example input: `{"account_id":"<account_id>"}`

### `dropbox_users_get_current_account`

Get Current Account · Read-only

Get information about the current Dropbox user's account, including name, email, and account type.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs: none.

Example input: `{}`

### `dropbox_users_get_space_usage`

Get Space Usage · Read-only

Get the current storage space usage for the authenticated Dropbox user, including used and allocated space.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs: none.

Example input: `{}`

### `dropbox_file_requests_create`

Create File Request · Write

Create a Dropbox file request that allows others to upload files to a designated Dropbox folder.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `destination` (`string`, required): The Dropbox folder path where uploaded files will be saved.
- `title` (`string`, required): The title of the file request, shown to contributors.
- `deadline_allow_late_uploads` (`string`, optional): Whether to allow uploads after the deadline has passed.
- `deadline_deadline` (`string`, optional): Deadline date for submissions in ISO 8601 format (e.g., '2024-12-31T23:59:59Z').
- `description` (`string`, optional): A description of the file request, shown to contributors.
- `open` (`boolean`, optional): Whether the file request is open for submissions. Defaults to true.

Example input: `{"destination":"<destination>","title":"<title>"}`

### `dropbox_file_requests_update`

Update File Request · Write

Update the title, destination, deadline, description, or open/closed state of an existing Dropbox file request. Only the fields you provide are changed.

Read only: no. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `id` (`string`, required): The ID of the file request to update.
- `description` (`string`, optional): New description for the file request, shown to contributors.
- `destination` (`string`, optional): New destination folder path in the user's Dropbox for uploaded files.
- `open` (`boolean`, optional): Whether the file request should be open for submissions.
- `title` (`string`, optional): New title for the file request. Must not be empty if provided.

Example input: `{"id":"<id>"}`

### `dropbox_files_copy`

Copy File or Folder · Write

Copy a file or folder from one path to another in Dropbox. The original file is preserved. Optionally auto-rename if a conflict exists at the destination.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `from_path` (`string`, required): The path of the file or folder to copy.
- `to_path` (`string`, required): The destination path for the copy.
- `allow_ownership_transfer` (`boolean`, optional): Allow copies that change the file ownership. Default: `false`.
- `allow_shared_folder` (`boolean`, optional): If true, copy is allowed even if the destination is inside a shared folder. Default: `false`.
- `autorename` (`boolean`, optional): If true, the destination will be automatically renamed if a file/folder already exists there. Default: `false`.

Example input: `{"from_path":"<from_path>","to_path":"<to_path>"}`

### `dropbox_files_copy_batch`

Copy Multiple Files or Folders · Write

Copy up to 1000 files or folders within Dropbox in a single batch request. Each entry specifies a source and destination path.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `entries` (`array`, required): Array of source/destination path pairs to copy. Example: [{"from_path": "/Homework/math", "to_path": "/Archive/math"}]
- `autorename` (`boolean`, optional): If there's a conflict at the destination for any entry, have the Dropbox server try to autorename the file to avoid it. Default: `false`.

Example input: `{"entries":[{"from_path":"/Homework/math","to_path":"/Archive/math"}]}`

### `dropbox_files_create_folder`

Create Folder · Write

Create a new folder at the specified path in Dropbox. Optionally auto-rename if a folder with the same name already exists.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `path` (`string`, required): The path of the folder to create.
- `autorename` (`boolean`, optional): If true, the folder will be renamed automatically if a folder with the same name already exists. Default: `false`.

Example input: `{"path":"/Documents"}`

### `dropbox_files_move`

Move File or Folder · Write

Move a file or folder from one path to another in Dropbox. Optionally allow moving into shared folders or auto-rename if a conflict exists at the destination.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `from_path` (`string`, required): The current path of the file or folder to move.
- `to_path` (`string`, required): The destination path for the file or folder.
- `allow_ownership_transfer` (`boolean`, optional): Allow moves that change the file ownership. Only relevant for moves from one user's Dropbox to another. Default: `false`.
- `allow_shared_folder` (`boolean`, optional): If true, move is allowed even if the destination is inside a shared folder. Default: `false`.
- `autorename` (`boolean`, optional): If true, the destination will be automatically renamed if a file/folder already exists there. Default: `false`.

Example input: `{"from_path":"<from_path>","to_path":"<to_path>"}`

### `dropbox_files_move_batch`

Move Multiple Files or Folders · Write

Move up to 1000 files or folders within Dropbox in a single batch request. Each entry specifies a source and destination path.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `entries` (`array`, required): Array of source/destination path pairs to move. Example: [{"from_path": "/Inbox/report.pdf", "to_path": "/Archive/report.pdf"}]
- `allow_ownership_transfer` (`boolean`, optional): Allow moves by owner even if it would result in an ownership transfer for the content being moved. Default: `false`.
- `autorename` (`boolean`, optional): If there's a conflict at the destination for any entry, have the Dropbox server try to autorename the file to avoid it. Default: `false`.

Example input: `{"entries":[{"from_path":"/Inbox/report.pdf","to_path":"/Archive/report.pdf"}]}`

### `dropbox_files_restore`

Restore File Revision · Write

Restore a file in Dropbox to a specific revision. Requires the file path and revision identifier.

Read only: no. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `path` (`string`, required): The path to the file to restore, e.g. '/Documents/notes.txt'.
- `rev` (`string`, required): The revision identifier to restore the file to. Obtained from file revision history.

Example input: `{"path":"/Documents/notes.txt","rev":"<rev>"}`

### `dropbox_files_save_url`

Save URL to Dropbox · Write

Save a file from a URL directly to a Dropbox path. The file is downloaded from the URL and saved to the specified Dropbox location.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `path` (`string`, required): The Dropbox path where the file should be saved, e.g. '/Downloads/report.pdf'.
- `url` (`string`, required): The URL of the file to download and save to Dropbox.

Example input: `{"path":"/Downloads/report.pdf","url":"<url>"}`

### `dropbox_sharing_add_file_member`

Add Shared File Member · Write

Share a single Dropbox file directly with one or more people by email address, without sharing the whole containing folder.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `file` (`string`, required): The path or ID of the file to share.
- `member_emails` (`array`, required): Email addresses of the people to add as members of this file.
- `access_level` (`string`, optional): Access level to grant the new members. Defaults to the file's standard sharing access if omitted. One of: `editor`, `viewer`, `viewer_no_comment`.
- `custom_message` (`string`, optional): Message to include in the invitation email sent to the new members.
- `quiet` (`boolean`, optional): If true, do not send email or device notifications to the added members. Default: `false`.

Example input: `{"file":"<file>","member_emails":[]}`

### `dropbox_sharing_add_folder_member`

Add Shared Folder Member · Write

Add one or more members to a Dropbox shared folder. Each member is specified with an email address and access level.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `members` (`array`, required): Array of members to add. Each member has an email and access level.
- `shared_folder_id` (`string`, required): The ID of the shared folder to add members to.
- `custom_message` (`string`, optional): Optional custom message to include in the invitation email.
- `quiet` (`boolean`, optional): If true, do not send a notification email to added members.

Example input: `{"members":[],"shared_folder_id":"<shared_folder_id>"}`

### `dropbox_sharing_create_shared_link_with_settings`

Create Shared Link · Write

Create a shared link for a file or folder in Dropbox with optional visibility and access settings.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `path` (`string`, required): The Dropbox path for which to create a shared link, e.g. '/Documents/report.pdf'.
- `settings_access` (`string`, optional): The access level for the shared link (e.g., 'viewer', 'editor').
- `settings_audience` (`string`, optional): The audience for the shared link. Controls who can access.
- `settings_requested_visibility` (`string`, optional): The visibility of the shared link. One of: 'public', 'team_only', 'password'. One of: `public`, `team_only`, `password`.

Example input: `{"path":"/Documents/report.pdf"}`

### `dropbox_sharing_modify_shared_link_settings`

Modify Shared Link Settings · Write

Change the visibility, audience, or access settings of an existing Dropbox shared link, or remove its expiration.

Read only: no. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `url` (`string`, required): The full URL of the shared link whose settings should be changed.
- `link_password` (`string`, optional): New password for the link. Required when setting requested_visibility to 'password'.
- `remove_expiration` (`boolean`, optional): If true, removes the expiration date currently set on the shared link. Default: `false`.
- `requested_visibility` (`string`, optional): The new visibility of the shared link. One of: `public`, `team_only`, `password`.

Example input: `{"url":"<url>"}`

### `dropbox_sharing_mount_folder`

Mount Shared Folder · Write

Mount a shared folder that has been shared with the current Dropbox user, adding it into their own Dropbox so it appears alongside their regular files.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `shared_folder_id` (`string`, required): The ID of the shared folder to mount.

Example input: `{"shared_folder_id":"<shared_folder_id>"}`

### `dropbox_sharing_share_folder`

Share Folder · Write

Share a Dropbox folder with other users. Converts a personal folder into a shared folder with configurable member and link policies.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `path` (`string`, required): The path of the folder to share, e.g. '/Projects/Team'.
- `acl_update_policy` (`string`, optional): Who can manage the access control list (add/remove members). E.g., 'owner' or 'editors'.
- `force_async` (`boolean`, optional): If true, force the share operation to be asynchronous.
- `member_policy` (`string`, optional): Who can add members to this shared folder. One of: 'team', 'anyone'. One of: `team`, `anyone`.
- `shared_link_policy` (`string`, optional): The policy for shared links created for this folder. E.g., 'anyone', 'members', 'team'.

Example input: `{"path":"/Projects/Team"}`

### `dropbox_sharing_unmount_folder`

Unmount Shared Folder · Write

Unmount a shared folder from the current Dropbox user's own file tree. Membership is kept, so the folder can be mounted again later with dropbox_sharing_mount_folder; this only removes it from view.

Read only: no. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `shared_folder_id` (`string`, required): The ID of the shared folder to unmount.

Example input: `{"shared_folder_id":"<shared_folder_id>"}`

### `dropbox_sharing_update_folder_member`

Update Shared Folder Member Access · Write

Change the access level of an existing member of a Dropbox shared folder, identified by email address.

Read only: no. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `access_level` (`string`, required): The new access level to grant the member. The 'owner' level cannot be set through this tool. One of: `editor`, `viewer`, `viewer_no_comment`.
- `member_email` (`string`, required): Email address of the existing member whose access level should be changed.
- `shared_folder_id` (`string`, required): The ID of the shared folder containing the member.

Example input: `{"access_level":"editor","member_email":"<member_email>","shared_folder_id":"<shared_folder_id>"}`

### `dropbox_file_requests_delete`

Delete File Requests · Destructive

Delete one or more closed Dropbox file requests by ID. File requests must be closed before they can be deleted.

Read only: no. Destructive: yes. Idempotent (safe to retry): no.

Inputs:

- `ids` (`array`, required): List of file request IDs to delete. Each request must already be closed.

Example input: `{"ids":[]}`

### `dropbox_files_delete`

Delete File or Folder · Destructive

Delete a file or folder at the specified path in Dropbox. Deleted items are moved to the Dropbox trash and can be recovered within 30 days (or 180 days for Business accounts).

Read only: no. Destructive: yes. Idempotent (safe to retry): no.

Inputs:

- `path` (`string`, required): The path of the file or folder to delete.
- `parent_rev` (`string`, optional): Perform delete only if the file's revision matches this value. Only applies to files, not folders.

Example input: `{"path":"/Documents"}`

### `dropbox_files_delete_batch`

Delete Multiple Files or Folders · Destructive

Delete up to 1000 files or folders from Dropbox in a single batch request. Each entry is a path to move to the trash.

Read only: no. Destructive: yes. Idempotent (safe to retry): no.

Inputs:

- `entries` (`array`, required): Array of paths to delete. Each item must contain a 'path' key. Example: [{"path": "/Homework/old1.txt"}, {"path": "/Homework/old2.txt"}]

Example input: `{"entries":[{"path":"/Homework/old1.txt"},{"path":"/Homework/old2.txt"}]}`

### `dropbox_files_permanently_delete`

Permanently Delete File or Folder · Destructive

Permanently delete a file or folder from Dropbox, bypassing the trash. The item cannot be restored afterwards. Only available for Dropbox Business team folders/files, or accounts with extended version history disabled.

Read only: no. Destructive: yes. Idempotent (safe to retry): no.

Inputs:

- `path` (`string`, required): The path in the user's Dropbox to permanently delete.
- `parent_rev` (`string`, optional): If provided, only delete the file if its latest revision matches this rev. Does not support deleting a folder.

Example input: `{"path":"/Documents"}`

### `dropbox_sharing_remove_file_member`

Remove Shared File Member · Destructive

Remove a member's access to a Dropbox file that was directly shared with them (by email). Counterpart to dropbox_sharing_add_file_member.

Read only: no. Destructive: yes. Idempotent (safe to retry): no.

Inputs:

- `file` (`string`, required): The path or ID of the file to remove the member from.
- `member_email` (`string`, required): Email address of the member to remove from this file.

Example input: `{"file":"<file>","member_email":"<member_email>"}`

### `dropbox_sharing_remove_folder_member`

Remove Shared Folder Member · Destructive

Remove a member (by email) from a Dropbox shared folder, revoking their access. Counterpart to dropbox_sharing_add_folder_member.

Read only: no. Destructive: yes. Idempotent (safe to retry): no.

Inputs:

- `member_email` (`string`, required): Email address of the member to remove.
- `shared_folder_id` (`string`, required): The ID of the shared folder to remove the member from.
- `leave_a_copy` (`boolean`, optional): If true, the removed member keeps their own copy of the folder's contents. Default: `false`.

Example input: `{"member_email":"<member_email>","shared_folder_id":"<shared_folder_id>"}`

### `dropbox_sharing_revoke_shared_link`

Revoke Shared Link · Destructive

Revoke a shared link in Dropbox, making it inaccessible. Requires the shared link URL.

Read only: no. Destructive: yes. Idempotent (safe to retry): no.

Inputs:

- `url` (`string`, required): The shared link URL to revoke.

Example input: `{"url":"<url>"}`

### `dropbox_sharing_unshare_file`

Unshare File · Destructive

Remove all members from a Dropbox file and turn off its sharing, reverting it to a normal unshared file. The file itself is not deleted.

Read only: no. Destructive: yes. Idempotent (safe to retry): no.

Inputs:

- `file` (`string`, required): The path or ID of the file to unshare.

Example input: `{"file":"<file>"}`

### `dropbox_sharing_unshare_folder`

Unshare Folder · Destructive

Stop sharing a folder that the current Dropbox user owns. Other members lose access unless you choose to leave them a copy.

Read only: no. Destructive: yes. Idempotent (safe to retry): no.

Inputs:

- `shared_folder_id` (`string`, required): The ID of the shared folder to unshare.
- `leave_a_copy` (`boolean`, optional): If true, members keep a copy of the folder's contents after it is unshared. Otherwise it is removed from their Dropbox. Default: `false`.

Example input: `{"shared_folder_id":"<shared_folder_id>"}`

## Workflows

**Proxy API call**

  **Node.js**

  ```typescript
  const result = await actions.request({
    connectionName: 'dropbox',
    identifier: 'user_123',
    path: '/2/users/get_current_account',
    method: 'POST',
  });
  console.log(result);
  ```

  **Python**

  ```python
  result = actions.request(
      connection_name='dropbox',
      identifier='user_123',
      path="/2/users/get_current_account",
      method="POST",
  )
  print(result)
  ```

**Execute a tool**

  **Node.js**

  ```typescript
  const result = await actions.executeTool({
    connector: 'dropbox',
    identifier: 'user_123',
    toolName: 'dropbox_files_list_folder',
    toolInput: { path: '' },
  });
  console.log(result);
  ```

  **Python**

  ```python
  result = actions.execute_tool(
      connection_name='dropbox',
      identifier='user_123',
      tool_name='dropbox_files_list_folder',
      tool_input={'path': ''},
  )
  print(result)
  ```

## Related

Other ways to connect Dropbox:

- [MCP server](/agentkit/connectors/dropboxmcp/): Vendor MCP, OAuth, 25 tools

Other Files & Documents connectors ([all 33](/agentkit/connectors/?category=files-documents)):

- [Google Drive](/agentkit/connectors/googledrive/): Scalekit connector, OAuth, 47 tools
- [Google Forms](/agentkit/connectors/googleforms/): Scalekit connector, OAuth, 10 tools
- [Microsoft 365](/agentkit/connectors/microsoft365/): Scalekit connector, OAuth, 317 tools


---

## More Scalekit documentation

| Resource | What it contains | When to use it |
|----------|-----------------|----------------|
| [/llms.txt](/llms.txt) | Structured index with routing hints per product area | Start here — find which documentation set covers your topic before loading full content |
| [/llms-full.txt](/llms-full.txt) | Complete documentation for all Scalekit products in one file | Use when you need exhaustive context across multiple products or when the topic spans several areas |
| [sitemap-0.xml](https://docs.scalekit.com/sitemap-0.xml) | Full URL list of every documentation page | Use to discover specific page URLs you can fetch for targeted, page-level answers |
