From 34876546b6a0d4bf5e6a51184f8b1a714697fa2f Mon Sep 17 00:00:00 2001 From: Jeremy Daer Date: Wed, 9 Sep 2026 21:12:30 -0700 Subject: [PATCH 1/2] Sync API docs from bc3: cap the readables batch on PUT /my/unreads MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Parity catch-up for the one bc3 doc/api change merged since the last mirror sync (bc3 1d8d4ce95d): - Cap the readables batch (basecamp/bc3#13232): `readables` on PUT /my/unreads.json takes at most 500 items and answers 422 over that, in my_notifications.md Synced from bc3 `doc/api/` by `script/api/sync_to_bc3_api` — not a hand-edit. --- sections/my_notifications.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/sections/my_notifications.md b/sections/my_notifications.md index 1f8cba8..55b65e1 100644 --- a/sections/my_notifications.md +++ b/sections/my_notifications.md @@ -339,9 +339,9 @@ Mark as read **Required parameters**: -* `readables` - an array of `readable_sgid` values from the notifications response. These identify the items to mark as read. +* `readables` - an array of `readable_sgid` values from the notifications response. These identify the items to mark as read. At most 500 per request. -Returns `200 OK` on success with no body. +Returns `200 OK` on success with no body, or `422 Unprocessable Entity` when `readables` exceeds 500 items. ###### Example JSON Request From 1f58bebd57809e7d7828642d71308896bf6fdbcf Mon Sep 17 00:00:00 2001 From: Jeremy Daer Date: Wed, 9 Sep 2026 21:12:38 -0700 Subject: [PATCH 2/2] Sync API docs from bc3: start_date on project constructions MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Project constructions now take a `start_date`, per basecamp/bc3#13259: - POST /templates/:template_id/project_constructions.json documents its `project` parameters — `name` (required), `description`, and `start_date` (ISO 8601), which anchors the template's relative dates to the Sunday on or before it; omitted, they anchor to the week the construction is processed - JSON and cURL examples carry `start_date` Synced from bc3 `doc/api/` by `script/api/sync_to_bc3_api` — not a hand-edit. --- sections/templates.md | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/sections/templates.md b/sections/templates.md index dbc5aee..a1b06c0 100644 --- a/sections/templates.md +++ b/sections/templates.md @@ -295,7 +295,13 @@ Create a Project Construction To create a project given a template, you need to create a project construction. -* `POST /templates/:template_id/project_constructions.json` with at least a project `name`, and optionally a `description`. +* `POST /templates/:template_id/project_constructions.json` with at least a project `name`, and optionally a `description` and a `start_date`. + +The parameters are nested under `project`: + +* `name` - the name of the new project. Required. +* `description` - a description for the new project. +* `start_date` - date (ISO 8601) the new project starts on. A template's dates (to-do start and due dates, to-do subtask and card step due dates, card due dates, schedule entries) are relative to the start of its first week, and weeks in templates start on a Sunday, so the new project's dates are anchored to the Sunday on or before `start_date`. Omit it and they are anchored to the week in which the construction is processed, which is the week it was requested unless the construction is delayed across a Sunday. ###### Example JSON Request @@ -303,7 +309,8 @@ To create a project given a template, you need to create a project construction. { "project": { "name": "Marketing ", - "description": "2016-2017 Strategy" + "description": "2016-2017 Strategy", + "start_date": "2016-09-04" } } ``` @@ -311,7 +318,7 @@ To create a project given a template, you need to create a project construction. ###### Copy as cURL ```shell -curl -s -H "Authorization: Bearer $ACCESS_TOKEN" -H "Content-Type: application/json" -d '{"project":{"name":"Marketing Campaign","description":"For Client: Xyz Corp Conference"}}' -X POST \ +curl -s -H "Authorization: Bearer $ACCESS_TOKEN" -H "Content-Type: application/json" -d '{"project":{"name":"Marketing Campaign","description":"For Client: Xyz Corp Conference","start_date":"2016-09-04"}}' -X POST \ https://3.basecampapi.com/$ACCOUNT_ID/templates/2085958507/project_constructions.json ```