# About YouTube v3
A drop-in HTTP interface to YouTube's public data — channels, videos, playlists, comments, captions and search — without OAuth flows, Google Cloud projects, or daily quota units to budget against.
If you already know the official YouTube Data API v3, you already know this one. Resource names, `part` semantics, query parameters and response shapes follow the same model, so porting existing code usually means changing the base URL and swapping the auth header.
---
## Why use it
**No Google Cloud setup.** No project creation, no OAuth consent screen, no service account JSON. One API key from your JoJAPI dashboard and you're sending requests.
**No quota-unit math.** The official API charges different unit costs per endpoint, which makes capacity planning awkward. Here every request costs a flat **1 credit**, so your usage is trivially predictable.
**Familiar surface.** Built to mirror the official resource model, including `part`, `maxResults`, `pageToken` and the standard pagination envelope.
**One key across APIs.** The same `X-JoJAPI-Key` works across every API in your JoJAPI account — one dashboard for keys, usage and billing.
---
## Endpoints
14 read endpoints, all `GET`:
| Area | Endpoints |
|---|---|
| Channels | `Channels`, `ChannelSections`, `Activities`, `Subscriptions` |
| Videos | `Videos`, `VideoCategories`, `Captions` |
| Playlists | `Playlists`, `PlaylistItems` |
| Comments | `Comments`, `CommentThreads` |
| Discovery | `Search` |
| Metadata | `I18nLanguages`, `I18nRegions` |
Full parameter reference for each is in the **Documentation** tab, with a live playground you can fire requests from before writing any code.
---
## Base URL
```
https://youtube-v3.jojapi.net/
```
## Authentication
Send your key in the `X-JoJAPI-Key` header:
```bash
curl -H "X-JoJAPI-Key: YOUR_KEY" \
"https://youtube-v3.jojapi.net/videos/?part=snippet,statistics&id=dQw4w9WgXcQ"
```
```javascript
const res = await fetch(
"https://youtube-v3.jojapi.net/channels/?part=snippet,statistics&id=UC_x5XG1OV2P6uZZ5FSM9Ttw",
{ headers: { "X-JoJAPI-Key": process.env.JOJAPI_KEY } }
);
const data = await res.json();
```
```python
import requests
r = requests.get(
"https://youtube-v3.jojapi.net/search/",
headers={"X-JoJAPI-Key": JOJAPI_KEY},
params={"part": "snippet", "q": "machine learning", "maxResults": 25},
)
r.raise_for_status()
```
---
## Typical uses
- **Channel analytics dashboards** — pull `Channels` + `Activities` + `Videos` on a schedule and track subscriber, view and upload trends over time.
- **Content discovery and monitoring** — run `Search` queries on keywords or topics and alert when new material appears.
- **Comment mining** — pull `CommentThreads` and `Comments` for sentiment analysis, moderation tooling or audience research.
- **Playlist syncing** — mirror `Playlists` and `PlaylistItems` into your own catalogue or recommendation system.
- **Subtitle track discovery** — list the caption tracks a video carries via `Captions`, including language, `trackKind` (uploaded vs. auto-generated), and draft/serving status, to drive downstream transcription or translation workflows. The endpoint returns track metadata, not the caption text itself.
- **Agent tooling** — the endpoints are small and predictable enough to expose directly as tools to an LLM agent.
---
## Notes and limits
- **Read-only.** This API exposes public data retrieval. Uploads, edits, deletions and other write operations are not supported, and neither are endpoints that require a user's OAuth grant to their own private data.
- **Public data only.** Private and unlisted resources, and anything gated behind a channel owner's authorisation, are out of scope.
- **Response shape.** Bodies follow the official v3 structure (`kind`, `etag`, `items`, `nextPageToken`) with one addition: a top-level `status` field set by the gateway. Existing parsers that read by key rather than by strict schema validation won't need changes.
- **Errors.** `401`, `402` and `429` responses come from the JoJAPI gateway (key, credit and rate-limit issues), not from the upstream API. Everything else is passed through. See the gateway response reference linked in the docs.
- **Not affiliated with Google or YouTube.** This is an independent service. You remain responsible for complying with YouTube's terms and applicable law in how you use the data you retrieve.
---
## Pricing and support
Plans and included credits are on the **Pricing** tab; every request against any endpoint costs 1 credit. Questions, bug reports and feature requests go in the **Discussions** tab — they get read.