Basecamp
Overview
Section titled “Overview”Basecamp is a project management and team collaboration tool built by 37signals. It brings projects, to-do lists, documents, event schedules, and chat rooms together in one place. With the Basecamp integration in SquadOS, your agents can create and update tasks, publish messages, manage documents, and track project progress — all automatically.
- Official website: https://basecamp.com/
- Composio documentation: docs.composio.dev/toolkits/basecamp
Authentication
Section titled “Authentication”This tool uses OAuth 2.0 (OAUTH2) to connect.
You authorize access to your Basecamp account via a secure OAuth flow — no manual API key is required.
| Field | Required | Description |
|---|---|---|
| Basecamp account | Yes | Authorize access to your Basecamp account through the OAuth flow managed by Composio. |
How to connect in SquadOS
Section titled “How to connect in SquadOS”- Go to Tools in the side menu (
/admin/tools). - Open the Available tab and search for
Basecamp. - Click the card to open the details modal and hit Connect.
- You’re taken to the secure connection page hosted by Composio, where you authorize access to your Basecamp account via OAuth.
- Once done, you’re sent back to SquadOS with the account connected and the tool available for your agents. (Connection-flow details in Organization Tools.)
Available actions
Section titled “Available actions”List projects
Section titled “List projects”BASECAMP_GET_PROJECTS
Retrieves a paginated list of projects visible to the current user, sorted by most recently created first. Use to list all projects or filter by status.
Input parameters
Section titled “Input parameters”| Name | Type | Required | Description |
|---|---|---|---|
status | string | No | Filter projects by status. Accepts archived or trashed. Omit to get active projects. |
account_id | integer | No | Basecamp account ID. Use when you have access to multiple accounts. |
Output
Section titled “Output”| Name | 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. |
Get project by ID
Section titled “Get project by ID”BASECAMP_GET_PROJECTS_BY_PROJECT_ID
Retrieves a single project by its ID with full details including dock tools. Use to get complete information about a specific project.
Input parameters
Section titled “Input parameters”| Name | Type | Required | Description |
|---|---|---|---|
project_id | integer | Yes | The unique identifier for the project to retrieve. |
Output
Section titled “Output”| Name | 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. |
Create new project
Section titled “Create new project”BASECAMP_POST_PROJECTS
Creates a new project in Basecamp with a name and optional description. Use to set up a new team workspace.
Input parameters
Section titled “Input parameters”| Name | 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
Section titled “Output”| Name | 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. |
Update project
Section titled “Update project”BASECAMP_PUT_PROJECTS
Updates an existing project’s name, description, access policy, or schedule in Basecamp.
Input parameters
Section titled “Input parameters”| Name | Type | Required | Description |
|---|---|---|---|
name | string | Yes | The project’s title. This field is required. |
project_id | integer | Yes | The unique identifier for the project to update. |
description | string | No | Additional project information. |
admissions | string | No | Access control policy: invite (invited users only), employee (all account members), team (non-client account members). |
schedule_attributes | object | No | Schedule attributes for setting project start and end dates. |
Output
Section titled “Output”| Name | 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. |
Grant or revoke project access
Section titled “Grant or revoke project access”BASECAMP_PUT_PROJECTS_PEOPLE_USERS
Grants or revokes project access for users in Basecamp. At least one of grant, revoke, or create must be provided.
Input parameters
Section titled “Input parameters”| Name | Type | Required | Description |
|---|---|---|---|
project_id | integer | Yes | The unique identifier of the project. |
grant | array | No | Array of people IDs to grant project access to existing users. |
revoke | array | No | Array of people IDs to remove from the project. |
create | array | No | Array of new people to create and add to the project. |
Output
Section titled “Output”| Name | 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. |
Create to-do in to-do list
Section titled “Create to-do in to-do list”BASECAMP_POST_BUCKETS_TODOLISTS_TODOS
Creates a to-do in a Basecamp to-do list within a project, with optional description, assignees, and due date.
Input parameters
Section titled “Input parameters”| Name | Type | Required | Description |
|---|---|---|---|
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. |
todolist_id | integer | Yes | The to-do list ID where the to-do will be created. |
description | string | No | Details about the to-do; supports HTML formatting per the Rich text guide. |
assignee_ids | array | No | Person IDs to assign the to-do. |
due_on | string | No | Completion target date in YYYY-MM-DD format. |
starts_on | string | No | Start date in YYYY-MM-DD format. |
notify | boolean | No | When true, notifies assignees of their assignment. |
completion_subscriber_ids | array | No | Person IDs notified upon completion. |
Output
Section titled “Output”| Name | 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. |
List to-dos from a list
Section titled “List to-dos from a list”BASECAMP_GET_BUCKETS_TODOLISTS_TODOS
Retrieves all to-dos from a specific to-do list within a project.
Input parameters
Section titled “Input parameters”| Name | Type | Required | Description |
|---|---|---|---|
bucket_id | integer | Yes | The project/bucket ID containing the to-do list. |
todolist_id | integer | Yes | The to-do list ID whose to-dos will be retrieved. |
Output
Section titled “Output”| Name | 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. |
Update to-do
Section titled “Update to-do”BASECAMP_UPDATE_TODO
Updates a to-do’s content, assignees, or due date in a Basecamp project. Pass all existing parameters along with those being updated to prevent clearing values.
Input parameters
Section titled “Input parameters”| Name | Type | Required | Description |
|---|---|---|---|
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. |
description | string | No | Additional HTML content about the to-do. |
assignee_ids | array | No | Array of people IDs assigned to complete this to-do. |
due_on | string | No | Target completion date in ISO 8601 format (YYYY-MM-DD). |
starts_on | string | No | Start date in ISO 8601 format (YYYY-MM-DD). |
notify | boolean | No | When true, sends notifications to assignees about their assignment. |
completion_subscriber_ids | array | No | Array of people IDs who will be notified when the to-do is completed. |
Output
Section titled “Output”| Name | 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. |
Complete to-do
Section titled “Complete to-do”BASECAMP_COMPLETE_TODO
Marks a to-do as completed in Basecamp.
Input parameters
Section titled “Input parameters”| Name | 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
Section titled “Output”| Name | 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. |
Uncomplete to-do
Section titled “Uncomplete to-do”BASECAMP_UNCOMPLETE_TODO
Marks a to-do as uncompleted in Basecamp. Use when you need to reverse the completion status of a completed to-do item.
Input parameters
Section titled “Input parameters”| Name | 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
Section titled “Output”| Name | 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. |
Create to-do list in to-do set
Section titled “Create to-do list in to-do set”BASECAMP_POST_BUCKETS_TODOSETS_TODOLISTS
Creates a new to-do list within a to-do set of a project in Basecamp.
Input parameters
Section titled “Input parameters”| Name | Type | Required | Description |
|---|---|---|---|
name | string | Yes | The 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 list will be created. |
description | string | No | Description of the to-do list; supports HTML formatting. |
Output
Section titled “Output”| Name | 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. |
Publish message to message board
Section titled “Publish message to message board”BASECAMP_POST_BUCKETS_MESSAGE_BOARDS_MESSAGES
Publishes a message to a Basecamp message board within a project, with optional rich HTML content and subscriptions.
Input parameters
Section titled “Input parameters”| Name | Type | Required | Description |
|---|---|---|---|
subject | string | Yes | The title/subject of the message. |
status | string | Yes | Message status. Set to active to publish immediately. |
bucket_id | integer | Yes | The project/bucket identifier. |
message_board_id | integer | Yes | The message board identifier. |
content | string | No | The body text of the message, supporting HTML tags. |
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. |
Output
Section titled “Output”| Name | 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. |
Get messages from message board
Section titled “Get messages from message board”BASECAMP_GET_BUCKETS_MESSAGE_BOARDS_MESSAGES
Retrieves all messages from a specific message board within a project.
Input parameters
Section titled “Input parameters”| Name | Type | Required | Description |
|---|---|---|---|
bucket_id | integer | Yes | The project/bucket ID containing the message board. |
message_board_id | integer | Yes | The ID of the message board. |
Output
Section titled “Output”| Name | 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. |
Add comment to a recording
Section titled “Add comment to a recording”BASECAMP_POST_BUCKETS_RECORDINGS_COMMENTS
Publishes a comment on any recording (to-do list, message, document, etc.) within a Basecamp project.
Input parameters
Section titled “Input parameters”| Name | Type | Required | Description |
|---|---|---|---|
content | string | Yes | The comment content as HTML. Supports rich text formatting with allowed HTML tags. |
bucket_id | integer | Yes | The project/bucket ID where the recording exists. |
recording_id | integer | Yes | The recording ID to add the comment to. |
account_id | integer | No | Optional Basecamp account ID. Use when the resource exists in a different account than the default. |
Output
Section titled “Output”| Name | 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. |
Create schedule entry
Section titled “Create schedule entry”BASECAMP_POST_BUCKETS_SCHEDULES_ENTRIES
Creates a schedule entry in a Basecamp project schedule with start/end times and optional participants.
Input parameters
Section titled “Input parameters”| Name | Type | Required | Description |
|---|---|---|---|
summary | string | Yes | The title or subject of the schedule entry. |
starts_at | string | Yes | ISO 8601 datetime when the entry begins. Example: 2025-12-15T10:00:00Z. |
ends_at | string | Yes | ISO 8601 datetime when the entry concludes. Example: 2025-12-15T11:00:00Z. |
bucket_id | integer | Yes | The project/bucket ID where the schedule exists. |
schedule_id | integer | Yes | The schedule ID where the entry will be created. |
description | string | No | HTML string with more information about the schedule entry. |
participant_ids | array | No | Array of person IDs to include as participants. |
all_day | boolean | No | When true, entry spans entire day(s) without specific times. |
notify | boolean | No | When true, participants receive notifications about the entry. |
Output
Section titled “Output”| Name | 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. |
List schedule entries
Section titled “List schedule entries”BASECAMP_GET_BUCKETS_SCHEDULES_ENTRIES
Retrieves all entries from a project schedule in Basecamp.
Input parameters
Section titled “Input parameters”| Name | Type | Required | Description |
|---|---|---|---|
bucket_id | integer | Yes | The project/bucket ID containing the schedule. |
schedule_id | integer | Yes | The schedule ID whose entries will be retrieved. |
Output
Section titled “Output”| Name | 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. |
Create document in vault
Section titled “Create document in vault”BASECAMP_CREATE_DOCUMENT
Creates a new document in a Basecamp vault with title, HTML content, and optional publication status.
Input parameters
Section titled “Input parameters”| Name | Type | Required | Description |
|---|---|---|---|
title | string | Yes | The title of the document. This is required. |
content | string | Yes | Document body in HTML format. |
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. |
status | string | No | Publication status. Set to active to publish immediately upon creation. |
Output
Section titled “Output”| Name | 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. |
List documents from vault
Section titled “List documents from vault”BASECAMP_GET_BUCKETS_VAULTS_DOCUMENTS
Retrieves all documents from a specific vault within a Basecamp project.
Input parameters
Section titled “Input parameters”| Name | Type | Required | Description |
|---|---|---|---|
bucket_id | integer | Yes | The project/bucket ID containing the vault. |
vault_id | integer | Yes | The vault ID whose documents will be listed. |
Output
Section titled “Output”| Name | 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. |
Create card in Kanban column
Section titled “Create card in Kanban column”BASECAMP_CREATE_CARD
Creates a new card in a column of a Basecamp card table (Kanban board), with title, optional content, and due date.
Input parameters
Section titled “Input parameters”| Name | Type | Required | Description |
|---|---|---|---|
title | string | Yes | The card’s title. This is required and should be a descriptive name. |
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. |
content | string | No | Card description supporting HTML. |
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. |
Output
Section titled “Output”| Name | 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. |
Get card table (Kanban board)
Section titled “Get card table (Kanban board)”BASECAMP_GET_CARD_TABLE
Retrieves the card table (Kanban board) of a project, including columns and configuration.
Input parameters
Section titled “Input parameters”| Name | Type | Required | Description |
|---|---|---|---|
bucket_id | integer | Yes | The project/bucket ID containing the card table. |
card_table_id | integer | Yes | The ID of the card table to retrieve. |
Output
Section titled “Output”| Name | 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. |
List project people
Section titled “List project people”BASECAMP_GET_PROJECTS_PEOPLE
Retrieves all active people assigned to a Basecamp project.
Input parameters
Section titled “Input parameters”| Name | Type | Required | Description |
|---|---|---|---|
project_id | integer | Yes | The unique identifier of the project whose people you want to retrieve. |
Output
Section titled “Output”| Name | 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. |
Get all people
Section titled “Get all people”BASECAMP_GET_ALL_PEOPLE
Retrieves all active people in the Basecamp account.
Input parameters
Section titled “Input parameters”| Name | Type | Required | Description |
|---|---|---|---|
account_id | integer | No | Basecamp account ID. Use when you have access to multiple accounts. |
Output
Section titled “Output”| Name | 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. |
Get timesheet report
Section titled “Get timesheet report”BASECAMP_GET_REPORTS_TIMESHEET
Retrieves all timesheet entries across the Basecamp account within a given timeframe. Without date parameters, returns only the last month of entries.
Input parameters
Section titled “Input parameters”| Name | Type | Required | Description |
|---|---|---|---|
start_date | string | No | Report start date in ISO 8601 format (YYYY-MM-DD). If provided, end_date is also required. |
end_date | string | No | Report end date in ISO 8601 format (YYYY-MM-DD). If provided, start_date is also required. |
bucket_id | integer | No | Filter to a single project by bucket/project ID. Defaults to all projects. |
person_id | integer | No | Filter to a single person by their ID. Defaults to all users. |
Output
Section titled “Output”| Name | 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. |
List recordings across projects
Section titled “List recordings across projects”BASECAMP_GET_PROJECTS_RECORDINGS
Retrieves a paginated list of records for a given type of recording across projects, with optional filtering by project, status, and sorting.
Input parameters
Section titled “Input parameters”| Name | Type | Required | Description |
|---|---|---|---|
recording_type | string | Yes | The recording category to retrieve. Acceptable values: Comment, Document, Kanban::Card, Kanban::Step, Message, Question::Answer, Schedule::Entry, Todo, Todolist, Upload, Vault. |
bucket | string | No | Single or comma-separated project IDs. Defaults to all active projects. |
status | string | No | Filter by status: active, archived, or trashed. Defaults to active. |
sort | string | No | Order results by created_at or updated_at. Defaults to created_at. |
direction | string | No | Sort order: desc or asc. Defaults to desc. |
Output
Section titled “Output”| Name | 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. |
Create project from template
Section titled “Create project from template”BASECAMP_CREATE_PROJECT_CONSTRUCTION
Creates a new project from a Basecamp template asynchronously. Poll the returned URL to monitor construction progress until the status becomes completed.
Input parameters
Section titled “Input parameters”| Name | 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. |
Output
Section titled “Output”| Name | 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. |
List templates
Section titled “List templates”BASECAMP_GET_TEMPLATES
Retrieves all templates available in the Basecamp account.
Input parameters
Section titled “Input parameters”| Name | Type | Required | Description |
|---|---|---|---|
account_id | integer | No | Basecamp account ID. Use when you have access to multiple accounts. |
Output
Section titled “Output”| Name | 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. |
Upload file attachment
Section titled “Upload file attachment”BASECAMP_UPLOAD_FILE_ATTACHMENT
Uploads a file as an attachment in Basecamp for subsequent use in documents, messages, or vault uploads.
Input parameters
Section titled “Input parameters”| Name | Type | Required | Description |
|---|---|---|---|
content | string | Yes | Binary content of the file to upload. |
content_type | string | Yes | MIME type of the file (e.g., image/png, application/pdf). |
filename | string | Yes | Name of the file including extension. |
Output
Section titled “Output”| Name | 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. |
Get my profile
Section titled “Get my profile”BASECAMP_GET_MY_PROFILE
Retrieves the profile of the currently authenticated user in Basecamp, including name, email, and ID.
Input parameters
Section titled “Input parameters”No parameters required.
Output
Section titled “Output”| Name | 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. |