PilotFoxDocs

List annotations

GET
/api/v1/sites/{siteId}/annotations

The annotations of the site and the organization-wide ones that overlap the window, earliest first. Share links, public-site visitors and API keys without annotations:read see the public ones only, without createdBy null.

Requires analytics:read on the site (an API key, or a signed-in member's role). Share links: allowed, with the analytics:read scope. Public sites: open to everyone, no credential needed.

Authorization

headerx-api-key<token>

An organization API key (ak_…), with the permissions and the sites it was created with. For servers and scripts: no cookie and no Origin check. Also accepted as Authorization: Bearer ak_… (apiKeyBearer). A request carries one credential: a key sent with a share token or a live session cookie is 400 (details.reason: ambiguous_credentials).

Scope: analytics:read

Path Parameters

siteId*string

Query Parameters

start?string
end?string
last?string
all?"true"
Value in"true"
tz?string
bucket?string
Value in"minute""5m""15m""hour""day""week""month""year"
compare?string
Value in"previous""year"
compare_start?string
compare_end?string

Response Body

OK

application/json
  1. response
data*array<>
meta*
Example Request
curl -X GET 'https://pilotfox.app/api/v1/sites/string/annotations'
Example Response200
{  "data": [    {      "id": "string",      "title": "string",      "description": "string",      "startsAt": "string",      "endsAt": "string",      "color": "blue",      "icon": "string",      "isPublic": true,      "scope": "site",      "createdBy": "string",      "createdAt": "string",      "updatedAt": "string"    }  ],  "meta": {    "window": {      "from": "string",      "to": "string",      "tz": "string",      "bucket": "minute"    },    "compare": {      "from": "string",      "to": "string"    },    "totalCount": -9007199254740991,    "nextCursor": "string",    "truncated": true,    "cache": "hit"  }}