All endpoints

DocsAPIBanner

PUT/sites/{siteId}/banner/links

Change the banner's policy links

Replaces the privacy policy, cookie policy and imprint links.

Auth header

Authorization: Bearer tsk_live_…

The key needsbanner:write

Parameters

  • siteIdstringin pathrequired

    The site id, from GET /v1/sites.

Request body

  • privacyPolicystringoptional
  • cookiePolicystringoptional
  • imprintstringoptional

Example request

curl -X PUT "https://app.tagsentry.ai/api/v1/sites/3f6c1b8e-2d4a-4c7e-9a51-0b8f2e6d7c10/banner/links" \  -H "Authorization: Bearer tsk_live_…" \  -H "Content-Type: application/json" \  -d '{"privacyPolicy":"…","cookiePolicy":"…","imprint":"…"}'

Response 200

  • savedbooleanrequired

    Always true

  • changestringrequired

    One of design, wording, links

  • bannerobjectrequired
  • banner.titlestringrequired
  • banner.bodystringrequired
  • banner.acceptAllstringrequired
  • banner.rejectAllstringrequired
  • banner.managestringrequired
  • banner.thememap of string | nullrequired
  • banner.presentationmap of any | nullrequired
  • banner.policyLinksmap of string | nullrequired
  • designModestring | nullrequired
  • artifactWarningstring | nullrequired

    Set when the save stored but the copy visitors fetch did not refresh yet. It retries; the save stands.

Example response

{  "saved": true,  "change": "design",  "banner": {    "title": "…",    "body": "…",    "acceptAll": "…",    "rejectAll": "…",    "manage": "…",    "theme": {      "key": "…"    },    "presentation": {      "key": null    },    "policyLinks": {      "key": "…"    }  },  "designMode": "…",  "artifactWarning": "…"}
More about this endpoint

Send every link you want kept: an omitted or empty one is cleared. Only http(s) URLs are accepted.

Errors400 · 401 · 403 · 404 · 409 · 429 · 500
  • 400The request did not validate against this operation's schema.
  • 401Missing, malformed, unknown, revoked or expired API key. These are deliberately indistinguishable in the response -- distinguishing them would confirm to a caller that a token was once real.
  • 403The key authenticated but does not carry the scope(s) this operation requires, or (`domain_not_verified`) the site's domain is not verified, so its consent records are not released.
  • 404No such resource on this account. A site id belonging to a DIFFERENT account answers 404, never 403 -- a 403 would confirm the id exists somewhere.
  • 409The request conflicts with existing state.
  • 429A rate limit or quota was exceeded. The body names WHICH one.
  • 500Something failed on our side. The requestId in the body is what to quote.

Every error has the same body: { error: { code, message, requestId } }.

From the OpenAPI document, version 2026-08-26. Raw OpenAPI