Docs-only repo — no code, no build system. README.md is the main guide (auth, pagination, domain model, endpoint index). sections/ has one .md per API resource (~60 files).
This repo is a read-only mirror of the authoritative docs in the private
basecamp/bc3 repo at doc/api/. README.md, CONDUCT.md, and everything
under sections/ is copied verbatim by bc3's script/api/sync_to_bc3_api —
any change made directly here will be overwritten by the next sync and will
silently diverge from the source in the meantime.
To change doc content: land the change in bc3's doc/api/, then run the sync
script from a bc3 checkout and commit the result here. Review feedback on doc
content should be redirected to bc3.
Only repo-local files that the sync does not copy (this file, GitHub metadata) may be edited directly.
A PR that changes README.md, CONDUCT.md, or a sections/*.md file should be
a sync PR — the verbatim output of script/api/sync_to_bc3_api, which is the
only sanctioned way this content changes. So a PR modifying those files is
expected and correct — review the documentation on its merits; don't flag the sync
itself as an unauthorized direct edit. A sync PR's description carries this footer:
Synced from bc3
doc/api/byscript/api/sync_to_bc3_api— not a hand-edit.
An off-target edit hand-changes that content on a branch, bypassing the sync:
no footer, and it won't match bc3's doc/api/. Those are what to redirect to bc3;
the next sync overwrites them regardless. A PR that touches only this file or
GitHub metadata is the exception — the sync doesn't copy those, so they're edited
here directly and carry no footer.
Every sections/*.md follows this structure:
- H1 title with
=====underline, H2 per endpoint with-----underline (Setext, not ATX) - Endpoints bullet list with anchor links:
- [Get messages](#get-messages) - Endpoint description as bullet:
* `GET /buckets/1/...`with prose ###### Example JSON Responsethen<!-- START GET /path -->/<!-- END GET /path -->wrapping```jsonblock###### Copy as cURLthen```shellblock using$ACCESS_TOKENand$ACCOUNT_IDenv vars- Write endpoints add
###### Example JSON Requestbefore the cURL **Required parameters**:(bold) with inline or bulleted content, and_Optional parameters_:(italic) typically followed by bullet lists- Reference-style links at bottom:
[1]: https://...,[pagination]: ...
Lives between <!-- START API ENDPOINTS --> and <!-- END API ENDPOINTS -->. New sections go alphabetically.
Imperative verb + description + (#PR): Add API documentation for timeline endpoints (#369)
- No YAML frontmatter
- Don't invent API endpoints — only document real ones
- Don't add files outside
sections/and repo root