For Agents
Create and update Basecamp 3 projects, to-dos, messages, documents, and comments, list people on a project, and post into Campfire chats using OAuth 2.0 bearer auth.
Use for: I want to create a new Basecamp project for a client engagement, Add a to-do to a Basecamp to-do list and assign it to a teammate, Mark a Basecamp to-do as complete, Post a message to a project's message board
Not supported: Does not handle billing, time tracking, video calls, or external file storage - use for project, to-do, message, document, and comment management inside a Basecamp 3 account only.
Jentic publishes the only available OpenAPI specification for Basecamp 3 API, keeping it validated and agent-ready. The Basecamp 3 API is a JSON REST interface to Basecamp's project management workspace, covering projects, message boards, to-do sets, to-dos, people, comments, documents, vaults, Campfires, schedules, uploads, webhooks, and recordings. All requests are scoped to an account ID in the base URL and authenticated with an OAuth 2.0 bearer token. The spec exposes 74 endpoints across 24 resource tags, enough to drive most workflow automation that Basecamp users do in the UI.
Install Jentic One Beta
Jentic One is a self-hosted execution layer for AI agents. It lets your agent call the Basecamp 3 API, or any other public or private API you need. You set the rules, the agent never sees your credentials, and every call is logged.
Two steps, two machines. Install the instance in a safe environment, then register your agent from wherever it runs.
Step 1: Jentic One Host machine
# On the machine that will host your Jentic One instance:
curl -fsSL "https://jentic.com/install.sh?src=apis&api=%2Fapis%2F3.basecampapi.com%2Fbasecamp" | shStep 2: Agent machine
# On the machine where your agent runs (keep this separate from the instance):
curl -fsSL "https://jentic.com/install.sh?src=apis&api=%2Fapis%2F3.basecampapi.com%2Fbasecamp" | sh
jentic register # connects your agent to your Jentic One instanceJentic One is in public beta. The setup above keeps your agent separate from the instance, which is what you want before using real credentials: an agent running as the same OS user as Jentic One can read its stored keys directly. Just evaluating? A single local install is fine to start. See the secure deployment guide for the tiers.
What an agent can do with Basecamp 3 API.
Create and update Basecamp projects, including archiving and trashing through status filters
Manage to-do lists and individual to-dos - create, complete, uncomplete, reposition, and assign people
Post and update messages on a project's message board with rich-text HTML content
List and grant or revoke project access for specific people via the project users endpoint
Create and update documents inside a project's vault for shared reference material
Read Campfire chat lines and list all Campfires the authenticated user can access
Add and update threaded comments on any Basecamp recording (message, to-do, document, or upload)
Patterns agents use Basecamp 3 API for, with concrete tasks.
★ Client Project Bootstrapping
When onboarding a new client, automatically create a Basecamp project, populate an initial to-do list, post a kick-off message, and grant the client team members access. POST /projects.json creates the project, POST /todosets/{todoSetId}/todolists.json adds the list, and PUT /projects/{projectId}/people/users.json grants access in a single workflow rather than clicking through the UI.
Create a Basecamp project named 'Acme Q3 Redesign', add a to-do list 'Kickoff', create the to-dos 'Send brief', 'Schedule kickoff call', and 'Confirm scope', and grant access to two emails.
Status Reporting From To-Dos
Pull current to-do state from Basecamp to feed an external dashboard or weekly status email. GET /todolists/{todoListId}/todos.json with completed=true or completed=false returns to-dos by completion state so a reporting job can compute on-time vs overdue counts without scraping the UI.
For project ID 12345, fetch all to-do lists, then list completed and outstanding to-dos for each, and produce a weekly summary email.
Cross-Tool Message Mirroring
Mirror messages posted in Slack or another chat tool into a Basecamp project's message board so durable decisions live alongside the work. POST /message_boards/{messageBoardId}/messages.json accepts a subject and HTML body, and POST /recordings/{recordingId}/comments.json lets follow-ups land as threaded comments.
Post a message titled 'Decision: API contract approved' with a one-paragraph HTML body to message board 5678, then attach a comment summarising the next step.
AI Agent Project Operations
Let an AI agent run routine Basecamp operations - create to-dos from a meeting transcript, archive completed projects, post weekly recaps - through Jentic. The agent searches for the operation by intent, loads the spec, and executes; OAuth tokens stay isolated in Jentic's vault.
Through Jentic, search 'create a basecamp todo', load the createTodo schema, and add follow-up to-dos to list 9876 from a meeting transcript.
74 endpoints — jentic publishes the only available openapi specification for basecamp 3 api, keeping it validated and agent-ready.
METHOD
PATH
DESCRIPTION
/projects.json
Create a new project
/projects.json
List all projects
/todolists/{todoListId}/todos.json
Create a to-do in a list
/todos/{todoId}/completion.json
Mark a to-do complete
/message_boards/{messageBoardId}/messages.json
Post a message to a board
/recordings/{recordingId}/comments.json
Add a comment to a recording
/projects/{projectId}/people/users.json
Grant or revoke project access
/projects.json
Create a new project
/projects.json
List all projects
/todolists/{todoListId}/todos.json
Create a to-do in a list
/todos/{todoId}/completion.json
Mark a to-do complete
/message_boards/{messageBoardId}/messages.json
Post a message to a board
/recordings/{recordingId}/comments.json
Add a comment to a recording
/projects/{projectId}/people/users.json
Grant or revoke project access
What agents get from Jentic-routed access to this vendor.
Setup
Wiring the Basecamp 3 API by hand means managing its OAuth 2.0 bearer and refresh tokens and stitching your account id into the base URL yourself. Through Jentic you install once, import the Basecamp 3 API from the API Directory, store the token once, and your agent calls it.
Permission scoping
Basecamp 3 puts the project and recording id in the URL path (/projects/{projectId}/..., /todolists/{todoListId}/todos.json), so a rule can pin your agent to one project: it can add todos and messages there and nothing else. You choose the operations it may call, so managing project people is not included unless you add it.
Credential isolation
Your Basecamp 3 OAuth token is stored once, encrypted, by your own Jentic One instance and injected at execution time. It never enters the agent's prompt, logs, or context.
Intent-based discovery
Agents search Jentic by intent such as 'create a Basecamp todo' or 'post a message to a project', and Jentic returns the matching Basecamp 3 operation with its input schema so the agent calls the right endpoint without browsing the reference docs.
Alternatives and complements available in the Jentic catalogue.
Specific to using Basecamp 3 API through Jentic.
Why is there no official OpenAPI spec for Basecamp 3 API?
Basecamp publishes Markdown reference docs at github.com/basecamp/bc3-api but no OpenAPI specification. Jentic generates and maintains this spec so that AI agents and developers can call Basecamp 3 API via structured tooling. It is validated against the live API and kept up to date. Get started with Jentic One, the self-hosted execution layer.
What authentication does the Basecamp 3 API use?
Basecamp 3 uses OAuth 2.0 bearer tokens, sent in the Authorization header. Through Jentic, OAuth tokens are stored encrypted in the vault and refreshed automatically, so the agent never handles raw client secrets or refresh tokens.
Can I create and complete to-dos with the Basecamp 3 API?
Yes. POST /todolists/{todoListId}/todos.json creates a to-do with content, due date, and assignees, POST /todos/{todoId}/completion.json marks it complete, and DELETE /todos/{todoId}/completion.json reopens it. Repositioning is handled by PUT /todos/{todoId}/position.json.
What are the rate limits for the Basecamp 3 API?
Basecamp enforces a documented limit of 50 requests per 10-second window per access token; exceeding it returns 429 Too Many Requests with a Retry-After header. Build retries with exponential backoff and respect Retry-After when calling at scale.
How do I post a message to a Basecamp project through Jentic?
Run pip install jentic, then search 'post a basecamp message', load the createMessage operation, supply messageBoardId plus a subject and HTML content body, and execute. Run it through Jentic One, the self-hosted execution layer to receive an agent API key.
Does the Basecamp 3 API require an account ID in every request?
Yes. The base URL is https://3.basecampapi.com/{accountId}, and every endpoint path is appended to that account-scoped prefix. The account ID is returned alongside the access token during the OAuth 2.0 authorisation flow.
Can I limit what my agent is allowed to do with the Basecamp 3 API?
Yes. Because you run Jentic One yourself, your own rules decide which Basecamp 3 operations and credentials the agent may use. Basecamp 3 carries the project and recording id in the URL path (for example /projects/{projectId}/... and /todolists/{todoListId}/todos.json), so a rule can pin the agent to a single project where it adds to-dos via POST /todolists/{todoListId}/todos.json and posts to a board via POST /message_boards/{messageBoardId}/messages.json and nothing else. You also pick the exact operations it may call, so an action like granting project access through PUT /projects/{projectId}/people/users.json stays off unless you add it.
GET STARTED