Datasets API endpoint
Use Crawlora's Search the YouTube creators dataset API to search or inspect stored structured datasets as JSON. This page includes request parameters, cURL examples, response schema, validation behavior, credit cost, and a Playground link for testing before integration. Dataset endpoints read indexed records and do not apply proxy routing.
/datasets/youtube-creators/searchSearches public YouTube channel profiles stored in a search index — subscriber, video and view counts, region, bio and links, discovered via Common Crawl and Wikidata and hydrated from each channel's public About page. Sort enum: `relevance`, `followers_desc`, `followers_asc`, `views_desc`, `videos_desc`, `hydrated_at_desc`, `hydrated_at_asc`. Some channels hide their subscriber, video, or view count; the `_available` flags on each item distinguish a hidden count (stored as `0`, `*_available: false`) from a genuine `0`. Developers commonly use this endpoint for repeatable dataset search, filtering, facets, local business enrichment, analytics, exports, and internal tools that need structured records beyond the limited manual refinement available in the Google Maps app. Authentication uses the x-api-key header, usage is metered with the credit cost shown on this page, and the request does not trigger live scraping or proxy routing.
Request parameters are generated from the active endpoint catalog. Dataset parameters filter, page, facet, or locate stored structured records; they do not configure a live scraper or proxy path.
| Parameter | Type | Required | Default | Description | Example |
|---|---|---|---|---|---|
| q | string | No | Full-text query over channel_name and bio, max 256 characters | ||
| channel_id | string | No | Exact channel id filter (e.g. UCxxxxxxxxxxxxxxxxxxxxxxxx), max 128 characters | ||
| region | string | No | Exact channel region/country filter (case-insensitive), max 128 characters | ||
| discovery_source | string | No | Exact filter for how the channel was discovered (e.g. commoncrawl, wikidata), max 128 characters | ||
| has_bio | boolean | No | Filter by a non-empty About bio | ||
| has_links | boolean | No | Filter by at least one linked external URL | ||
| followers_count_available | boolean | No | Filter by whether the channel exposes a public subscriber count | ||
| videos_count_available | boolean | No | Filter by whether the channel has a known uploaded-video count | ||
| views_count_available | boolean | No | Filter by whether the channel has a known total view count | ||
| min_followers | integer | No | Minimum subscriber count | ||
| max_followers | integer | No | Maximum subscriber count | ||
| min_videos | integer | No | Minimum uploaded-video count | ||
| max_videos | integer | No | Maximum uploaded-video count | ||
| min_views | integer | No | Minimum total view count | ||
| max_views | integer | No | Maximum total view count | ||
| joined_after | string | No | Channels created on or after this date (RFC3339 or YYYY-MM-DD) | ||
| joined_before | string | No | Channels created on or before this date (RFC3339 or YYYY-MM-DD) | ||
| hydrated_after | string | No | Records last refreshed on or after this date (RFC3339 or YYYY-MM-DD) | ||
| hydrated_before | string | No | Records last refreshed on or before this date (RFC3339 or YYYY-MM-DD) | ||
| sort | string | No | Sort enum: relevance, followers_desc, followers_asc, views_desc, videos_desc, hydrated_at_desc, hydrated_at_asc Allowed values: relevance, followers_desc, followers_asc, views_desc, videos_desc, hydrated_at_desc, hydrated_at_asc | ||
| page | integer | No | 1 | Page number, defaults to 1 | |
| page_size | integer | No | 20 and maxes at 100 | Page size, defaults to 20 and maxes at 100; page * page_size must be <= 10000 | |
| x-api-key (header) | string | Yes | API key required |
curl -X GET "https://api.crawlora.net/api/v1/datasets/youtube-creators/search?q=coffee&has_bio=true&has_links=true&followers_count_available=true&videos_count_available=true&views_count_available=true&sort=relevance&page=1" \ -H "x-api-key: $CRAWLORA_API_KEY"
Send your scraping API key in the x-api-key header. Use the console API Keys page to rotate or select the active key.
Endpoint usage is metered in credits. The plan prices, included credits, limits, and overage rates below match the active backend billing configuration.
| Plan | Price | Included credits | Daily cap | Rate limit | Overage |
|---|---|---|---|---|---|
| Free | $0/mo | 2,000 | 500 daily credits | 5/min | No overage |
| Starter | $9/mo | 20,000 | 5,000 daily credits | 15/min | $0.75/1,000 overage credits when enabled |
| Growth | $29/mo | 100,000 | 25,000 daily credits | 45/min | $0.45/1,000 overage credits when enabled |
| Pro | $79/mo | 400,000 | No daily cap | 120/min | $0.30/1,000 overage credits |
| Business | $199/mo | 1,200,000 | No daily cap | 300/min | $0.20/1,000 overage credits |
| Enterprise | $499/mo | 5,000,000 | No daily cap | 1,000/min | $0.12/1,000 overage credits |
This endpoint reads stored indexed dataset records. It does not execute a live upstream Google Maps request, browser session, or proxy-routed scraping job.
- Defaults to `relevance` sort when `q` is supplied, otherwise `followers_desc`. - Some channels hide their subscriber, video, or view count on their public page. In that case the count is stored as `0` and its matching `*_available` flag is `false` — use the `_available` flags to tell a hidden count apart from a genuine `0`, and be aware that a `min_followers` filter above `0` will exclude channels with a hidden subscriber count. - `min_*` must not exceed the matching `max_*`. - Date filters accept an RFC3339 timestamp or a bare `YYYY-MM-DD` calendar date. - The maximum result window is `10000`; `page * page_size` must not exceed `10000`. - Only successfully hydrated channels are ever returned. - Does not trigger live scraping. Example response: ```json { "code": 200, "msg": "OK", "data": { "dataset": "youtube-creators", "items": [ { "channel_id": "UCX6OQ3DkcsbYNE6H8uQQuVA", "channel_name": "MrBeast", "channel_url": "https://www.youtube.com/channel/UCX6OQ3DkcsbYNE6H8uQQuVA", "profile_pic": "https://yt3.googleusercontent.com/avatar.jpg", "links": ["https://www.beastphilanthropy.org"], "followers_count": 300000000, "followers_count_available": true, "videos_count": 830, "videos_count_available": true, "views_count": 55000000000, "views_count_available": true, "region": "US", "bio": "SUBSCRIBE FOR A COOKIE!", "joined_date": "2012-02-20T00:00:00Z", "discovery_source": "commoncrawl", "status": "ok", "discovered_at": "2026-07-03T00:00:00Z", "hydrated_at": "2026-08-19T00:00:00Z" } ], "page": 1, "page_size": 20, "total": 2490319, "sort": "followers_desc" } } ```
Crawlora does not silently return invalid dataset search results when filters, pagination, coordinates, or stored record lookups cannot be satisfied.
| Status | Common failure case |
|---|---|
| 400 | Invalid input, missing required parameter, invalid enum, bad coordinate pair, or result window beyond the dataset limit |
| 404 | Requested stored dataset item is not present |
| 429 | Plan or endpoint rate limit exceeded |
| 500 | Internal dataset query or storage error |
When possible, Crawlora returns structured error context so your integration can adjust filters, page size, location inputs, or lookup identifiers.
| Status | Description | Schema |
|---|---|---|
| 400 | Bad Request | #/definitions/app.Response |
| 429 | Too Many Requests | #/definitions/app.Response |
| 500 | Internal Server Error | #/definitions/app.Response |
{
"code": 200,
"msg": "OK",
"data": {
"dataset": "youtube-creators",
"items": [
{
"channel_id": "UCX6OQ3DkcsbYNE6H8uQQuVA",
"channel_name": "MrBeast",
"channel_url": "https://www.youtube.com/channel/UCX6OQ3DkcsbYNE6H8uQQuVA",
"profile_pic": "https://yt3.googleusercontent.com/avatar.jpg",
"links": [
"https://www.beastphilanthropy.org"
],
"followers_count": 300000000,
"followers_count_available": true,
"videos_count": 830,
"videos_count_available": true,
"views_count": 55000000000,
"views_count_available": true,
"region": "US",
"bio": "SUBSCRIBE FOR A COOKIE!",
"joined_date": "2012-02-20T00:00:00Z",
"discovery_source": "commoncrawl",
"status": "ok",
"discovered_at": "2026-07-03T00:00:00Z",
"hydrated_at": "2026-08-19T00:00:00Z"
}
],
"page": 1,
"page_size": 20,
"total": 2490319,
"sort": "followers_desc"
}
}Request schema
No body schema
Response schema
#/definitions/datasets.youtubeCreatorsSearchResponseDoc
| Field | Type | Required | Enum | Bounds | Example | Description |
|---|---|---|---|---|---|---|
| code | integer | No | 200 | |||
| data | datasets.YoutubeCreatorSearchResponse | No | ||||
| data.dataset | string | No | ||||
| data.items | array | No | ||||
| data.items[].bio | string | No | ||||
| data.items[].channel_id | string | No | ||||
| data.items[].channel_name | string | No | ||||
| data.items[].channel_url | string | No | ||||
| data.items[].discovered_at | string | No | ||||
| data.items[].discovery_source | string | No | ||||
| data.items[].followers_count | integer | No | ||||
| data.items[].followers_count_available | boolean | No | ||||
| data.items[].hydrated_at | string | No | ||||
| data.items[].joined_date | string | No | ||||
| data.items[].links | array | No | ||||
| data.items[].profile_pic | string | No | ||||
| data.items[].region | string | No | ||||
| data.items[].status | string | No | ||||
| data.items[].videos_count | integer | No | ||||
| data.items[].videos_count_available | boolean | No | ||||
| data.items[].views_count | integer | No | ||||
| data.items[].views_count_available | boolean | No | ||||
| data.page | integer | No | ||||
| data.page_size | integer | No | ||||
| data.sort | string | No | ||||
| data.total | integer | No | ||||
| msg | string | No | OK |
Use environment variables for secrets and keep Crawlora API keys server-side.
curl -X GET "https://api.crawlora.net/api/v1/datasets/youtube-creators/search?q=coffee&has_bio=true&has_links=true&followers_count_available=true&videos_count_available=true&views_count_available=true&sort=relevance&page=1" \
-H "x-api-key: $CRAWLORA_API_KEY"Crawlora is designed for responsible structured public web data workflows. Customers are responsible for using Crawlora in compliance with applicable laws, third-party rights, target-platform rules, and Crawlora terms.
Read Crawlora terms