Endpoints:
- Get a column
- Create a column
- Update a column
- Move a column
- Watch a column
- Change on hold on a column
- Change color of a column
GET /card_tables/columns/2.jsonwill return the column with an ID of2.
{
"id": 1069479400,
"status": "active",
"visible_to_clients": false,
"created_at": "2026-01-31T08:32:04.760Z",
"updated_at": "2026-01-31T08:33:00.710Z",
"title": "Triage",
"inherits_status": true,
"type": "Kanban::Triage",
"url": "https://3.basecampapi.com/195539477/buckets/2085958504/card_tables/columns/1069479400.json",
"app_url": "https://3.basecamp.com/195539477/buckets/2085958504/card_tables/columns/1069479400",
"bookmark_url": "https://3.basecampapi.com/195539477/my/bookmarks/BAh7BkkiC19yYWlscwY6BkVUewdJIglkYXRhBjsAVEkiLmdpZDovL2JjMy9SZWNvcmRpbmcvMTA2OTQ3OTQwMD9leHBpcmVzX2luBjsAVEkiCHB1cgY7AFRJIg1yZWFkYWJsZQY7AFQ=--76b2dfcd8a8eea46097d4f1ce80acf09d339e6d2.json",
"subscription_url": "https://3.basecampapi.com/195539477/buckets/2085958504/recordings/1069479400/subscription.json",
"parent": {
"id": 1069479399,
"title": "Card Table",
"type": "Kanban::Board",
"url": "https://3.basecampapi.com/195539477/buckets/2085958504/card_tables/1069479399.json",
"app_url": "https://3.basecamp.com/195539477/buckets/2085958504/card_tables/1069479399"
},
"bucket": {
"id": 2085958504,
"name": "The Leto Laptop",
"type": "Project"
},
"creator": {
"id": 1049715913,
"attachable_sgid": "BAh7BkkiC19yYWlscwY6BkVUewdJIglkYXRhBjsAVEkiK2dpZDovL2JjMy9QZXJzb24vMTA0OTcxNTkxMz9leHBpcmVzX2luBjsAVEkiCHB1cgY7AFRJIg9hdHRhY2hhYmxlBjsAVA==--e627c45e6b34e08862da23906862412620e4d5d9",
"name": "Victor Cooper",
"email_address": "victor@honchodesign.com",
"personable_type": "User",
"title": "Chief Strategist",
"bio": "Don't let your dreams be dreams",
"location": "Chicago, IL",
"created_at": "2026-01-31T08:29:28.365Z",
"updated_at": "2026-01-31T08:29:32.599Z",
"admin": true,
"owner": true,
"client": false,
"employee": true,
"time_zone": "America/Chicago",
"avatar_url": "https://3.basecampapi.com/195539477/people/BAhpBMlkkT4=--5fe7b70fbee7a7f0e2e1e19df7579e5d880c753d/avatar?v=1",
"company": {
"id": 1033447817,
"name": "Honcho Design"
},
"can_ping": true,
"can_manage_projects": true,
"can_manage_people": true,
"can_access_timesheet": true,
"can_access_hill_charts": true
},
"description": null,
"subscribers": [
{
"id": 1049715913,
"attachable_sgid": "BAh7BkkiC19yYWlscwY6BkVUewdJIglkYXRhBjsAVEkiK2dpZDovL2JjMy9QZXJzb24vMTA0OTcxNTkxMz9leHBpcmVzX2luBjsAVEkiCHB1cgY7AFRJIg9hdHRhY2hhYmxlBjsAVA==--e627c45e6b34e08862da23906862412620e4d5d9",
"name": "Victor Cooper",
"email_address": "victor@honchodesign.com",
"personable_type": "User",
"title": "Chief Strategist",
"bio": "Don't let your dreams be dreams",
"location": "Chicago, IL",
"created_at": "2026-01-31T08:29:28.365Z",
"updated_at": "2026-01-31T08:29:32.599Z",
"admin": true,
"owner": true,
"client": false,
"employee": true,
"time_zone": "America/Chicago",
"avatar_url": "https://3.basecampapi.com/195539477/people/BAhpBMlkkT4=--5fe7b70fbee7a7f0e2e1e19df7579e5d880c753d/avatar?v=1",
"company": {
"id": 1033447817,
"name": "Honcho Design"
},
"can_ping": true,
"can_manage_projects": true,
"can_manage_people": true,
"can_access_timesheet": true,
"can_access_hill_charts": true
}
],
"color": null,
"cards_count": 1,
"comment_count": 0,
"cards_url": "https://3.basecampapi.com/195539477/buckets/2085958504/card_tables/lists/1069479400/cards.json"
}curl -s -H "Authorization: Bearer $ACCESS_TOKEN" https://3.basecampapi.com/$ACCOUNT_ID/card_tables/columns/2.jsonPOST /card_tables/2/columns.jsoncreates a column within the card table with ID2.
Required parameters: title of the column.
Optional parameters:
description- containing information about the column.
This endpoint will return 201 Created with the current JSON representation of the column if the creation was a success. See the Get a column endpoint for more info on the payload.
{
"title": "In progress",
"description": "Stuff we are working on actively"
}curl -s -H "Authorization: Bearer $ACCESS_TOKEN" -H "Content-Type: application/json" \
-d '{"title":"In progress"}' \
https://3.basecampapi.com/$ACCOUNT_ID/card_tables/2/columns.jsonPUT /card_tables/columns/2.jsonallows changing of the column with an ID of2.
This endpoint will return 200 OK with the current JSON representation of the column if the update was a success. See the Get a column endpoint for more info on the payload.
{
"title": "On it",
"description": "Stuff we are doing right now"
}curl -s -H "Authorization: Bearer $ACCESS_TOKEN" -H "Content-Type: application/json" \
-d '{"title":"On it", "description":"Stuff we are doing right now"}' -X PUT \
https://3.basecampapi.com/$ACCOUNT_ID/card_tables/columns/2.jsonPOST /card_tables/2/moves.jsonallows moving of a column in the card table with id2.
Required parameters:
source_id- the id of the column to movetarget_id- the id of the card table
Optional parameters:
position- index among the columns (ignoring Triage, Not Now or Done). Default:1
This endpoint will return 204 No Content if the update was a success.
{
"source_id": 3,
"target_id": 4,
"position": 2
}curl -s -H "Authorization: Bearer $ACCESS_TOKEN" -H "Content-Type: application/json" \
-d '{"source_id": 3, "target_id":4, "position": 2}' \
https://3.basecampapi.com/$ACCOUNT_ID/card_tables/2/moves.jsonPOST /card_tables/lists/2/subscription.jsonstarts watching the column with id2.DELETE /card_tables/lists/2/subscription.jsonstops watching the column with id2.
This endpoint will return 204 No Content if the update was a success.
curl -s -H "Authorization: Bearer $ACCESS_TOKEN" -H "Content-Type: application/json" \
-X POST \
https://3.basecampapi.com/$ACCOUNT_ID/card_tables/lists/2/subscription.jsoncurl -s -H "Authorization: Bearer $ACCESS_TOKEN" -H "Content-Type: application/json" \
-X DELETE \
https://3.basecampapi.com/$ACCOUNT_ID/card_tables/lists/2/subscription.jsonPOST /card_tables/columns/2/on_hold.jsoncreates an on_hold section in the column with ID2.DELETE /card_tables/columns/2/on_hold.jsonremoves an on_hold section in the column with ID2.
This endpoint will return 200 OK with the current JSON representation of the column if the operation was a success. See the Get a column endpoint for more info on the payload.
curl -s -H "Authorization: Bearer $ACCESS_TOKEN" -H "Content-Type: application/json" \
-X POST \
https://3.basecampapi.com/$ACCOUNT_ID/card_tables/columns/2/on_hold.jsoncurl -s -H "Authorization: Bearer $ACCESS_TOKEN" -H "Content-Type: application/json" \
-X DELETE \
https://3.basecampapi.com/$ACCOUNT_ID/card_tables/columns/2/on_hold.jsonPUT /card_tables/columns/2/color.jsonallows changing the color of the column with an ID of2.
This endpoint will return 200 OK with the current JSON representation of the column if the update was a success. See the Get a column endpoint for more info on the payload.
Required parameters:
color- the color. Available values:[ white red orange yellow green blue aqua purple gray pink brown ]
{
"color": "orange"
}curl -s -H "Authorization: Bearer $ACCESS_TOKEN" -H "Content-Type: application/json" \
-d '{"color":"orange"}' -X PUT \
https://3.basecampapi.com/$ACCOUNT_ID/card_tables/columns/2/color.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/card_tables/columns/2.json→ Get a columnPOST /buckets/1/card_tables/2/columns.json→ Create a columnPUT /buckets/1/card_tables/columns/2.json→ Update a columnPOST /buckets/1/card_tables/2/moves.json→ Move a columnPOST /buckets/1/card_tables/lists/2/subscription.json→ Watch a columnDELETE /buckets/1/card_tables/lists/2/subscription.json→ Watch a columnPOST /buckets/1/card_tables/columns/2/on_hold.json→ Change on hold on a columnDELETE /buckets/1/card_tables/columns/2/on_hold.json→ Change on hold on a columnPUT /buckets/1/card_tables/columns/2/color.json→ Change color of a column