Tutorial · Node.js
How to scrape YouTube search results with Node.js (2026)
A Node.js walkthrough for GET /v1/youtube/search. Copy the snippet, run it, then read the JSON.
GET /v1/youtube/search · 1 credit per successful request.
In this tutorial
You'll search YouTube for a phrase and see the results you get back.
Example job: find YouTube results for a phrase, then open the URLs you keep.
Step 1
Get ready
Get a Social Fetch API key and a Node.js environment ready. New accounts include 100 free credits.
API key. Create a Social Fetch account and copy an API key. New accounts include 100 free credits.
Node.js setup. Node 18+ (native fetch). Export SOCIALFETCH_API_KEY.
When you're done, SOCIALFETCH_API_KEY is set in your shell.
Step 2
Make the request
Copy the Node.js snippet, set SOCIALFETCH_API_KEY, and call GET /v1/youtube/search with the x-api-key header. Example: /v1/youtube/search?query=api+tutorial.
You should see HTTP 200 and a JSON body. Native fetch does not throw on 4xx/5xx, so check response.ok before parsing.
Step 3
Read the response
JSON with data (the search results) and meta (creditsCharged, requestId). Sample below is illustrative — field docs live on the endpoint page. Credits charge on completed lookups, not transport failures.
Check data.lookupStatus when present. Keep meta.requestId if a row looks wrong.
Watch out
duration filters apply to videos, not Shorts. Keep type, uploadDate, duration, and sortBy stable across cursor pages. Keyword search won't substitute for /search/hashtags.
Step 4
You finished
Same path and credits in playground, docs, and production. Pick a next step below.
FAQ
Common questions
Do I need an official YouTube developer account?
No. Social Fetch authenticates with your Social Fetch API key. You call GET /v1/youtube/search and we handle upstream access. You still need to follow each platform's terms for how you use public data.
What does the youtube search endpoint return?
A JSON envelope with data (the search results) and meta (creditsCharged, requestId). Shape details and field docs live on the endpoint page and in the OpenAPI docs.
Can I filter YouTube search by type, date, or duration?
Yes. type accepts videos, shorts, channels, or playlists. uploadDate accepts today, this_week, this_month, or this_year. duration accepts under_3_min, between_3_and_20_min, or over_20_min (for videos, not Shorts). sortBy can be relevance or popular. Keep filters stable when you paginate.
YouTube keyword search vs hashtag search?
Use this route for free-text phrases plus type/date/duration filters. Use GET /v1/youtube/search/hashtags for tag-led campaigns. They are separate operations — do not expect hashtag semantics from the keyword route.
How much does a successful request cost?
1 credit per successful request.
Is this okay for production?
Yes — same production API as everywhere else: typed errors, requestId on every response, credits charged only on completed lookups. New accounts get 100 free credits.
Any Node.js-specific tips for this request?
Yes. Native fetch does not throw on 4xx/5xx — check response.ok (or status) before parsing JSON. Read meta.requestId from the body when you need support on a bad row.
Related