2.8 KiB
2.8 KiB
Basecamp Routing Reference
App name: basecamp
Base URL proxied: 3.basecampapi.com/{account_id}
Note: The gateway automatically injects the account ID from the OAuth connection.
API Path Pattern
/basecamp/{resource}.json
All paths must end with .json.
Common Endpoints
Get Current User
GET /basecamp/my/profile.json
List People
GET /basecamp/people.json
List Projects
GET /basecamp/projects.json
Get Project
GET /basecamp/projects/{project_id}.json
Returns project with dock array containing tool IDs.
Create Project
POST /basecamp/projects.json
Content-Type: application/json
{
"name": "Project Name",
"description": "Description"
}
Get Todoset
GET /basecamp/buckets/{project_id}/todosets/{todoset_id}.json
List Todolists
GET /basecamp/buckets/{project_id}/todosets/{todoset_id}/todolists.json
List Todos
GET /basecamp/buckets/{project_id}/todolists/{todolist_id}/todos.json
Create Todo
POST /basecamp/buckets/{project_id}/todolists/{todolist_id}/todos.json
Content-Type: application/json
{
"content": "Todo content",
"due_on": "2026-02-15",
"assignee_ids": [123]
}
Complete Todo
POST /basecamp/buckets/{project_id}/todos/{todo_id}/completion.json
Get Message Board
GET /basecamp/buckets/{project_id}/message_boards/{message_board_id}.json
List Messages
GET /basecamp/buckets/{project_id}/message_boards/{message_board_id}/messages.json
Get Schedule
GET /basecamp/buckets/{project_id}/schedules/{schedule_id}.json
List Schedule Entries
GET /basecamp/buckets/{project_id}/schedules/{schedule_id}/entries.json
Get Vault (Documents)
GET /basecamp/buckets/{project_id}/vaults/{vault_id}.json
List Documents
GET /basecamp/buckets/{project_id}/vaults/{vault_id}/documents.json
List Campfires
GET /basecamp/chats.json
Trash Recording
PUT /basecamp/buckets/{project_id}/recordings/{recording_id}/status/trashed.json
Key Concepts
- Bucket: Project content container (bucket_id = project_id)
- Dock: Per-project tool list with
id,name,enabled - Recording: Any content item (todos, messages, documents)
Pagination
Uses Link header with rel="next":
Link: <url>; rel="next"
X-Total-Count: 150
Notes
- All paths must end with
.json - Gateway injects account ID automatically
- Uses Basecamp 4 API (bc3-api)
- Rate limit: ~50 requests per 10 seconds per IP
- Check
enabled: truein dock before using tools