# Basecamp

Project management and team collaboration tool by 37signals

- **Category:** project management
- **Auth:** OAUTH2
- **Composio Managed App Available?** Yes
- **Tools:** 161
- **Triggers:** 0
- **Slug:** `BASECAMP`
- **Version:** 20260323_00

## Tools

### Complete To-Do

**Slug:** `BASECAMP_COMPLETE_TODO`

Tool to mark a to-do as completed in Basecamp. Use when you need to complete a to-do item.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `todo_id` | integer | Yes | The ID of the specific to-do item to mark as completed |
| `bucket_id` | integer | Yes | The ID of the project/bucket containing the to-do |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Create Card in Column

**Slug:** `BASECAMP_CREATE_CARD`

Tool to create a new card in a column of a Basecamp card table. Use when you need to add a card to a card table column with optional content and due date.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `title` | string | Yes | The card's title. This is required and should be a descriptive name for the card |
| `due_on` | string | No | Deadline for the card in ISO 8601 format (YYYY-MM-DD) |
| `notify` | boolean | No | Whether to alert assignees. Defaults to false if not specified |
| `content` | string | No | Card description supporting HTML. Refer to the Rich text guide for permitted tags |
| `bucket_id` | integer | Yes | The project/bucket ID where the card table is located |
| `column_id` | integer | Yes | The card table column/list ID where the card will be created |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Create Step in Card

**Slug:** `BASECAMP_CREATE_CARD_STEP`

Tool to create a step within a card in a Basecamp card table. Use when you need to add a subtask or checklist item to an existing card with optional due date and assignees.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `title` | string | Yes | The name of the step being created. This is required. |
| `due_on` | string | No | Due date for the step in ISO 8601 format (YYYY-MM-DD). |
| `card_id` | integer | Yes | The card ID where the step will be created. |
| `assignees` | array | No | Array of person IDs that will be assigned to this step. |
| `bucket_id` | integer | Yes | The project/bucket ID where the card table is located. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Create Chatbot

**Slug:** `BASECAMP_CREATE_CHATBOT`

Tool to create a new chatbot in a Basecamp Campfire chat. Use when you need to add an automated bot to a chat room for posting messages and responding to commands.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `chat_id` | integer | Yes | The ID of the Campfire chat to add the chatbot to |
| `bucket_id` | integer | Yes | The ID of the project bucket containing the chat |
| `command_url` | string | No | HTTPS url that Basecamp should call when the bot is addressed. Optional for non-interactive bots. |
| `service_name` | string | Yes | Chatbot name, which will be used to invoke queries and commands on interactive bots. No spaces, emoji or non-word characters are allowed. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Create Chatbot Line

**Slug:** `BASECAMP_CREATE_CHATBOT_LINE`

Tool to post a message as a chatbot to a Basecamp Campfire. Use when you need to post messages via a chatbot integration without OAuth authentication.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `chat_id` | integer | Yes | The Campfire chat ID to post the message to. |
| `content` | string | Yes | The HTML body text for the Campfire message. Supports rich text formatting with permitted HTML tags including: strong, em, a, ul, ol, li, blockquote, pre, code, table, tr, td, th, thead, tbody, details, and summary. |
| `bucket_id` | integer | Yes | The project/bucket ID where the chat exists. |
| `chatbot_key` | string | Yes | The unique authentication key for the chatbot. This key is provided when creating a chatbot integration and allows posting without OAuth. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Create Document in Vault

**Slug:** `BASECAMP_CREATE_DOCUMENT`

Tool to create a new document in a Basecamp vault. Use when you need to publish a document in a specific project vault with title, HTML content, and optional publication status.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `title` | string | Yes | The title of the document. This is required and should be a descriptive name. |
| `status` | string | No | Publication status. Set to 'active' to publish immediately upon creation. If not specified, document may be created as draft. |
| `content` | string | Yes | Document body in HTML format. See Basecamp Rich text guide for permitted tags. |
| `vault_id` | integer | Yes | The ID of the vault where the document will be created. |
| `bucket_id` | integer | Yes | The ID of the project bucket where the vault exists. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Create Project from Template

**Slug:** `BASECAMP_CREATE_PROJECT_CONSTRUCTION`

Tool to create a new project from a Basecamp template asynchronously. Use when you need to instantiate a project based on an existing template. Poll the returned URL to monitor construction progress until status becomes 'completed'.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `project` | object | Yes | Project details including the required name and optional description. |
| `template_id` | integer | Yes | The ID of the template to use for creating the project. This field is required. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Create To-Do (Deprecated)

**Slug:** `BASECAMP_CREATE_TODO`

DEPRECATED: Use BASECAMP_POST_BUCKETS_TODOLISTS_TODOS instead. Tool to create a new to-do in a Basecamp to-do list. Use when you need to add a task with optional description, assignees, and due date.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `due_on` | string | No | Completion deadline in YYYY-MM-DD format. |
| `notify` | boolean | No | When true, notifies assignees of their assignment. Defaults to false if not specified. |
| `content` | string | Yes | What the to-do is for (main title/content). This field is required. |
| `bucket_id` | integer | Yes | The project/bucket ID where the to-do list exists. |
| `starts_on` | string | No | Start date in YYYY-MM-DD format; runs until due_on. |
| `description` | string | No | Additional information about the task; supports HTML formatting per the Rich text guide. |
| `todolist_id` | integer | Yes | The to-do list ID where the to-do will be created. |
| `assignee_ids` | array | No | User IDs to assign the to-do to; retrieve via Get people endpoint. |
| `completion_subscriber_ids` | array | No | User IDs to notify upon completion; retrieve via Get people endpoint. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Create To-Do List Group

**Slug:** `BASECAMP_CREATE_TODOLIST_GROUP`

Tool to create a new to-do group within a parent to-do list in Basecamp. Use when organizing todos into groups with optional color coding.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `name` | string | Yes | The title/name of the to-do list group to create. |
| `color` | string ("white" | "red" | "orange" | "yellow" | "green" | "blue" | "aqua" | "purple" | "gray" | "pink" | "brown") | No | Visual identifier color for the group. Accepted values: white, red, orange, yellow, green, blue, aqua, purple, gray, pink, brown. |
| `bucket_id` | integer | Yes | The project/bucket ID where the to-do list exists. |
| `todolist_id` | integer | Yes | The to-do list ID where the group will be created. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Create Upload in Vault

**Slug:** `BASECAMP_CREATE_UPLOAD`

Tool to create a new upload (file) in a Basecamp vault. Use when you need to create an upload entry for a previously uploaded attachment in a specific project vault.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `vault_id` | integer | Yes | The vault ID where the upload will be created. |
| `base_name` | string | No | A new filename without extension (e.g., 'pizza' for 'pizza.png'). The original extension is preserved. |
| `bucket_id` | integer | Yes | The project/bucket ID where the vault exists. |
| `description` | string | No | Information about the upload in HTML format. Supports HTML tags per the Rich text guide. |
| `attachable_sgid` | string | Yes | A signed global ID for an uploaded attachment obtained from the Create attachment endpoint (POST /attachments.json). |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Create a Vault

**Slug:** `BASECAMP_CREATE_VAULT`

Tool to create a new vault (folder) within an existing parent vault in a Basecamp project. Use when you need to organize documents and files hierarchically by creating nested vaults.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `title` | string | Yes | The name of the vault being created. This is required. |
| `vault_id` | integer | Yes | The parent vault ID where the new vault will be created. |
| `bucket_id` | integer | Yes | The project/bucket ID where the parent vault exists. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Delete Card Table Column On-Hold Section

**Slug:** `BASECAMP_DELETE_BUCKETS_CARD_TABLES_COLUMNS_ON_HOLD`

Tool to remove the on-hold section from a card table column. Use when you need to delete the on-hold section from a column in a Basecamp project's card table.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `bucket_id` | integer | Yes | The project identifier (bucket ID) containing the card table. |
| `column_id` | integer | Yes | The unique identifier for the column to remove on-hold section from. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Unpin Recording

**Slug:** `BASECAMP_DELETE_BUCKETS_RECORDINGS_PIN`

Tool to unpin a recording (message) in a Basecamp project. Use when you need to remove the pinned status from a message on a message board or project.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `bucket_id` | integer | Yes | The ID of the bucket (project) containing the recording. |
| `recording_id` | integer | Yes | The ID of the recording (message) to unpin. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Delete Campfire Line

**Slug:** `BASECAMP_DELETE_CAMPFIRE_LINE`

Tool to delete a Campfire line from a chat conversation. Use when removing a specific message from a Basecamp Campfire chat.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `chat_id` | integer | Yes | The Campfire/chat conversation identifier |
| `line_id` | integer | Yes | The specific message line identifier to delete from the Campfire |
| `bucket_id` | integer | Yes | The project identifier (bucket ID) containing the Campfire |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Delete Chatbot

