Documentation · API reference
POST
/api/v1/sites/{site}/annotationsAdd a note to the chart
This page as Markdown, or in an AI chatMore ways to read this page
Add a note to a site's chart, at a date.
# Add a note to the chart
> tidekeeper's API reference: https://tidekeeper.eu/docs/api/post-sites-site-annotations
`POST /api/v1/sites/{site}/annotations`
Add a note to a site's chart, at a date.
## Parameters
- `site` (in path, needed): A site's id or name
## What to send
`AnnotationCreate`
- `day` (string, needed)
- `note` (string, needed)
## The answer
201, `AnnotationView`
- `created_at` (string, needed)
- `day` (string, needed): `2026-10-08`, in the site's time zone.
- `id` (string, needed)
- `note` (string, needed)
## Asking
```sh
curl -X POST https://tidekeeper.eu/api/v1/sites/example.org/annotations \
-H "Authorization: Bearer $TIDEKEEPER_TOKEN" \
-H "Content-Type: application/json" \
-d '{"day": "…", "note": "…"}'
```
Parameters
- sitein the address
- neededA site's id or name
What to send
AnnotationCreate
- day
- stringneeded
- note
- stringneeded
The answer
Status 201
AnnotationView
- created_at
- stringneeded
- day
- stringneeded`2026-10-08`, in the site's time zone.
- id
- stringneeded
- note
- stringneeded
Asking
curl -X POST https://tidekeeper.eu/api/v1/sites/example.org/annotations \ -H "Authorization: Bearer $TIDEKEEPER_TOKEN" \ -H "Content-Type: application/json" \ -d '{"day": "…", "note": "…"}'
const answer = await fetch("https://tidekeeper.eu/api/v1/sites/example.org/annotations", { method: "POST", headers: { Authorization: `Bearer ${process.env.TIDEKEEPER_TOKEN}`, "Content-Type": "application/json", }, body: JSON.stringify({"day": "…", "note": "…"}), }).then((r) => r.json());