openapi: 3.1.0 info: title: YouTube Analytics Analytics Groups LiveStreams API description: 'The YouTube Analytics API enables you to retrieve YouTube Analytics data for channels and content owners. Use this API to generate custom analytics reports, track video performance metrics, monitor audience engagement, and gain insights into viewer demographics and behavior patterns. ## Key Features - Retrieve channel and video performance metrics - Access audience demographics and geographic data - Monitor engagement metrics like likes, comments, and shares - Track revenue and ad performance data (for monetized content) - Generate custom date-range reports ## Authentication All API requests require OAuth 2.0 authentication with appropriate scopes. ' version: 2.0.0 contact: name: Google Developers url: https://developers.google.com/youtube/analytics email: youtube-api-support@google.com license: name: Creative Commons Attribution 3.0 url: http://creativecommons.org/licenses/by/3.0/ identifier: CC-BY-3.0 termsOfService: https://developers.google.com/terms/ x-logo: url: https://www.youtube.com/img/desktop/yt_1200.png servers: - url: https://youtubeanalytics.googleapis.com/v2 description: YouTube Analytics API Production Server security: - OAuth2: - https://www.googleapis.com/auth/yt-analytics.readonly tags: - name: LiveStreams description: Operations for managing YouTube live video streams paths: /liveStreams: get: operationId: youtube.liveStreams.list summary: Youtube List Live Streams description: Returns a list of video streams that match the API request parameters. You can retrieve streams for the authenticated user or retrieve specific streams by their IDs. tags: - LiveStreams parameters: - $ref: '#/components/parameters/part' - name: id in: query description: Comma-separated list of live stream IDs for the resources being retrieved. schema: type: string example: abc123def456 - name: mine in: query description: Set this parameter to true to instruct the API to return only streams owned by the authenticated user. schema: type: boolean example: true - $ref: '#/components/parameters/maxResults' - $ref: '#/components/parameters/pageToken' - $ref: '#/components/parameters/fields' - $ref: '#/components/parameters/key' responses: '200': description: Successful response containing a list of live stream resources. content: application/json: schema: $ref: '#/components/schemas/LiveStreamListResponse' examples: YoutubeLivestreamsList200Example: summary: Default youtube.liveStreams.list 200 response x-microcks-default: true value: kind: youtube#video etag: XI7nbFXulYBIpL0ayR_gDh3eu1k nextPageToken: eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9 prevPageToken: eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9 pageInfo: totalResults: 42 resultsPerPage: 10 items: - kind: youtube#video etag: XI7nbFXulYBIpL0ayR_gDh3eu1k id: abc123def456 cdn: ingestionType: dash ingestionInfo: {} resolution: example_value frameRate: example_value '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' x-microcks-operation: delay: 0 dispatcher: FALLBACK post: operationId: youtube.liveStreams.insert summary: Youtube Create a Live Stream description: Creates a video stream. The stream enables you to send your video to YouTube, which can then broadcast the video to your audience. After creating the stream you must bind it to a broadcast. tags: - LiveStreams parameters: - $ref: '#/components/parameters/part' - $ref: '#/components/parameters/fields' - $ref: '#/components/parameters/key' requestBody: description: The live stream resource to create. required: true content: application/json: schema: $ref: '#/components/schemas/LiveStream' examples: YoutubeLivestreamsInsertRequestExample: summary: Default youtube.liveStreams.insert request x-microcks-default: true value: kind: youtube#video etag: XI7nbFXulYBIpL0ayR_gDh3eu1k id: abc123def456 snippet: channelId: '500123' title: Example Title description: A sample description for this resource. publishedAt: '2026-01-15T10:30:00Z' isDefaultStream: true cdn: ingestionType: dash ingestionInfo: streamName: example_value ingestionAddress: example_value backupIngestionAddress: example_value rtmpsIngestionAddress: example_value backupRtmpsIngestionAddress: example_value resolution: example_value frameRate: example_value status: streamStatus: active healthStatus: status: bad lastUpdateTimeSeconds: 10 configurationIssues: [] contentDetails: boundBroadcastId: '500123' isReusable: true responses: '200': description: Successful response containing the newly created live stream resource. content: application/json: schema: $ref: '#/components/schemas/LiveStream' examples: YoutubeLivestreamsInsert200Example: summary: Default youtube.liveStreams.insert 200 response x-microcks-default: true value: kind: youtube#video etag: XI7nbFXulYBIpL0ayR_gDh3eu1k id: abc123def456 snippet: channelId: '500123' title: Example Title description: A sample description for this resource. publishedAt: '2026-01-15T10:30:00Z' isDefaultStream: true cdn: ingestionType: dash ingestionInfo: streamName: example_value ingestionAddress: example_value backupIngestionAddress: example_value rtmpsIngestionAddress: example_value backupRtmpsIngestionAddress: example_value resolution: example_value frameRate: example_value status: streamStatus: active healthStatus: status: bad lastUpdateTimeSeconds: 10 configurationIssues: [] contentDetails: boundBroadcastId: '500123' isReusable: true '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' x-microcks-operation: delay: 0 dispatcher: FALLBACK put: operationId: youtube.liveStreams.update summary: Youtube Update a Live Stream description: Updates a video stream. If the properties that you want to change cannot be updated, you need to create a new stream with the proper settings. tags: - LiveStreams parameters: - $ref: '#/components/parameters/part' - $ref: '#/components/parameters/fields' - $ref: '#/components/parameters/key' requestBody: description: The live stream resource with updated properties. required: true content: application/json: schema: $ref: '#/components/schemas/LiveStream' examples: YoutubeLivestreamsUpdateRequestExample: summary: Default youtube.liveStreams.update request x-microcks-default: true value: kind: youtube#video etag: XI7nbFXulYBIpL0ayR_gDh3eu1k id: abc123def456 snippet: channelId: '500123' title: Example Title description: A sample description for this resource. publishedAt: '2026-01-15T10:30:00Z' isDefaultStream: true cdn: ingestionType: dash ingestionInfo: streamName: example_value ingestionAddress: example_value backupIngestionAddress: example_value rtmpsIngestionAddress: example_value backupRtmpsIngestionAddress: example_value resolution: example_value frameRate: example_value status: streamStatus: active healthStatus: status: bad lastUpdateTimeSeconds: 10 configurationIssues: [] contentDetails: boundBroadcastId: '500123' isReusable: true responses: '200': description: Successful response containing the updated live stream resource. content: application/json: schema: $ref: '#/components/schemas/LiveStream' examples: YoutubeLivestreamsUpdate200Example: summary: Default youtube.liveStreams.update 200 response x-microcks-default: true value: kind: youtube#video etag: XI7nbFXulYBIpL0ayR_gDh3eu1k id: abc123def456 snippet: channelId: '500123' title: Example Title description: A sample description for this resource. publishedAt: '2026-01-15T10:30:00Z' isDefaultStream: true cdn: ingestionType: dash ingestionInfo: streamName: example_value ingestionAddress: example_value backupIngestionAddress: example_value rtmpsIngestionAddress: example_value backupRtmpsIngestionAddress: example_value resolution: example_value frameRate: example_value status: streamStatus: active healthStatus: status: bad lastUpdateTimeSeconds: 10 configurationIssues: [] contentDetails: boundBroadcastId: '500123' isReusable: true '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' x-microcks-operation: delay: 0 dispatcher: FALLBACK delete: operationId: youtube.liveStreams.delete summary: Youtube Delete a Live Stream description: Deletes a video stream. The authenticated user must own the stream being deleted. Streams bound to active or scheduled broadcasts cannot be deleted. tags: - LiveStreams parameters: - name: id in: query required: true description: The ID of the live stream to delete. schema: type: string example: abc123def456 - $ref: '#/components/parameters/key' responses: '204': description: The live stream was successfully deleted. '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' x-microcks-operation: delay: 0 dispatcher: FALLBACK components: parameters: fields: name: fields in: query description: Selector specifying which fields to include in a partial response. Use this parameter to reduce bandwidth usage by selecting only the fields you need. schema: type: string key: name: key in: query description: API key. Your API key identifies your project and provides you with API access, quota, and reports. Required unless you provide an OAuth 2.0 token. schema: type: string pageToken: name: pageToken in: query description: Identifies a specific page in the result set that should be returned. The nextPageToken property in the API response identifies other pages that are available. schema: type: string part: name: part in: query required: true description: Specifies a comma-separated list of one or more resource properties that the API response will include. The part parameter value must include the id property. schema: type: string maxResults: name: maxResults in: query description: The maximum number of items that should be returned in the result set. Acceptable values are 0 to 50, inclusive. schema: type: integer minimum: 0 maximum: 50 default: 5 schemas: PageInfo: type: object description: Paging details for a list of live streaming resources. properties: totalResults: type: integer description: The total number of results in the result set. example: 42 resultsPerPage: type: integer description: The number of results included in the API response. example: 10 LiveStreamListResponse: type: object description: A list of live stream resources matching the request criteria. properties: kind: type: string description: Identifies the API resource's type. Value is youtube#liveStreamListResponse. default: youtube#liveStreamListResponse example: youtube#video etag: type: string description: The Etag of this resource. example: XI7nbFXulYBIpL0ayR_gDh3eu1k nextPageToken: type: string description: The token for the next page of results. example: eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9 prevPageToken: type: string description: The token for the previous page of results. example: eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9 pageInfo: $ref: '#/components/schemas/PageInfo' items: type: array description: A list of live streams that match the request criteria. items: $ref: '#/components/schemas/LiveStream' example: [] ErrorResponse: type: object description: A standard error response returned by the YouTube Live Streaming API. properties: error: type: object description: The error details. properties: code: type: integer description: The HTTP status code of the error. message: type: string description: A human-readable description of the error. errors: type: array description: A list of individual errors. items: type: object properties: message: type: string description: A human-readable description of the error. domain: type: string description: The domain in which the error occurred. reason: type: string description: The reason for the error. example: example_value LiveStream: type: object description: A liveStream resource contains information about the video stream that you are transmitting to YouTube. The stream provides the content that will be broadcast to YouTube users. required: - kind - etag properties: kind: type: string description: Identifies the API resource's type. Value is youtube#liveStream. default: youtube#liveStream example: youtube#video etag: type: string description: The Etag of this resource. example: XI7nbFXulYBIpL0ayR_gDh3eu1k id: type: string description: The ID that YouTube assigns to uniquely identify the stream. example: abc123def456 snippet: $ref: '#/components/schemas/LiveStreamSnippet' cdn: type: object description: The cdn object defines the live stream's content delivery network (CDN) settings. properties: ingestionType: type: string description: The method or protocol used to transmit the video stream. enum: - dash - rtmp - webrtc ingestionInfo: type: object description: The ingestionInfo object contains information that YouTube provides that you need to transmit your RTMP or HTTP stream to YouTube. properties: streamName: type: string description: The stream name that YouTube assigns to the video stream. ingestionAddress: type: string description: The primary ingestion URL that you should use to stream video to YouTube. backupIngestionAddress: type: string description: The backup ingestion URL that you should use to stream video to YouTube. rtmpsIngestionAddress: type: string description: The primary secured ingestion URL that you should use to stream video to YouTube. backupRtmpsIngestionAddress: type: string description: The backup secured ingestion URL that you should use to stream video to YouTube. resolution: type: string description: The resolution of the inbound video data. frameRate: type: string description: The frame rate of the inbound video data. example: example_value status: $ref: '#/components/schemas/LiveStreamStatus' contentDetails: $ref: '#/components/schemas/LiveStreamContentDetails' LiveStreamSnippet: type: object description: Basic details about a live stream including its title, description, and channel association. properties: channelId: type: string description: The ID of the channel to which this stream is affiliated. example: '500123' title: type: string description: The stream's title. The value must be between 1 and 128 characters long. example: Example Title description: type: string description: The stream's description. The value cannot be longer than 10000 characters. example: A sample description for this resource. publishedAt: type: string format: date-time description: The date and time that the stream was created. example: '2026-01-15T10:30:00Z' isDefaultStream: type: boolean description: Indicates whether this stream is the default stream. example: true LiveStreamContentDetails: type: object description: Detailed settings for a live stream including the stream key and ingestion settings. properties: boundBroadcastId: type: string description: The ID of the live broadcast to which this stream is bound. example: '500123' isReusable: type: boolean description: Indicates whether the stream is reusable, which means that it can be bound to multiple broadcasts. example: true LiveStreamStatus: type: object description: Status information about a live stream including its stream status and health status. properties: streamStatus: type: string description: The stream's current status. enum: - active - created - error - inactive - ready example: active healthStatus: type: object description: The health status of the stream. properties: status: type: string description: The status code of this stream. enum: - bad - good - noData - ok - revoked lastUpdateTimeSeconds: type: integer format: int64 description: The last time this status was updated, as a Unix timestamp. configurationIssues: type: array description: The configurations issues on this stream. items: type: object properties: type: type: string description: The kind of error happening. severity: type: string description: How severe this issue is to the stream. enum: - error - info - warning reason: type: string description: The short-form reason for this issue. description: type: string description: The long-form description of the issue and how to resolve it. example: example_value responses: Unauthorized: description: The request was not authenticated or the credentials are invalid. content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' BadRequest: description: The request was invalid or malformed. content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' NotFound: description: The specified resource was not found. content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' Forbidden: description: The request was authenticated but the caller does not have permission to perform the requested operation. content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' securitySchemes: OAuth2: type: oauth2 description: OAuth 2.0 authentication for YouTube Analytics API flows: authorizationCode: authorizationUrl: https://accounts.google.com/o/oauth2/auth tokenUrl: https://oauth2.googleapis.com/token scopes: https://www.googleapis.com/auth/youtube: Manage your YouTube account https://www.googleapis.com/auth/youtube.readonly: View your YouTube account https://www.googleapis.com/auth/yt-analytics.readonly: View YouTube Analytics reports https://www.googleapis.com/auth/yt-analytics-monetary.readonly: View YouTube Analytics monetary reports externalDocs: description: YouTube Analytics API Documentation url: https://developers.google.com/youtube/analytics