**Slug:** `BASECAMP_DELETE_CHATBOT`

Tool to delete a chatbot from a Campfire chat. Use when removing a chatbot from the account. Note: Deletion is account-wide and only account administrators can delete chatbots.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `chat_id` | integer | Yes | The Campfire/chat room identifier where the chatbot is installed |
| `bucket_id` | integer | Yes | The project/bucket identifier containing the chat |
| `chatbot_id` | integer | Yes | The chatbot's unique identifier to delete |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Delete Message Type

**Slug:** `BASECAMP_DELETE_MESSAGE_TYPE`

Tool to delete a message type from a Basecamp project. Use when removing a custom message category. Permanently removes the specified message type.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `bucket_id` | integer | Yes | The project identifier (bucket ID) |
| `category_id` | integer | Yes | The message type identifier to delete |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Delete Webhook

**Slug:** `BASECAMP_DELETE_WEBHOOKS`

Tool to delete a webhook from a Basecamp project. Use when you need to remove a webhook subscription from a project. Permanently deletes the specified webhook.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `bucket_id` | integer | Yes | The project identifier (bucket ID) |
| `webhook_id` | integer | Yes | The webhook identifier to delete |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Cards from Card Table List

**Slug:** `BASECAMP_GET_BUCKETS_CARD_TABLES_LISTS_CARDS`

Tool to retrieve a paginated list of cards from a card table column. Use when you need to fetch cards from a specific list/column within a Basecamp project's card table.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `page` | integer | No | Optional. Page number for pagination. Note: It's recommended to use the Link header from responses rather than manually constructing pagination URLs. |
| `list_id` | integer | Yes | The card table column identifier (also referred to as column_id). This is the ID of the list/column containing the cards. |
| `bucket_id` | integer | Yes | The project identifier (bucket ID) containing the card table. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Message Categories

**Slug:** `BASECAMP_GET_BUCKETS_CATEGORIES`

Tool to retrieve all message types (categories) from a Basecamp project. Use when you need to list all available message categories for organizing messages in a project.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `bucket_id` | integer | Yes | The ID of the project bucket to retrieve message types from |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Campfire Chatbot Integrations

**Slug:** `BASECAMP_GET_BUCKETS_CHATS_INTEGRATIONS`

Tool to retrieve all chatbot integrations from a Campfire chat. Use when you need to get the list of chatbots accessible to the account with chat-specific line URLs for posting messages.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `chat_id` | integer | Yes | The ID of the Campfire chat to retrieve integrations from |
| `bucket_id` | integer | Yes | The ID of the project bucket containing the chat |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Campfire Lines

**Slug:** `BASECAMP_GET_BUCKETS_CHATS_LINES`

Tool to retrieve a paginated list of Campfire lines from a specific chat. Use when you need to fetch messages from a Campfire conversation in a Basecamp project.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `chat_id` | integer | Yes | The Campfire ID whose lines to retrieve. |
| `bucket_id` | integer | Yes | The project/bucket ID containing the Campfire. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Inbox Forwards

**Slug:** `BASECAMP_GET_BUCKETS_INBOXES_FORWARDS`

Tool to retrieve a paginated list of active email forwards from a project's inbox. Use when you need to fetch forwarded emails in a Basecamp inbox.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `inbox_id` | integer | Yes | The ID of the specific inbox to retrieve forwards from |
| `bucket_id` | integer | Yes | The ID of the project bucket containing the inbox |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Messages from Message Board

**Slug:** `BASECAMP_GET_BUCKETS_MESSAGE_BOARDS_MESSAGES`

Tool to retrieve a paginated list of active messages from a message board in a Basecamp project. Use when you need to fetch messages from a specific message board.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `bucket_id` | integer | Yes | The project identifier (bucket ID) |
| `message_board_id` | integer | Yes | The message board identifier |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Question Answer by ID

**Slug:** `BASECAMP_GET_BUCKETS_QUESTION_ANSWERS`

Tool to retrieve a specific question answer by ID from a Basecamp project. Use when you need to fetch details about an automatic check-in question answer including its content, creator, and associated comments.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `answer_id` | integer | Yes | The unique identifier of the specific question answer to retrieve |
| `bucket_id` | integer | Yes | The unique identifier of the project bucket containing the question answer |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Questionnaire

**Slug:** `BASECAMP_GET_BUCKETS_QUESTIONNAIRES`

Tool to retrieve a specific questionnaire (automatic check-ins) from a Basecamp project. Use when you need to fetch details about a questionnaire including its questions count and metadata.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `bucket_id` | integer | Yes | The project identifier (bucket ID) |
| `questionnaire_id` | integer | Yes | The questionnaire identifier |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Questions from Questionnaire

**Slug:** `BASECAMP_GET_BUCKETS_QUESTIONNAIRES_QUESTIONS`

Tool to retrieve a paginated list of questions from a questionnaire in a Basecamp project. Use when you need to fetch questions from a specific questionnaire.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `bucket_id` | integer | Yes | The project identifier (bucket ID) |
| `questionnaire_id` | integer | Yes | The questionnaire identifier |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Question by ID

**Slug:** `BASECAMP_GET_BUCKETS_QUESTIONS`

Tool to retrieve a specific check-in question by ID from a Basecamp project. Use when you already know the question ID and need its details without listing all questions from a questionnaire.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `bucket_id` | integer | Yes | The project identifier (bucket ID) |
| `question_id` | integer | Yes | The unique identifier of the specific question to retrieve |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Recording Events

**Slug:** `BASECAMP_GET_BUCKETS_RECORDINGS_EVENTS`

Tool to retrieve a paginated list of events for a recording. Use when you need to fetch change history from a specific recording in a Basecamp project.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `bucket_id` | integer | Yes | The project/bucket ID containing the recording. |
| `recording_id` | integer | Yes | The recording ID whose events to retrieve. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Schedule Entries

**Slug:** `BASECAMP_GET_BUCKETS_SCHEDULES_ENTRIES`

Tool to retrieve a paginated list of schedule entries from a schedule. Use when you need to fetch entries from a specific schedule in a Basecamp project.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `status` | string ("archived" | "trashed") | No | Filter by entry status. Use 'archived' for archived entries, 'trashed' for trashed entries, or omit for active entries. |
| `bucket_id` | integer | Yes | The project identifier (bucket ID) |
| `schedule_id` | integer | Yes | The schedule identifier |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get To-do List Groups

**Slug:** `BASECAMP_GET_BUCKETS_TODOLISTS_GROUPS`

Tool to retrieve a paginated list of active groups from a to-do list in a Basecamp project. Use when you need to list all groups within a specific to-do list for organizing tasks.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `status` | string | No | Filter to return groups with specific status. Accepts 'archived' or 'trashed' to return groups with those statuses instead of active groups |
| `bucket_id` | integer | Yes | The ID of the project bucket containing the to-do list |
| `todolist_id` | integer | Yes | The ID of the to-do list to retrieve groups from |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get To-Dos from To-Do List

**Slug:** `BASECAMP_GET_BUCKETS_TODOLISTS_TODOS`

Tool to retrieve a paginated list of to-dos from a specific to-do list in a Basecamp project. Use when you need to fetch to-do items from a to-do list, optionally filtering by status or completion state.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `status` | string ("archived" | "trashed") | No | Filter by status. 'archived' returns archived items, 'trashed' returns trashed items. Omit for active items. |
| `bucket_id` | integer | Yes | The project's unique identifier (bucket ID) |
| `completed` | boolean | No | When true, returns only completed to-dos. Can be combined with status parameter. Default returns pending (not completed) to-dos. |
| `todolist_id` | integer | Yes | The to-do list's unique identifier |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get To-Do by ID

**Slug:** `BASECAMP_GET_BUCKETS_TODOS`

Tool to retrieve a specific to-do by ID from a Basecamp project. Use when you need to fetch a single to-do item including its content, title, assignees, completion status, and dates.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `todo_id` | integer | Yes | The ID of the specific to-do item to retrieve |
| `bucket_id` | integer | Yes | The ID of the project/bucket containing the to-do |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Todoset To-Do Lists

**Slug:** `BASECAMP_GET_BUCKETS_TODOSETS_TODOLISTS`

Tool to retrieve a paginated list of to-do lists within a specific to-do set in a Basecamp project. Use when you need to fetch all to-do lists from a to-do set, optionally filtering by status.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `status` | string | No | Filter by status. Accepts 'archived' or 'trashed' to retrieve todolists with those respective statuses. Default returns active lists. |
| `bucket_id` | integer | Yes | The project's unique identifier (bucket ID). |
| `todoset_id` | integer | Yes | The to-do set's unique identifier. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Upload by ID

**Slug:** `BASECAMP_GET_BUCKETS_UPLOADS`

Tool to retrieve a specific upload by ID from a Basecamp project vault. Use when you need to fetch details about an uploaded file including its metadata, download URL, and dimensions.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `bucket_id` | integer | Yes | The project/bucket identifier |
| `upload_id` | integer | Yes | The specific upload identifier |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Vault from Project

