Basecamp

Overview

Pre-built tooling

✅ Authorization
ToolsStatus
Pre-built authorization (OAuth)✅
Credentials auto-refresh✅
Auth parameters validation✅
Pre-built authorization UI✅
Custom authorization UI✅
End-user authorization guide✅
Expired credentials detection✅
✅ Read & write data
ToolsStatus
Pre-built integrations✅
API unification✅
2-way sync✅
Webhooks from Tenklo on data modifications✅
Real-time webhooks from 3rd-party API🚫 (time to contribute: <48h)
Proxy requests✅
✅ Observability & data quality
ToolsStatus
HTTP request logging✅
End-to-end type safety✅
Data runtime validation✅
OpenTelemetry export✅
Slack alerts on errors✅
Integration status API✅
✅ Customization
ToolsStatus
Create or customize use-cases✅
Pre-configured pagination🚫 (time to contribute: <48h)
Pre-configured rate-limit handling🚫 (time to contribute: <48h)
Per-customer configurations✅

Others

Function nameDescriptionTypeSource code
archive-projectArchive a project.Action🔗 Github
archive-recordingArchive any recording.Action🔗 Github
change-card-table-column-colorChange a card table column's color.Action🔗 Github
complete-todoMark a to-do as completed.Action🔗 Github
create-campfire-linePost a line (message) to a Campfire.Action🔗 Github
create-card-table-cardCreate a card in a Card Table column.Action🔗 Github
create-card-table-columnCreate a new column on a Card Table.Action🔗 Github
create-card-table-stepCreate a checklist step on a card table card.Action🔗 Github
create-commentPost a comment on any recordingAction🔗 Github
create-documentCreate a document in a vault.Action🔗 Github
create-messageCreate a message on a project message board.Action🔗 Github
create-projectCreate a project.Action🔗 Github
create-schedule-entryCreate a schedule entry on a project scheduleAction🔗 Github
create-todoCreate a to-do in a specific to-do list, resolving assignee/completion-subscriber emails to person IDs first.Action🔗 Github
create-todolist-groupCreate a group (section) within a to-do list.Action🔗 Github
create-todolistCreate a to-do list under a project to-do set.Action🔗 Github
create-upload-versionReplace an upload file with a new version.Action🔗 Github
create-uploadAttach a previously-staged file (from upload-attachment) into a vault as an Upload record.Action🔗 Github
create-vault-folderCreate a sub-folder inside a vault.Action🔗 Github
delete-campfire-linePermanently delete a Campfire line.Action🔗 Github
disable-toolDisable a project dock tool, removing it from the dock without deleting its content (reversible via enable-tool).Action🔗 Github
enable-toolEnable a project's dock tool (e.g. Message Board, Docs & Files, Chat, Card Table, Calendar), adding it back to the dock.Action🔗 Github
fetch-accountsGet the token owner's identity and the list of Basecamp accounts (and other 37signals products) the token can access.Action🔗 Github
fetch-todolistsFetch all to-do lists in a project's to-do set.Action🔗 Github
get-accountGet details about the current Basecamp account (subscription plan, limits, trial status).Action🔗 Github
get-campfire-lineRetrieve a single Campfire line.Action🔗 Github
get-campfireGet a project's Campfire (chat room).Action🔗 Github
get-card-table-cardRetrieve a single Card Table card.Action🔗 Github
get-card-table-columnRetrieve a single Card Table column.Action🔗 Github
get-card-tableGet a Basecamp card table (Kanban board) including its columns.Action🔗 Github
get-commentRetrieve a single comment.Action🔗 Github
get-documentRetrieve a single document.Action🔗 Github
get-message-boardGet a project's message board (the container for all its messages) and message count.Action🔗 Github
get-messageRetrieve a single message.Action🔗 Github
get-my-preferencesGet the current token owner's account preferences (time zone, first day of week, time format).Action🔗 Github
get-my-profileGet the current token owner's own profile.Action🔗 Github
get-personRetrieve a single person's profile by ID.Action🔗 Github
get-projectRetrieve a single project, including its dock (tool list) and team sample.Action🔗 Github
get-recording-eventsGet the audit-trail events for any recordingAction🔗 Github
get-schedule-entryRetrieve a single schedule entry.Action🔗 Github
get-scheduleGet a project's schedule (calendar).Action🔗 Github
get-todoRetrieve a single to-do.Action🔗 Github
get-todolistGet a single to-do list.Action🔗 Github
get-todosetGet a project's to-do set and a summary list of its to-do lists.Action🔗 Github
get-toolGet a single dock tool (e.g. a project's Chat, Card Table, or Message Board tool object) by its ID.Action🔗 Github
get-upload-versionsList the version history of an upload's file content.Action🔗 Github
get-uploadRetrieve a single upload's metadata.Action🔗 Github
get-vaultGet a project's top-level vault (Docs & Files) or a sub-folder vault.Action🔗 Github
list-campfire-linesList messages (lines) in a Campfire.Action🔗 Github
list-campfire-uploadsList file uploads posted in a Campfire, newest first.Action🔗 Github
list-card-table-cardsList the cards in a Card Table column.Action🔗 Github
list-commentsList comments on any recording (to-do, message, document, upload, card, schedule entry, to-do list, etc).Action🔗 Github
list-documentsList documents in a vault.Action🔗 Github
list-messagesList messages on a project's message boardAction🔗 Github
list-peopleList all people visible to the current user across the whole account.Action🔗 Github
list-pingable-peopleList people on the account who can be pinged (direct messaged).Action🔗 Github
list-project-peopleList the people who have access to a specific project.Action🔗 Github
list-projectsList active projects visible to the current user.Action🔗 Github
list-recordings-by-typeList all recordings of a given type across one or more projects, account-wide.Action🔗 Github
list-schedule-entriesList entries (events) on a project's schedule.Action🔗 Github
list-todolist-groupsList the sub-groups (sections) within a to-do list.Action🔗 Github
list-todosList active (non-completed) to-dos in a to-do list.Action🔗 Github
list-uploadsList file uploads in a vault.Action🔗 Github
list-vault-foldersList sub-folders (nested vaults) inside a vault.Action🔗 Github
move-card-table-cardMove a card to a different column (and optionally a position within it).Action🔗 Github
move-card-table-columnReposition a column within its Card Table.Action🔗 Github
pin-messagePin a message to the top of the message board.Action🔗 Github
remove-card-table-column-on-holdRemove the on-hold section from a card table columnAction🔗 Github
reposition-card-table-stepChange the position of a step within its card.Action🔗 Github
reposition-todoChange a to-do's position within its list, optionally moving it to a different to-do list.Action🔗 Github
reposition-todolist-groupChange a to-do list group's position within its parent to-do list.Action🔗 Github
reposition-todolistChange a to-do list's position within its to-do set.Action🔗 Github
reposition-toolChange a dock tool's position in the project dock.Action🔗 Github
set-card-table-column-on-holdAdd an on-hold section to a Card Table column (used to visually pause cards within a column).Action🔗 Github
set-card-table-step-completionMark a card table step as completed or uncompleted.Action🔗 Github
set-recording-client-visibilityToggle whether clients can see a recordingAction🔗 Github
trash-projectMove a project to the trash (recoverable for 30 days, then auto-deleted).Action🔗 Github
trash-recordingMove any recording (to-do, to-do list, message, document, upload, card, column, step, schedule entry, comment, etc.) to the account trash.Action🔗 Github
unarchive-projectRestore a project from the archive or trash back to active.Action🔗 Github
unarchive-recordingRestore an archived recording to activeAction🔗 Github
uncomplete-todoMark a to-do as not completed.Action🔗 Github
unpin-messageUnpin a message.Action🔗 Github
unwatch-card-table-columnUnsubscribe the current user from notifications for a Card Table column.Action🔗 Github
update-campfire-lineEdit a Campfire line's content.Action🔗 Github
update-card-table-cardUpdate a card's title, content, due date, or assignees.Action🔗 Github
update-card-table-columnUpdate a card table column title or description.Action🔗 Github
update-card-table-stepUpdate a card step title, due date, or assignees.Action🔗 Github
update-commentUpdate a comment's content.Action🔗 Github
update-documentUpdate a document title or content.Action🔗 Github
update-messageUpdate a message's subject, content, or category.Action🔗 Github
update-project-accessGrant, revoke, or create-and-grant people's access to a project.Action🔗 Github
update-projectUpdate a project's name, description, schedule dates, or access policy.Action🔗 Github
update-schedule-entryUpdate a schedule entry's summary, times, or other fields.Action🔗 Github
update-scheduleChange whether a schedule includes due dates from to-dos, cards, and steps.Action🔗 Github
update-todoUpdate a to-do's content, description, dates, or assignees.Action🔗 Github
update-todolistRename a to-do list or change its description.Action🔗 Github
update-toolRename a dock tool.Action🔗 Github
update-uploadUpdate a Basecamp upload metadata (base_name and description) without replacing the file content.Action🔗 Github
update-vault-folderRename a vault folder.Action🔗 Github
upload-attachmentUpload raw file bytes to Basecamp blob storage and get back an attachable_sgidAction🔗 Github
upload-campfire-fileUpload a file directly into a Campfire as a chat attachment.Action🔗 Github
watch-card-table-columnSubscribe the current user to notifications for a Card Table column.Action🔗 Github
campfire-linesSync chat lines across all known projects' Campfires.Sync🔗 Github
card-table-cardsSync Kanban cards across all known projects' Card Tables.Sync🔗 Github
commentsSync comments across all known recordingsSync🔗 Github
documentsSync documents across all known projects vaults including sub-foldersSync🔗 Github
messagesSync messages across all known project message boardsSync🔗 Github
peopleSync people (account-wide, not scoped to any one project)Sync🔗 Github
projectsSync projects.Sync🔗 Github
schedule-entriesSync schedule entries (calendar events) across all known projectsSync🔗 Github
todolistsSync to-do lists across all known projects to-do sets.Sync🔗 Github
todosSyncs to-dos from Basecamp for the specified projectsSync🔗 Github
uploadsSync file uploads across all known projects vaults including sub-folders.Sync🔗 Github

Access requirements

Pre-RequisitesStatusComment
Paid dev account✅ Not requiredFree, self-signup here.
Paid test account✅ Not requiredCreate free account for testing.
Partnership✅ Not required
App review✅ Not required
Security audit✅ Not required

Setup guide

Create a free account

Go to Basecamp's signup page and create an account.

Create & configure a Basecamp app

  • Start creating a Basecamp app by heading to the following page.
  • Click Register another application to open the application registration form.
  • Fill in the About section and configure the Redirect URL as follows: https://api.tenklo.dev/oauth/callback.
  • Select the products your app integrates with.
  • Submit Your Application.
  • Once your application has been created, navigate to the specific app page and copy the Client ID and Client Secret. You will need to specify these in Tenklo later.
Need help getting started? Get help in the community.
Contribute improvements to the setup guide by editing this page
Contribute useful links by editing this page

API gotchas

  • When creating a new connection in Tenklo, you will need to add the appDetails, configuration parameter in the format MyApp ([email protected]), which will be appended to the request as a header: User-Agent: MyApp ([email protected]). This information will be used to get in touch if you’re doing something wrong(so the provider can warn you before you’re blocked) or something awesome (so the provider can congratulate you). Requests without a valid User-Agent header are rejected.
  • You will also need to add in your accountId connection configuration parameter.
    Contribute API gotchas by editing this page

Going further

Connect to Basecamp

Guide to connect to Basecamp using Connect UI

On this page