All endpoints

DocsAPI

Make your first call

A key, one header, one request. About two minutes.

Base URL · EU and US

https://app.tagsentry.ai/api/v1

One address for both regions. Each site's data stays in the region it was added in.

Auth header

Authorization: Bearer tsk_live_…

Key prefixes

  • tsk_live_…Minted by a production or staging deployment, app.tagsentry.ai included. The prefix a secret scanner should match.
  • tsk_test_…Minted by a development or self-hosted deployment without a production APP_ENV. Not a sandbox: it has the same scopes and reaches the same real data as a live key, on the deployment that minted it. No other deployment knows it.

First request

curl https://app.tagsentry.ai/api/v1/sites \  -H "Authorization: Bearer tsk_live_…"

Response

{  "data": [    {      "id": "3f6c1b8e-2d4a-4c7e-9a51-0b8f2e6d7c10",      "accountId": "9a2e4f71-5b3c-4d8a-8e16-7c0d1f2a3b45",      "domain": "silverpine.example",      "displayName": "Silverpine Supply",      "region": "EU",      "status": "active",      "archivedAt": null,      "createdAt": "2026-09-12T09:30:00.000Z",      "updatedAt": "2026-09-26T14:02:00.000Z"    }  ],  "limit": 1,  "truncated": false}

Scopes

  • account:readRead which account this key belongs to: its id, its name and whether a person has confirmed that name
  • sites:readList sites and read their setup state
  • sites:writeCreate sites and archive them
  • scans:writeStart a scan of a site
  • trackers:readRead the detected tracker inventory and its classification
  • monitoring:readRead tag events, event-name summaries and the tag flow
  • consent:readRead consent decisions and their rates
  • consent:exportDownload the proof-of-consent export
  • install:readRead the install snippet, the site key and the delivery origin
  • banner:writeChange and publish the consent banner and its ruleset
  • gtm:readRead the connected Tag Manager container and its tag inventory
  • gtm:writeStage and publish a consent version into the customer's Tag Manager container
  • billing:readRead whether each site is Free or Pro in each product, its usage and payment state

Webhook events

Check the signature

// X-TagSentry-Signature: t=1758700000,v1=<hex>expected = hmac_sha256(secret, t + "." + body)ok = constant_time_equal(expected, v1)  and now - t <= 300