**Slug:** `BASECAMP_GET_BUCKETS_VAULTS`

Tool to retrieve a specific vault from a Basecamp project. Use when you need details about a vault including its documents, uploads, and nested vaults.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `vault_id` | integer | Yes | The vault identifier to retrieve |
| `bucket_id` | integer | Yes | The project identifier (bucket ID) |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Documents from Vault

**Slug:** `BASECAMP_GET_BUCKETS_VAULTS_DOCUMENTS`

Tool to retrieve a paginated list of active documents from a vault in a Basecamp project. Use when you need to fetch all documents stored in a specific vault.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `page` | integer | No | Optional. Page number for pagination. It's recommended to use the Link header from responses rather than manually constructing pagination URLs. |
| `vault_id` | integer | Yes | The vault identifier where documents are stored |
| `bucket_id` | integer | Yes | The project identifier (bucket ID) |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Uploads from Vault

**Slug:** `BASECAMP_GET_BUCKETS_VAULTS_UPLOADS`

Tool to retrieve a paginated list of active uploads from a vault in a Basecamp project. Use when you need to fetch all uploaded files stored in a specific vault.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `page` | integer | No | Optional. Page number for pagination. It's recommended to use the Link header from responses rather than manually constructing pagination URLs. |
| `vault_id` | integer | Yes | The vault identifier where uploads are stored |
| `bucket_id` | integer | Yes | The project identifier (bucket ID) |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Vaults from Parent Vault

**Slug:** `BASECAMP_GET_BUCKETS_VAULTS_VAULTS`

Tool to retrieve a paginated list of vaults nested within a parent vault in a Basecamp project. Use when you need to fetch child vaults from a specific vault.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `vault_id` | integer | Yes | The parent vault identifier |
| `bucket_id` | integer | Yes | The project identifier (bucket ID) |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Project Webhooks

**Slug:** `BASECAMP_GET_BUCKETS_WEBHOOKS`

Tool to retrieve all webhooks configured for a Basecamp project. Use when you need to list all webhook configurations including their payload URLs, event types, and active status.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `bucket_id` | integer | Yes | The ID of the project bucket to retrieve webhooks from |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Campfire

**Slug:** `BASECAMP_GET_CAMPFIRE`

Tool to retrieve a specific Campfire (chat room) by ID from a Basecamp project. Use when you need to get complete Campfire details including metadata, URLs, topic, and creator information.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `bucket_id` | integer | Yes | The ID of the project bucket containing the Campfire |
| `campfire_id` | integer | Yes | The unique identifier for the Campfire to retrieve |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Campfire Line

**Slug:** `BASECAMP_GET_CAMPFIRE_LINE`

Tool to retrieve a specific Campfire line by ID from a Basecamp project. Use when you need to fetch a single message from a chat transcript.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `chat_id` | integer | Yes | The Campfire/chat transcript identifier |
| `line_id` | integer | Yes | The specific chat line/message identifier |
| `bucket_id` | integer | Yes | The project/bucket identifier |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get a specific card by ID

**Slug:** `BASECAMP_GET_CARD`

Tool to get a specific card by ID from a card table. Use when you need to retrieve complete card details including title, description, status, assignees, steps, and metadata.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `card_id` | integer | Yes | The unique identifier of the card to retrieve |
| `bucket_id` | integer | Yes | The project identifier (bucket ID) where the card table resides |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get card table (Kanban board)

**Slug:** `BASECAMP_GET_CARD_TABLE`

Tool to retrieve a card table (Kanban board) for a project. Use when you need to fetch information about a specific card table including its columns, cards count, and subscribers.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `bucket_id` | integer | Yes | The project identifier (bucket ID) |
| `card_table_id` | integer | Yes | The card table's unique identifier |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Card Table Column

**Slug:** `BASECAMP_GET_CARD_TABLE_COLUMN`

Tool to get a specific column from a card table within a Basecamp project. Use when you need to fetch details about a card table column by its ID.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `bucket_id` | integer | Yes | The project identifier (bucket ID) containing the card table. |
| `column_id` | integer | Yes | The unique identifier for the column to retrieve. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Chatbot by ID

**Slug:** `BASECAMP_GET_CHATBOT`

Tool to get a specific chatbot by ID from a Basecamp Campfire chat. Use when you need to retrieve details about a chatbot, including its service name, command URL, and lines URL.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `chat_id` | integer | Yes | The Campfire/chat transcript identifier |
| `bucket_id` | integer | Yes | The project/bucket identifier |
| `chatbot_id` | integer | Yes | The chatbot identifier |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Chats

**Slug:** `BASECAMP_GET_CHATS`

Tool to retrieve a paginated list of all active Campfires (chats) visible to the current user. Use when you need to list all available chat rooms in Basecamp.

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Circles People

**Slug:** `BASECAMP_GET_CIRCLES_PEOPLE`

Tool to retrieve all people on this Basecamp account who can be pinged. Use when you need to get a list of all pingable users in the account.

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Comment

**Slug:** `BASECAMP_GET_COMMENT`

Tool to retrieve a specific comment by ID from a Basecamp project. Use when you need to fetch details about a particular comment including its content, creator, and parent resource.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `bucket_id` | integer | Yes | The ID of the project/bucket containing the comment |
| `comment_id` | integer | Yes | The unique identifier of the comment to retrieve |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Document by ID

**Slug:** `BASECAMP_GET_DOCUMENT`

Tool to get a specific document by ID from a Basecamp project bucket. Use when you need to retrieve complete document details including title, content, creator, metadata, and comments count.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `bucket_id` | integer | Yes | The project identifier (bucket ID) |
| `document_id` | integer | Yes | The specific document identifier to retrieve |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Inbox

**Slug:** `BASECAMP_GET_INBOX`

Tool to get the inbox (email forwards) for a Basecamp project. Use when you need to retrieve details about a specific inbox including its forwards count and metadata.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `inbox_id` | integer | Yes | The inbox identifier to retrieve |
| `bucket_id` | integer | Yes | The project identifier (bucket ID) containing the inbox |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Message by ID

**Slug:** `BASECAMP_GET_MESSAGE`

Tool to retrieve a specific message by ID from a Basecamp project message board. Use when you need to fetch details of a single message including its content, author, and metadata.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `bucket_id` | integer | Yes | The project/bucket identifier that contains the message |
| `message_id` | integer | Yes | The unique identifier of the message to retrieve |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Message Board

**Slug:** `BASECAMP_GET_MESSAGE_BOARD`

Tool to get the message board for a project. Use when you need to retrieve details about a specific message board including its title, creator, message count, and URLs.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `bucket_id` | integer | Yes | The project identifier (bucket ID) |
| `message_board_id` | integer | Yes | The specific message board identifier |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Message Type by ID

**Slug:** `BASECAMP_GET_MESSAGE_TYPE`

Tool to retrieve a specific message type by ID from a Basecamp project. Use when you need details about a specific message type/category.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `bucket_id` | integer | Yes | The project identifier (bucket ID) where the message type belongs |
| `category_id` | integer | Yes | The unique identifier of the message type to retrieve |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get My Profile

**Slug:** `BASECAMP_GET_MY_PROFILE`

Tool to retrieve the current user's personal info including profile details, permissions, and settings. Use when you need to get information about the authenticated user.

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get All People

**Slug:** `BASECAMP_GET_PEOPLE`

Tool to retrieve all people visible to the current user in the Basecamp account. Use when you need to list users, check permissions, or get contact information for team members.

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Person by ID

**Slug:** `BASECAMP_GET_PEOPLE_BY_PERSON_ID`

Tool to retrieve the profile for a specific user by their ID. Use when you need to get detailed information about a specific person in the Basecamp account.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `person_id` | integer | Yes | The numeric identifier of the person whose profile is being retrieved |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Project

**Slug:** `BASECAMP_GET_PROJECT`

Tool to retrieve a specific project by its ID with complete details. Use when you need to get comprehensive information about a particular project including its status, metadata, and dock tools configuration.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `project_id` | integer | Yes | The unique numeric identifier for the project to retrieve |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Projects

**Slug:** `BASECAMP_GET_PROJECTS`

Tool to retrieve a paginated list of projects visible to the current user, sorted by most recently created first. Use when you need to list all projects, filter by status (active/archived/trashed), or access project details.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `status` | string | No | Filter projects by status. Accepts 'archived' or 'trashed' to retrieve archived/trashed projects. Omit to get active projects. |
| `account_id` | integer | No | Basecamp account ID to use. If you have access to multiple Basecamp accounts, specify which account's projects to retrieve. Omit to use the account ID from the authenticated connection. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Project by ID

**Slug:** `BASECAMP_GET_PROJECTS_BY_PROJECT_ID`

