> **Building with AI coding agents?** If you're using an AI coding agent, install the official Scalekit plugin. It gives your agent full awareness of the Scalekit API — reducing hallucinations and enabling faster, more accurate code generation.
>
> - **Claude Code**: `/plugin marketplace add scalekit-inc/claude-code-authstack` then `/plugin install <auth-type>@scalekit-auth-stack`
> - **GitHub Copilot CLI**: `copilot plugin marketplace add scalekit-inc/github-copilot-authstack` then `copilot plugin install <auth-type>@scalekit-auth-stack`
> - **Codex**: run the bash installer, restart, then open Plugin Directory and enable `<auth-type>`
> - **Skills CLI** (Windsurf, Cline, 40+ agents): `npx skills add scalekit-inc/skills --list` then `--skill <skill-name>`
>
> `<auth-type>` / `<skill-name>`: `agentkit`, `full-stack-auth`, `mcp-auth`, `modular-sso`, `modular-scim` — [Full setup guide](https://docs.scalekit.com/dev-kit/build-with-ai/)

---

# Box

**Authentication:** OAuth 2.0
**Categories:** Productivity, Storage
## What you can do

Connect this agent connector to let your agent:

- **List webhooks, users, user memberships** — Retrieves all webhooks for the application
- **Update webhook, web link, user** — Updates a webhook's address or triggers
- **Get webhook, web link, user me** — Retrieves a webhook's details
- **Delete webhook, web link, user** — Removes a webhook
- **Create webhook, web link, user** — Creates a webhook to receive event notifications
- **Restore trash folder, trash file** — Restores a folder from the trash

## Authentication

This connector uses **OAuth 2.0**. Scalekit acts as the OAuth client: it redirects your user to Box, obtains an access token, and automatically refreshes it before it expires. Your agent code never handles tokens directly — you only pass a `connectionName` and a user `identifier`.

You supply your Box **Connected App** credentials (Client ID + Secret) once per environment in the Scalekit dashboard.

Before calling this connector from your code, create the Box connection in **AgentKit** > **Connections** and copy the exact **Connection name** from that connection into your code. The value in code must match the dashboard exactly.

## Set up the connector

Connect Box to Scalekit so your agent can manage files, folders, users, tasks, and more on behalf of your users. Box uses OAuth 2.0 — users authorize access through Box's login flow, and Scalekit handles token storage and refresh automatically.

You will need:
- A Box developer account (free at [developer.box.com](https://developer.box.com))
- Your Box OAuth app's Client ID and Client Secret
- The redirect URI from Scalekit to paste into Box

1. ### Create a Box OAuth app

   - Go to the [Box Developer Console](https://app.box.com/developers/console) and click **Create New App**.

   - Select **Custom App** as the app type.

   - Under authentication method, choose **User Authentication (OAuth 2.0)**. This lets your agent act on behalf of each user who authorizes access.

   - Enter an app name (e.g. "My Agent App") and click **Create App**.

   > Image: Screenshot

2. ### Copy the redirect URI from Scalekit

   - In [Scalekit dashboard](https://app.scalekit.com), go to **AgentKit** > **Connections** > **Create Connection**.
   - Find **Box** and click **Create**.
   - Click **Use your own credentials** and copy the redirect URI. It looks like:
     `https://<env>.scalekit.cloud/sso/v1/oauth/<conn_id>/callback`

   > Image: Screenshot

3. ### Add the redirect URI to Box

   - In the [Box Developer Console](https://app.box.com/developers/console), open your app and go to the **Configuration** tab.
   - Under **OAuth 2.0 Redirect URI**, paste the redirect URI from Scalekit and click **Save Changes**.

   > Image: Screenshot

4. ### Select scopes for your app

   Still on the **Configuration** tab in Box, scroll down to **Application Scopes** and enable the permissions your agent needs:

   | Scope | Required for |
   |-------|-------------|
   | `root_readonly` | Reading files and folders |
   | `root_readwrite` | Creating, updating, and deleting files/folders |
   | `manage_groups` | Creating and managing groups |
   | `manage_webhook` | Creating and managing webhooks |
   | `manage_managed_users` | Creating and managing enterprise users |
   | `manage_enterprise_properties` | Accessing enterprise events |

   > tip: Minimum required scope
>
> Enable at least `root_readonly` and `root_readwrite` to use the majority of Box tools. Add other scopes only for the tools you actually use.

   Click **Save Changes** after selecting scopes.

5. ### Add credentials in Scalekit

   - In the [Box Developer Console](https://app.box.com/developers/console), open your app → **Configuration** tab.
   - Copy your **Client ID** and **Client Secret**.
   - In [Scalekit dashboard](https://app.scalekit.com), go to **AgentKit** > **Connections**, open the Box connection you created, and enter:
     - **Client ID** — from Box
     - **Client Secret** — from Box
     - **Scopes** — select the same scopes you enabled in Box (e.g. `root_readonly`, `root_readwrite`)

   > Image: Screenshot

   - Click **Save**.

6. ### Add a connected account for each user

   Each user who authorizes Box access becomes a connected account. During authorization, Box will show your app name and request the scopes you configured.

   **Via dashboard (for testing)**
   - In [Scalekit dashboard](https://app.scalekit.com), go to your Box connection → **Connected Accounts** → **Add Account**.
   - Enter a **User ID** (your internal identifier for this user, e.g. `user_123`).
   - Click **Add** — you will be redirected to Box's OAuth consent screen to authorize.

   > Image: Screenshot

   **Via API (for production)**

   In production, generate an authorization link and redirect your user to it:

   
     ### Node.js

```typescript
const { link } = await scalekit.actions.getAuthorizationLink({
  connectionName: 'box',
  identifier: 'user_123',
});
// Redirect your user to `link`
```

     ### Python

```python
link_response = scalekit_client.actions.get_authorization_link(
    connection_name="box",
    identifier="user_123",
)
# Redirect your user to link_response.link
```

   

   After the user authorizes, Scalekit stores their tokens. Your agent can then call Box tools on their behalf without any further redirects.

   > note: Token refresh
>
> Scalekit automatically refreshes Box access tokens using the refresh token issued during authorization. If a user's token ever expires, re-run the authorization link flow for that user.

## Code examples

Once a user has connected their Box account, your agent can call Box tools directly through Scalekit — no OAuth flow needed on subsequent calls. Scalekit manages token refresh automatically.

## Proxy API calls

Use the proxy to call any Box REST API endpoint directly:

  ### Node.js

```typescript

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

// List files in the root folder
const result = await actions.request({
  connectionName: 'box',
  identifier: 'user_123',
  path: '/2.0/folders/0/items',
  method: 'GET',
});
console.log(result);
```

  ### Python

```python
from scalekit.client import ScalekitClient

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

# List files in the root folder
result = actions.request(
    connection_name="box",
    identifier="user_123",
    path="/2.0/folders/0/items",
    method="GET",
)
print(result)
```

> note: File upload
>
> Box file uploads use a different base URL (`upload.box.com`) that is not covered by the Scalekit proxy. To upload files, extract the user's OAuth token from the connected account and call the Box upload API directly using `https://upload.box.com/api/2.0/files/content`.

## Use Scalekit tools

Call Box tools by name using `execute_tool`. Pass the tool name and the required input parameters.

### List folder contents

Start here to discover file and folder IDs. Use `"0"` for the root folder.

  ### Node.js

```typescript
const result = await actions.executeTool({
  toolName: 'box_folder_items_list',
  connectedAccountId: connectedAccount.id,
  toolInput: {
    folder_id: '0',  // root folder
  },
});
// result.entries[] contains files and folders with their IDs
```

  ### Python

```python
result = actions.execute_tool(
    tool_name="box_folder_items_list",
    connected_account_id=connected_account.id,
    tool_input={"folder_id": "0"},
)
# result["entries"] contains files and folders with their IDs
```

### Get file details

  ### Node.js

```typescript
const file = await actions.executeTool({
  toolName: 'box_file_get',
  connectedAccountId: connectedAccount.id,
  toolInput: { file_id: '12345678' },
});
```

  ### Python

```python
file = actions.execute_tool(
    tool_name="box_file_get",
    connected_account_id=connected_account.id,
    tool_input={"file_id": "12345678"},
)
```

### Search Box

  ### Node.js

```typescript
const results = await actions.executeTool({
  toolName: 'box_search',
  connectedAccountId: connectedAccount.id,
  toolInput: {
    query: 'quarterly report',
    type: 'file',
    file_extensions: 'pdf,docx',
  },
});
```

  ### Python

```python
results = actions.execute_tool(
    tool_name="box_search",
    connected_account_id=connected_account.id,
    tool_input={
        "query": "quarterly report",
        "type": "file",
        "file_extensions": "pdf,docx",
    },
)
```

### Create a task on a file

  ### Node.js

```typescript
const task = await actions.executeTool({
  toolName: 'box_task_create',
  connectedAccountId: connectedAccount.id,
  toolInput: {
    file_id: '12345678',
    message: 'Please review this document',
    action: 'review',
    due_at: '2025-12-31T00:00:00Z',
  },
});
// task.id is the task ID — use it with box_task_assignment_create
```

  ### Python

```python
task = actions.execute_tool(
    tool_name="box_task_create",
    connected_account_id=connected_account.id,
    tool_input={
        "file_id": "12345678",
        "message": "Please review this document",
        "action": "review",
        "due_at": "2025-12-31T00:00:00Z",
    },
)
# task["id"] is the task ID
```

### Share a file

  ### Node.js

```typescript
const link = await actions.executeTool({
  toolName: 'box_shared_link_file_create',
  connectedAccountId: connectedAccount.id,
  toolInput: {
    file_id: '12345678',
    access: 'company',   // open | company | collaborators
    can_download: true,
  },
});
```

  ### Python

```python
link = actions.execute_tool(
    tool_name="box_shared_link_file_create",
    connected_account_id=connected_account.id,
    tool_input={
        "file_id": "12345678",
        "access": "company",
        "can_download": True,
    },
)
```

### Create a webhook

Webhooks require the `manage_webhook` scope. The `triggers` field is an array of event strings.

  ### Node.js

```typescript
const webhook = await actions.executeTool({
  toolName: 'box_webhook_create',
  connectedAccountId: connectedAccount.id,
  toolInput: {
    target_id: '0',
    target_type: 'folder',
    address: 'https://your-app.com/webhooks/box',
    triggers: ['FILE.UPLOADED', 'FILE.DELETED', 'FOLDER.CREATED'],
  },
});
```

  ### Python

```python
webhook = actions.execute_tool(
    tool_name="box_webhook_create",
    connected_account_id=connected_account.id,
    tool_input={
        "target_id": "0",
        "target_type": "folder",
        "address": "https://your-app.com/webhooks/box",
        "triggers": ["FILE.UPLOADED", "FILE.DELETED", "FOLDER.CREATED"],
    },
)
```

### Add a collaborator to a folder

Collaborations grant a user or group access to a specific file or folder. You need the user's Box ID or email login.

  ### Node.js

```typescript
// First, get the user's Box ID using box_users_list or box_user_me_get
const collab = await actions.executeTool({
  toolName: 'box_collaboration_create',
  connectedAccountId: connectedAccount.id,
  toolInput: {
    item_id: 'FOLDER_ID',
    item_type: 'folder',
    accessible_by_id: 'USER_BOX_ID',
    accessible_by_type: 'user',
    role: 'editor',
  },
});
// To find the collaboration ID later, use box_folder_collaborations_list
```

  ### Python

```python
collab = actions.execute_tool(
    tool_name="box_collaboration_create",
    connected_account_id=connected_account.id,
    tool_input={
        "item_id": "FOLDER_ID",
        "item_type": "folder",
        "accessible_by_id": "USER_BOX_ID",
        "accessible_by_type": "user",
        "role": "editor",
    },
)
# To find the collaboration ID later, use box_folder_collaborations_list
```

> caution: Collaboration ID vs User ID
>
> The `collaboration_id` used by `box_collaboration_get`, `box_collaboration_update`, and `box_collaboration_delete` is **not** the same as the user's Box user ID. Fetch the collaboration ID from `box_folder_collaborations_list` or `box_file_collaborations_list` after creating the collaboration.

## Scalekit Tools

## Tool list

Use the exact tool names from the **Tool list** below when you call `execute_tool`. If you're not sure which name to use, list the tools available for the current user first.

## Tool list

### `box_collaboration_create`

Grants a user or group access to a file or folder.

Parameters:

- `accessible_by_id` (`string`, required): ID of the user or group to collaborate with.
- `accessible_by_type` (`string`, required): Type: user or group.
- `item_id` (`string`, required): ID of the file or folder.
- `item_type` (`string`, required): Type of item: file or folder.
- `role` (`string`, required): Collaboration role: viewer, previewer, uploader, previewer_uploader, viewer_uploader, co-owner, or editor.
- `can_view_path` (`string`, optional): Allow user to see path to item (true/false).
- `expires_at` (`string`, optional): Expiry date in ISO 8601 format.
- `notify` (`string`, optional): Notify collaborator via email (true/false).

### `box_collaboration_delete`

Removes a collaboration, revoking user or group access.

Parameters:

- `collaboration_id` (`string`, required): ID of the collaboration to delete.

### `box_collaboration_get`

Retrieves details of a specific collaboration.

Parameters:

- `collaboration_id` (`string`, required): ID of the collaboration.
- `fields` (`string`, optional): Comma-separated list of fields to return.
- `xero_tenant_id` (`string`, optional): Xero tenant (organisation) ID.

### `box_collaboration_update`

Updates the role or status of a collaboration.

Parameters:

- `collaboration_id` (`string`, required): ID of the collaboration.
- `can_view_path` (`boolean`, optional): Allow user to see path to item.
- `expires_at` (`string`, optional): New expiry date in ISO 8601 format.
- `role` (`string`, optional): New collaboration role.
- `status` (`string`, optional): Collaboration status: accepted or rejected.

### `box_collection_items_list`

Retrieves the items in a collection (e.g. Favorites).

Parameters:

- `collection_id` (`string`, required): ID of the collection.
- `fields` (`string`, optional): Comma-separated list of fields to return.
- `limit` (`integer`, optional): Max results.
- `offset` (`integer`, optional): Pagination offset.

### `box_collections_list`

Retrieves all collections (e.g. Favorites) for the user.

Parameters:

- `fields` (`string`, optional): Comma-separated list of fields to return.
- `limit` (`integer`, optional): Max results.
- `offset` (`integer`, optional): Pagination offset.

### `box_comment_create`

Adds a comment to a file.

Parameters:

- `item_id` (`string`, required): ID of the file to comment on.
- `item_type` (`string`, required): Type of item: file or comment.
- `message` (`string`, required): Text of the comment.
- `tagged_message` (`string`, optional): Comment text with @mentions using @[user_id:user_name] syntax.

### `box_comment_delete`

Removes a comment.

Parameters:

- `comment_id` (`string`, required): ID of the comment to delete.

### `box_comment_get`

Retrieves a comment.

Parameters:

- `comment_id` (`string`, required): ID of the comment.
- `fields` (`string`, optional): Comma-separated list of fields to return.

### `box_comment_update`

Updates the text of a comment.

Parameters:

- `comment_id` (`string`, required): ID of the comment to update.
- `message` (`string`, required): New text for the comment.

### `box_events_list`

Retrieves events from the event stream.

Parameters:

- `created_after` (`string`, optional): Return events after this date (ISO 8601).
- `created_before` (`string`, optional): Return events before this date (ISO 8601).
- `event_type` (`string`, optional): Comma-separated list of event types to filter.
- `limit` (`integer`, optional): Max events to return.
- `stream_position` (`string`, optional): Pagination position from a previous response.
- `stream_type` (`string`, optional): Event stream type: all, changes, sync, or admin_logs.

### `box_file_collaborations_list`

Retrieves all collaborations on a file.

Parameters:

- `file_id` (`string`, required): ID of the file.
- `fields` (`string`, optional): Comma-separated list of fields to return.

### `box_file_comments_list`

Retrieves all comments on a file.

Parameters:

- `file_id` (`string`, required): ID of the file.
- `fields` (`string`, optional): Comma-separated list of fields to return.

### `box_file_copy`

Creates a copy of a file in a specified folder.

Parameters:

- `file_id` (`string`, required): ID of the file to copy.
- `parent_id` (`string`, required): ID of the destination folder.
- `name` (`string`, optional): New name for the copied file (optional).

### `box_file_delete`

Moves a file to the trash.

Parameters:

- `file_id` (`string`, required): ID of the file to delete.

### `box_file_get`

Retrieves detailed information about a file.

Parameters:

- `file_id` (`string`, required): ID of the file.
- `fields` (`string`, optional): Comma-separated list of fields to return.

### `box_file_metadata_create`

Applies metadata to a file.

Parameters:

- `data_json` (`string`, required): JSON object of metadata fields and values.
- `file_id` (`string`, required): ID of the file.
- `scope` (`string`, required): Scope: global or enterprise.
- `template_key` (`string`, required): Metadata template key.

### `box_file_metadata_delete`

Removes a metadata instance from a file.

Parameters:

- `file_id` (`string`, required): ID of the file.
- `scope` (`string`, required): Scope: global or enterprise.
- `template_key` (`string`, required): Metadata template key.

### `box_file_metadata_get`

Retrieves a specific metadata instance on a file.

Parameters:

- `file_id` (`string`, required): ID of the file.
- `scope` (`string`, required): Scope: global or enterprise.
- `template_key` (`string`, required): Metadata template key.

### `box_file_metadata_list`

Retrieves all metadata instances attached to a file.

Parameters:

- `file_id` (`string`, required): ID of the file.

### `box_file_tasks_list`

Retrieves all tasks associated with a file.

Parameters:

- `file_id` (`string`, required): ID of the file.

### `box_file_representations_get`

Retrieves available representations for a file, such as PDFs, extracted text, or image thumbnails. Box generates representations on demand — poll until status is success before downloading.

Parameters:

- `file_id` (`string`, required): ID of the file. Get it from box_folder_items_list.
- `x_rep_hints` (`string`, required): Representation formats to request, e.g. [pdf][extracted_text] or [jpg?dimensions=320x320]. Multiple formats can be combined.

### `box_file_thumbnail_get`

Retrieves a thumbnail image for a file.

Parameters:

- `extension` (`string`, required): Thumbnail format: jpg or png.
- `file_id` (`string`, required): ID of the file.
- `min_height` (`integer`, optional): Minimum height of the thumbnail in pixels.
- `min_width` (`integer`, optional): Minimum width of the thumbnail in pixels.

### `box_file_update`

Updates a file's name, description, tags, or moves it to another folder.

Parameters:

- `file_id` (`string`, required): ID of the file to update.
- `description` (`string`, optional): New description for the file.
- `name` (`string`, optional): New name for the file.
- `parent_id` (`string`, optional): ID of the folder to move the file into.
- `tags` (`string`, optional): Comma-separated list of tags. Pass as JSON string.

### `box_file_versions_list`

Retrieves all previous versions of a file.

Parameters:

- `file_id` (`string`, required): ID of the file.

### `box_folder_collaborations_list`

Retrieves all collaborations on a folder.

Parameters:

- `folder_id` (`string`, required): ID of the folder.
- `fields` (`string`, optional): Comma-separated list of fields to return.

### `box_folder_copy`

Creates a copy of a folder and its contents.

Parameters:

- `folder_id` (`string`, required): ID of the folder to copy.
- `parent_id` (`string`, required): ID of the destination folder.
- `name` (`string`, optional): New name for the copied folder (optional).

### `box_folder_create`

Creates a new folder inside a parent folder.

Parameters:

- `name` (`string`, required): Name of the new folder.
- `parent_id` (`string`, required): ID of the parent folder. Use '0' for root.
- `fields` (`string`, optional): Comma-separated list of fields to return.

### `box_folder_delete`

Moves a folder to the trash.

Parameters:

- `folder_id` (`string`, required): ID of the folder to delete.
- `recursive` (`string`, optional): Delete non-empty folders recursively (true/false).

### `box_folder_get`

Retrieves a folder's details and its items.

Parameters:

- `folder_id` (`string`, required): ID of the folder. Use '0' for root.
- `direction` (`string`, optional): Sort direction: ASC or DESC.
- `fields` (`string`, optional): Comma-separated list of fields to return.
- `limit` (`integer`, optional): Max items to return (max 1000).
- `offset` (`integer`, optional): Pagination offset.
- `sort` (`string`, optional): Sort order: id, name, date, or size.

### `box_folder_items_list`

Retrieves a paginated list of items in a folder.

Parameters:

- `folder_id` (`string`, required): ID of the folder. Use '0' for root.
- `direction` (`string`, optional): ASC or DESC.
- `fields` (`string`, optional): Comma-separated list of fields to return.
- `limit` (`integer`, optional): Max items to return (max 1000).
- `offset` (`integer`, optional): Pagination offset.
- `sort` (`string`, optional): Sort field: id, name, date, or size.

### `box_folder_metadata_list`

Retrieves all metadata instances on a folder.

Parameters:

- `folder_id` (`string`, required): ID of the folder.

### `box_folder_update`

Updates a folder's name, description, or moves it.

Parameters:

- `folder_id` (`string`, required): ID of the folder to update.
- `description` (`string`, optional): New description for the folder.
- `name` (`string`, optional): New name for the folder.
- `parent_id` (`string`, optional): ID of the new parent folder to move into.

### `box_group_create`

Creates a new group in the enterprise.

Parameters:

- `name` (`string`, required): Name of the group.
- `description` (`string`, optional): Description of the group.
- `invitability_level` (`string`, optional): Who can invite to group: admins_only, admins_and_members, all_managed_users.
- `member_viewability_level` (`string`, optional): Who can view group members: admins_only, admins_and_members, all_managed_users.
- `provenance` (`string`, optional): Identifier to distinguish manually vs synced groups.

### `box_group_delete`

Permanently deletes a group.

Parameters:

- `group_id` (`string`, required): ID of the group to delete.

### `box_group_get`

Retrieves information about a group.

Parameters:

- `group_id` (`string`, required): ID of the group.
- `fields` (`string`, optional): Comma-separated list of fields to return.

### `box_group_members_list`

Retrieves all members of a group.

Parameters:

- `group_id` (`string`, required): ID of the group.
- `limit` (`integer`, optional): Max results.
- `offset` (`integer`, optional): Pagination offset.

### `box_group_membership_add`

Adds a user to a group.

Parameters:

- `group_id` (`string`, required): ID of the group.
- `user_id` (`string`, required): ID of the user to add.
- `role` (`string`, optional): Role in the group: member or admin.

### `box_group_membership_get`

Retrieves a specific group membership.

Parameters:

- `group_membership_id` (`string`, required): ID of the group membership.
- `fields` (`string`, optional): Comma-separated list of fields to return.

### `box_group_membership_remove`

Removes a user from a group.

Parameters:

- `group_membership_id` (`string`, required): ID of the group membership to remove.

### `box_group_membership_update`

Updates a user's role in a group.

Parameters:

- `group_membership_id` (`string`, required): ID of the membership to update.
- `role` (`string`, optional): New role: member or admin.

### `box_group_update`

Updates a group's properties.

Parameters:

- `group_id` (`string`, required): ID of the group to update.
- `description` (`string`, optional): New description.
- `invitability_level` (`string`, optional): Who can invite: admins_only, admins_and_members, all_managed_users.
- `member_viewability_level` (`string`, optional): Who can view members.
- `name` (`string`, optional): New name for the group.

### `box_groups_list`

Retrieves all groups in the enterprise.

Parameters:

- `fields` (`string`, optional): Comma-separated list of fields to return.
- `filter_term` (`string`, optional): Filter groups by name.
- `limit` (`integer`, optional): Max results.
- `offset` (`integer`, optional): Pagination offset.

### `box_metadata_template_get`

Retrieves a metadata template schema.

Parameters:

- `scope` (`string`, required): Scope of the template: global or enterprise.
- `template_key` (`string`, required): Key of the metadata template.

### `box_metadata_templates_list`

Retrieves all metadata templates for the enterprise.

Parameters:

- `limit` (`integer`, optional): Max results.
- `marker` (`string`, optional): Pagination marker.

### `box_recent_items_list`

Retrieves files and folders accessed recently.

Parameters:

- `fields` (`string`, optional): Comma-separated list of fields to return.
- `limit` (`integer`, optional): Max results.
- `marker` (`string`, optional): Pagination marker.

### `box_search`

Searches files, folders, and web links in Box.

Parameters:

- `query` (`string`, required): Search query string.
- `ancestor_folder_ids` (`string`, optional): Comma-separated folder IDs to search within.
- `content_types` (`string`, optional): Comma-separated content types: name, description, tag, comments, file_content.
- `created_at_range` (`string`, optional): Date range in ISO 8601: 2024-01-01T00:00:00Z,2024-12-31T23:59:59Z
- `fields` (`string`, optional): Comma-separated list of fields to return.
- `file_extensions` (`string`, optional): Comma-separated file extensions to filter.
- `limit` (`integer`, optional): Max results (max 200).
- `offset` (`integer`, optional): Pagination offset.
- `owner_user_ids` (`string`, optional): Comma-separated user IDs.
- `scope` (`string`, optional): Search scope: user_content or enterprise_content.
- `type` (`string`, optional): Filter by type: file, folder, or web_link.
- `updated_at_range` (`string`, optional): Date range for last updated.

### `box_shared_link_file_create`

Creates or updates a shared link for a file.

Parameters:

- `file_id` (`string`, required): ID of the file.
- `access` (`string`, optional): Shared link access: open, company, or collaborators.
- `can_download` (`boolean`, optional): Allow download (true/false).
- `can_preview` (`boolean`, optional): Allow preview (true/false).
- `password` (`string`, optional): Password to protect the shared link.
- `unshared_at` (`string`, optional): Expiry date in ISO 8601 format.

### `box_shared_link_folder_create`

Creates or updates a shared link for a folder.

Parameters:

- `folder_id` (`string`, required): ID of the folder.
- `access` (`string`, optional): Shared link access: open, company, or collaborators.
- `can_download` (`boolean`, optional): Allow download (true/false).
- `password` (`string`, optional): Password to protect the shared link.
- `unshared_at` (`string`, optional): Expiry date in ISO 8601 format.

### `box_task_assignment_create`

Assigns a task to a user.

Parameters:

- `task_id` (`string`, required): ID of the task to assign.
- `user_id` (`string`, optional): ID of the user to assign the task to.
- `user_login` (`string`, optional): Email login of the user (alternative to user_id).

### `box_task_assignment_delete`

Removes a task assignment from a user.

Parameters:

- `task_assignment_id` (`string`, required): ID of the task assignment to remove.

### `box_task_assignment_get`

Retrieves a specific task assignment.

Parameters:

- `task_assignment_id` (`string`, required): ID of the task assignment.

### `box_task_assignment_update`

Updates a task assignment (complete, approve, or reject).

Parameters:

- `task_assignment_id` (`string`, required): ID of the task assignment.
- `message` (`string`, optional): Optional message/comment for the resolution.
- `resolution_state` (`string`, optional): Resolution state: completed, incomplete, approved, or rejected.

### `box_task_assignments_list`

Retrieves all assignments for a task.

Parameters:

- `task_id` (`string`, required): ID of the task.

### `box_task_create`

Creates a task on a file.

Parameters:

- `file_id` (`string`, required): ID of the file to attach the task to.
- `action` (`string`, optional): Action: review or complete.
- `completion_rule` (`string`, optional): Completion rule: all_assignees or any_assignee.
- `due_at` (`string`, optional): Due date in ISO 8601 format.
- `message` (`string`, optional): Task message/description.

### `box_task_delete`

Removes a task from a file.

Parameters:

- `task_id` (`string`, required): ID of the task to delete.

### `box_task_get`

Retrieves a task's details.

Parameters:

- `task_id` (`string`, required): ID of the task.

### `box_task_update`

Updates a task's message, due date, or completion rule.

Parameters:

- `task_id` (`string`, required): ID of the task to update.
- `action` (`string`, optional): New action: review or complete.
- `completion_rule` (`string`, optional): New completion rule: all_assignees or any_assignee.
- `due_at` (`string`, optional): New due date in ISO 8601 format.
- `message` (`string`, optional): New message for the task.

### `box_trash_file_permanently_delete`

Permanently deletes a trashed file.

Parameters:

- `file_id` (`string`, required): ID of the trashed file.

### `box_trash_file_restore`

Restores a file from the trash.

Parameters:

- `file_id` (`string`, required): ID of the trashed file.
- `name` (`string`, optional): New name if original name is taken.
- `parent_id` (`string`, optional): Parent folder ID if original is unavailable.

### `box_trash_folder_permanently_delete`

Permanently deletes a trashed folder.

Parameters:

- `folder_id` (`string`, required): ID of the trashed folder.

### `box_trash_folder_restore`

Restores a folder from the trash.

Parameters:

- `folder_id` (`string`, required): ID of the trashed folder.
- `name` (`string`, optional): New name if original is taken.
- `parent_id` (`string`, optional): New parent folder ID if original is unavailable.

### `box_trash_list`

Retrieves items in the user's trash.

Parameters:

- `direction` (`string`, optional): Sort direction: ASC or DESC.
- `fields` (`string`, optional): Comma-separated list of fields to return.
- `limit` (`integer`, optional): Max results.
- `offset` (`integer`, optional): Pagination offset.
- `sort` (`string`, optional): Sort field: name, date, or size.

### `box_user_create`

Creates a new user in the enterprise.

Parameters:

- `name` (`string`, required): Full name of the user.
- `is_platform_access_only` (`boolean`, optional): Set true for app users (no login).
- `login` (`string`, optional): Email address (login) for managed users.
- `role` (`string`, optional): User role: user or coadmin.
- `space_amount` (`integer`, optional): Storage quota in bytes (-1 for unlimited).

### `box_user_delete`

Removes a user from the enterprise.

Parameters:

- `user_id` (`string`, required): ID of the user to delete.
- `force` (`string`, optional): Force deletion even if user owns content (true/false).
- `notify` (`string`, optional): Notify user via email (true/false).

### `box_user_get`

Retrieves information about a specific user.

Parameters:

- `user_id` (`string`, required): ID of the user.
- `fields` (`string`, optional): Comma-separated list of fields to return.

### `box_user_me_get`

Retrieves information about the currently authenticated user.

Parameters:

- `fields` (`string`, optional): Comma-separated list of fields to return.

### `box_user_memberships_list`

Retrieves all group memberships for a user.

Parameters:

- `user_id` (`string`, required): ID of the user.
- `limit` (`integer`, optional): Max results.
- `offset` (`integer`, optional): Pagination offset.

### `box_user_update`

Updates a user's properties in the enterprise.

Parameters:

- `user_id` (`string`, required): ID of the user to update.
- `name` (`string`, optional): New full name.
- `role` (`string`, optional): New role: user or coadmin.
- `space_amount` (`integer`, optional): Storage quota in bytes.
- `status` (`string`, optional): New status: active, inactive, or cannot_delete_edit.
- `tracking_codes` (`string`, optional): Tracking codes as JSON array string.

### `box_users_list`

Retrieves all users in the enterprise.

Parameters:

- `fields` (`string`, optional): Comma-separated list of fields to return.
- `filter_term` (`string`, optional): Filter users by name or login.
- `limit` (`integer`, optional): Max users to return.
- `offset` (`integer`, optional): Pagination offset.
- `user_type` (`string`, optional): Filter by type: all, managed, or external.

### `box_web_link_create`

Creates a web link (bookmark) inside a folder.

Parameters:

- `parent_id` (`string`, required): ID of the parent folder.
- `url` (`string`, required): URL of the web link.
- `description` (`string`, optional): Description of the web link.
- `name` (`string`, optional): Name for the web link.

### `box_web_link_delete`

Removes a web link.

Parameters:

- `web_link_id` (`string`, required): ID of the web link to delete.

### `box_web_link_get`

Retrieves a web link's details.

Parameters:

- `web_link_id` (`string`, required): ID of the web link.
- `fields` (`string`, optional): Comma-separated list of fields to return.

### `box_web_link_update`

Updates a web link's URL, name, or description.

Parameters:

- `web_link_id` (`string`, required): ID of the web link to update.
- `description` (`string`, optional): New description.
- `name` (`string`, optional): New name.
- `parent_id` (`string`, optional): New parent folder ID.
- `url` (`string`, optional): New URL.

### `box_webhook_create`

Creates a webhook to receive event notifications.

Parameters:

- `address` (`string`, required): HTTPS URL to receive webhook notifications.
- `target_id` (`string`, required): ID of the file or folder to watch.
- `target_type` (`string`, required): Type of target: file or folder.
- `triggers` (`array`, required): Array of trigger events, e.g. ["FILE.UPLOADED","FILE.DELETED"].

### `box_webhook_delete`

Removes a webhook.

Parameters:

- `webhook_id` (`string`, required): ID of the webhook to delete.

### `box_webhook_get`

Retrieves a webhook's details.

Parameters:

- `webhook_id` (`string`, required): ID of the webhook.

### `box_webhook_update`

Updates a webhook's address or triggers.

Parameters:

- `webhook_id` (`string`, required): ID of the webhook to update.
- `address` (`string`, optional): New HTTPS URL for notifications.
- `target_id` (`string`, optional): New target ID.
- `target_type` (`string`, optional): New target type: file or folder.
- `triggers` (`array`, optional): New array of trigger events, e.g. ["FILE.UPLOADED","FILE.DELETED"].

### `box_webhooks_list`

Retrieves all webhooks for the application.

Parameters:

- `limit` (`integer`, optional): Max results.
- `marker` (`string`, optional): Pagination marker.


---

## 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 |
