"Best analytics tool I've used in 14 years"

List notes

GET https://datafa.st/api/v1/admin/websites/{websiteId}/notes

List manual chart notes, with date filtering, text search, and pagination.

Required account-token permission: notes:read.

Query parameters

startAt / endAt
string
Supply together. Inclusive YYYY-MM-DD dates or ISO timestamps with Z/offset. Defaults to the last 30 calendar days, including today.
timezone
string
IANA timezone; defaults to the website timezone. Date-only bounds include the entire local day.
q
string
Case-insensitive text search, up to 200 characters.
limit
integer
Page size, 1–1000; default 100.
offset
integer
Rows to skip; default 0.
order
string
desc (newest first, default) or asc.
Pagination returns limit, offset, total, and hasMore. Unknown or duplicate query parameters are rejected.

Response

data is an array of manual notes. Each note includes id, websiteId, text, timestamp (UTC ISO), author (id, name, image, or null if the author was deleted), createdAt, and updatedAt. The author is derived from the authenticated account; it cannot be supplied by the caller.

API-created notes appear on the existing dashboard chart at their timestamp. They remain visible when changing the chart's period or granularity, subject to the chart's note visibility toggle. Manual notes are private to authorized website users; public dashboard responses do not expose them.

MCP: datafast_notes_list.

Authentication

Use Authorization: Bearer df_... for one website, or dft_... with the required permission and website access. Notes always require websiteId in the path. Mention reads infer it from a website key; account tokens must provide the websiteId query parameter.
Existing website keys and * account tokens work automatically. For restricted account tokens, open Account settings → API, expand your token, choose Edit permissions, and enable Notes → Read / Write. Save permissions to keep the same token and MCP connection. Only the signed-in token owner can edit permissions in the dashboard; no API or MCP operation can do this.

Errors

Standard errors use { "status": "error", "error": { "code": 400, "message": "..." } }. Expect 400 for invalid fields, dates, or IDs; 401 for invalid credentials; 403 for missing permissions or website access; 404 for a missing website/note; 409 for reusing a creation key with different input; and 429 for the normal API rate limit.

✍️ Something missing? Suggest features.

🤖 AI agent or LLM? Read this page as markdown

Example request
curl -X GET "https://datafa.st/api/v1/admin/websites/{websiteId}/notes" \
  -H "Authorization: Bearer dft_xxx"
Success response
{
  "status": "success",
  "data": [
    {
      "id": "69a123456789012345678901",
      "websiteId": "65f123456789012345678901",
      "text": "Launched the new landing page",
      "timestamp": "2026-09-05T10:00:00.000Z",
      "author": {
        "id": "65f123456789012345678902",
        "name": "Marc",
        "image": null
      },
      "createdAt": "2026-09-05T10:01:00.000Z",
      "updatedAt": "2026-09-05T10:01:00.000Z"
    }
  ],
  "pagination": {
    "limit": 100,
    "offset": 0,
    "total": 1,
    "hasMore": false
  }
}