Tool to retrieve a single project by its ID with full details including dock tools. Use when you need to get information about a specific project that the user has access to.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `project_id` | integer | Yes | The unique identifier for the project to retrieve |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Projects People

**Slug:** `BASECAMP_GET_PROJECTS_PEOPLE`

Tool to retrieve all active people assigned to a Basecamp project. Use when you need to list all members who have access to a specific project.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `project_id` | integer | Yes | The unique identifier of the project whose people you want to retrieve |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Projects Recordings

**Slug:** `BASECAMP_GET_PROJECTS_RECORDINGS`

Tool to retrieve a paginated list of records for a given type of recording across projects. Use when you need to list recordings of a specific type (Message, Document, Todo, etc.) with optional filtering by project, status, and sorting.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `sort` | string ("created_at" | "updated_at") | No | Order results by 'created_at' or 'updated_at'. Defaults to 'created_at'. |
| `bucket` | string | No | Single or comma-separated project IDs. If not specified, defaults to all active projects accessible to current user. |
| `status` | string ("active" | "archived" | "trashed") | No | Filter by status: 'active', 'archived', or 'trashed'. Defaults to 'active'. |
| `direction` | string ("desc" | "asc") | No | Sort order: 'desc' or 'asc'. Defaults to 'desc'. |
| `recording_type` | string ("Comment" | "Document" | "Kanban::Card" | "Kanban::Step" | "Message" | "Question::Answer" | "Schedule::Entry" | "Todo" | "Todolist" | "Upload" | "Vault") | Yes | The recording category to retrieve. Acceptable values: Comment, Document, Kanban::Card, Kanban::Step, Message, Question::Answer, Schedule::Entry, Todo, Todolist, Upload, Vault |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Timesheet Report

**Slug:** `BASECAMP_GET_REPORTS_TIMESHEET`

Tool to retrieve all timesheet entries across the Basecamp account within a given timeframe. Use when you need to generate time reports, track hours logged, or analyze time entries by person or project. Without date parameters, returns only the last month of entries.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `end_date` | string | No | Report end date in ISO 8601 format (YYYY-MM-DD). If provided, start_date is also required. Without parameters, returns only the last month. |
| `bucket_id` | integer | No | Filter to a single project by bucket/project ID. Defaults to all projects if not provided. |
| `person_id` | integer | No | Filter to a single person by their ID. Defaults to all users if not provided. |
| `start_date` | string | No | Report start date in ISO 8601 format (YYYY-MM-DD). If provided, end_date is also required. Without parameters, returns only the last month. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Schedule for Project

**Slug:** `BASECAMP_GET_SCHEDULE`

Tool to retrieve schedule details for a specific project. Use when you need information about a schedule including entries count and configuration.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `bucket_id` | integer | Yes | The project identifier (bucket ID) |
| `schedule_id` | integer | Yes | The schedule identifier |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Schedule Entry

**Slug:** `BASECAMP_GET_SCHEDULE_ENTRY`

Tool to get a specific schedule entry by ID from a Basecamp project. Use when you need to retrieve details about a scheduled event including its time, participants, and metadata.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `entry_id` | integer | Yes | The unique identifier of the schedule entry to retrieve |
| `bucket_id` | integer | Yes | The project identifier (bucket ID) where the schedule entry belongs |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Subscription

**Slug:** `BASECAMP_GET_SUBSCRIPTION`

Tool to get subscription information for a recording. Use when you need to check subscription status, view subscriber count, or get detailed information about all subscribers for a specific recording.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `bucket_id` | integer | Yes | The ID of the bucket containing the recording |
| `recording_id` | integer | Yes | The ID of the recording to retrieve subscription information for |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Templates

**Slug:** `BASECAMP_GET_TEMPLATES`

Tool to retrieve a paginated list of active templates visible to the current user, sorted by most recently created first. Use when you need to list templates or filter by status (active/archived/trashed).

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `status` | string | No | Filter templates by status. Accepts 'archived' or 'trashed' to retrieve archived/trashed templates. Omit to get active templates. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Template by ID

**Slug:** `BASECAMP_GET_TEMPLATES_BY_TEMPLATE_ID`

Tool to retrieve a single template by its ID with full details including dock tools. Use when you need to get information about a specific template that the user has access to.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `template_id` | integer | Yes | The unique identifier for the template to retrieve |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Project Construction Status

**Slug:** `BASECAMP_GET_TEMPLATES_PROJECT_CONSTRUCTIONS`

Tool to retrieve the status of a project construction from a template. Use when you need to monitor the progress of a project being created from a template. Can be polled at intervals (no more than once per second) to track construction status.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `template_id` | integer | Yes | The unique identifier for the template containing the project construction |
| `construction_id` | integer | Yes | The unique identifier for the project construction to retrieve |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get To-Do by ID

**Slug:** `BASECAMP_GET_TODO`

Tool to retrieve a specific to-do by ID from a Basecamp project. Use when you need to fetch detailed information about a single to-do item including its content, title, assignees, completion status, dates, and parent relationships.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `todo_id` | integer | Yes | The ID of the specific to-do item to retrieve |
| `bucket_id` | integer | Yes | The ID of the project/bucket containing the to-do |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get To-Do List

**Slug:** `BASECAMP_GET_TODOLIST`

Tool to retrieve a specific to-do list from a Basecamp project by its ID. Use when you need to get details about a to-do list including its title, description, completion status, and URLs for todos and groups.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `bucket_id` | integer | Yes | The project's unique identifier (bucket ID) |
| `todolist_id` | integer | Yes | The to-do list's unique identifier |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get To-Do Set

**Slug:** `BASECAMP_GET_TODOSET`

Tool to retrieve a specific to-do set from a Basecamp project. Use when you need to get details about a to-do set, including its completion status and to-do lists count.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `bucket_id` | integer | Yes | The project's unique identifier (bucket ID). |
| `todoset_id` | integer | Yes | The to-do set's unique identifier. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Upload

**Slug:** `BASECAMP_GET_UPLOAD`

Tool to get a specific upload by ID from a Basecamp project. Use when you need to retrieve details about an uploaded file including metadata, download URL, and dimensions.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `bucket_id` | integer | Yes | The project/bucket identifier |
| `upload_id` | integer | Yes | The specific upload identifier |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Webhook by ID

**Slug:** `BASECAMP_GET_WEBHOOK`

Tool to retrieve a specific webhook by ID from a Basecamp project. Use when you need details about a webhook including its delivery history.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `bucket_id` | integer | Yes | The project identifier (bucket ID) |
| `webhook_id` | integer | Yes | The webhook identifier to retrieve |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List Chatbots

**Slug:** `BASECAMP_LIST_CHATBOTS`

Tool to get all chatbots for a chat/campfire. Use when you need to retrieve the list of chatbot integrations with their line URLs for posting messages.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `chat_id` | integer | Yes | The ID of the Campfire chat to retrieve chatbots from |
| `bucket_id` | integer | Yes | The ID of the project bucket containing the chat |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List Comments

**Slug:** `BASECAMP_LIST_COMMENTS`

Tool to get all comments on a recording in a Basecamp project. Use when you need to retrieve the list of active comments with their content, creators, and metadata.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `bucket_id` | integer | Yes | The project/bucket ID containing the recording |
| `recording_id` | integer | Yes | The recording ID whose comments to retrieve |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List Message Types

**Slug:** `BASECAMP_LIST_MESSAGE_TYPES`

Tool to retrieve all message types in a Basecamp project. Use when you need to list all available message types for organizing messages in a project.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `bucket_id` | integer | Yes | The ID of the project bucket to retrieve message types from |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List Project People

**Slug:** `BASECAMP_LIST_PROJECT_PEOPLE`

Tool to get all people on a specific Basecamp project. Use when you need to retrieve the list of active members who have access to a particular project.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `project_id` | integer | Yes | The unique identifier of the project whose people you want to retrieve |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List To-Do Lists in To-Do Set

**Slug:** `BASECAMP_LIST_TODOLISTS`

Tool to get all to-do lists in a to-do set within a Basecamp project. Use when you need to retrieve all to-do lists from a specific to-do set, optionally filtering by status (archived or trashed).

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `status` | string | No | Filter by status. Accepts 'archived' or 'trashed' to retrieve todolists with those respective statuses. Omit to return active lists. |
| `bucket_id` | integer | Yes | The project's unique identifier (bucket ID). |
| `todoset_id` | integer | Yes | The to-do set's unique identifier. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List Uploads from Vault

**Slug:** `BASECAMP_LIST_UPLOADS`

Tool to retrieve all active uploads from a vault in a Basecamp project. Use when you need to list all uploaded files stored in a specific vault.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `page` | integer | No | Optional. Page number for pagination. It's recommended to use the Link header from responses rather than manually constructing pagination URLs. |
| `vault_id` | integer | Yes | The vault identifier where uploads are stored |
| `bucket_id` | integer | Yes | The project identifier (bucket ID) |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Move Card to Column

