Skip to content

Basecamp

Basecamp

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.

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.

FieldRequiredDescription
Basecamp accountYesAuthorize access to your Basecamp account through the OAuth flow managed by Composio.
  1. Go to Tools in the side menu (/admin/tools).
  2. Open the Available tab and search for Basecamp.
  3. Click the card to open the details modal and hit Connect.
  4. You’re taken to the secure connection page hosted by Composio, where you authorize access to your Basecamp account via OAuth.
  5. 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.)

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.

NameTypeRequiredDescription
statusstringNoFilter projects by status. Accepts archived or trashed. Omit to get active projects.
account_idintegerNoBasecamp account ID. Use when you have access to multiple accounts.
NameTypeRequiredDescription
datastringYesData from the action execution.
errorstringNoError if any occurred during the execution of the action.
successfulbooleanYesWhether or not the action execution was successful.

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.

NameTypeRequiredDescription
project_idintegerYesThe unique identifier for the project to retrieve.
NameTypeRequiredDescription
datastringYesData from the action execution.
errorstringNoError if any occurred during the execution of the action.
successfulbooleanYesWhether or not the action execution was successful.

BASECAMP_POST_PROJECTS

Creates a new project in Basecamp with a name and optional description. Use to set up a new team workspace.

NameTypeRequiredDescription
namestringYesThe project title/name. This field is required.
descriptionstringNoAdditional details about the project’s purpose or scope.
NameTypeRequiredDescription
datastringYesData from the action execution.
errorstringNoError if any occurred during the execution of the action.
successfulbooleanYesWhether or not the action execution was successful.

BASECAMP_PUT_PROJECTS

Updates an existing project’s name, description, access policy, or schedule in Basecamp.

NameTypeRequiredDescription
namestringYesThe project’s title. This field is required.
project_idintegerYesThe unique identifier for the project to update.
descriptionstringNoAdditional project information.
admissionsstringNoAccess control policy: invite (invited users only), employee (all account members), team (non-client account members).
schedule_attributesobjectNoSchedule attributes for setting project start and end dates.
NameTypeRequiredDescription
datastringYesData from the action execution.
errorstringNoError if any occurred during the execution of the action.
successfulbooleanYesWhether or not the action execution was successful.

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.

NameTypeRequiredDescription
project_idintegerYesThe unique identifier of the project.
grantarrayNoArray of people IDs to grant project access to existing users.
revokearrayNoArray of people IDs to remove from the project.
createarrayNoArray of new people to create and add to the project.
NameTypeRequiredDescription
datastringYesData from the action execution.
errorstringNoError if any occurred during the execution of the action.
successfulbooleanYesWhether or not the action execution was successful.

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.

NameTypeRequiredDescription
contentstringYesWhat the to-do is for (main title/content). This field is required.
bucket_idintegerYesThe project/bucket ID where the to-do list exists.
todolist_idintegerYesThe to-do list ID where the to-do will be created.
descriptionstringNoDetails about the to-do; supports HTML formatting per the Rich text guide.
assignee_idsarrayNoPerson IDs to assign the to-do.
due_onstringNoCompletion target date in YYYY-MM-DD format.
starts_onstringNoStart date in YYYY-MM-DD format.
notifybooleanNoWhen true, notifies assignees of their assignment.
completion_subscriber_idsarrayNoPerson IDs notified upon completion.
NameTypeRequiredDescription
datastringYesData from the action execution.
errorstringNoError if any occurred during the execution of the action.
successfulbooleanYesWhether or not the action execution was successful.

BASECAMP_GET_BUCKETS_TODOLISTS_TODOS

Retrieves all to-dos from a specific to-do list within a project.

NameTypeRequiredDescription
bucket_idintegerYesThe project/bucket ID containing the to-do list.
todolist_idintegerYesThe to-do list ID whose to-dos will be retrieved.
NameTypeRequiredDescription
datastringYesData from the action execution.
errorstringNoError if any occurred during the execution of the action.
successfulbooleanYesWhether or not the action execution was successful.

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.

