Data reference · Google Tag Manager
Every Google Tag Manager metric and dimension you can ask for.
GTM is configuration, not reporting, so this reference lists entities instead of metrics: the containers, tags, triggers and variables the gtm_list tools read when you ask what is deployed where. Everything is read-only; nothing here can publish or change a container.
Source: GTM API v2, read scopes · Updated August 2026
Accounts and containers
9 fieldsThe top of the tree: what exists and where it runs.
Try it in Claude, ChatGPT or Copilot Studio
| Field | Type | What it is |
|---|---|---|
account.accountId | Dimension | Numeric GTM account ID. |
account.name | Dimension | Account display name. |
container.containerId | Dimension | Numeric container ID. |
container.publicId | Dimension | The GTM-XXXXXXX code on the page. “which containers do we have” |
container.name | Dimension | Container display name. |
container.usageContext | Dimension | web, iOS, Android or server. “list server-side containers” |
container.notes | Dimension | Free-text notes on the container. |
workspace.workspaceId | Dimension | Workspace being read. |
workspace.name | Dimension | Workspace name, usually Default Workspace. |
Tags
12 fieldsWhat fires. Type codes are the API's shorthand for tag templates.
Try it in Claude, ChatGPT or Copilot Studio
| Field | Type | What it is |
|---|---|---|
tag.tagId | Dimension | Numeric tag ID. |
tag.name | Dimension | Tag display name. “list all tags in container X” |
tag.type | Dimension | Template code: googtag, gaawe, html, sp, cvt_ custom templates. “which custom HTML tags exist” |
tag.type:googtag | Dimension | The Google tag: GA4 config layer. |
tag.type:gaawe | Dimension | GA4 event tag. |
tag.type:html | Dimension | Custom HTML: the audit hotspot. |
tag.firingTriggerId | Dimension | Triggers that fire the tag. “what fires the purchase tag” |
tag.blockingTriggerId | Dimension | Triggers that block it. |
tag.paused | Dimension | true when the tag is paused. “any paused tags left behind” |
tag.tagFiringOption | Dimension | Once per event, once per load, or unlimited. |
tag.priority | Dimension | Firing priority number. |
tag.parameter | Dimension | The tag's settings: IDs, event names, field values. |
Triggers
14 fieldsWhen things fire. Types map to the trigger picker in the UI.
Try it in Claude, ChatGPT or Copilot Studio
| Field | Type | What it is |
|---|---|---|
trigger.triggerId | Dimension | Numeric trigger ID. |
trigger.name | Dimension | Trigger display name. |
trigger.type | Dimension | pageview, click, customEvent, and the rest below. “list triggers by type” |
trigger.type:pageview | Dimension | Page View. |
trigger.type:domReady | Dimension | DOM Ready. |
trigger.type:windowLoaded | Dimension | Window Loaded. |
trigger.type:click | Dimension | All Elements click. |
trigger.type:linkClick | Dimension | Just Links click. |
trigger.type:formSubmission | Dimension | Form Submit. |
trigger.type:customEvent | Dimension | dataLayer event by name: the workhorse. “triggers listening for purchase” |
trigger.type:historyChange | Dimension | SPA route changes. |
trigger.type:scrollDepth | Dimension | Scroll depth thresholds. |
trigger.type:elementVisibility | Dimension | Element visibility. |
trigger.filter | Dimension | The conditions on the trigger. |
Variables
10 fieldsWhere values come from. Type codes again.
Try it in Claude, ChatGPT or Copilot Studio
| Field | Type | What it is |
|---|---|---|
variable.variableId | Dimension | Numeric variable ID. |
variable.name | Dimension | Variable display name. |
variable.type | Dimension | v dataLayer, jsm custom JS, c constant, k cookie, u URL, remm lookup. “list all dataLayer variables” |
variable.type:v | Dimension | Data Layer Variable. |
variable.type:jsm | Dimension | Custom JavaScript. “audit custom JS variables” |
variable.type:c | Dimension | Constant. |
variable.type:k | Dimension | First-party cookie. |
variable.type:u | Dimension | URL component. |
variable.type:remm | Dimension | RegEx or lookup table. |
variable.parameter | Dimension | The variable's configuration. |
Versions and publishing
6 fieldsWhat is actually live versus what is drafted.
Try it in Claude, ChatGPT or Copilot Studio
| Field | Type | What it is |
|---|---|---|
containerVersion.containerVersionId | Dimension | Version number. |
containerVersion.name | Dimension | Version name given at publish. |
containerVersion.description | Dimension | Publish notes. |
liveVersion | Dimension | The version currently serving: the truth on the site. “summarize the live version of container X” |
containerVersion.fingerprint | Dimension | Change fingerprint for the version. |
builtInVariable.type | Dimension | Which built-ins are enabled: Click URL, Page Path and friends. |
Good to know
Google Tag Manager questions.
Can the assistant change or publish anything?
No. The GTM tools are read-only by scope: they can list and describe, never create, edit, pause or publish. Audits are safe by construction.
What are those short type codes like gaawe and jsm?
The API's template identifiers. The assistant translates them: gaawe is a GA4 event tag, jsm a custom JavaScript variable, remm a lookup table, and so on, so you can ask in plain words.
Does this see workspace drafts or what is live?
Both, and it keeps them apart: workspace reads show the draft state, while the live version summary reflects exactly what the published container does on your site.
Does it work for server-side containers?
Yes. Server containers list the same way with usageContext server, including their clients and transport tags.
Next