canonical: https://jentic.com/apis/googleapis.com/youtube-reporting

# Google YouTube Reporting API

The YouTube Reporting API schedules and downloads bulk CSV reports of YouTube channel and content analytics. Clients pick a reportType, create a recurring job, and pull the daily report files generated against the authorised channel. This is the right API for warehousing, backfilling, and large-scale analytics work where parameterised live queries are impractical; YouTube Analytics handles the ad-hoc, real-time use case.

## For AI agents

Schedule recurring bulk CSV exports of YouTube channel analytics and download the resulting report files. For warehousing and historical backfill rather than live queries.

## Scope

Does not handle real-time parameterised queries, video uploads, comment moderation, or non-YouTube data exports - use for scheduled bulk CSV exports of YouTube analytics only.

## Capabilities

- List available reportTypes covering channel, content owner, and ad performance
- Create a recurring reporting job for a chosen reportType
- List existing jobs and pull the reports they have produced
- Download a specific report CSV by its resourceName
- Delete a reporting job that is no longer needed

## Use cases

### Warehouse load of channel analytics

Data teams pull historical channel and video analytics into BigQuery or another warehouse by creating reporting jobs for the relevant reportTypes and downloading the daily CSVs. Because reports are pre-computed by YouTube, they are far cheaper to consume than running parameterised analytics queries every hour. Backfills run by enumerating /v1/jobs/{jobId}/reports across past days.

Example prompt: Create a job for reportType channel_basic_a2 via POST /v1/jobs, then list /v1/jobs/{jobId}/reports for a date range and download each via /v1/media/{resourceName}.

### Multi-channel network reporting

Networks managing many channels prefer the Reporting API for its content-owner reportTypes that aggregate across an entire network in a single CSV. This avoids running thousands of per-channel analytics queries and produces a clean partitioned dataset suitable for downstream BI work. The reportTypes endpoint advertises which content-owner reports the authorised account can subscribe to.

Example prompt: List available reportTypes, find ones starting with content_owner_, create jobs for the relevant types, and store the resulting CSVs partitioned by date.

### Ad performance backfill

Teams analysing monetisation pull ad-performance reportTypes - covering ad impressions, monetised playbacks, and partner revenue - into the warehouse alongside content metrics. This produces a unified dataset for forecasting and creator payout reconciliation. Because the API is bulk and idempotent, late-arriving corrections from YouTube can be re-pulled without complex deduplication logic.

Example prompt: Create a reporting job for an ad-performance reportType, then daily download the latest report and load it into a warehouse table partitioned by date.

### Agent-driven backfill orchestration through Jentic

A data-platform agent can manage YouTube reporting jobs - creating, pausing, and re-pulling reports during a backfill - through Jentic without engineers writing job-management code. The agent searches Jentic for create youtube reporting job, loads the operation schema, and executes against each reportType. Tokens stay isolated in your Jentic One instance.

Example prompt: Through Jentic, list reportTypes, create a job for each one the team needs, and emit a list of jobIds and the first reports each one produced.

## Key endpoints

| Method | Path | Description |
| --- | --- | --- |
| GET | /v1/reportTypes | List available report types |
| POST | /v1/jobs | Create a reporting job |
| GET | /v1/jobs | List existing jobs |
| GET | /v1/jobs/{jobId}/reports | List reports for a job |
| GET | /v1/jobs/{jobId}/reports/{reportId} | Get report metadata |
| GET | /v1/media/{+resourceName} | Download a report CSV |

## Key resources

- **jobs** — Recurring reporting jobs that produce daily CSVs
- **reports** — Generated report files associated with a job
- **reportTypes** — Catalogue of available report formats
- **media** — Endpoint that streams the actual CSV bytes

## Why Jentic

- **Setup:** Wiring the YouTube Reporting API by hand means setting up OAuth 2.0 with the authorising user's refresh token, refreshing access tokens, and matching job and report download calls against the youtubereporting.googleapis.com host. Through Jentic you install once, import the YouTube Reporting API from the API Directory, store the OAuth credential once, and your agent calls it.
- **Permission scoping:** The YouTube Reporting API puts the reporting job in the URL path (/v1/jobs/{jobId}/reports), so a rule can pin your agent to one job: it can list and download that job's reports and nothing else. You choose the operations it may call, so creating new jobs is not included unless you add it.
- **Credential handling:** Your YouTube Reporting OAuth credential is stored once, encrypted, by your own Jentic One instance and injected at execution time. Its refresh token never enters the agent's prompt, logs, or context.
- **Discovery method:** Agents search Jentic by intent such as 'create a bulk reporting job' or 'list available report types', and Jentic returns the matching jobs or reportTypes operation with its input schema so the agent calls the right endpoint without browsing the reference docs.

## Related APIs

- **YouTube Analytics API** — Real-time parameterised analytics queries instead of bulk CSV exports
- **YouTube Data API** — Channel and video metadata to join against report rows
- **Google Drive API** — Store downloaded CSV reports for sharing with non-warehouse users

## FAQ

### What authentication does the YouTube Reporting API use?

OAuth 2.0 (Oauth2 and Oauth2c schemes) with the youtube.readonly or yt-analytics.readonly scope for channel reports, and yt-analytics-monetary.readonly for monetary data. Through Jentic the OAuth credentials are stored encrypted and short-lived access tokens are minted at execution time.

### How is this different from the YouTube Analytics API?

Reporting produces scheduled bulk CSVs that you download and load into a warehouse. Analytics returns parameterised JSON results in real time. Reporting is cheaper and easier for backfills; Analytics is better for live dashboards. Most data teams use both for different layers of their stack.

### What are the rate limits for the YouTube Reporting API?

Per-project quotas are managed in the Cloud Console under APIs and Services and are sized for job creation and report download volume. Job creation limits are low because reports run server-side; download throughput is the more common bound and depends on report size.

### How do I create a reporting job through Jentic?

Search Jentic for create youtube reporting job, load the schema for POST /v1/jobs, and execute it with reportTypeId set to the desired type from /v1/reportTypes. The response includes the jobId; subsequent reports show up under /v1/jobs/{jobId}/reports daily.

### How do I download a report file?

Each report has a resourceName. Call GET /v1/media/{+resourceName} to stream the CSV. The endpoint returns the raw report bytes; clients should write directly to disk or to a warehouse staging bucket rather than buffering in memory for large reports.

### Can I limit what my agent is allowed to do with the YouTube Reporting API?

Yes. Jentic One is self-hosted, so your own rules decide which YouTube Reporting operations and which OAuth credential the agent may use. Because this API puts the reporting job in the URL path, such as /v1/jobs/{jobId}/reports, you can pin the agent to a single job so it only lists and downloads that job's report CSVs and nothing else. You choose the operations it may call, so creating new jobs via POST /v1/jobs or deleting jobs stays off unless you explicitly add it.
