Coverage of Basecamp 3 API endpoints. Source: bc3-api/sections.
| Status | Sections | Endpoints |
|---|---|---|
| ✅ Implemented | 42 | 155 |
| ⏭️ Out of scope | 4 | 12 |
| Total (docs) | 46 | 167 |
100% coverage of in-scope API (155/155 endpoints)
Out-of-scope sections are excluded from parity totals and scripts: chatbots (different auth), legacy Clientside (deprecated)
SDK version: v0.7.3 — maintenance bump: API date advanced to 2026-03-23, transitive dependency updates. No new services or methods.
| Section | Endpoints | CLI Command | Status | Priority | Notes |
|---|---|---|---|---|---|
| Core | |||||
| projects | 9 | projects |
✅ | - | list, show, create, update, delete |
| todos | 11 | todos, todo, done, reopen |
✅ | - | list, show, create, update, complete, uncomplete, position |
| todolists | 8 | todolists |
✅ | - | list, show, create, update |
| todosets | 3 | todosets |
✅ | - | Container for todolists, accessed via project dock |
| todolist_groups | 8 | todolistgroups |
✅ | - | list, show, create, update, position |
| Hill Charts | |||||
| hill_charts | 2 | hillcharts |
✅ | - | show, track/untrack todolists |
| gauges | 7 | gauges |
✅ | - | list, needles, needle, create, update, delete, enable/disable |
| Communication | |||||
| messages | 10 | messages, message |
✅ | - | list, show, create, update, publish, pin, unpin. Create supports --subscribe/--no-subscribe and --draft. Publish promotes drafts to active |
| message_boards | 3 | messageboards |
✅ | - | Container, accessed via project dock |
| message_types | 5 | messagetypes |
✅ | - | list, show, create, update, delete |
| campfires | 14 | chat |
✅ | - | list, messages, post, line show/delete. @mentions in content |
| comments | 8 | comment, comments |
✅ | - | list, show, create, update. @mentions in content |
| boosts | 6 | boost, react |
✅ | - | list (recording + event), show, create (recording + event), delete |
| notifications | 2 | notifications |
✅ | - | list, mark as read |
| Cards (Kanban) | |||||
| card_tables | 3 | cards |
✅ | - | Accessed via project dock |
| card_table_cards | 9 | cards |
✅ | - | list, show, create, update, move |
| card_table_columns | 11 | cards columns |
✅ | - | list columns |
| card_table_steps | 4 | cards steps |
✅ | - | Workflow steps on cards |
| People | |||||
| people | 12 | people, me |
✅ | - | list, show, pingable, add, remove |
| Search & Recordings | |||||
| my_assignments | 3 | assignments |
✅ | - | list (priorities/non-priorities), completed, due (with scope filter) |
| search | 2 | search |
✅ | - | Full-text search |
| recordings | 4 | recordings |
✅ | - | Browse by type/status, trash/archive/restore |
| Files & Documents | |||||
| uploads | 8 | files, uploads |
✅ | - | list, show |
| vaults | 8 | files, vaults |
✅ | - | list, show, create |
| documents | 8 | files, docs |
✅ | - | list, show, create, update. Create supports --subscribe/--no-subscribe |
| attachments | 1 | uploads, attachments |
✅ | - | Upload via attach; list embedded attachments via attachments list (parses <bc-attachment> from content) |
| Schedule | |||||
| schedules | 2 | schedule |
✅ | - | Schedule container + settings |
| schedule_entries | 5 | schedule |
✅ | - | list, show, create, update, occurrences. Create supports --subscribe/--no-subscribe |
| events | 1 | events |
✅ | - | Recording change audit trail |
| Webhooks | |||||
| webhooks | 7 | webhooks |
✅ | - | list, show, create, update, delete |
| Templates | |||||
| templates | 7 | templates |
✅ | - | list, show, create, update, delete, construct, construction |
| Time Tracking | |||||
| timesheets | 6 | timesheet |
✅ | - | list, show, create, update, delete |
| Subscriptions | |||||
| subscriptions | 4 | subscriptions |
✅ | - | show, subscribe, unsubscribe, add/remove |
| Check-ins (Automatic) | |||||
| questionnaires | 2 | checkins |
✅ | - | Container for check-in questions |
| questions | 5 | checkins |
✅ | - | list, show, create, update |
| question_answers | 4 | checkins |
✅ | - | list, show |
| Inbox (Email Forwards) | |||||
| inboxes | 1 | forwards |
✅ | - | Inbox container |
| forwards | 2 | forwards |
✅ | - | list, show |
| inbox_replies | 2 | forwards |
✅ | - | list replies, show reply |
| Clients | |||||
| client_visibility | 1 | recordings visibility |
✅ | - | Toggle client visibility on recordings |
| Client Portal (Legacy Clientside) | |||||
| client_approvals | 6 | - | ⏭️ | skip | Legacy Clientside only (see notes) |
| client_correspondences | 6 | - | ⏭️ | skip | Legacy Clientside only (see notes) |
| client_replies | 6 | - | ⏭️ | skip | Legacy Clientside only (see notes) |
| Chatbots | |||||
| chatbots | 10 | - | ⏭️ | skip | Requires chatbot key, not OAuth (see notes) |
| Account | |||||
| account | 4 | accounts |
✅ | - | show, update name, upload logo, remove logo |
| Lineup | |||||
| lineup_markers | 4 | lineup |
✅ | - | list, create, update, delete markers |
| Reference Only | |||||
| basecamps | 0 | - | - | - | Documentation reference, no endpoints |
| rich_text | 0 | - | - | - | Documentation reference, no endpoints |
- high: Core workflow, frequently needed
- medium: Useful but not critical path
- low: Specialized, rarely needed
- skip: Out of scope (client portal, chatbots, internal)
All remaining sections are intentionally out of scope:
- chatbots (10 endpoints) - Requires chatbot key auth, not OAuth
- client_approvals/correspondences/replies (18 endpoints) - Legacy Clientside portal These are excluded from doc parity totals.
These endpoints are for the legacy "Clientside" feature (the dedicated client portal area), which is distinct from the modern "clients as project participants" model.
Why skipped:
- Confusingly similar naming to modern client setup
- Legacy feature with limited adoption
- Requires projects with specific client portal configuration
- Unlikely to be needed in typical developer/agent workflows
Note: The client_visibility endpoint IS implemented (via basecamp recordings visibility) because it's part of the modern clients setup for controlling what client participants can see on any recording.
The chatbots API uses a chatbot key for authentication rather than OAuth tokens. This is a fundamentally different auth model:
- Chatbot keys are per-integration, not per-user
- They're designed for automated integrations (Slack bots, etc.)
- The CLI uses OAuth for user-scoped access
Supporting chatbot auth would require a separate configuration path. If chatbot functionality is needed, a dedicated chatbot-specific tool would be more appropriate.
Each resource typically supports:
GET /...- ListGET /.../:id- ShowPOST /...- CreatePUT /.../:id- UpdateDELETE /.../:id- Trash (soft delete)
Plus action endpoints:
POST /.../:id/completion- Complete (todos)DELETE /.../:id/completion- Uncomplete (todos)PUT /.../:id/position- ReorderPOST /.../:id/pin- Pin to topDELETE /.../:id/pin- UnpinPUT /.../:id/status/:status- Change status (trash/archive/restore)
basecamp <resource> # List (default)
basecamp <resource> list # List (explicit)
basecamp <resource> show <id> # Show details
basecamp <resource> <id> # Show (shorthand)
basecamp <resource> create "..." # Create new
basecamp <resource> update <id> # Update existing
basecamp <singular> "..." # Create (shorthand)API coverage is manually tracked in this document. The coverage matrix above is updated when new endpoints are implemented.
To verify a specific endpoint is implemented, check the corresponding command in internal/commands/.