**Slug:** `BASECAMP_MOVE_CARD`

Tool to move a card to a different column within a Basecamp card table. Use when you need to relocate a card from one column to another in a project.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `card_id` | integer | Yes | The ID of the card to move. |
| `bucket_id` | integer | Yes | The project/bucket ID where the card table is located. |
| `column_id` | integer | Yes | The ID of the target column where the card should be moved. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Reorder Card Table Column

**Slug:** `BASECAMP_MOVE_CARD_TABLE_COLUMN`

Tool to reorder columns within a Basecamp card table. Use when you need to change the position of a column in a card table by specifying the column to move and its new position.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `position` | integer | No | The desired column index position, excluding special columns (Triage, Not Now, Done). Defaults to 1. |
| `bucket_id` | integer | Yes | The project/bucket ID where the card table is located. |
| `source_id` | integer | Yes | The ID of the column being repositioned. |
| `target_id` | integer | Yes | The ID of the card table containing the column (same as card_table_id). |
| `card_table_id` | integer | Yes | The ID of the card table containing the column to move. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Pin Message

**Slug:** `BASECAMP_PIN_MESSAGE`

Tool to pin a message to the top of the message board. Use when you need to feature a message prominently at the top of a message board in a project.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `bucket_id` | integer | Yes | The ID of the bucket (project) containing the message. |
| `message_id` | integer | Yes | The ID of the message to pin to the top of the message board. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Upload File Attachment

**Slug:** `BASECAMP_POST_ATTACHMENTS`

Tool to upload a file to Basecamp system. Use when you need to upload a file to get an attachable_sgid reference for use in other operations like creating messages or todos with attachments.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `file` | object | Yes | File to upload. |
| `file_path` | string | No | Optional local file path to read the file content from. If provided, this will be used instead of the file reference. Useful for testing or when the file is available locally. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Move Card to Column

**Slug:** `BASECAMP_POST_BUCKETS_CARD_TABLES_CARDS_MOVES`

Tool to move a card to a different column within a Basecamp card table. Use when you need to relocate a card from one column to another in a project.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `card_id` | integer | Yes | The ID of the card to move. |
| `bucket_id` | integer | Yes | The project/bucket ID where the card table is located. |
| `column_id` | integer | Yes | The ID of the target column where the card should be moved. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Reposition Step in Card

**Slug:** `BASECAMP_POST_BUCKETS_CARD_TABLES_CARDS_POSITIONS`

Tool to reposition a step within a card in a Basecamp card table. Use when you need to change the order of steps/subtasks within a card by moving a step to a specific position.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `card_id` | integer | Yes | The ID of the card containing the step to reposition. |
| `position` | integer | Yes | Zero-indexed integer indicating the desired location for the step within the card. Position 0 moves the step to the top. |
| `bucket_id` | integer | Yes | The project/bucket identifier where the card table is located. |
| `source_id` | integer | Yes | The identifier for the step to be moved. Step identifiers can be retrieved through the 'Get a card' endpoint. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Create Card Table Column

**Slug:** `BASECAMP_POST_BUCKETS_CARD_TABLES_COLUMNS`

Tool to create a column within a Basecamp card table. Use when you need to add a new column to organize cards in a card table project.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `title` | string | Yes | The name of the column being created. |
| `bucket_id` | integer | Yes | The project/bucket ID where the card table exists. |
| `description` | string | No | Information about the column's purpose. |
| `card_table_id` | integer | Yes | The card table ID where the column will be created. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Create On-Hold Section in Column

**Slug:** `BASECAMP_POST_BUCKETS_CARD_TABLES_COLUMNS_ON_HOLD`

Tool to create an on-hold section in a card table column. Use when you need to add an on-hold area to organize cards that are temporarily paused or waiting.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `bucket_id` | integer | Yes | The project identifier (bucket ID) containing the card table. |
| `column_id` | integer | Yes | The unique identifier for the column where the on-hold section will be created. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Create Message Category

**Slug:** `BASECAMP_POST_BUCKETS_CATEGORIES`

Tool to create a new message type (category) in a Basecamp project. Use when you need to create a custom message category for organizing different types of messages in a project.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `icon` | string | Yes | An emoji or icon symbol representing the category |
| `name` | string | Yes | The display name for the message type |
| `bucket_id` | integer | Yes | The ID of the project bucket to create the message type in |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Create Campfire Line

**Slug:** `BASECAMP_POST_BUCKETS_CHATS_LINES`

Tool to create a line in a Basecamp Campfire chat. Use when you need to post a message to a specific Campfire chat within a project.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `chat_id` | integer | Yes | The Campfire chat ID to post the message to. |
| `content` | string | Yes | The plain text body for the Campfire line/message. |
| `bucket_id` | integer | Yes | The project/bucket ID where the chat exists. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Create Message on Message Board

**Slug:** `BASECAMP_POST_BUCKETS_MESSAGE_BOARDS_MESSAGES`

Tool to publish a message to a Basecamp message board within a project. Use when you need to create a new message with optional rich HTML content and subscriptions.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `status` | string | Yes | Message status. Set to 'active' to publish immediately |
| `content` | string | No | The body text of the message, supporting HTML tags |
| `subject` | string | Yes | The title/subject of the message |
| `bucket_id` | integer | Yes | The project/bucket identifier |
| `category_id` | integer | No | Assigns a message type; retrieve available types via Get message types endpoint |
| `subscriptions` | array | No | Array of person IDs to notify and subscribe to the message. If omitted, all project members receive notification and subscription |
| `message_board_id` | integer | Yes | The message board identifier |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Create Comment on Recording

**Slug:** `BASECAMP_POST_BUCKETS_RECORDINGS_COMMENTS`

Tool to publish a comment on a recording within a Basecamp project. Use when you need to add a comment with rich text to any recording such as a todolist, message, or document.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `content` | string | Yes | The comment content as HTML. Supports rich text formatting with allowed HTML tags. Example: '<div><em>Great!</em> This todolist looks well organized.</div>' |
| `bucket_id` | integer | Yes | The project/bucket ID where the recording exists. |
| `account_id` | integer | No | Optional Basecamp account ID. Use this when the resource exists in a different account than the default. If not provided, uses the account ID from the authenticated connection. |
| `recording_id` | integer | Yes | The recording ID to add the comment to. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Pin Recording

**Slug:** `BASECAMP_POST_BUCKETS_RECORDINGS_PIN`

Tool to pin a recording (message) in a Basecamp project. Use when you need to feature a message prominently at the top of a message board or project.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `bucket_id` | integer | Yes | The ID of the bucket (project) containing the recording. |
| `recording_id` | integer | Yes | The ID of the recording (message) to pin. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Subscribe to Recording

**Slug:** `BASECAMP_POST_BUCKETS_RECORDINGS_SUBSCRIPTION`

Tool to subscribe the current user to a recording for notifications. Use when you need to start watching/subscribing to a specific recording to receive notifications for new comments.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `bucket_id` | integer | Yes | The ID of the bucket containing the recording. |
| `recording_id` | integer | Yes | The ID of the recording to subscribe to. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Create Schedule Entry

**Slug:** `BASECAMP_POST_BUCKETS_SCHEDULES_ENTRIES`

Tool to create a schedule entry in a Basecamp schedule within a project. Use when you need to add a new event with start/end times and optional participants.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `notify` | boolean | No | When true, participants receive notifications about the entry. Defaults to false if not specified. |
| `all_day` | boolean | No | When true, entry spans entire day(s) without specific times. Defaults to false if not specified. |
| `ends_at` | string | Yes | ISO 8601 datetime when the entry concludes. Example: '2025-12-15T11:00:00Z' |
| `summary` | string | Yes | The title or subject of the schedule entry. |
| `bucket_id` | integer | Yes | The project/bucket ID where the schedule exists. |
| `starts_at` | string | Yes | ISO 8601 datetime when the entry begins. Example: '2025-12-15T10:00:00Z' |
| `description` | string | No | HTML string with more information about the schedule entry with formatting. |
| `schedule_id` | integer | Yes | The schedule ID where the entry will be created. |
| `participant_ids` | array | No | Array of person IDs to include as participants in the schedule entry. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Create Comment on To-Do List

**Slug:** `BASECAMP_POST_BUCKETS_TODOLISTS_COMMENTS`

Tool to add a comment to a to-do list in a Basecamp project. Use when you need to comment on a todolist with feedback, updates, or discussions. All subscribers to the to-do list will be notified.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `content` | string | Yes | The comment content as HTML. Supports rich text formatting with allowed HTML tags. Example: '<div><em>Great!</em> This todolist looks well organized.</div>' |
| `bucket_id` | integer | Yes | The project/bucket ID where the to-do list exists. |
| `todolist_id` | integer | Yes | The to-do list ID to add the comment to. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Create To-Do in To-Do List

