Browse the manual
Board, card and file tools
Read boards and files and prepare permitted changes for review.
On this page
For: developers connecting an HTTP or MCP client. Start with Agent API and AI clients.
AI is optional. You confirm invoice issuance in Pepper.
Boards and cards
The HTTP and MCP tools use the delegated person’s current Use boards permission and board membership. Private boards stay absent for installation admins until they explicitly recover access in the app. Linked record details require their own access. Read tools need boards:read; preparation needs boards:prepare.
| MCP tool | HTTP path after /api/v1/ |
Result |
|---|---|---|
boards_list |
GET boards |
Permitted boards, 25 per page by default; send cursor until next_cursor is null |
boards_get |
GET boards/{id} |
Board, lists and the first 40 cards per list |
cards_list |
GET board-lists/{id}/cards |
The cards of one list; send cursor until next_cursor is null |
cards_get |
GET board-cards/{id} |
Card, current version, fields and permitted source details |
boards_prepare |
POST boards/prepare |
Editable browser review link; writes no board or card |
For boards_list, search filters titles and archived=true includes archived boards. boards_get returns later-page cursors in more, keyed by list ID.
boards_prepare requires operation, payload and idempotency_key:
create_board: payloadtitleandtemplate(ideas,project,kanban,weekly,announcements,retrospectiveorclient).create:board_id, and payloadlist_idwithtitleorsource: {type, id}. Optionaldescriptionanddue_at.update:card_id, and payloadversionwith any oftitle,description,starts_atordue_at.move:card_id, destinationboard_id, and payloadversionandlist_id.
Dates use YYYY-MM-DD; update dates can be null. Read the current version before preparing an update or move. Open review_url, review the editable values and save in the app. Observers cannot prepare edits. A stale version returns 409. There is no agent execution endpoint for these proposals.
Change boards, lists and cards
These tools make the changes a board member makes on the board, as that person. Board roles apply: an observer cannot change a card, and board settings need board admin. Each write needs an idempotency key and appears in the card or board activity as done by an AI connection for that person.
| MCP tool | HTTP after /api/v1/ |
Scope | What it does |
|---|---|---|---|
cards_mine |
GET cards/mine |
boards:read |
Read the person's open cards across boards, as My work shows them: assigned (default), due today, overdue or watched. |
boards_backlinks |
GET boards/backlinks |
boards:read |
List the cards that link a record, such as a customer, deal or task, on boards the person can open. |
boards_source_url |
GET boards/source |
boards:read |
Read which record a Pepper address points to, as the card source field resolves it, if the person may open it. |
boards_directory |
GET boards/directory |
boards:read |
List every board of the business with its visibility, members and admins, for a person who manages boards. Titles only; no cards. |
boards_update |
POST boards/{id}/settings |
boards:prepare |
Change a board's title or colour, or archive and restore it, as a board admin. For changes to who can open the board, use the documented approval workflow. |
boards_label |
POST boards/{id}/labels |
boards:prepare |
Add a label to a board, or rename and recolour one. |
boards_create |
POST boards |
boards:prepare |
Create a private board from a template, with the template's lists and no sample cards, and optionally link it to a project. |
boards_copy |
POST boards/{id}/copy |
boards:prepare |
Copy a board's lists, labels and open cards into a new private board. |
boards_remove_examples |
POST boards/{id}/examples/remove |
boards:prepare |
Remove the sample cards a new board started with. Cards people added stay. |
cards_update |
POST board-cards/{id} |
boards:prepare |
Change a card at its current version: title, description, dates, members, labels, checklists and cover, mark it complete or reopen it, or archive and restore it. Send only the fields to change. A stale version returns 409. The answer carries undo_id for cards_undo. |
cards_participate |
POST board-cards/{id}/participate |
boards:prepare |
Join or leave a card, watch it, or add or remove a reaction, for the person themselves. |
cards_copy |
POST board-cards/{id}/copy |
boards:prepare |
Copy a card into a list of a board the person may change. Copying to a board with guests needs confirm_guests. |
cards_undo |
POST board-undo/{id} |
boards:prepare |
Undo a card change within 12 seconds, as the undo button does, while nobody changed the card since. cards_update returns the undo_id. |
lists_create |
POST boards/{id}/lists |
boards:prepare |
Add a list to a board, optionally as the done list or with a work-in-progress limit. |
lists_update |
POST board-lists/{id} |
boards:prepare |
Rename, reorder, limit, mark as done, or archive and restore a list at its current version. |
lists_copy |
POST board-lists/{id}/copy |
boards:prepare |
Copy a list with its open cards on the same board. |
lists_move_all |
POST board-lists/{id}/move-all |
boards:prepare |
Move every open card of a list to another list. |
tasks_from_card |
POST cards/{id}/task |
engagements:prepare |
Turn a board card into a task, optionally in a project, linked back to the card. The card stays on its board. |
boards_upload_prepare |
POST boards/uploads |
boards:prepare |
Start an upload for a card file, a board background image or a Trello export, up to 10 MB. Send content_base64, or size and PUT the bytes to upload_url with the same bearer token within 30 minutes. |
cards_attach_files |
POST board-cards/{id}/files |
boards:prepare |
Attach uploads to a card as private files. |
cards_drop_file |
POST boards/{id}/drop |
boards:prepare |
Add a card for an uploaded file to a list, as dropping a file on the board does. |
boards_background |
POST boards/{id}/background |
boards:prepare |
Set a board's background from a JPEG, PNG or WebP upload of at most 8192 by 8192 pixels. |
boards_import_preview |
POST boards/import/preview |
boards:prepare |
Check a Trello JSON export without writing: the title, counts, warnings and the people it names, with the token for boards_import. The upload stays usable for the import. |
boards_import |
POST boards/import |
boards:prepare |
Import the previewed Trello export as a new private board. The same file imports once. |
A change to a board, list or card needs its current version; a stale version returns 409 with the current record. Archiving or moving cards returns an undo_id. Send it to cards_undo within 12 seconds to reverse that change, as the Undo button does. Card files, a board background and a Trello export arrive through an upload: see Upload and download files.
See Boards and cards.
Files
The tools use the delegated person's current file permissions and record access. A file attached only to records outside that access is absent. Read tools need files:read and See files; preparation needs files:prepare and Upload and change files.
| MCP tool | HTTP path after /api/v1/ |
Result |
|---|---|---|
files_list |
GET files |
A folder's subfolders, then its files, 25 files per page by default. Pass folder_id for a folder, search for names in every folder, and cursor until next_cursor is null |
files_get |
GET files/{id} |
The file's folder, current version, version list and the records it is attached to within access. Returns no bytes |
files_read_text |
GET files/{id}/text |
The text of a plain text, CSV, Markdown, HTML, CSS, JavaScript, JSON, XML or YAML file up to 1 MB, and its version ID. Pass version_id for an earlier version. Reading counts as a download |
files_prepare_text_version |
POST files/{id}/text/prepare |
A review link for new text; writes no version |
files_prepare_text_version requires base_version_id (from files_read_text), the complete new content (UTF-8, up to 1 MB) and idempotency_key. The same checks as a save in the editor apply, including valid JSON and XML. If a newer version exists, the call returns 409 with who saved it. Open review_url: the person sees the proposed text in the editor, compares it and saves it as a new version, or closes it without saving. There is no agent execution endpoint for these proposals.
See Edit text files.
Upload, change and download files
These tools make the changes a person makes in Files: upload, add a version, rename, move, delete and restore, attach to and detach from records, and folders. Uploads and downloads use single-use transfers: see Upload and download files. Each write needs an idempotency key and appears in the file's activity as done by an AI connection for that person.
| MCP tool | HTTP after /api/v1/ |
Scope | What it does |
|---|---|---|---|
files_download |
GET files/{id}/download |
files:read |
Get a single-use download link for a file the person may open, valid for 5 minutes. Fetch download_url without a token, or read resource_uri through MCP. The bytes are checked against their hash; a changed file is refused. The download is recorded. |
files_thumbnail |
GET files/{id}/thumbnail |
files:read |
Get a single-use link to a small preview image of a JPEG, PNG, WebP or GIF file the person may open. Other types return 404. |
files_share_preview |
GET files/shares/preview |
files:read |
Read what a share link shows: the file name, type and size, and whether the link needs a password or expires. Only links the person may open. The view is recorded like a visitor opening the page. |
files_proposal |
GET files/{id}/proposal |
files:read |
Read a text proposal this person prepared through files_prepare_text_version and has not saved: the base version and the proposed text. |
files_selection |
POST files/selection |
files:prepare |
Move, delete or restore up to 500 files and folders at once. Each item is checked on its own; the answer counts what was done and skipped and names each refusal. |
files_upload_prepare |
POST files/uploads |
files:prepare |
Start an upload for Files. Send the bytes inline as content_base64 (up to 8 MB), or send size and then PUT the raw bytes to the returned upload_url with the same bearer token (once, within 30 minutes). Then pass upload_id to files_upload or files_add_version. Type, size and the storage quota are checked when the file is created; SVG and scripts are stored as text and never shown inline. |
files_upload |
POST files |
files:prepare |
Create a file from an upload, optionally in a folder and attached to a record the person may change. Returns the file as files_get does. |
files_add_version |
POST files/{id}/versions |
files:prepare |
Add a new current version to a file from an upload. Earlier versions stay. |
files_rename |
POST files/{id}/name |
files:prepare |
Rename a file. The extension stays with the stored type. |
files_move |
POST files/{id}/folder |
files:prepare |
Move a file to another folder. |
files_delete |
POST files/{id}/delete |
files:prepare |
Move a file to the deleted files. Its versions and attachments stay, and files_restore brings it back. |
files_restore |
POST files/{id}/restore |
files:prepare |
Restore a deleted file to its folder, or to the top level when that folder is deleted. |
files_restore_version |
POST files/{id}/versions/restore |
files:prepare |
Make an earlier version current again, as a new version. Nothing is removed. |
files_attach |
POST files/{id}/attachments |
files:prepare |
Attach a file to a record the person may change, such as a customer, deal, task or card. |
files_detach |
POST files/{id}/attachments/remove |
files:prepare |
Remove one attachment of a file from a record. The file stays in Files. |
files_revoke_share |
POST files/{id}/shares/revoke |
files:prepare |
Turn off one share link of a file. The link stops working at once. |
folders_create |
POST folders |
files:prepare |
Create a folder. |
folders_rename |
POST folders/{id}/name |
files:prepare |
Rename a folder. |
folders_move |
POST folders/{id}/parent |
files:prepare |
Move a folder into another folder, or to the top level with null. A folder cannot move into itself. |
folders_delete |
POST folders/{id}/delete |
files:prepare |
Delete a folder with everything in it. folders_restore brings it back. |
folders_restore |
POST folders/{id}/restore |
files:prepare |
Restore a deleted folder and what was deleted with it. |
Deleted files and folders go to the bin, where files_restore and folders_restore bring them back. An AI client can preview and revoke a share link. It can create one with files_share only after the delegated person approves it; a password is set in Pepper only. See Approve sensitive steps. A download link opens once, within five minutes, and Pepper checks the person's file access again when it opens.
Need help with the product?
Contact support