NameTypeRequiredDescription
contentstringYesWhat the to-do is for. This parameter is always required and cannot be blank.
todo_idintegerYesThe ID of the to-do to update.
bucket_idintegerYesThe ID of the project/bucket containing the to-do.
descriptionstringNoAdditional HTML content about the to-do.
assignee_idsarrayNoArray of people IDs assigned to complete this to-do.
due_onstringNoTarget completion date in ISO 8601 format (YYYY-MM-DD).
starts_onstringNoStart date in ISO 8601 format (YYYY-MM-DD).
notifybooleanNoWhen true, sends notifications to assignees about their assignment.
completion_subscriber_idsarrayNoArray of people IDs who will be notified when the to-do is completed.
NameTypeRequiredDescription
datastringYesData from the action execution.
errorstringNoError if any occurred during the execution of the action.
successfulbooleanYesWhether or not the action execution was successful.

BASECAMP_COMPLETE_TODO

Marks a to-do as completed in Basecamp.

NameTypeRequiredDescription
todo_idintegerYesThe ID of the specific to-do item to mark as completed.
bucket_idintegerYesThe ID of the project/bucket containing the to-do.
NameTypeRequiredDescription
datastringYesData from the action execution.
errorstringNoError if any occurred during the execution of the action.
successfulbooleanYesWhether or not the action execution was successful.

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.

NameTypeRequiredDescription
todo_idintegerYesThe to-do item identifier to mark as uncompleted.
bucket_idintegerYesThe project identifier (bucket ID) where the to-do belongs.
NameTypeRequiredDescription
datastringYesData from the action execution.
errorstringNoError if any occurred during the execution of the action.
successfulbooleanYesWhether or not the action execution was successful.

BASECAMP_POST_BUCKETS_TODOSETS_TODOLISTS

Creates a new to-do list within a to-do set of a project in Basecamp.

NameTypeRequiredDescription
namestringYesThe name of the to-do list. This field is required.
bucket_idintegerYesThe project/bucket ID where the to-do set exists.
todoset_idintegerYesThe to-do set ID where the list will be created.
descriptionstringNoDescription of the to-do list; supports HTML formatting.
NameTypeRequiredDescription
datastringYesData from the action execution.
errorstringNoError if any occurred during the execution of the action.
successfulbooleanYesWhether or not the action execution was successful.

BASECAMP_POST_BUCKETS_MESSAGE_BOARDS_MESSAGES

Publishes a message to a Basecamp message board within a project, with optional rich HTML content and subscriptions.

NameTypeRequiredDescription
subjectstringYesThe title/subject of the message.
statusstringYesMessage status. Set to active to publish immediately.
bucket_idintegerYesThe project/bucket identifier.
message_board_idintegerYesThe message board identifier.
contentstringNoThe body text of the message, supporting HTML tags.
category_idintegerNoAssigns a message type; retrieve available types via Get message types endpoint.
subscriptionsarrayNoArray of person IDs to notify and subscribe to the message. If omitted, all project members receive notification.
NameTypeRequiredDescription
datastringYesData from the action execution.
errorstringNoError if any occurred during the execution of the action.
successfulbooleanYesWhether or not the action execution was successful.

BASECAMP_GET_BUCKETS_MESSAGE_BOARDS_MESSAGES

Retrieves all messages from a specific message board within a project.

NameTypeRequiredDescription
bucket_idintegerYesThe project/bucket ID containing the message board.
message_board_idintegerYesThe ID of the message board.
NameTypeRequiredDescription
datastringYesData from the action execution.
errorstringNoError if any occurred during the execution of the action.
successfulbooleanYesWhether or not the action execution was successful.

BASECAMP_POST_BUCKETS_RECORDINGS_COMMENTS

Publishes a comment on any recording (to-do list, message, document, etc.) within a Basecamp project.

