Stickybeak Docs Dashboard Get early access

Using the dashboard

API

The Stickybeak analytics API creates chart annotations from your tools. It does not read analytics data.

Create a token

API token form with existing deployment tokensAPI token form with existing deployment tokens
API tokens let deploy pipelines add annotations without using the dashboard.
  1. Open Settings → API tokens

    You must be a workspace admin.

  2. Name and create it

    Copy the sbk_… token now; only its hash is stored.

  3. Save it as a secret

    The token covers every site in the workspace. Revoking it stops access immediately.

Add an analytics annotation

curl -X POST https://app.usestickybeak.com/api/v1/annotations \
  -H "Authorization: Bearer sbk_your_token" \
  -H "Content-Type: application/json" \
  -d '{
    "site": "example.com",
    "kind": "deploy",
    "title": "New pricing page",
    "ts": "2026-10-08T09:30:00+10:00",
    "paths": ["/pricing"],
    "url": "https://github.com/acme/shop/pull/42"
  }'
FieldRule
siteRequired domain or site ID in the token's workspace
titleRequired; cut to 200 characters
kindnote, deploy, campaign or incident
tsOptional ISO 8601 time; defaults to now
pathsOptional array or separated string; up to 50 paths beginning with /
url / bodyOptional http(s) link and details up to 5,000 characters

Success returns 201 and the annotation. Invalid input returns 400, a missing or revoked token 401, and an unavailable site 404.

GitHub Actions

Store the token as STICKYBEAK_TOKEN, then run after deployment:

- name: Annotate Stickybeak
  run: |
    curl -fsS -X POST https://app.usestickybeak.com/api/v1/annotations \
      -H "Authorization: Bearer ${{ secrets.STICKYBEAK_TOKEN }}" \
      -H "Content-Type: application/json" \
      -d "$(jq -n --arg t "$(git log -1 --format=%s)" --arg u "${{ github.server_url }}/${{ github.repository }}/commit/${{ github.sha }}" \
        '{site: "example.com", kind: "deploy", title: $t, url: $u}')"