**Slug:** `BASECAMP_POST_BUCKETS_TODOLISTS_TODOS`

Tool to create a to-do in a Basecamp to-do list within a project. Use when you need to add a new to-do item with optional description, assignees, and due date.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `due_on` | string | No | Completion target date in YYYY-MM-DD format. |
| `notify` | boolean | No | When true, notifies assignees of their assignment. Defaults to false if not specified. |
| `content` | string | Yes | What the to-do is for (main title/content). This field is required. |
| `bucket_id` | integer | Yes | The project/bucket ID where the to-do list exists. |
| `starts_on` | string | No | Start date in YYYY-MM-DD format; runs until due_on. |
| `description` | string | No | Details about the to-do; supports HTML formatting per the Rich text guide. |
| `todolist_id` | integer | Yes | The to-do list ID where the to-do will be created. |
| `assignee_ids` | array | No | Person IDs to assign the to-do; retrieve via Get people endpoint. |
| `completion_subscriber_ids` | array | No | Person IDs notified upon completion; retrieve via Get people endpoint. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Comment on To-Do

**Slug:** `BASECAMP_POST_BUCKETS_TODOS_COMMENTS`

Tool to add a comment to a to-do in a Basecamp project. Use when you need to add feedback, updates, or discussion to a specific to-do item.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `content` | string | Yes | The comment content as HTML. Supports rich text formatting with allowed HTML tags. Example: '<div><em>Great progress!</em> This todo is almost complete.</div>' |
| `todo_id` | integer | Yes | The to-do ID to add the comment to. |
| `bucket_id` | integer | Yes | The project/bucket ID where the to-do exists. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Create To-Do List in To-Do Set

**Slug:** `BASECAMP_POST_BUCKETS_TODOSETS_TODOLISTS`

Tool to create a new to-do list in a Basecamp to-do set within a project. Use when you need to add a new to-do list with optional HTML description.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `name` | string | Yes | The title/name of the to-do list. This field is required. |
| `bucket_id` | integer | Yes | The project/bucket ID where the to-do set exists. |
| `todoset_id` | integer | Yes | The to-do set ID where the to-do list will be created. |
| `description` | string | No | Details about the to-do list; supports HTML formatting per the Rich text guide. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Create Webhook

**Slug:** `BASECAMP_POST_BUCKETS_WEBHOOKS`

Tool to create a new webhook subscription for a Basecamp project. Use when you need to receive event notifications at a specified HTTPS endpoint for project activities.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `types` | array | No | Event types to subscribe to. Available options: 'all', 'Comment', 'Client::Approval::Response', 'Client::Forward', 'Client::Reply', 'CloudFile', 'Document', 'GoogleDocument', 'Inbox::Forward', 'Kanban::Card', 'Kanban::Step', 'Message', 'Question', 'Question::Answer', 'Schedule::Entry', 'Todo', 'Todolist', 'Upload', 'Vault'. Defaults to all types if omitted. |
| `bucket_id` | integer | Yes | The project/bucket identifier |
| `payload_url` | string | Yes | HTTPS URL where Basecamp will send webhook events |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Create Campfire Line via Chatbot

**Slug:** `BASECAMP_POST_INTEGRATIONS_CHATBOT_KEY_BUCKETS_CHATS_LINES`

Tool to create a line in a Basecamp Campfire chat using a chatbot key. Use when you need to post messages via a chatbot integration without OAuth authentication.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `chat_id` | integer | Yes | The Campfire chat ID to post the message to. |
| `content` | string | Yes | The HTML body text for the Campfire message. Supports rich text formatting with permitted HTML tags including: strong, em, a, ul, ol, li, blockquote, pre, code, table, tr, td, th, thead, tbody, details, and summary. |
| `bucket_id` | integer | Yes | The project/bucket ID where the chat exists. |
| `chatbot_key` | string | Yes | The unique authentication key for the chatbot. This key is provided when creating a chatbot integration and allows posting without OAuth. |
| `content_param` | string | No | Optional parameter to rename the 'content' field for third-party webhook integrations (e.g., use 'text' for Slack webhooks). |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Create Lineup Marker

**Slug:** `BASECAMP_POST_LINEUP_MARKERS`

Tool to create an account-wide marker that shows up in the Lineup. Use when you need to add a visual marker to highlight important dates or milestones across all projects.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `date` | string | Yes | ISO8601 formatted date without a time part (e.g., '2021-01-01', '2025-12-12'). This is the date where the marker will appear in the Lineup. |
| `name` | string | Yes | The label for the lineup marker. This is the text that will be displayed in the Lineup. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Create New Project

**Slug:** `BASECAMP_POST_PROJECTS`

Tool to create a new project in Basecamp with a name and optional description. Use when you need to set up a new project workspace for team collaboration.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `name` | string | Yes | The project title/name. This field is required. |
| `description` | string | No | Additional details about the project's purpose or scope. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Create New Template

**Slug:** `BASECAMP_POST_TEMPLATES`

Tool to create a new template in Basecamp with a name and optional description. Use when you need to set up a reusable project template for standardizing workflows.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `name` | string | Yes | The template's title/name. This field is required. |
| `description` | string | No | Optional descriptive text about the template's purpose or contents. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Update Card Table Column Color

**Slug:** `BASECAMP_PUT_BUCKETS_CARD_TABLES_COLUMNS_COLOR`

Tool to update a card table column's visual color designation in a Basecamp project. Use when you need to change the color of a specific column for better visual organization.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `color` | string ("white" | "red" | "orange" | "yellow" | "green" | "blue" | "aqua" | "purple" | "gray" | "pink" | "brown") | Yes | The new color value for the column. Must be one of: white, red, orange, yellow, green, blue, aqua, purple, gray, pink, brown. |
| `bucket_id` | integer | Yes | The project identifier (bucket ID) containing the card table. |
| `column_id` | integer | Yes | The unique identifier for the column to update. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Update Card Table Step

**Slug:** `BASECAMP_PUT_BUCKETS_CARD_TABLES_STEPS`

Tool to update an existing card table step in Basecamp. Use when you need to modify a step's title, due date, or assignees. Omitted parameters remain unchanged.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `title` | string | No | The step's heading text. If provided, updates the step title. |
| `due_on` | string | No | Target completion date in ISO 8601 format (YYYY-MM-DD). If provided, updates the due date. |
| `step_id` | integer | Yes | The ID of the step to update. |
| `assignees` | array | No | Array of people IDs to assign to this step. If provided, updates the assignees. |
| `bucket_id` | integer | Yes | The ID of the bucket (project) containing the card table. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Mark Step Completion Status

**Slug:** `BASECAMP_PUT_BUCKETS_CARD_TABLES_STEPS_COMPLETIONS`

Tool to mark a card table step as completed or uncompleted in Basecamp. Use when you need to toggle the completion status of a step by setting completion to "on" or "off".

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `step_id` | integer | Yes | The ID of the step to mark as completed or uncompleted. |
| `bucket_id` | integer | Yes | The ID of the bucket (project) containing the card table. |
| `completion` | string ("on" | "off") | Yes | Completion status: "on" to mark as completed, "off" to mark as uncompleted. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Update Message Category

**Slug:** `BASECAMP_PUT_BUCKETS_CATEGORIES`

Tool to update an existing message type (category) in a Basecamp project. Use when you need to modify the name or icon of a message category.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `icon` | string | Yes | An emoji or icon symbol representing the category |
| `name` | string | Yes | The updated display name for the message type |
| `bucket_id` | integer | Yes | The ID of the project bucket containing the message type |
| `category_id` | integer | Yes | The ID of the message type to update |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Update Chatbot Integration

**Slug:** `BASECAMP_PUT_BUCKETS_CHATS_INTEGRATIONS`

Tool to update an existing chatbot integration in a Basecamp Campfire chat. Use when you need to change the service name or command URL of a chatbot.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `chat_id` | integer | Yes | The Campfire/chat transcript identifier |
| `bucket_id` | integer | Yes | The project/bucket identifier |
| `command_url` | string | No | HTTPS endpoint that Basecamp calls when the bot receives queries or commands |
| `service_name` | string | Yes | Bot identifier for invocation (no spaces, emoji, or special chars; used as !service_name command) |
| `integration_id` | integer | Yes | The chatbot integration identifier |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Update Comment

**Slug:** `BASECAMP_PUT_BUCKETS_COMMENTS`

Tool to update comment content in a Basecamp project. Use when you need to modify the content of an existing comment.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `content` | string | Yes | The updated message body in HTML format. HTML tags allowed as per Basecamp Rich text guide. |
| `bucket_id` | integer | Yes | The project identifier (bucket ID) containing the comment. |
| `comment_id` | integer | Yes | The unique identifier for the comment to update. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Update Document in Bucket

**Slug:** `BASECAMP_PUT_BUCKETS_DOCUMENTS`

