> For the complete documentation index, see [llms.txt](https://developers.gamma.app/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://developers.gamma.app/analytics/get-gamma-card-analytics.md).

# GET /gammas/{gammaId}/analytics/cards

Retrieve per-card engagement stats for a single Gamma.

## Get per-card analytics

> Returns per-card engagement data for a Gamma: view time (absolute seconds) and viewer reach (percentage) per card. Requires at least edit permission on the Gamma. When the API key's user has manage permission the data covers all viewers (\`scope: "all"\`); otherwise it covers only that user's own activity (\`scope: "self"\`). Data is eventually consistent (\~hourly).

```json
{"openapi":"3.0.0","info":{"title":"Gamma Public API","version":"1.0"},"tags":[{"name":"public-api","description":"Public API endpoints for external integrations"}],"servers":[{"url":"https://public-api.gamma.app","description":"Production"}],"security":[{"api-key":[]}],"components":{"securitySchemes":{"api-key":{"type":"apiKey","in":"header","name":"X-API-KEY","description":"API key for authentication"}},"schemas":{"GammaCardAnalytics":{"type":"object","properties":{"scope":{"description":"Which activity the card stats cover: `all` — every viewer of the Gamma\n(the API key's user has manage permission); `self` — only the API key\nuser's own activity (edit permission).","enum":["all","self"],"type":"string"},"gammaId":{"type":"string","description":"The Gamma (file) ID"},"uniqueViewers":{"type":"number","description":"Total unique viewers for the Gamma"},"uniqueEditors":{"type":"number","description":"Total unique editors"},"cardCount":{"type":"number","description":"Number of cards in the Gamma"},"cards":{"description":"Per-card engagement stats for every card in the Gamma, ordered by card\nposition. Cards with no recorded activity have zeroed stats.","type":"array","items":{"$ref":"#/components/schemas/CardAnalyticsEntry"}}},"required":["scope","gammaId","uniqueViewers","uniqueEditors","cardCount","cards"]},"CardAnalyticsEntry":{"type":"object","properties":{"cardId":{"type":"string","description":"The card ID within the Gamma"},"cardName":{"type":"string","nullable":true,"description":"Title of the card, or null if the card has no discernible title"},"cardPosition":{"type":"number","description":"1-indexed position of the card within the Gamma"},"viewTimeSeconds":{"type":"number","description":"Total view time across all viewers, in seconds"},"viewersPercent":{"type":"number","description":"Percentage of unique viewers who viewed this card (0-100)"}},"required":["cardId","cardName","cardPosition","viewTimeSeconds","viewersPercent"]}}},"paths":{"/v1.0/gammas/{gammaId}/analytics/cards":{"get":{"description":"Returns per-card engagement data for a Gamma: view time (absolute seconds) and viewer reach (percentage) per card. Requires at least edit permission on the Gamma. When the API key's user has manage permission the data covers all viewers (`scope: \"all\"`); otherwise it covers only that user's own activity (`scope: \"self\"`). Data is eventually consistent (~hourly).","operationId":"getGammaCardAnalytics","parameters":[{"name":"gammaId","required":true,"in":"path","description":"The ID of the Gamma — accepts a gamma (file) ID or a page/doc ID (the ID in a gamma.app/docs/<id> URL).","schema":{"type":"string"}}],"responses":{"200":{"description":"Card analytics retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GammaCardAnalytics"}}}},"400":{"description":"Invalid request parameters"},"401":{"description":"Invalid or missing API key"},"403":{"description":"Access denied — at least edit permission required"},"404":{"description":"Gamma not found"}},"summary":"Get per-card analytics","tags":["public-api"]}}}}
```

{% hint style="info" %}
Accepts either the API file ID or the doc ID from a `gamma.app/docs/...` URL. Requires at least edit permission on the Gamma. The response `scope` field is `all` when the API key owner has manage permission (stats cover every viewer) or `self` when they have edit permission only (stats cover that user's activity). The `cards` array includes every card in the Gamma, ordered by `cardPosition` (1-indexed). Each row has `cardName` (the card title, or `null` if none) and zeroed `viewTimeSeconds` / `viewersPercent` when there is no recorded activity. Metrics are eventually consistent and update about hourly.
{% endhint %}

## Related

* [GET /gammas/{gammaId}/analytics](/analytics/get-gamma-analytics.md) for doc-level totals and daily breakdown
* [GET /gammas/{gammaId}/analytics/viewers](/analytics/get-gamma-viewer-analytics.md) for per-viewer engagement rows
* [GET /gammas/{gammaId}](/management/get-gamma.md) for title, thumbnail, and URL metadata
* [Error codes](/reference/error-codes.md) for authentication and permission failures


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://developers.gamma.app/analytics/get-gamma-card-analytics.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
