Auth header
Authorization: Bearer tsk_live_…The key needsaccount:read
Example request
curl "https://app.tagsentry.ai/api/v1/account" \ -H "Authorization: Bearer tsk_live_…"Response 200
accountIdstringrequiredThe account this key acts for. It comes from the key and from nowhere else -- no path, query or body can name a different one.
namestringrequiredonboardedbooleanrequiredFalse while nobody has confirmed this account's name. A wizard should say the name is a guess rather than print it as a choice somebody made.
createdAtstringrequiredISO-8601 timestamp, UTC.
Example response
{ "accountId": "3f6c1b8e-2d4a-4c7e-9a51-0b8f2e6d7c10", "name": "_ga", "onboarded": false, "createdAt": "2026-09-26T14:02:00.000Z"}More about this endpoint
The first call a wizard or an agent should make: it turns an opaque credential into a name a human can confirm before anything is created under it.
Carries no billing state and no member list -- those are a different scope and, in the case of the member list, not something a machine credential should enumerate.
Errors401 · 403 · 404 · 500
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.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