Scraper API

YouTube Scraper API

for transcripts, video, and channel data

Pull YouTube transcripts, video metadata, channel stats, and search results as clean JSON. One request returns a timestamped transcript for any video, ready to feed a model, with proxies handled for you.

SUCCESS
99.8%

of requests succeed

P50
3.7s

median response

P95
4.2s

95% finish faster

PRICE
$0.75

per 1k scrapes at volume

Stop maintaining scrapers

YouTube keeps moving its data client-side. Your parser shouldn't care.

  • Transcripts behind rotating player tokens
  • Metadata rendered by client-side JS
  • View and like counts in mixed shapes
  • Proxy rotation and retries per request
  • Re-parse the player after each change
One integration commit replaces a backlog you’ll never finish.
scraper | git log
hotfix: player token rotated, transcript empty
fix: view count came back as '1.2M', not a number
fix: caption track fell back to wrong language
chore: rotate proxies for youtube runs again
fix: JS render timed out on long videos
hotfix: rate-limit loop on channel pages
fix: search results shape changed
chore: refresh residential IPs by region
fix: timestamps drifted on auto-captions
fix: retry storm on rate limits
hotfix: player token rotated, transcript empty
fix: view count came back as '1.2M', not a number
fix: caption track fell back to wrong language
chore: rotate proxies for youtube runs again
fix: JS render timed out on long videos
hotfix: rate-limit loop on channel pages
fix: search results shape changed
chore: refresh residential IPs by region
fix: timestamps drifted on auto-captions
fix: retry storm on rate limits
hotfix: player token rotated, transcript empty
fix: view count came back as '1.2M', not a number
fix: caption track fell back to wrong language
chore: rotate proxies for youtube runs again
fix: JS render timed out on long videos
hotfix: rate-limit loop on channel pages
fix: search results shape changed
chore: refresh residential IPs by region
fix: timestamps drifted on auto-captions
fix: retry storm on rate limits
hotfix: player token rotated, transcript empty
fix: view count came back as '1.2M', not a number
fix: caption track fell back to wrong language
chore: rotate proxies for youtube runs again
fix: JS render timed out on long videos
hotfix: rate-limit loop on channel pages
fix: search results shape changed
chore: refresh residential IPs by region
fix: timestamps drifted on auto-captions
fix: retry storm on rate limits
feat: integrate HasData API
Code Examples

One GET Request. That's the whole integration.

Start with just a query. Add more parameters when your use case needs them.

request example
curl -G 'https://api.hasdata.com/scrape/youtube/transcript' \
	--data-urlencode 'v=dQw4w9WgXcQ' \
	--data-urlencode 'languageCode=en' \
	--header 'x-api-key: <YOUR_API_KEY>' \
	--header 'Content-Type: application/json'
v * Video ID
11-character YouTube video ID — the value of the `v=` query parameter in a watch URL (e.g. `dQw4w9WgXcQ` for `https://www.youtube.com/watch?v=dQw4w9WgXcQ`).
languageCode Language Code
BCP-47 / YouTube language code of the transcript track to return (e.g. `en`, `de`, `en-US`, `pt-BR`). Must match a track that the video actually has. When omitted, the video's default language track is returned.
type Transcript Type
Set to `asr` to fetch the YouTube auto-generated (speech-recognition) track. Omit to fetch the human-authored track for `languageCode` when one exists.
TRY ALL 3 PARAMETERS FREE
Response

Timestamped transcript, one predictable schema

Each caption line comes back with start and end times, plus the list of languages you can request. Map the fields once and forget about it.

transcript.json
[
  {
    "startMs": 320,
    "endMs": 18800,
    "snippet": "[Music]",
    "startTimeText": "0:00"
  },
  {
    "startMs": 18800,
    "endMs": 21880,
    "snippet": "We're no strangers to love",
    "startTimeText": "0:18"
  }
]
Fields in transcript
startMs / endMs number

Start and end of the line in milliseconds

snippet string

The caption text for this segment

startTimeText string

Human-readable start time, e.g. 0:18

What We Offer

An all-in-one scraping service

Every feature you need to collect data from thousands to millions of requests.

Loved by developers

Teams that deleted their scraper

Now it's the part of the pipeline they don't think about

4.8 ★★★★★
across 100+ reviews on 5 platforms
Trustpilot Trustpilot ★★★★★

HasData delivers exactly what we need: speed and comprehensive search features. It's the fastest API we've used in this space. Plus, their customer support is fantastic.

Denver Sinclair
Denver Sinclair
Capterra Capterra ★★★★★

We rely on HasData for search performance data and broader scraping needs. Their APIs deliver highly structured data that integrates directly into our platforms.

JN
Jacob N.
Trustpilot Trustpilot ★★★★★

Great web scraping API which is incredibly easy to use. It requires minimal effort to get up and running, and the documentation is very clear and helpful.

Arnold Foster
Arnold Foster
Trustpilot Trustpilot ★★★★★

I needed to scrape some information they didn't already support, and they wrote the code for me right away, which was super nice of them.

Hussein Ali
Hussein Ali
Clutch Clutch ★★★★★

We were particularly impressed with how easily we could integrate HasData into our existing workflow.

TB
Taras Bazyshyn
CEO at BAZTDL Sp. z o.o
Pricing

Plans that get cheaper at scale

Fixed price, fixed volume, no surprises at the end of the month. Upgrade when you need more.

Free
$0 /mo
One-time free trial
100 scrapes to start
1,000 credits, one time
1 concurrent request
Team seats
Community support
Start free
Startup
$49 /mo
$2.45 / 1k scrapes
20K scrapes / month
200K credits / month
15 concurrent requests
Team seats
Email support
Get started
Business
Recommended
$99 /mo
$0.99 / 1k scrapes
100K scrapes / month
1M credits / month
30 concurrent requests
Team seats
Priority email support
Get started
Growth
$249 /mo
$0.83 / 1k scrapes
3M credits / month
50 concurrent requests
Team seats
Dedicated account manager
Get started
Monthly scrape volume
Free 100K 500K 2M 6M 10M
Best fit
Business
scrapes / mo
100K
Concurrency
30
$ / 1k scrapes
$0.99
$99 /mo
Get Started
Enterprise
Custom price based on required volume

Past 100M credits a month, or terms the self-serve plans do not cover. We shape the contract around your workload.

Credits rollover
Unused credits carry into the next billing period.
Concurrency 2000+
Parallel request limits set to your peak load.
#1 request priority
Highest speed, always first in the queue.
Personal manager
A direct line to the founding team.
SSO
SAML single sign-on for the whole team.
SOC-2 compliance
Security review, DPA, and audit reports.
Talk to sales Quote within one business day
FAQ

Questions, answered

1 Grab your API key 2 Send a GET request 3 Get structured JSON

Your first scrape
is minutes away

100 scrapes free · no credit card