Tool to update an existing document in a Basecamp project bucket. Use when you need to modify a document's title, content, or both. Omitted parameters remain unchanged.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `title` | string | No | New title for the document. If provided, updates the document title. |
| `content` | string | No | New body content in HTML format. See Basecamp Rich text guide for allowed HTML tags. If provided, updates the document content. |
| `bucket_id` | integer | Yes | The ID of the bucket (project) containing the document. |
| `document_id` | integer | Yes | The ID of the document to update. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Update Message

**Slug:** `BASECAMP_PUT_BUCKETS_MESSAGES`

Tool to update a message's subject, content, or category in a Basecamp project. Use when you need to modify an existing message's title, body text, or categorization.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `content` | string | No | New body content in HTML format. See Basecamp Rich text guide for allowed HTML tags. If provided, updates the message content. |
| `subject` | string | No | New subject/title for the message. If provided, updates the message subject. |
| `bucket_id` | integer | Yes | The ID of the bucket (project) containing the message. |
| `message_id` | integer | Yes | The ID of the message to update. |
| `category_id` | integer | No | Category/type ID to assign to the message. If provided, changes the message category. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Update Recording Client Visibility

**Slug:** `BASECAMP_PUT_BUCKETS_RECORDINGS_CLIENT_VISIBILITY`

Tool to update client visibility for a recording in Basecamp. Use when you need to show or hide a recording from clients. Returns 403 if the recording inherits visibility from parent resource.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `bucket_id` | integer | Yes | The ID of the bucket (project) containing the recording. |
| `recording_id` | integer | Yes | The ID of the recording to update. |
| `visible_to_clients` | boolean | Yes | Set to true to make the recording visible to clients, or false to hide it from clients. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Unarchive Recording

**Slug:** `BASECAMP_PUT_BUCKETS_RECORDINGS_STATUS_ACTIVE`

Tool to unarchive a recording in a Basecamp project by marking it as active. Use when you need to restore an archived recording to make it visible again in the project.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `bucket_id` | integer | Yes | The ID of the bucket (project) containing the recording. |
| `recording_id` | integer | Yes | The ID of the recording to unarchive. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Archive Recording

**Slug:** `BASECAMP_PUT_BUCKETS_RECORDINGS_STATUS_ARCHIVED`

Tool to mark a recording as archived in a Basecamp project. Use when you need to archive a recording to remove it from active view while preserving it for reference.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `bucket_id` | integer | Yes | The ID of the bucket (project) containing the recording. |
| `recording_id` | integer | Yes | The ID of the recording to archive. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Trash Recording

**Slug:** `BASECAMP_PUT_BUCKETS_RECORDINGS_STATUS_TRASHED`

Tool to mark a recording as trashed in a Basecamp project. Use when you need to move a recording to trash without permanently deleting it.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `bucket_id` | integer | Yes | The ID of the bucket (project) containing the recording. |
| `recording_id` | integer | Yes | The ID of the recording to mark as trashed. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Update Recording Subscription

**Slug:** `BASECAMP_PUT_BUCKETS_RECORDINGS_SUBSCRIPTION`

Tool to update recording subscriptions by adding or removing subscribers. Use when you need to manage who receives notifications for a specific recording. At least one of subscriptions or unsubscriptions must be provided.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `bucket_id` | integer | Yes | The ID of the bucket containing the recording |
| `recording_id` | integer | Yes | The ID of the recording to update subscription information for |
| `subscriptions` | array | No | Array of person IDs to add as subscribers to the recording |
| `unsubscriptions` | array | No | Array of person IDs to remove from subscribers of the recording |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Update Schedule Entry

**Slug:** `BASECAMP_PUT_BUCKETS_SCHEDULE_ENTRIES`

Tool to update an existing schedule entry in a Basecamp schedule. Use when you need to modify an entry's title, times, description, or participants. Omitted parameters remain unchanged.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `notify` | boolean | No | When true, participants receive notifications about the update. If provided, controls notification behavior. |
| `all_day` | boolean | No | When true, entry spans entire day(s) without specific times. If provided, updates the all_day setting. |
| `ends_at` | string | No | ISO 8601 datetime or date when the entry concludes. If provided, updates the end time. Example: '2025-12-16T15:30:00Z' or '2025-12-16' |
| `summary` | string | No | The title or subject of the schedule entry. If provided, updates the entry summary. |
| `entry_id` | integer | Yes | The schedule entry ID to update. |
| `bucket_id` | integer | Yes | The project/bucket ID containing the schedule entry. |
| `starts_at` | string | No | ISO 8601 datetime or date when the entry begins. If provided, updates the start time. Example: '2025-12-16T14:00:00Z' or '2025-12-16' |
| `description` | string | No | HTML string with more information about the schedule entry. If provided, updates the description. |
| `participant_ids` | array | No | Array of person IDs to include as participants. If provided, updates the participant list. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Update Schedule Configuration

**Slug:** `BASECAMP_PUT_BUCKETS_SCHEDULES`

Tool to update a schedule configuration in a Basecamp project. Use when you need to change whether the schedule includes due assignments from to-dos, cards and steps.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `bucket_id` | integer | Yes | The project/bucket ID where the schedule exists. |
| `schedule_id` | integer | Yes | The schedule ID to update. |
| `include_due_assignments` | boolean | Yes | Whether the schedule should include due dates from to-dos, cards and steps. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Reposition To-Do List Group

**Slug:** `BASECAMP_PUT_BUCKETS_TODOLISTS_GROUPS_POSITION`

Tool to reposition a to-do list group within its parent to-do list in a Basecamp project. Use when you need to change the order of to-do list groups by moving a group to a specific position.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `group_id` | integer | Yes | The ID of the to-do list group to reposition. |
| `position` | integer | Yes | The new ordering position for the group (must be greater than or equal to 1). Determines where the group will be placed among its siblings. |
| `bucket_id` | integer | Yes | The ID of the project bucket containing the to-do list group. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Update To-Do in Bucket

**Slug:** `BASECAMP_PUT_BUCKETS_TODOS`

Tool to update an existing to-do in a Basecamp project. Use when you need to modify a to-do's content, description, assignees, dates, or notification settings. Note: Pass all existing parameters along with those being updated to prevent clearing values.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `due_on` | string | No | Target completion date for the to-do in ISO 8601 format (YYYY-MM-DD). |
| `notify` | boolean | No | When true, sends notifications to assignees about their assignment. |
| `content` | string | Yes | What the to-do is for. This parameter is always required and cannot be blank. |
| `todo_id` | integer | Yes | The ID of the to-do to update. |
| `bucket_id` | integer | Yes | The ID of the project/bucket containing the to-do. |
| `starts_on` | string | No | Start date for the to-do in ISO 8601 format (YYYY-MM-DD). The to-do runs from starts_on until due_on. |
| `description` | string | No | Additional information about the to-do. Supports HTML formatting per Rich text guidelines. |
| `assignee_ids` | array | No | Array of people IDs assigned to complete this to-do. Use Get people endpoints to retrieve valid IDs. |
| `completion_subscriber_ids` | array | No | Array of people IDs who will be notified when the to-do is completed. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Reposition To-Do

**Slug:** `BASECAMP_PUT_BUCKETS_TODOS_POSITION`

Tool to change the position of a to-do within its list in a Basecamp project. Use when you need to reorder to-dos by moving a specific to-do to a new position.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `todo_id` | integer | Yes | The ID of the to-do item to reposition. |
| `position` | integer | Yes | The new position for the to-do in the list (must be greater than or equal to 1). Determines where the to-do will be placed among its siblings. |
| `bucket_id` | integer | Yes | The ID of the project/bucket containing the to-do. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Update Upload in Bucket

**Slug:** `BASECAMP_PUT_BUCKETS_UPLOADS`

Tool to update an existing upload in a Basecamp project bucket. Use when you need to modify an upload's description or filename. Omitted parameters remain unchanged.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `base_name` | string | No | New file name for the upload without extension. If provided, updates the upload filename. |
| `bucket_id` | integer | Yes | The ID of the bucket (project) containing the upload. |
| `upload_id` | integer | Yes | The ID of the upload to update. |
| `description` | string | No | New description for the upload in HTML format. See Basecamp Rich text guide for allowed HTML tags. If provided, updates the upload description. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Update Vault Title

**Slug:** `BASECAMP_PUT_BUCKETS_VAULTS`

Tool to update a vault's title in a Basecamp project. Use when you need to rename a vault within a specific project bucket.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `title` | string | Yes | The new title/name for the vault. |
| `vault_id` | integer | Yes | The ID of the vault to update. |
| `bucket_id` | integer | Yes | The ID of the bucket (project) containing the vault. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Update Webhook

**Slug:** `BASECAMP_PUT_BUCKETS_WEBHOOKS`

