Most of the data structures in the Basecamp 5 API are represented as "Recordings", with generic actions available to be performed.
Endpoints:
GET /projects/recordings.jsonwill return a paginated list of records for the giventypeof recording.
Required parameters: type, which must be Comment, Document, Door, Kanban::Card, Kanban::Step, Message, Question::Answer, Schedule::Entry, Todo, Todolist, Upload, or Vault.
Optional query parameters:
bucket- Single or comma separated list of project IDs. Default: All active projects visible to the current user.status- Options:active,archived, ortrashed. Default:activesort- Options:created_atorupdated_at. Default:created_at.direction- Options:descorasc. Default:desc.
Examples: /projects/recordings.json?type=Todo, /projects/recordings.json?type=Message&bucket=1, /projects/recordings.json?type=Document&bucket=1,2&sort=updated_at&direction=asc
GET /recordings/2.jsonwill return the generic JSON representation of the recording with an ID of2.
This endpoint is useful when you have a recording ID but do not yet know its specific type. The response includes the recording's type, which can then be used to follow up with the corresponding type-specific endpoint if needed.
curl -s -H "Authorization: Bearer $ACCESS_TOKEN" \
https://3.basecampapi.com/$ACCOUNT_ID/recordings/2.jsonPUT /recordings/2/status/trashed.jsonwill mark the recording with an ID of2as trashed.
No parameters required. Returns 204 No Content if successful.
curl -s -H "Authorization: Bearer $ACCESS_TOKEN" -H "Content-Type: application/json" -X PUT \
https://3.basecampapi.com/$ACCOUNT_ID/recordings/2/status/trashed.jsonPUT /recordings/2/status/archived.jsonwill mark the recording with an ID of2as archived.
No parameters required. Returns 204 No Content if successful.
curl -s -H "Authorization: Bearer $ACCESS_TOKEN" -H "Content-Type: application/json" -X PUT \
https://3.basecampapi.com/$ACCOUNT_ID/recordings/2/status/archived.jsonPUT /recordings/2/status/active.jsonwill mark the recording with an ID of2as active.
No parameters required. Returns 204 No Content if successful.
curl -s -H "Authorization: Bearer $ACCESS_TOKEN" -H "Content-Type: application/json" -X PUT \
https://3.basecampapi.com/$ACCOUNT_ID/recordings/2/status/active.jsonThe following project-scoped routes are still supported and will remain available, but flat routes above are the canonical form for new integrations.
GET /buckets/1/recordings/2.json→ Get a recordingPUT /buckets/1/recordings/2/status/trashed.json→ Trash a recordingPUT /buckets/1/recordings/2/status/archived.json→ Archive a recordingPUT /buckets/1/recordings/2/status/active.json→ Unarchive a recording