Files
2026-04-11 09:45:12 -05:00

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: true in dock before using tools

Resources