For the complete documentation index, see llms.txt. This page is also available as Markdown.

GET /gammas/{gammaId}/analytics/viewers/{userId}

Returns one viewer's engagement with a Gamma: display name, email, last-opened time, cards viewed, and per-card view time as a percentage of that viewer's total.

Retrieve per-card engagement for a single authenticated viewer.

Get single-viewer analytics

get

Returns one viewer's engagement with a Gamma: display name, email, last-opened time, cards viewed, and the relative time spent on each card (percentage of that viewer's total view time). Only authenticated viewers are addressable. Requires at least edit permission on the Gamma. When the API key's user has manage permission any viewer is addressable (scope: "all"); otherwise only the API key user's own activity is addressable (scope: "self"). Data is eventually consistent (~hourly).

Authorizations
X-API-KEYstringRequired

API key for authentication

Path parameters
gammaIdstringRequired

The ID of the Gamma — accepts a gamma (file) ID or a page/doc ID (the ID in a gamma.app/docs/ URL).

Example: abc123xyz
userIdstringRequired

The viewer's user ID — the viewerId returned by the viewers list endpoint for authenticated viewers.

Example: user_abc123
Responses
200

Viewer analytics retrieved successfully

application/json
scopestring · enumRequired

Which viewers are addressable: all — any viewer of the Gamma (the API key's user has manage permission); self — only the API key user's own activity (edit permission).

Example: allPossible values:
gammaIdstringRequired

The Gamma (file) ID

Example: abc123xyz
userIdstringRequired

The viewer's user ID

Example: user_abc123
displayNamestring · nullableRequired

Display name of the viewer

Example: Jane Doe
emailstring · nullableRequired

Email of the viewer

Example: jane@example.com
lastOpenedstring · nullableRequired

ISO-8601 timestamp of the viewer's most recent Gamma open/view, or null if unknown

Example: 2026-06-28T14:30:00.000Z
cardsViewednumberRequired

Number of cards this viewer has viewed, counting only cards currently in the Gamma

Example: 8
cardCountnumberRequired

Total number of cards in the Gamma (the denominator for cardsViewed)

Example: 12
get/v1.0/gammas/{gammaId}/analytics/viewers/{userId}
GET /v1.0/gammas/{gammaId}/analytics/viewers/{userId} HTTP/1.1
Host: public-api.gamma.app
X-API-KEY: YOUR_API_KEY
Accept: */*
{
  "scope": "all",
  "gammaId": "abc123xyz",
  "userId": "user_abc123",
  "displayName": "Jane Doe",
  "email": "jane@example.com",
  "lastOpened": "2026-06-28T14:30:00.000Z",
  "cardsViewed": 8,
  "cardCount": 12,
  "perCardTimeSpent": [
    {
      "cardId": "card_abc123",
      "cardName": "Introduction",
      "cardPosition": 1,
      "viewTimePercent": 34
    }
  ]
}

Requires at least edit permission on the Gamma. Pass the viewerId from GET /gammas/{gammaId}/analytics/viewers as userId. Only authenticated viewers are addressable. The response scope field is all when the API key owner has manage permission (any viewer is addressable) or self when they have edit permission only (only that user's own activity). perCardTimeSpent covers every card in the Gamma, ordered by cardPosition (1-indexed), with cardName on each row (null when the card has no discernible title). Cards the viewer has never viewed have viewTimePercent of 0. Metrics are eventually consistent and update about hourly.

Last updated

Was this helpful?