NameTypeRequiredDescription
contentstringYesThe comment content as HTML. Supports rich text formatting with allowed HTML tags.
bucket_idintegerYesThe project/bucket ID where the recording exists.
recording_idintegerYesThe recording ID to add the comment to.
account_idintegerNoOptional Basecamp account ID. Use when the resource exists in a different account than the default.
NameTypeRequiredDescription
datastringYesData from the action execution.
errorstringNoError if any occurred during the execution of the action.
successfulbooleanYesWhether or not the action execution was successful.

BASECAMP_POST_BUCKETS_SCHEDULES_ENTRIES

Creates a schedule entry in a Basecamp project schedule with start/end times and optional participants.

NameTypeRequiredDescription
summarystringYesThe title or subject of the schedule entry.
starts_atstringYesISO 8601 datetime when the entry begins. Example: 2025-12-15T10:00:00Z.
ends_atstringYesISO 8601 datetime when the entry concludes. Example: 2025-12-15T11:00:00Z.
bucket_idintegerYesThe project/bucket ID where the schedule exists.
schedule_idintegerYesThe schedule ID where the entry will be created.
descriptionstringNoHTML string with more information about the schedule entry.
participant_idsarrayNoArray of person IDs to include as participants.
all_daybooleanNoWhen true, entry spans entire day(s) without specific times.
notifybooleanNoWhen true, participants receive notifications about the entry.
NameTypeRequiredDescription
datastringYesData from the action execution.
errorstringNoError if any occurred during the execution of the action.
successfulbooleanYesWhether or not the action execution was successful.

BASECAMP_GET_BUCKETS_SCHEDULES_ENTRIES

Retrieves all entries from a project schedule in Basecamp.

NameTypeRequiredDescription
bucket_idintegerYesThe project/bucket ID containing the schedule.
schedule_idintegerYesThe schedule ID whose entries will be retrieved.
NameTypeRequiredDescription
datastringYesData from the action execution.
errorstringNoError if any occurred during the execution of the action.
successfulbooleanYesWhether or not the action execution was successful.

BASECAMP_CREATE_DOCUMENT

Creates a new document in a Basecamp vault with title, HTML content, and optional publication status.

NameTypeRequiredDescription
titlestringYesThe title of the document. This is required.
contentstringYesDocument body in HTML format.
vault_idintegerYesThe ID of the vault where the document will be created.
bucket_idintegerYesThe ID of the project bucket where the vault exists.
statusstringNoPublication status. Set to active to publish immediately upon creation.
NameTypeRequiredDescription
datastringYesData from the action execution.
errorstringNoError if any occurred during the execution of the action.
successfulbooleanYesWhether or not the action execution was successful.

BASECAMP_GET_BUCKETS_VAULTS_DOCUMENTS

Retrieves all documents from a specific vault within a Basecamp project.

NameTypeRequiredDescription
bucket_idintegerYesThe project/bucket ID containing the vault.
vault_idintegerYesThe vault ID whose documents will be listed.
NameTypeRequiredDescription
datastringYesData from the action execution.
errorstringNoError if any occurred during the execution of the action.
successfulbooleanYesWhether or not the action execution was successful.

BASECAMP_CREATE_CARD

Creates a new card in a column of a Basecamp card table (Kanban board), with title, optional content, and due date.

NameTypeRequiredDescription
titlestringYesThe card’s title. This is required and should be a descriptive name.
bucket_idintegerYesThe project/bucket ID where the card table is located.
column_idintegerYesThe card table column/list ID where the card will be created.
contentstringNoCard description supporting HTML.
due_onstringNoDeadline for the card in ISO 8601 format (YYYY-MM-DD).
notifybooleanNoWhether to alert assignees. Defaults to false if not specified.
NameTypeRequiredDescription
datastringYesData from the action execution.
errorstringNoError if any occurred during the execution of the action.
successfulbooleanYesWhether or not the action execution was successful.

BASECAMP_GET_CARD_TABLE

Retrieves the card table (Kanban board) of a project, including columns and configuration.

