Endpoint for retrieving the current user's unpublished message, document, upload, and client approval/correspondence drafts across their active projects.
A draft is a message, document, file upload, or client approval/correspondence that has been saved but not yet published. Messages and documents can be drafted and published through the API — see the messages and documents sections. Uploads have their own create and update endpoints, but no documented way to create or publish a draft upload; client approvals and correspondences are read-only over the API. Drafts of all of these types still appear here, however they were authored.
Endpoints:
GET /my/drafts.jsonwill return a paginated list of the current user's drafts, most recently updated first, regardless of how they were created. Drafts whose project has been archived or trashed are excluded.
Five kinds of drafts are returned:
- Messages
- Documents
- Uploads
- Client approvals
- Client correspondences
Not returned: other resources can also be saved in a drafted state, but they aren't part of this list — notably Google documents (which default to drafted when status is omitted), cloud files, and schedule entries. This endpoint is not an exhaustive feed of everything you have unpublished.
Each draft carries an excerpt: up to 300 characters of plain-text content, or an empty string when the draft has no body yet. parent is null for drafts filed directly under their bucket, and scheduled_posting_at is null unless the draft is scheduled to publish later.
[
{
"id": 1069480291,
"app_url": "https://3.basecamp.com/195539477/buckets/2085958504/messages/1069480291",
"title": "Launch announcement",
"type": "message",
"bucket": {
"id": 2085958504,
"name": "The Leto Laptop",
"app_url": "https://3.basecamp.com/195539477/buckets/2085958504"
},
"parent": {
"id": 1069479829,
"title": "Message Board",
"app_url": "https://3.basecamp.com/195539477/buckets/2085958504/message_boards/1069479829"
},
"excerpt": "Still polishing the wording before we post this.",
"created_at": "2026-07-22T22:11:07.611Z",
"updated_at": "2026-07-22T22:11:07.632Z",
"scheduled_posting_at": null
}
]curl -s -H "Authorization: Bearer $ACCESS_TOKEN" https://3.basecampapi.com/$ACCOUNT_ID/my/drafts.json