Install Jentic One Beta
Jentic One is a self-hosted execution layer for AI agents. It lets your agent call the Basecamp 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 API.
Create Basecamp projects, update a project's name and description, and list projects filtered to archived or trashed
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
GET STARTED
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 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, post weekly recaps to a message board, add follow-up comments on recordings - through Jentic. The agent searches for the operation by intent, loads the spec, and executes; the OAuth token stays encrypted in your own Jentic One instance and is injected at call time.
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 — the basecamp 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.
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 API through Jentic.
Which OpenAPI specification does this Basecamp 3 API page describe?
A curated, agent-optimized Jentic specification covering 74 Basecamp 3 operations. Basecamp also publishes its own OpenAPI document in the basecamp/basecamp-sdk repository, which describes a wider surface but declares neither a servers block nor a security scheme, and carries the account id inside every path template instead. The Jentic variant declares the account-scoped base URL and the OAuth 2.0 bearer scheme, so an agent can call it without that wiring. 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, your token is stored encrypted by your own Jentic One instance and injected at execution time, 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 applies several limits and adjusts them dynamically, with separate limits for GET and POST requests and per-second, per-hour and per-day windows. The first one you commonly meet is 50 requests per 10 second period per IP address. Exceeding any limit returns 429 Too Many Requests, and the Retry-After response header gives the number of seconds to wait, so respond to it dynamically rather than hard-coding a delay.
How do I post a message to a Basecamp project through Jentic?
Install Jentic One on the machine that will host it, register your agent from a separate machine, and import the Basecamp 3 API from the API Directory. Your agent then searches 'post a basecamp message', loads the createMessage operation, supplies messageBoardId plus a subject and HTML content body, and executes. Your OAuth token is injected at call time by your own instance.
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 does not come back with the access token: once you hold a token, make a separate authenticated request to https://launchpad.37signals.com/authorization.json, which lists the accounts the user can access, then pick the account whose product is bc3 and use its href as the base URL.
Is there a Basecamp 3 API MCP server?
You do not need an MCP server to give your agent the Basecamp 3 API. Jentic connects it directly from the API Directory: import the API, store your OAuth token once, and your agent calls the operations it needs. Nothing extra is loaded into the agent's context, because operations are discovered on demand rather than registered up front as tool definitions.
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.
Know of an official OpenAPI document? Contribute it →
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.
The Basecamp 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 behind this page exposes 74 endpoints across 20 resource tags, enough to drive most workflow automation that Basecamp users do in the UI. Basecamp publishes its own OpenAPI document in its basecamp-sdk GitHub repo, which covers a wider surface; the specification here is a curated, agent-optimized Jentic variant of that surface, kept because it declares the account-scoped server URL and the bearer security scheme that the official document leaves out. Basecamp now calls this product simply the Basecamp API: its reference documentation has been renamed and no longer carries a version number, though the API host is still 3.basecampapi.com and the account product code is still bc3. This is also not the only directory page for it. A second page, apis/basecampapi.com/main, describes the same product from the same source repo at a shallower 29-operation scrape: it shares 28 operations with this one and carries one project-trashing operation that this page's spec does not. Which of the two pages should be canonical has not been decided yet.
This API is usable in Jentic One now. Its AI-readiness score against Jentic's framework shows where it stands today and where improvements would make it even easier for agents to use.
Base layer of spec validity and structural soundness.
Aggregated quality score from linter diagnostics, weighted by severity.
Percentage of `$ref` references that resolve successfully.
Checks whether the API description parses successfully and conforms to its declared specification (e.g., OpenAPI).
Structural correctness score based on schema issues using logarithmic dampening.
Clarity, completeness, and ingestion readiness for developers and tooling.
How richly the API is illustrated with examples.
Percentage of examples that conform to their schemas.
Percentage of operations with complete response definitions (success, client error, server error).
Health of API ingestion, bundling, and resolution within Jentic pipelines.
Semantic breadth, depth, and agent comprehension for AI systems.
Coverage of descriptions across API elements.
Coverage of RFC 9457 Problem Details for error responses.
Coverage, uniqueness, and casing consistency of operationIds for AI inference.
Coverage of summaries across operations/tags/info.
Functional utility, complexity comfort, and AI orchestration readiness.
Agent comfort level based on API operational and structural complexity.
Trust, risk posture, and security compliance.
Average quality of security schemes based on authentication method strength (weakest link for OAuth2).
Findability, semantic richness, and reasoning readiness.
Clarity and depth of descriptions across API elements.
Score it yourself
Every API in the directory is allowlisted, so you can re-score it with no key required.
npx @jentic/api-scorecard-cli score <openapi-url>