NameTypeRequiredDescription
bucket_idintegerYesThe project/bucket ID containing the card table.
card_table_idintegerYesThe ID of the card table to retrieve.
NameTypeRequiredDescription
datastringYesData from the action execution.
errorstringNoError if any occurred during the execution of the action.
successfulbooleanYesWhether or not the action execution was successful.

BASECAMP_GET_PROJECTS_PEOPLE

Retrieves all active people assigned to a Basecamp project.

NameTypeRequiredDescription
project_idintegerYesThe unique identifier of the project whose people you want to retrieve.
NameTypeRequiredDescription
datastringYesData from the action execution.
errorstringNoError if any occurred during the execution of the action.
successfulbooleanYesWhether or not the action execution was successful.

BASECAMP_GET_ALL_PEOPLE

Retrieves all active people in the Basecamp account.

NameTypeRequiredDescription
account_idintegerNoBasecamp account ID. Use when you have access to multiple accounts.
NameTypeRequiredDescription
datastringYesData from the action execution.
errorstringNoError if any occurred during the execution of the action.
successfulbooleanYesWhether or not the action execution was successful.

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.

NameTypeRequiredDescription
start_datestringNoReport start date in ISO 8601 format (YYYY-MM-DD). If provided, end_date is also required.
end_datestringNoReport end date in ISO 8601 format (YYYY-MM-DD). If provided, start_date is also required.
bucket_idintegerNoFilter to a single project by bucket/project ID. Defaults to all projects.
person_idintegerNoFilter to a single person by their ID. Defaults to all users.
NameTypeRequiredDescription
datastringYesData from the action execution.
errorstringNoError if any occurred during the execution of the action.
successfulbooleanYesWhether or not the action execution was successful.

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.

NameTypeRequiredDescription
recording_typestringYesThe recording category to retrieve. Acceptable values: Comment, Document, Kanban::Card, Kanban::Step, Message, Question::Answer, Schedule::Entry, Todo, Todolist, Upload, Vault.
bucketstringNoSingle or comma-separated project IDs. Defaults to all active projects.
statusstringNoFilter by status: active, archived, or trashed. Defaults to active.
sortstringNoOrder results by created_at or updated_at. Defaults to created_at.
directionstringNoSort order: desc or asc. Defaults to desc.
NameTypeRequiredDescription
datastringYesData from the action execution.
errorstringNoError if any occurred during the execution of the action.
successfulbooleanYesWhether or not the action execution was successful.

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.

NameTypeRequiredDescription
projectobjectYesProject details including the required name and optional description.
template_idintegerYesThe ID of the template to use for creating the project.
NameTypeRequiredDescription
datastringYesData from the action execution.
errorstringNoError if any occurred during the execution of the action.
successfulbooleanYesWhether or not the action execution was successful.

BASECAMP_GET_TEMPLATES

Retrieves all templates available in the Basecamp account.

NameTypeRequiredDescription
account_idintegerNoBasecamp account ID. Use when you have access to multiple accounts.
NameTypeRequiredDescription
datastringYesData from the action execution.
errorstringNoError if any occurred during the execution of the action.
successfulbooleanYesWhether or not the action execution was successful.

BASECAMP_UPLOAD_FILE_ATTACHMENT

Uploads a file as an attachment in Basecamp for subsequent use in documents, messages, or vault uploads.

NameTypeRequiredDescription
contentstringYesBinary content of the file to upload.
content_typestringYesMIME type of the file (e.g., image/png, application/pdf).
filenamestringYesName of the file including extension.
NameTypeRequiredDescription
datastringYesData from the action execution.
errorstringNoError if any occurred during the execution of the action.
successfulbooleanYesWhether or not the action execution was successful.

BASECAMP_GET_MY_PROFILE

Retrieves the profile of the currently authenticated user in Basecamp, including name, email, and ID.

No parameters required.

NameTypeRequiredDescription
datastringYesData from the action execution.
errorstringNoError if any occurred during the execution of the action.
successfulbooleanYesWhether or not the action execution was successful.