---
updatedAt: 2026-04-20T20:28:50.000Z
agentTools:
  projectIndex: https://docs.wistia.com/llms.txt
---

# Show Webinar Registration Timeseries

Retrieve registration timeseries data for a webinar with configurable
granularity. Returns an array of timestamped registration metric buckets
including impressions, registrations, and completion rates.


## Requires api token with one of the following permissions
```
Read detailed stats
```

Tokens with the "Act with a team member's permissions" permission
(`all:delegate_to_contact_permissions` scope) can also be used. Requests
made with such a token are authorized using the permissions of the
contact assigned to the token.

An [expiring access token](https://docs.wistia.com/reference/post_expiring-token)
created with the `all:delegate_to_contact_permissions` scope and an
authorization granting the `view-stats` permission on this webinar can also
be used.



# OpenAPI definition

````json
{
  "openapi": "3.1.1",
  "info": {
    "title": "Analytics API",
    "description": "Wistia Analytics API - Bottler-powered analytics endpoints",
    "version": "2026.09.0"
  },
  "servers": [
    {
      "url": "https://api.wistia.com/modern"
    }
  ],
  "security": [
    {
      "BearerAuth": []
    }
  ],
  "tags": [
    {
      "name": "Analytics:Webinar"
    }
  ],
  "paths": {
    "/analytics/webinars/{webinarId}/registration": {
      "get": {
        "summary": "Show Webinar Registration Timeseries",
        "x-speakeasy-group": "analyticsWebinar",
        "x-speakeasy-name-override": "getRegistration",
        "description": "Retrieve registration timeseries data for a webinar with configurable\ngranularity. Returns an array of timestamped registration metric buckets\nincluding impressions, registrations, and completion rates.\n\n\n## Requires api token with one of the following permissions\n```\nRead detailed stats\n```\n\nTokens with the \"Act with a team member's permissions\" permission\n(`all:delegate_to_contact_permissions` scope) can also be used. Requests\nmade with such a token are authorized using the permissions of the\ncontact assigned to the token.\n\nAn [expiring access token](https://docs.wistia.com/reference/post_expiring-token)\ncreated with the `all:delegate_to_contact_permissions` scope and an\nauthorization granting the `view-stats` permission on this webinar can also\nbe used.\n\n",
        "parameters": [
          {
            "name": "webinarId",
            "in": "path",
            "description": "The hashed ID of the webinar.",
            "required": true,
            "schema": {
              "description": "The hashed ID of the webinar (e.g., \"abc123xyz\")",
              "type": "string"
            }
          },
          {
            "name": "granularity",
            "in": "query",
            "description": "The time granularity for the timeseries data.",
            "required": true,
            "schema": {
              "type": "string",
              "enum": [
                "daily",
                "weekly",
                "monthly"
              ]
            }
          },
          {
            "name": "include_post_event",
            "in": "query",
            "description": "Whether to include on-demand viewing data after the live event ended.",
            "required": false,
            "schema": {
              "type": "boolean",
              "default": false
            }
          },
          {
            "name": "post_event_start_date",
            "in": "query",
            "description": "Start date for the post-event analytics period in ISO 8601 format (YYYY-MM-DD). Inclusive — the range starts at the beginning of this date. Only used when include_post_event is true.",
            "required": false,
            "schema": {
              "type": "string",
              "format": "date"
            }
          },
          {
            "name": "post_event_end_date",
            "in": "query",
            "description": "End date for the post-event analytics period in ISO 8601 format (YYYY-MM-DD). Exclusive — the range ends before the beginning of this date. Only used when include_post_event is true.",
            "required": false,
            "schema": {
              "type": "string",
              "format": "date"
            }
          },
          {
            "name": "X-Wistia-API-Version",
            "in": "header",
            "required": true,
            "schema": {
              "type": "string",
              "default": "2026-09"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success response with registration timeseries data.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "unevaluatedProperties": false,
                    "allOf": [
                      {
                        "type": "object",
                        "properties": {
                          "timestamp": {
                            "description": "The start of the time bucket in ISO 8601 format.",
                            "type": "string",
                            "format": "date-time"
                          }
                        }
                      },
                      {
                        "type": "object",
                        "properties": {
                          "registrations": {
                            "description": "The number of registrations in this time period.",
                            "type": [
                              "integer",
                              "null"
                            ]
                          },
                          "impressions": {
                            "description": "The number of registration page impressions in this time period.",
                            "type": [
                              "integer",
                              "null"
                            ]
                          },
                          "on_demand_registrations": {
                            "description": "The number of on-demand registrations in this time period.",
                            "type": [
                              "integer",
                              "null"
                            ]
                          },
                          "on_demand_impressions": {
                            "description": "The number of on-demand page impressions in this time period.",
                            "type": [
                              "integer",
                              "null"
                            ]
                          },
                          "completion_rate": {
                            "description": "The completion rate for attendees in this time period (between 0 and 1).",
                            "type": [
                              "number",
                              "null"
                            ],
                            "format": "float"
                          },
                          "on_demand_completion_rate": {
                            "description": "The completion rate for on-demand viewers in this time period (between 0 and 1).",
                            "type": [
                              "number",
                              "null"
                            ],
                            "format": "float"
                          }
                        }
                      }
                    ]
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad request",
            "content": {
              "application/json": {
                "schema": {
                  "unevaluatedProperties": false,
                  "type": "object",
                  "properties": {
                    "error": {
                      "description": "Error message detailing the reason for the bad request.",
                      "type": "string",
                      "examples": [
                        "Bad request"
                      ]
                    },
                    "errors": {
                      "description": "Array of error messages detailing the reasons for the bad request.",
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized, invalid or missing token",
            "content": {
              "application/json": {
                "schema": {
                  "unevaluatedProperties": false,
                  "type": "object",
                  "properties": {
                    "code": {
                      "description": "A machine-readable identifier for the specific authorization failure.",
                      "type": "string",
                      "enum": [
                        "unauthorized_credentials",
                        "account_inactive",
                        "unauthorized_scope",
                        "unauthorized_params"
                      ]
                    },
                    "error": {
                      "type": "string",
                      "examples": [
                        "Invalid credentials."
                      ]
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Forbidden, token is valid but account does not have access to feature",
            "content": {
              "application/json": {
                "schema": {
                  "unevaluatedProperties": false,
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "string",
                      "examples": [
                        "Webinars are not available on your current plan"
                      ]
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Webinar not found or does not belong to account",
            "content": {}
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "unevaluatedProperties": false,
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "string",
                      "examples": [
                        "Internal server error"
                      ]
                    }
                  }
                }
              }
            }
          },
          "503": {
            "description": "Analytics service is temporarily unavailable",
            "content": {
              "application/json": {
                "schema": {
                  "unevaluatedProperties": false,
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "string",
                      "examples": [
                        "Analytics service is temporarily unavailable"
                      ]
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "Analytics:Webinar"
        ],
        "x-readme": {
          "code-samples": [
            {
              "name": "Typescript (SDK)",
              "language": "javascript",
              "code": "import { Wistia } from \"@wistia/wistia-api-client\";\n\nconst wistia = new Wistia({\n  bearerAuth: process.env[\"WISTIA_BEARER_AUTH\"] ?? \"\",\n});\n\nasync function run() {\n  const result = await wistia.analyticsWebinar.getRegistration({\n    webinarId: \"<id>\",\n    granularity: \"monthly\",\n  });\n\n  console.log(result);\n}\n\nrun();"
            }
          ]
        }
      }
    }
  },
  "components": {
    "securitySchemes": {
      "BearerAuth": {
        "type": "http",
        "scheme": "bearer"
      }
    }
  },
  "x-readme": {
    "samples-languages": [
      "javascript",
      "shell",
      "node",
      "python",
      "ruby"
    ]
  }
}
````