YouTube transcripts for a single video or an entire channel, Google Trends interest and related queries, and Google Play and App Store reviews. No browsers to drive, no per-source accounts to keep alive, one response shape to parse.
Try it before you sign up with the shared demo key wdt_demo_public. It is rate limited and
capped at 10 rows per call on every tool, Google Trends included, and it answers on every tool.
Every endpoint returns ok, count, seconds and a data array, so an empty result is visible as count: 0 rather than as a missing field.
Full transcript text for up to 50 videos in one call, with language, an auto-generated flag, word count, title and channel.
Enumerate a channel, @handle or playlist and get every recent video's metadata and transcript together. Or pass search: your query and go straight from a question to transcripts.
Interest over time, interest by region, and top plus rising related queries for up to five keywords.
Google Play reviews by app, country and language, including the developer's reply.
App Store customer reviews by app, country and sort order, plus the app's own metadata row when Apple's lookup returns one. Apple's public feed comes back with no reviews for some app + country + sort combinations; re-try with another country or sort order.
Send your key as x-api-key or Authorization: Bearer.
curl "https://web-data-toolkit.vercel.app/api/trends?keyword=moissanite%20ring&geo=US" \
-H "x-api-key: YOUR_KEY"
curl "https://web-data-toolkit.vercel.app/api/youtube/transcript?url=dQw4w9WgXcQ" \
-H "x-api-key: YOUR_KEY"
| Path | Required | Common options |
|---|---|---|
/api/youtube/transcript | url | lang, translateTo, segments |
/api/youtube/channel | source — channel, playlist, or search: query | max, lang |
/api/trends | keyword | geo, timeframe, byRegion, related |
/api/google-play/reviews | app | country, lang, max, rating |
/api/app-store/reviews | app | country, sort, max, minRating, maxRating |
The same five tools, spoken as Model Context Protocol over HTTP, for Claude, Cursor and any other MCP client.
{
"mcpServers": {
"web-data-toolkit": {
"type": "http",
"url": "https://web-data-toolkit.vercel.app/mcp",
"headers": { "x-api-key": "YOUR_KEY" }
}
}
}
Built for a context window. An MCP result is spent out of the
model's context, so these tools return a reading, not a dump. One Google Trends keyword is around 150 rows
and about 34,000 characters of JSON; the MCP answer is around 1,300 characters and says where interest sits
against the window, the top regions, and the top and rising related queries. Pass raw: true
on any tool for every field.
Clients that accept only a URL can pass the key in the query string instead: https://web-data-toolkit.vercel.app/mcp?key=YOUR_KEY. The server is stateless, so there is no session to manage.
Which key works here. Use wdt_demo_public to start.
A RapidAPI subscription issues a key for RapidAPI's own gateway, and that key does not authenticate
against this endpoint, so it will not work for MCP. For a personal key with higher limits,
open an issue and say roughly
what volume you need.
Two runs of our own buyer check through this gateway on 2026-09-22, one call each, minutes apart. Real fetches from the source, not a cache — which is why the two runs differ.
| Call | Time | Rows |
|---|---|---|
| YouTube transcript, one video | 8.1s and 17.6s | 1 |
| Google Play reviews, one app | 4.4s and 7.3s | 6 |
| App Store reviews, one app | 4.4s and 6.0s | 6 |
| Google Trends, one keyword, US | 7.3s and 8.1s | 154 |
| A channel, two videos with transcripts | 6.6s and 13.5s | 3 |
The first call after an idle period pays a cold start, and a whole channel takes longer than any single call here. The slowest call in those two runs was 27.4 seconds. Set your client timeout to at least 60 seconds.