Tool to update an existing webhook in a Basecamp project. Use when you need to modify the webhook's URL, event types, or active status.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `types` | array | No | Event types to subscribe to. Available options: 'all', 'Comment', 'Client::Approval::Response', 'Client::Forward', 'Client::Reply', 'CloudFile', 'Document', 'GoogleDocument', 'Inbox::Forward', 'Kanban::Card', 'Kanban::Step', 'Message', 'Question', 'Question::Answer', 'Schedule::Entry', 'Todo', 'Todolist', 'Upload', 'Vault'. If omitted, existing types are preserved. |
| `active` | boolean | No | Controls whether the webhook should match incoming events. Set to true to enable or false to disable. |
| `bucket_id` | integer | Yes | The project/bucket identifier |
| `webhook_id` | integer | Yes | The webhook identifier to update |
| `payload_url` | string | Yes | HTTPS URL where Basecamp will send webhook events |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Update Project

**Slug:** `BASECAMP_PUT_PROJECTS`

Tool to update an existing project's name, description, access policy, or schedule in Basecamp. Use when you need to modify project details or settings. Note: name parameter is required; schedule dates must be provided as pairs (both start_date and end_date).

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `name` | string | Yes | The project's title. This field is required. |
| `admissions` | string ("invite" | "employee" | "team") | No | Access control policy. Options: 'invite' (restricted to invited users only), 'employee' (accessible to all account members), 'team' (available to non-client account members). |
| `project_id` | integer | Yes | The unique identifier for the project to update |
| `description` | string | No | Additional project information. If provided, updates the project description. |
| `schedule_attributes` | object | No | Schedule attributes for setting project start and end dates. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Grant or Revoke Project Access

**Slug:** `BASECAMP_PUT_PROJECTS_PEOPLE_USERS`

Tool to grant or revoke project access for users in Basecamp. Use when you need to add existing users to a project, create new users with access, or remove users from a project. At least one of grant, revoke, or create must be provided.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `grant` | array | No | Array of people IDs to grant project access to existing users |
| `create` | array | No | Array of new people to create and add to the project |
| `revoke` | array | No | Array of people IDs to remove from the project |
| `project_id` | integer | Yes | The unique identifier of the project |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Update Template

**Slug:** `BASECAMP_PUT_TEMPLATES`

Tool to update a template's name and description in Basecamp. Use when you need to modify template metadata. Omitted parameters remain unchanged.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `name` | string | No | The new name for the template. If provided, updates the template's name. |
| `description` | string | No | The new description for the template. If provided, updates the template's description. |
| `template_id` | integer | Yes | The ID of the template to update. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Reposition Card Step

**Slug:** `BASECAMP_REPOSITION_CARD_STEP`

Tool to change the position of a step within a card. Use when you need to reorder steps in a card table card by moving a step to a specific position.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `card_id` | integer | Yes | The ID of the card containing the step to reposition. |
| `position` | integer | Yes | Zero-indexed integer indicating where the step should be placed in the sequence. Position 0 moves the step to the top. |
| `bucket_id` | integer | Yes | The ID of the bucket containing the card table. |
| `source_id` | integer | Yes | The numeric identifier of the step to move. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Trash Project

**Slug:** `BASECAMP_TRASH_PROJECT`

Tool to mark a Basecamp project as trashed. Use when you need to trash a project. Trashed projects will be permanently deleted after 30 days.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `project_id` | integer | Yes | The project identifier to trash |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Trash Template

**Slug:** `BASECAMP_TRASH_TEMPLATE`

Tool to mark a template as trashed in Basecamp. Use when you need to soft-delete a template; it will be permanently removed after 30 days.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `template_id` | integer | Yes | The unique identifier of the template to trash. The template will be permanently deleted after 30 days. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Uncomplete To-Do

**Slug:** `BASECAMP_UNCOMPLETE_TODO`

Tool to mark a to-do as uncompleted in Basecamp. Use when you need to reverse the completion status of a completed to-do item.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `todo_id` | integer | Yes | The to-do item identifier to mark as uncompleted |
| `bucket_id` | integer | Yes | The project identifier (bucket ID) where the to-do belongs |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Unpin Message

**Slug:** `BASECAMP_UNPIN_MESSAGE`

Tool to unpin a message from the message board. Use when you need to remove the pinned status from a message that was previously pinned to the top of a message board.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `bucket_id` | integer | Yes | The ID of the bucket (project) containing the message. |
| `message_id` | integer | Yes | The ID of the message to unpin from the message board. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Unsubscribe Current User from Recording

**Slug:** `BASECAMP_UNSUBSCRIBE_CURRENT_USER`

Tool to unsubscribe the current user from a recording. Use when you need to stop receiving notifications for a specific recording. This is an idempotent operation that returns success even if the user wasn't previously subscribed.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `bucket_id` | integer | Yes | The ID of the bucket (project) containing the recording. |
| `recording_id` | integer | Yes | The ID of the recording to unsubscribe from. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Stop Watching Card Table Column

**Slug:** `BASECAMP_UNWATCH_CARD_TABLE_COLUMN`

Tool to stop watching a card table column. Use when you want to unsubscribe from a specific column and no longer receive notifications about changes to it.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `bucket_id` | integer | Yes | The project identifier (bucket ID) containing the card table. |
| `column_id` | integer | Yes | The card table column identifier to stop watching. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Update Card

**Slug:** `BASECAMP_UPDATE_CARD`

Tool to update a card's details in a Basecamp card table. Use when you need to modify a card's title, content, due date, or assignees.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `title` | string | No | The card's heading. If provided, updates the card title. |
| `due_on` | string | No | Target completion date for the card in ISO 8601 format (YYYY-MM-DD). If provided, updates the due date. |
| `card_id` | integer | Yes | The ID of the card to update. |
| `content` | string | No | Card details supporting HTML formatting per the Rich text guide. If provided, updates the card content. |
| `bucket_id` | integer | Yes | The ID of the bucket (project) containing the card table. |
| `assignee_ids` | array | No | Array of person IDs to assign to the card. If provided, updates the assignees. Use Get people endpoint to retrieve valid IDs. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Update Card Table Column

**Slug:** `BASECAMP_UPDATE_CARD_TABLE_COLUMN`

Tool to update a card table column's properties in a Basecamp project. Use when you need to modify a column's title or description.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `title` | string | No | Column name. If provided, updates the column title. |
| `bucket_id` | integer | Yes | The project identifier (bucket ID) containing the card table. |
| `column_id` | integer | Yes | The unique identifier for the column to update. |
| `description` | string | No | Column description containing information about the column. If provided, updates the column description. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Update Document

**Slug:** `BASECAMP_UPDATE_DOCUMENT`

Tool to update an existing document's title or content in a Basecamp project. Use when you need to modify document title, content, or both.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `title` | string | No | New title for the document. If provided, updates the document title. |
| `content` | string | No | New body content in HTML format. See Basecamp Rich text guide for allowed HTML tags. If provided, updates the document content. |
| `bucket_id` | integer | Yes | The ID of the bucket (project) containing the document. |
| `document_id` | integer | Yes | The ID of the document to update. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Update To-Do

**Slug:** `BASECAMP_UPDATE_TODO`

Tool to update a to-do's content, assignees, or due date in a Basecamp project. Use when you need to modify an existing to-do item. Pass all existing parameters along with those being updated to prevent clearing values.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `due_on` | string | No | Target completion date for the to-do in ISO 8601 format (YYYY-MM-DD). |
| `notify` | boolean | No | When true, sends notifications to assignees about their assignment. |
| `content` | string | Yes | What the to-do is for. This parameter is always required and cannot be blank. |
| `todo_id` | integer | Yes | The ID of the to-do to update. |
| `bucket_id` | integer | Yes | The ID of the project/bucket containing the to-do. |
| `starts_on` | string | No | Start date for the to-do in ISO 8601 format (YYYY-MM-DD). The to-do runs from starts_on until due_on. |
| `description` | string | No | Additional HTML content about the to-do. Supports HTML formatting per Rich text guidelines. |
| `assignee_ids` | array | No | Array of people IDs assigned to complete this to-do. Use Get people endpoints to retrieve valid IDs. |
| `completion_subscriber_ids` | array | No | Array of people IDs who will be notified when the to-do is completed. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Update Vault Title

**Slug:** `BASECAMP_UPDATE_VAULT`

Tool to update a vault's title in a Basecamp project. Use when you need to rename a vault within a specific project bucket.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `title` | string | Yes | The new title for the vault |
| `vault_id` | integer | Yes | The ID of the vault to update |
| `bucket_id` | integer | Yes | The ID of the project/bucket containing the vault |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Watch Card Table Column

**Slug:** `BASECAMP_WATCH_CARD_TABLE_COLUMN`

Tool to start watching a card table column in a Basecamp project. Use when you need to subscribe to a specific column to receive notifications about changes.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `bucket_id` | integer | Yes | The project/bucket ID where the card table is located. |
| `column_id` | integer | Yes | The card table column ID to start watching for notifications. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |
