Box
36 tools • OpenAPI spec ↗
GETget_file/files/:file_idRetrieve details for a file by its ID, including name, size, owner, path, and metadata.
Request
Path Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| file_id | string | Yes | The unique identifier of the file (e.g. '12345'). |
Query Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| fields | string | No | Comma-separated list of fields to include (e.g. 'name,size,modified_at'). |
Response
Examples
1. Describe method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "describe_method",
"arguments": {
"service": "box",
"method": "get_file"
}
}
}2. Call method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "call_box",
"arguments": {
"method": "get_file",
"params": {
"file_id": "<file_id>"
}
}
}
}Request
GET https://app.ferrule.io/api/v1/box/files/:file_id Authorization: Bearer <your-api-key> Content-Type: application/json
Response
{
"type": "...",
"id": "...",
"name": null,
"description": null,
"size": null,
"pathCollection": null,
"createdAt": null,
"modifiedAt": null,
"contentCreatedAt": null,
"contentModifiedAt": null,
"createdBy": null,
"modifiedBy": null,
"ownedBy": null,
"sharedLink": null,
"parent": null,
"itemStatus": null,
"sequenceId": null,
"etag": null,
"sha1": null,
"fileVersion": null,
"tags": null,
"extension": null,
"permissions": null,
"lock": null,
"metadata": null
}PATCHupdate_file/files/:file_idUpdate a file's name, description, or move it to a different folder by changing its parent.
Request
Path Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| file_id | string | Yes | The unique identifier of the file to update. |
Query Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| name | string | No | New name for the file. |
| description | string | No | New description for the file. |
| parent_id | string | No | ID of the new parent folder to move the file into. Use '0' for root. |
| tags | object | No | Array of tags to set on the file. |
Response
Runtime output is unvalidated JSON (raw passthrough).
Examples
1. Describe method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "describe_method",
"arguments": {
"service": "box",
"method": "update_file"
}
}
}2. Call method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "call_box",
"arguments": {
"method": "update_file",
"params": {
"file_id": "<file_id>"
}
}
}
}Request
PATCH https://app.ferrule.io/api/v1/box/files/:file_id Authorization: Bearer <your-api-key> Content-Type: application/json
Response
{
"type": "...",
"id": "...",
"name": null,
"description": null,
"size": null,
"pathCollection": null,
"createdAt": null,
"modifiedAt": null,
"contentCreatedAt": null,
"contentModifiedAt": null,
"createdBy": null,
"modifiedBy": null,
"ownedBy": null,
"sharedLink": null,
"parent": null,
"itemStatus": null,
"sequenceId": null,
"etag": null,
"sha1": null,
"fileVersion": null,
"tags": null,
"extension": null,
"permissions": null,
"lock": null,
"metadata": null
}DELETEdelete_file/files/:file_idDelete a file by its ID, moving it to the trash.
Request
Path Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| file_id | string | Yes | The unique identifier of the file to delete. |
Response
Examples
1. Describe method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "describe_method",
"arguments": {
"service": "box",
"method": "delete_file"
}
}
}2. Call method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "call_box",
"arguments": {
"method": "delete_file",
"params": {
"file_id": "<file_id>"
}
}
}
}Request
DELETE https://app.ferrule.io/api/v1/box/files/:file_id Authorization: Bearer <your-api-key> Content-Type: application/json
Response
// Raw JSON from upstream API
POSTcopy_file/files/:file_id/copyCopy a file to a destination folder. Optionally provide a new name.
Request
Path Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| file_id | string | Yes | The unique identifier of the file to copy. |
Query Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| parent_id | string | No | ID of the destination folder for the copy. |
| name | string | No | Optional new name for the copied file. |
Response
Examples
1. Describe method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "describe_method",
"arguments": {
"service": "box",
"method": "copy_file"
}
}
}2. Call method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "call_box",
"arguments": {
"method": "copy_file",
"params": {
"file_id": "<file_id>"
}
}
}
}Request
POST https://app.ferrule.io/api/v1/box/files/:file_id/copy Authorization: Bearer <your-api-key> Content-Type: application/json
Response
{
"type": "...",
"id": "...",
"name": null,
"description": null,
"size": null,
"pathCollection": null,
"createdAt": null,
"modifiedAt": null,
"contentCreatedAt": null,
"contentModifiedAt": null,
"createdBy": null,
"modifiedBy": null,
"ownedBy": null,
"sharedLink": null,
"parent": null,
"itemStatus": null,
"sequenceId": null,
"etag": null,
"sha1": null,
"fileVersion": null,
"tags": null,
"extension": null,
"permissions": null,
"lock": null,
"metadata": null
}GETget_download_url/files/:file_id/download-urlGet a temporary download URL for a file. The URL is valid for a short time.
Request
Path Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| file_id | string | Yes | The unique identifier of the file to download. |
Response
Examples
1. Describe method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "describe_method",
"arguments": {
"service": "box",
"method": "get_download_url"
}
}
}2. Call method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "call_box",
"arguments": {
"method": "get_download_url",
"params": {
"file_id": "<file_id>"
}
}
}
}Request
GET https://app.ferrule.io/api/v1/box/files/:file_id/download-url Authorization: Bearer <your-api-key> Content-Type: application/json
Response
// Raw JSON from upstream API
GETlist_file_versions/files/:file_id/versionsList all past versions of a file. Versions are only tracked for premium accounts.
Request
Path Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| file_id | string | Yes | The unique identifier of the file. |
Query Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| limit | number | No | Maximum number of versions to return per page. |
| offset | number | No | Offset for pagination (0-based). |
Response
Examples
1. Describe method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "describe_method",
"arguments": {
"service": "box",
"method": "list_file_versions"
}
}
}2. Call method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "call_box",
"arguments": {
"method": "list_file_versions",
"params": {
"file_id": "<file_id>"
}
}
}
}Request
GET https://app.ferrule.io/api/v1/box/files/:file_id/versions Authorization: Bearer <your-api-key> Content-Type: application/json
Response
{
"totalCount": 0,
"entries": [],
"offset": null,
"limit": null
}POSTpromote_file_version/files/:file_id/versions/promotePromote an older version of a file to become the current version. Creates a copy of the old version as the latest.
Request
Path Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| file_id | string | Yes | The unique identifier of the file. |
Query Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| version_id | string | No | The ID of the file version to promote. |
Response
Runtime output is unvalidated JSON (raw passthrough).
Examples
1. Describe method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "describe_method",
"arguments": {
"service": "box",
"method": "promote_file_version"
}
}
}2. Call method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "call_box",
"arguments": {
"method": "promote_file_version",
"params": {
"file_id": "<file_id>"
}
}
}
}Request
POST https://app.ferrule.io/api/v1/box/files/:file_id/versions/promote Authorization: Bearer <your-api-key> Content-Type: application/json
Response
{
"type": "...",
"id": "...",
"name": null,
"size": null,
"createdAt": null,
"modifiedAt": null,
"modifiedBy": null,
"sha1": null,
"trashedAt": null,
"trashedBy": null,
"restoredAt": null,
"restoredBy": null,
"purgedAt": null,
"uploaderDisplayName": null,
"versionNumber": null
}GETget_folder/folders/:folder_idRetrieve details for a folder by its ID, including the first 100 items. Use '0' for the root folder.
Request
Path Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| folder_id | string | Yes | The unique identifier of the folder. Use '0' for the root folder. |
Query Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| fields | string | No | Comma-separated list of fields to include. |
Response
Examples
1. Describe method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "describe_method",
"arguments": {
"service": "box",
"method": "get_folder"
}
}
}2. Call method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "call_box",
"arguments": {
"method": "get_folder",
"params": {
"folder_id": "<folder_id>"
}
}
}
}Request
GET https://app.ferrule.io/api/v1/box/folders/:folder_id Authorization: Bearer <your-api-key> Content-Type: application/json
Response
{
"type": "...",
"id": "...",
"name": null,
"description": null,
"size": null,
"pathCollection": null,
"createdAt": null,
"modifiedAt": null,
"createdBy": null,
"modifiedBy": null,
"ownedBy": null,
"sharedLink": null,
"parent": null,
"itemStatus": null,
"sequenceId": null,
"etag": null,
"itemCollection": null,
"tags": null,
"permissions": null,
"folderUploadEmail": null
}GETlist_folder_items/folders/:folder_id/itemsList items (files, folders, web links) in a folder with pagination support.
Request
Path Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| folder_id | string | Yes | The unique identifier of the folder. Use '0' for the root folder. |
Query Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| fields | string | No | Comma-separated list of fields to include. |
| limit | number | No | Maximum number of items to return (max 1000). |
| offset | number | No | Offset for pagination (0-based). |
| sort | string | No | Sort field: 'id', 'name', or 'date'. |
| direction | string | No | Sort direction: 'ASC' or 'DESC'. |
Response
Examples
1. Describe method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "describe_method",
"arguments": {
"service": "box",
"method": "list_folder_items"
}
}
}2. Call method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "call_box",
"arguments": {
"method": "list_folder_items",
"params": {
"folder_id": "<folder_id>"
}
}
}
}Request
GET https://app.ferrule.io/api/v1/box/folders/:folder_id/items Authorization: Bearer <your-api-key> Content-Type: application/json
Response
{
"totalCount": 0,
"entries": [],
"offset": null,
"limit": null
}POSTcreate_folder/foldersCreate a new folder inside a parent folder.
Request
Query Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| name | string | No | Name for the new folder. |
| parent_id | string | No | ID of the parent folder. Use '0' to create in the root folder. |
Response
Examples
1. Describe method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "describe_method",
"arguments": {
"service": "box",
"method": "create_folder"
}
}
}2. Call method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "call_box",
"arguments": {
"method": "create_folder",
"params": {}
}
}
}Request
POST https://app.ferrule.io/api/v1/box/folders Authorization: Bearer <your-api-key> Content-Type: application/json
Response
{
"type": "...",
"id": "...",
"name": null,
"description": null,
"size": null,
"pathCollection": null,
"createdAt": null,
"modifiedAt": null,
"createdBy": null,
"modifiedBy": null,
"ownedBy": null,
"sharedLink": null,
"parent": null,
"itemStatus": null,
"sequenceId": null,
"etag": null,
"itemCollection": null,
"tags": null,
"permissions": null,
"folderUploadEmail": null
}PATCHupdate_folder/folders/:folder_idUpdate a folder's name, description, or move it to a different parent folder.
Request
Path Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| folder_id | string | Yes | The unique identifier of the folder to update. |
Query Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| name | string | No | New name for the folder. |
| description | string | No | New description for the folder. |
| parent_id | string | No | ID of the new parent folder to move into. |
| tags | object | No | Array of tags to set on the folder. |
Response
Runtime output is unvalidated JSON (raw passthrough).
Examples
1. Describe method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "describe_method",
"arguments": {
"service": "box",
"method": "update_folder"
}
}
}2. Call method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "call_box",
"arguments": {
"method": "update_folder",
"params": {
"folder_id": "<folder_id>"
}
}
}
}Request
PATCH https://app.ferrule.io/api/v1/box/folders/:folder_id Authorization: Bearer <your-api-key> Content-Type: application/json
Response
{
"type": "...",
"id": "...",
"name": null,
"description": null,
"size": null,
"pathCollection": null,
"createdAt": null,
"modifiedAt": null,
"createdBy": null,
"modifiedBy": null,
"ownedBy": null,
"sharedLink": null,
"parent": null,
"itemStatus": null,
"sequenceId": null,
"etag": null,
"itemCollection": null,
"tags": null,
"permissions": null,
"folderUploadEmail": null
}DELETEdelete_folder/folders/:folder_idDelete a folder by its ID, moving it to the trash. Set recursive to true to delete non-empty folders.
Request
Path Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| folder_id | string | Yes | The unique identifier of the folder to delete. |
Query Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| recursive | boolean | No | Whether to delete the folder even if it is not empty (default: false). |
Response
Examples
1. Describe method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "describe_method",
"arguments": {
"service": "box",
"method": "delete_folder"
}
}
}2. Call method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "call_box",
"arguments": {
"method": "delete_folder",
"params": {
"folder_id": "<folder_id>"
}
}
}
}Request
DELETE https://app.ferrule.io/api/v1/box/folders/:folder_id Authorization: Bearer <your-api-key> Content-Type: application/json
Response
// Raw JSON from upstream API
POSTcopy_folder/folders/:folder_id/copyCopy a folder and its contents to a destination folder. Optionally provide a new name.
Request
Path Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| folder_id | string | Yes | The unique identifier of the folder to copy. |
Query Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| parent_id | string | No | ID of the destination folder for the copy. |
| name | string | No | Optional new name for the copied folder. |
Response
Examples
1. Describe method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "describe_method",
"arguments": {
"service": "box",
"method": "copy_folder"
}
}
}2. Call method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "call_box",
"arguments": {
"method": "copy_folder",
"params": {
"folder_id": "<folder_id>"
}
}
}
}Request
POST https://app.ferrule.io/api/v1/box/folders/:folder_id/copy Authorization: Bearer <your-api-key> Content-Type: application/json
Response
{
"type": "...",
"id": "...",
"name": null,
"description": null,
"size": null,
"pathCollection": null,
"createdAt": null,
"modifiedAt": null,
"createdBy": null,
"modifiedBy": null,
"ownedBy": null,
"sharedLink": null,
"parent": null,
"itemStatus": null,
"sequenceId": null,
"etag": null,
"itemCollection": null,
"tags": null,
"permissions": null,
"folderUploadEmail": null
}POSTsearch_content/searchSearch for files, folders, and web links across the user's content. Supports full-text search with Boolean operators (AND, OR, NOT).
Request
Query Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| query | string | No | Search query string. Supports AND, OR, NOT operators and quoted exact matches. |
| type | string | No | Limit to 'file', 'folder', or 'web_link'. |
| file_extensions | string | No | Comma-separated file extensions to filter by (e.g. 'pdf,docx'). |
| ancestor_folder_ids | string | No | Comma-separated folder IDs to scope the search. |
| content_types | string | No | Comma-separated content types: 'name', 'description', 'file_content', 'comments', 'tags'. |
| limit | number | No | Maximum number of results to return. |
| offset | number | No | Offset for pagination (max 10000). |
| sort | string | No | Sort by 'relevance' (default) or 'modified_at'. |
| direction | string | No | Sort direction: 'ASC' or 'DESC'. |
| created_at_range | string | No | Comma-separated date range for creation date (e.g. '2023-01-01T00:00:00Z,2023-12-31T23:59:59Z'). Omit start or end for open ranges. |
| updated_at_range | string | No | Comma-separated date range for last update date (e.g. '2023-01-01T00:00:00Z,2023-12-31T23:59:59Z'). Omit start or end for open ranges. |
Response
Examples
1. Describe method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "describe_method",
"arguments": {
"service": "box",
"method": "search_content"
}
}
}2. Call method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "call_box",
"arguments": {
"method": "search_content",
"params": {}
}
}
}Request
POST https://app.ferrule.io/api/v1/box/search Authorization: Bearer <your-api-key> Content-Type: application/json
Response
{
"totalCount": null,
"entries": [],
"offset": null,
"limit": null
}GETlist_folder_collaborations/folders/:folder_id/collaborationsList all collaborations (shared access) on a folder, including pending invitations.
Request
Path Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| folder_id | string | Yes | The unique identifier of the folder. |
Response
Examples
1. Describe method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "describe_method",
"arguments": {
"service": "box",
"method": "list_folder_collaborations"
}
}
}2. Call method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "call_box",
"arguments": {
"method": "list_folder_collaborations",
"params": {
"folder_id": "<folder_id>"
}
}
}
}Request
GET https://app.ferrule.io/api/v1/box/folders/:folder_id/collaborations Authorization: Bearer <your-api-key> Content-Type: application/json
Response
{
"totalCount": 0,
"entries": [],
"offset": null,
"limit": null
}POSTadd_collaboration/collaborationsAdd a collaborator to a file or folder. Specify the item, the user or group, and their role.
Request
Query Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| item_type | string | No | Type of item: 'file' or 'folder'. |
| item_id | string | No | ID of the file or folder. |
| accessible_by_type | string | No | Type of collaborator: 'user' or 'group'. |
| accessible_by_id | string | No | ID of the user or group. Required if login is not provided. |
| accessible_by_login | string | No | Email of the user to invite. Required if id is not provided. |
| role | string | No | Role: 'editor', 'viewer', 'previewer', 'uploader', 'previewer uploader', 'viewer uploader', 'co-owner'. |
Response
Examples
1. Describe method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "describe_method",
"arguments": {
"service": "box",
"method": "add_collaboration"
}
}
}2. Call method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "call_box",
"arguments": {
"method": "add_collaboration",
"params": {}
}
}
}Request
POST https://app.ferrule.io/api/v1/box/collaborations Authorization: Bearer <your-api-key> Content-Type: application/json
Response
{
"type": "...",
"id": "...",
"createdBy": null,
"createdAt": null,
"modifiedAt": null,
"expiresAt": null,
"status": null,
"accessibleBy": null,
"role": null,
"acknowledgedAt": null,
"inviteEmail": null,
"item": null
}PATCHupdate_collaboration/collaborations/:collaboration_idUpdate the role or status of an existing collaboration.
Request
Path Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| collaboration_id | string | Yes | The unique identifier of the collaboration. |
Query Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| role | string | No | New role: 'editor', 'viewer', 'previewer', 'uploader', 'previewer uploader', 'viewer uploader', 'co-owner', 'owner'. |
| status | string | No | New status: 'accepted' or 'rejected' (for pending invites). |
Response
Runtime output is unvalidated JSON (raw passthrough).
Examples
1. Describe method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "describe_method",
"arguments": {
"service": "box",
"method": "update_collaboration"
}
}
}2. Call method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "call_box",
"arguments": {
"method": "update_collaboration",
"params": {
"collaboration_id": "<collaboration_id>"
}
}
}
}Request
PATCH https://app.ferrule.io/api/v1/box/collaborations/:collaboration_id Authorization: Bearer <your-api-key> Content-Type: application/json
Response
{
"type": "...",
"id": "...",
"createdBy": null,
"createdAt": null,
"modifiedAt": null,
"expiresAt": null,
"status": null,
"accessibleBy": null,
"role": null,
"acknowledgedAt": null,
"inviteEmail": null,
"item": null
}DELETEremove_collaboration/collaborations/:collaboration_idRemove a collaboration (revoke access) by its ID.
Request
Path Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| collaboration_id | string | Yes | The unique identifier of the collaboration to remove. |
Response
Examples
1. Describe method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "describe_method",
"arguments": {
"service": "box",
"method": "remove_collaboration"
}
}
}2. Call method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "call_box",
"arguments": {
"method": "remove_collaboration",
"params": {
"collaboration_id": "<collaboration_id>"
}
}
}
}Request
DELETE https://app.ferrule.io/api/v1/box/collaborations/:collaboration_id Authorization: Bearer <your-api-key> Content-Type: application/json
Response
// Raw JSON from upstream API
GETlist_file_comments/files/:file_id/commentsList all comments on a file.
Request
Path Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| file_id | string | Yes | The unique identifier of the file. |
Query Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| limit | number | No | Maximum number of comments to return per page. |
| offset | number | No | Offset for pagination (0-based). |
Response
Examples
1. Describe method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "describe_method",
"arguments": {
"service": "box",
"method": "list_file_comments"
}
}
}2. Call method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "call_box",
"arguments": {
"method": "list_file_comments",
"params": {
"file_id": "<file_id>"
}
}
}
}Request
GET https://app.ferrule.io/api/v1/box/files/:file_id/comments Authorization: Bearer <your-api-key> Content-Type: application/json
Response
{
"totalCount": 0,
"entries": [],
"offset": null,
"limit": null
}POSTcreate_comment/commentsAdd a comment to a file. Use tagged_message to @mention users with @[user_id:name] syntax.
Request
Query Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| file_id | string | No | The ID of the file to comment on. |
| message | string | No | The comment text. Use this for simple comments. |
| tagged_message | string | No | Comment text with @mentions using @[user_id:name] syntax. Use instead of message when mentioning users. |
Response
Examples
1. Describe method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "describe_method",
"arguments": {
"service": "box",
"method": "create_comment"
}
}
}2. Call method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "call_box",
"arguments": {
"method": "create_comment",
"params": {}
}
}
}Request
POST https://app.ferrule.io/api/v1/box/comments Authorization: Bearer <your-api-key> Content-Type: application/json
Response
{
"type": "...",
"id": "...",
"message": null,
"taggedMessage": null,
"createdAt": null,
"modifiedAt": null,
"createdBy": null,
"isReplyComment": null,
"item": null
}DELETEdelete_comment/comments/:comment_idPermanently delete a comment by its ID.
Request
Path Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| comment_id | string | Yes | The unique identifier of the comment to delete. |
Response
Examples
1. Describe method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "describe_method",
"arguments": {
"service": "box",
"method": "delete_comment"
}
}
}2. Call method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "call_box",
"arguments": {
"method": "delete_comment",
"params": {
"comment_id": "<comment_id>"
}
}
}
}Request
DELETE https://app.ferrule.io/api/v1/box/comments/:comment_id Authorization: Bearer <your-api-key> Content-Type: application/json
Response
// Raw JSON from upstream API
GETlist_file_tasks/files/:file_id/tasksList all tasks on a file.
Request
Path Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| file_id | string | Yes | The unique identifier of the file. |
Response
Examples
1. Describe method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "describe_method",
"arguments": {
"service": "box",
"method": "list_file_tasks"
}
}
}2. Call method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "call_box",
"arguments": {
"method": "list_file_tasks",
"params": {
"file_id": "<file_id>"
}
}
}
}Request
GET https://app.ferrule.io/api/v1/box/files/:file_id/tasks Authorization: Bearer <your-api-key> Content-Type: application/json
Response
{
"totalCount": 0,
"entries": [],
"offset": null,
"limit": null
}POSTcreate_task/tasksCreate a task on a file. The task will need to be assigned separately using create_task_assignment.
Request
Query Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| file_id | string | No | The ID of the file to create a task on. |
| message | string | No | An optional message/description for the task. |
| action | string | No | Task action: 'review' (approval task) or 'complete' (general task). Defaults to 'review'. |
| due_at | string | No | Due date in ISO 8601 format (e.g. '2024-12-31T23:59:59Z'). |
| completion_rule | string | No | Completion rule: 'all_assignees' (default) or 'any_assignee'. |
Response
Examples
1. Describe method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "describe_method",
"arguments": {
"service": "box",
"method": "create_task"
}
}
}2. Call method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "call_box",
"arguments": {
"method": "create_task",
"params": {}
}
}
}Request
POST https://app.ferrule.io/api/v1/box/tasks Authorization: Bearer <your-api-key> Content-Type: application/json
Response
{
"type": "...",
"id": "...",
"item": null,
"dueAt": null,
"action": null,
"message": null,
"taskAssignmentCollection": null,
"isCompleted": null,
"createdAt": null,
"createdBy": null,
"completionRule": null
}POSTcreate_task_assignment/task-assignmentsAssign a task to a user by user ID or email address.
Request
Query Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| task_id | string | No | The ID of the task to assign. |
| user_id | string | No | The ID of the user to assign. Provide either user_id or login. |
| login | string | No | The email of the user to assign. Provide either user_id or login. |
Response
Examples
1. Describe method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "describe_method",
"arguments": {
"service": "box",
"method": "create_task_assignment"
}
}
}2. Call method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "call_box",
"arguments": {
"method": "create_task_assignment",
"params": {}
}
}
}Request
POST https://app.ferrule.io/api/v1/box/task-assignments Authorization: Bearer <your-api-key> Content-Type: application/json
Response
{
"type": "...",
"id": "...",
"item": null,
"assignedTo": null,
"message": null,
"completedAt": null,
"assignedAt": null,
"remindedAt": null,
"resolutionState": null,
"assignedBy": null,
"status": null
}PATCHupdate_task_assignment/task-assignments/:task_assignment_idUpdate a task assignment's resolution state (e.g., mark as completed, approved, or rejected).
Request
Path Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| task_assignment_id | string | Yes | The unique identifier of the task assignment. |
Query Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| message | string | No | An optional message from the assignee. |
| resolution_state | string | No | Resolution state: 'completed', 'incomplete', 'approved', or 'rejected'. |
Response
Runtime output is unvalidated JSON (raw passthrough).
Examples
1. Describe method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "describe_method",
"arguments": {
"service": "box",
"method": "update_task_assignment"
}
}
}2. Call method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "call_box",
"arguments": {
"method": "update_task_assignment",
"params": {
"task_assignment_id": "<task_assignment_id>"
}
}
}
}Request
PATCH https://app.ferrule.io/api/v1/box/task-assignments/:task_assignment_id Authorization: Bearer <your-api-key> Content-Type: application/json
Response
{
"type": "...",
"id": "...",
"item": null,
"assignedTo": null,
"message": null,
"completedAt": null,
"assignedAt": null,
"remindedAt": null,
"resolutionState": null,
"assignedBy": null,
"status": null
}GETlist_task_assignments/tasks/:task_id/assignmentsList all assignments for a task.
Request
Path Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| task_id | string | Yes | The unique identifier of the task. |
Response
Examples
1. Describe method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "describe_method",
"arguments": {
"service": "box",
"method": "list_task_assignments"
}
}
}2. Call method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "call_box",
"arguments": {
"method": "list_task_assignments",
"params": {
"task_id": "<task_id>"
}
}
}
}Request
GET https://app.ferrule.io/api/v1/box/tasks/:task_id/assignments Authorization: Bearer <your-api-key> Content-Type: application/json
Response
{
"totalCount": 0,
"entries": [],
"offset": null,
"limit": null
}GETlist_file_metadata/files/:file_id/metadataList all metadata instances applied to a file.
Request
Path Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| file_id | string | Yes | The unique identifier of the file. |
Response
Examples
1. Describe method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "describe_method",
"arguments": {
"service": "box",
"method": "list_file_metadata"
}
}
}2. Call method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "call_box",
"arguments": {
"method": "list_file_metadata",
"params": {
"file_id": "<file_id>"
}
}
}
}Request
GET https://app.ferrule.io/api/v1/box/files/:file_id/metadata Authorization: Bearer <your-api-key> Content-Type: application/json
Response
{
"entries": [],
"limit": null
}GETget_file_metadata/files/:file_id/metadata/:scope/:template_keyGet a specific metadata instance on a file by scope and template key.
Request
Path Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| file_id | string | Yes | The unique identifier of the file. |
| scope | string | Yes | Metadata scope: 'global' or 'enterprise' (e.g. 'enterprise_12345'). |
| template_key | string | Yes | The key of the metadata template (e.g. 'contractTemplate'). |
Response
Runtime output is unvalidated JSON (raw passthrough).
Examples
1. Describe method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "describe_method",
"arguments": {
"service": "box",
"method": "get_file_metadata"
}
}
}2. Call method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "call_box",
"arguments": {
"method": "get_file_metadata",
"params": {
"file_id": "<file_id>",
"scope": "<scope>",
"template_key": "<template_key>"
}
}
}
}Request
GET https://app.ferrule.io/api/v1/box/files/:file_id/metadata/:scope/:template_key Authorization: Bearer <your-api-key> Content-Type: application/json
POSTcreate_file_metadata/files/:file_id/metadata/:scope/:template_keyApply a metadata template instance to a file with the given key-value pairs.
Request
Path Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| file_id | string | Yes | The unique identifier of the file. |
| scope | string | Yes | Metadata scope: 'global' or 'enterprise' (e.g. 'enterprise_12345'). |
| template_key | string | Yes | The key of the metadata template. |
Query Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| data | object | No | Key-value pairs for the metadata instance. Example: { "category": "contract", "amount": 100 }. |
Response
Runtime output is unvalidated JSON (raw passthrough).
Examples
1. Describe method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "describe_method",
"arguments": {
"service": "box",
"method": "create_file_metadata"
}
}
}2. Call method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "call_box",
"arguments": {
"method": "create_file_metadata",
"params": {
"file_id": "<file_id>",
"scope": "<scope>",
"template_key": "<template_key>"
}
}
}
}Request
POST https://app.ferrule.io/api/v1/box/files/:file_id/metadata/:scope/:template_key Authorization: Bearer <your-api-key> Content-Type: application/json
DELETEdelete_file_metadata/files/:file_id/metadata/:scope/:template_keyRemove a metadata instance from a file by scope and template key.
Request
Path Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| file_id | string | Yes | The unique identifier of the file. |
| scope | string | Yes | Metadata scope: 'global' or 'enterprise'. |
| template_key | string | Yes | The key of the metadata template to remove. |
Response
Examples
1. Describe method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "describe_method",
"arguments": {
"service": "box",
"method": "delete_file_metadata"
}
}
}2. Call method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "call_box",
"arguments": {
"method": "delete_file_metadata",
"params": {
"file_id": "<file_id>",
"scope": "<scope>",
"template_key": "<template_key>"
}
}
}
}Request
DELETE https://app.ferrule.io/api/v1/box/files/:file_id/metadata/:scope/:template_key Authorization: Bearer <your-api-key> Content-Type: application/json
Response
// Raw JSON from upstream API
GETget_current_user/users/meGet the user profile for the currently authenticated user, including storage usage and role.
Request
No input parameters.
Response
Examples
1. Describe method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "describe_method",
"arguments": {
"service": "box",
"method": "get_current_user"
}
}
}2. Call method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "call_box",
"arguments": {
"method": "get_current_user",
"params": {}
}
}
}Request
GET https://app.ferrule.io/api/v1/box/users/me Authorization: Bearer <your-api-key> Content-Type: application/json
Response
{
"type": "...",
"id": "...",
"name": null,
"login": null,
"createdAt": null,
"modifiedAt": null,
"language": null,
"timezone": null,
"spaceAmount": null,
"spaceUsed": null,
"maxUploadSize": null,
"status": null,
"jobTitle": null,
"phone": null,
"address": null,
"avatarUrl": null,
"role": null
}GETget_trashed_file/trash/files/:file_idGet details of a file that has been moved to the trash.
Request
Path Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| file_id | string | Yes | The unique identifier of the trashed file. |
Response
Runtime output is unvalidated JSON (raw passthrough).
Examples
1. Describe method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "describe_method",
"arguments": {
"service": "box",
"method": "get_trashed_file"
}
}
}2. Call method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "call_box",
"arguments": {
"method": "get_trashed_file",
"params": {
"file_id": "<file_id>"
}
}
}
}Request
GET https://app.ferrule.io/api/v1/box/trash/files/:file_id Authorization: Bearer <your-api-key> Content-Type: application/json
Response
{
"type": "...",
"id": "...",
"name": null,
"description": null,
"size": null,
"pathCollection": null,
"createdAt": null,
"modifiedAt": null,
"trashedAt": null,
"purgedAt": null,
"createdBy": null,
"modifiedBy": null,
"ownedBy": null,
"parent": null,
"itemStatus": null,
"sequenceId": null,
"sha1": null
}POSTrestore_file_from_trash/trash/files/:file_id/restoreRestore a file from the trash. Optionally provide a new parent folder if the original was deleted.
Request
Path Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| file_id | string | Yes | The unique identifier of the trashed file to restore. |
Query Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| name | string | No | Optional new name for the restored file. |
| parent_id | string | No | Optional ID of the folder to restore into (if the original parent was deleted). |
Response
Runtime output is unvalidated JSON (raw passthrough).
Examples
1. Describe method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "describe_method",
"arguments": {
"service": "box",
"method": "restore_file_from_trash"
}
}
}2. Call method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "call_box",
"arguments": {
"method": "restore_file_from_trash",
"params": {
"file_id": "<file_id>"
}
}
}
}Request
POST https://app.ferrule.io/api/v1/box/trash/files/:file_id/restore Authorization: Bearer <your-api-key> Content-Type: application/json
Response
{
"type": "...",
"id": "...",
"name": null,
"description": null,
"size": null,
"pathCollection": null,
"createdAt": null,
"modifiedAt": null,
"contentCreatedAt": null,
"contentModifiedAt": null,
"createdBy": null,
"modifiedBy": null,
"ownedBy": null,
"sharedLink": null,
"parent": null,
"itemStatus": null,
"sequenceId": null,
"etag": null,
"sha1": null,
"fileVersion": null,
"tags": null,
"extension": null,
"permissions": null,
"lock": null,
"metadata": null
}