YouTube Reporting API
Stay organized with collections
Save and categorize content based on your preferences.
The YouTube Reporting API enables developers to schedule reporting jobs and then download generated bulk reports. The API supports a predefined set of reports, each of which contains a comprehensive set of YouTube Analytics data for a channel or content owner.
The steps below explain how to schedule reporting jobs and retrieve reports:
- Call the
reportTypes.list()
method to retrieve a list of reports that a channel or content owner can retrieve. - Call the
jobs.create()
method to identify a report that should be generated for a channel or content owner. You can subsequently use the API's jobs.list()
and jobs.delete()
to retrieve or change the list of reports being generated. - Call the
jobs.reports.list()
method to retrieve a list of reports that have been generated for a particular job. Each resource in the response contains a downloadUrl
property that specifies the URL from which the report can be downloaded. - Send an authorized
GET
request to retrieve the report from the download URL.
Authorization
All YouTube Reporting API requests must be authorized. The Authorization guide explains how to use the OAuth 2.0 protocol to retrieve authorization tokens.
YouTube Reporting API requests use the following authorization scopes:
Scopes |
https://www.googleapis.com/auth/yt-analytics.readonly |
View YouTube Analytics reports for your YouTube content. This scope provides access to user activity metrics, like view counts and rating counts. |
https://www.googleapis.com/auth/yt-analytics-monetary.readonly |
View YouTube Analytics monetary reports for your YouTube content. This scope provides access to user activity metrics and to estimated revenue and ad performance metrics. |
Resource types
The following sections provide general descriptions of the API's resources and methods. All method URIs shown in the tables are relative to https://youtubereporting.googleapis.com
.
Methods |
create |
POST /v1/jobs
Creates a reporting job. By creating a reporting job, you are instructing YouTube to generate that report on a daily basis. The report is available within 24 hours of the time that the job is created. |
delete |
DELETE /v1/jobs/{jobId}
Deletes a reporting job. |
get |
GET /v1/jobs/{jobId}
Retrieves information about a specific reporting job that has been scheduled for a channel or content owner. |
list |
GET /v1/jobs
Lists reporting jobs that have been scheduled for a channel or content owner. Each resource in the response contains an id property, which specifies the ID that YouTube uses to uniquely identify the job. You need that ID to retrieve the list of reports that have been generated for the job or to delete the job. |
Methods |
get |
GET /v1/jobs/{jobId}/reports/{reportId}
Retrieves the metadata for a specific report. |
list |
GET /v1/jobs/{jobId}/reports
Lists reports that have been generated for the specified reporting job. |
Methods |
list |
GET /v1/reportTypes
Returns a list of report types that the channel or content owner can retrieve. |
Except as otherwise noted, the content of this page is licensed under the Creative Commons Attribution 4.0 License, and code samples are licensed under the Apache 2.0 License. For details, see the Google Developers Site Policies. Java is a registered trademark of Oracle and/or its affiliates.
Last updated 2025-08-20 UTC.
[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Missing the information I need","missingTheInformationINeed","thumb-down"],["Too complicated / too many steps","tooComplicatedTooManySteps","thumb-down"],["Out of date","outOfDate","thumb-down"],["Samples / code issue","samplesCodeIssue","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2025-08-20 UTC."],[[["\u003cp\u003eThe YouTube Reporting API allows developers to schedule and download bulk reports containing comprehensive YouTube Analytics data for channels or content owners.\u003c/p\u003e\n"],["\u003cp\u003eDevelopers can use the API to retrieve a list of available reports, create jobs to generate reports, and manage these jobs through listing and deletion.\u003c/p\u003e\n"],["\u003cp\u003eGenerated reports can be downloaded via a specified URL obtained from the API's response, after retrieving them by using the \u003ccode\u003ejobs.reports.list()\u003c/code\u003e method.\u003c/p\u003e\n"],["\u003cp\u003eThe API requires OAuth 2.0 authorization, and provides scopes for viewing user activity metrics (\u003ccode\u003ehttps://www.googleapis.com/auth/yt-analytics.readonly\u003c/code\u003e) and monetary reports (\u003ccode\u003ehttps://www.googleapis.com/auth/yt-analytics-monetary.readonly\u003c/code\u003e).\u003c/p\u003e\n"]]],["Developers use the YouTube Reporting API to schedule and download bulk reports containing YouTube Analytics data. Key actions include: listing available report types via `reportTypes.list()`, creating reporting jobs with `jobs.create()`, and managing jobs using `jobs.list()` and `jobs.delete()`. To get data, retrieve generated reports for a specific job with `jobs.reports.list()`, each with a downloadable URL. Finally, you can request the download using the given URL. All actions require authorization via OAuth 2.0.\n"],null,["The YouTube Reporting API enables developers to schedule reporting jobs and then download generated bulk reports. The API supports a predefined set of reports, each of which contains a comprehensive set of YouTube Analytics data for a channel or content owner.\n\nThe steps below explain how to schedule reporting jobs and retrieve reports:\n\n1. Call the [reportTypes.list()](/youtube/reporting/v1/reference/rest/v1/reportTypes/list) method to retrieve a list of reports that a channel or content owner can retrieve.\n2. Call the [jobs.create()](/youtube/reporting/v1/reference/rest/v1/jobs/create) method to identify a report that should be generated for a channel or content owner. You can subsequently use the API's [jobs.list()](/youtube/reporting/v1/reference/rest/v1/jobs/list) and [jobs.delete()](/youtube/reporting/v1/reference/rest/v1/jobs/delete) to retrieve or change the list of reports being generated.\n3. Call the [jobs.reports.list()](/youtube/reporting/v1/reference/rest/v1/jobs.reports/list) method to retrieve a list of reports that have been generated for a particular job. Each resource in the response contains a [downloadUrl](/youtube/reporting/v1/reference/rest/v1/jobs.reports#downloadUrl) property that specifies the URL from which the report can be downloaded.\n4. Send an authorized `GET` request to retrieve the report from the download URL.\n\n\u003cbr /\u003e\n\nAuthorization\n\nAll YouTube Reporting API requests must be authorized. The [Authorization guide](/youtube/reporting/guides/authorization) explains how to use the OAuth 2.0 protocol to retrieve authorization tokens.\n\nYouTube Reporting API requests use the following authorization scopes:\n\n| Scopes ||\n|----------------------------------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\n| https://www.googleapis.com/auth/yt-analytics.readonly | View YouTube Analytics reports for your YouTube content. This scope provides access to user activity metrics, like view counts and rating counts. |\n| https://www.googleapis.com/auth/yt-analytics-monetary.readonly | View YouTube Analytics monetary reports for your YouTube content. This scope provides access to user activity metrics and to estimated revenue and ad performance metrics. |\n\nResource types\n\nThe following sections provide general descriptions of the API's resources and methods. All method URIs shown in the tables are relative to `https://youtubereporting.googleapis.com`.\n\n[jobs](/youtube/reporting/v1/reference/rest/v1/jobs)\n\n| Methods ||\n|---------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\n| [create](/youtube/reporting/v1/reference/rest/v1/jobs/create) | `POST /v1/jobs` Creates a reporting job. By creating a reporting job, you are instructing YouTube to generate that report on a daily basis. The report is available within 24 hours of the time that the job is created. |\n| [delete](/youtube/reporting/v1/reference/rest/v1/jobs/delete) | `DELETE /v1/jobs/{jobId}` Deletes a reporting job. |\n| [get](/youtube/reporting/v1/reference/rest/v1/jobs/get) | `GET /v1/jobs/{jobId}` Retrieves information about a specific reporting job that has been scheduled for a channel or content owner. |\n| [list](/youtube/reporting/v1/reference/rest/v1/jobs/list) | `GET /v1/jobs` Lists reporting jobs that have been scheduled for a channel or content owner. Each resource in the response contains an `id` property, which specifies the ID that YouTube uses to uniquely identify the job. You need that ID to retrieve the list of reports that have been generated for the job or to delete the job. |\n\n[jobs.reports](/youtube/reporting/v1/reference/rest/v1/jobs.reports)\n\n| Methods ||\n|-------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------|\n| [get](/youtube/reporting/v1/reference/rest/v1/jobs.reports/get) | `GET /v1/jobs/{jobId}/reports/{reportId}` Retrieves the metadata for a specific report. |\n| [list](/youtube/reporting/v1/reference/rest/v1/jobs.reports/list) | `GET /v1/jobs/{jobId}/reports` Lists reports that have been generated for the specified reporting job. |\n\n[reportTypes](/youtube/reporting/v1/reference/rest/v1/reportTypes)\n\n| Methods ||\n|------------------------------------------------------------------|------------------------------------------------------------------------------------------------------|\n| [list](/youtube/reporting/v1/reference/rest/v1/reportTypes/list) | `GET /v1/reportTypes` Returns a list of report types that the channel or content owner can retrieve. |"]]