Verbatim transcripts ($0.03) and engagement data ($0.02). Any public video. Any language. Versioned schemas with transparent cache metadata. Your agent pays in USDC on Base, no keys, no signup, no dashboard.
No LLM rewrites. Captions extracted from YouTube when they exist, audio transcribed via Whisper otherwise. The transcript is what was actually said.
Versioned schema (v1.0). SI units (seconds, not hh:mm:ss strings). ISO-8601 dates. Separate blocks for transcript, paragraphs, chapters, metadata. Your parser never changes.
x402 on Base. Your agent pays per call, nothing else. No monthly minimums, no rate limits tied to a human, no dashboard to babysit.
Every response tells you cache.hit, cachedAt, and ageSec. Decide client-side whether to trust the cached copy or pay for a fresh fetch, no guessing.
Pull the spec at /api/agents/openapi.json and auto-generate a typed client in Python, TypeScript, Go, or anything else.
Typed error codes: invalid_input, video_unavailable, transcription_failed, worker_unavailable. Retry logic on your side stays simple.
More are shipping. Each one follows the same pattern: POST, pay, parse.
POST /api/agents/transcribeLive$0.03 / callYouTube transcripts. Any public video, any language, any length. Verbatim captions when YouTube has them, Whisper-transcribed audio otherwise. Returns a stable JSON payload with time-indexed paragraphs, creator chapters, and canonical metadata. Cached forever, repeat lookups cost the same and return instantly.
Request
curl -X POST https://flylabs.fun/api/agents/transcribe \
-H "Content-Type: application/json" \
-d '{ "url": "https://youtube.com/watch?v=dQw4w9WgXcQ" }'First call gets a 402 with payment instructions. An x402-aware agent SDK (like @x402/fetch or the official Coinbase agent SDK) handles the retry automatically.
Response (200)
{
"schema_version": "1.0",
"videoId": "dQw4w9WgXcQ",
"url": "https://youtube.com/watch?v=dQw4w9WgXcQ",
"source": "youtube_subs" | "groq_whisper" | "cache",
"servedAt": "2026-04-20T23:47:02.118Z",
"cache": {
"hit": true,
"cachedAt": "2026-04-12T09:14:22.880Z",
"ageSec": 743019
},
"transcript": {
"text": "...",
"language": "en",
"wordCount": 212,
"durationSec": 213
},
"paragraphs": [
{ "startSec": 0, "endSec": 72, "timestamp": "0:00", "text": "..." }
],
"paragraphCount": 4,
"chapters": [
{ "startSec": 0, "timestamp": "0:00", "title": "Intro" }
],
"chapterCount": 1,
"metadata": {
"title": "...",
"channel": "...",
"durationSec": 213,
"publishedAt": "2009-10-24T00:00:00.000Z",
"viewCount": 1700000000
}
}POST /api/agents/engagementLive$0.02 / callYouTube engagement data. Views, likes, comments, subscriber count, derived ratios, a composite engagement score, plus full channel and video context (tags, categories, description, thumbnail, availability, live status). Cached for 6 hours, repeat calls within the window are instant. Cheaper than transcribe because no audio processing is needed.
Request
curl -X POST https://flylabs.fun/api/agents/engagement \
-H "Content-Type: application/json" \
-d '{ "url": "https://youtube.com/watch?v=dQw4w9WgXcQ" }'Same x402 flow as transcribe. Pay $0.02 per call, get a stable JSON payload back. Useful for trend scoring, influencer ranking, content-market fit.
Response (200)
{
"schema_version": "1.0",
"videoId": "dQw4w9WgXcQ",
"url": "https://youtube.com/watch?v=dQw4w9WgXcQ",
"source": "ytdlp" | "cache",
"servedAt": "2026-04-21T...",
"cache": { "hit": false, "cachedAt": "...", "ageSec": 0 },
"stats": {
"viewCount": 1764432594,
"likeCount": 18700000,
"commentCount": 2300000,
"likeToViewRatio": 0.0106,
"commentToViewRatio": 0.0013,
"engagementScore": 1.72
},
"channel": {
"id": "UCuAXFkgsw1L7xaCfnd5JJOw",
"name": "Rick Astley",
"url": "https://youtube.com/channel/UC...",
"subscriberCount": 4500000
},
"video": {
"title": "...",
"description": "...",
"durationSec": 213,
"publishedAt": "2009-10-24T00:00:00.000Z",
"tags": ["rick astley", "never gonna give you up"],
"categories": ["Music"],
"ageLimit": 0,
"availability": "public",
"liveStatus": "not_live",
"thumbnailUrl": "https://i.ytimg.com/..."
}
}More endpoints shipping: idea scoring, problem feeds, creator intel, knowledge graph queries. Building an agent that needs one of these?
Any x402-aware HTTP client handles the 402, pay, retry flow for you. Pick your language. No SDK of ours to install, use whatever client you already trust.
Python
# pip install x402-client httpx
from x402_client import X402Client
client = X402Client(wallet_private_key=os.environ["AGENT_WALLET_KEY"])
resp = client.post(
"https://flylabs.fun/api/agents/transcribe",
json={"url": "https://youtube.com/watch?v=dQw4w9WgXcQ"},
)
data = resp.json()
print(data["transcript"]["text"])
print(f"Served from cache: {data['cache']['hit']} (age: {data['cache']['ageSec']}s)")Node / TypeScript
// npm i @x402/fetch viem
import { wrapFetchWithPayment } from '@x402/fetch'
import { privateKeyToAccount } from 'viem/accounts'
const account = privateKeyToAccount(process.env.AGENT_WALLET_KEY)
const fetchWithPayment = wrapFetchWithPayment(fetch, account)
const res = await fetchWithPayment('https://flylabs.fun/api/agents/transcribe', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({ url: 'https://youtube.com/watch?v=dQw4w9WgXcQ' }),
})
const data = await res.json()
console.log(data.transcript.text)
console.log(`Cache hit: ${data.cache.hit} (age: ${data.cache.ageSec}s)`)Auto-generate a typed client. The OpenAPI 3.1 spec lives at /api/agents/openapi.json. Feed it to openapi-generator for any language, or import it into Cursor, Cline, or your agent framework.
01
POST /api/agents/transcribe with { "url": "https://youtube.com/watch?v=..." }. No API key, no signup, no OAuth.
02
Standard x402 response. Price, network, receive address, and supported schemes. Every x402-aware agent SDK handles this automatically.
03
$0.03 in USDC on Base mainnet. Coinbase CDP facilitator verifies and settles. Finality in seconds.
04
Stable v1.0 JSON: verbatim transcript, time-indexed paragraphs, chapters, metadata. Cached forever, repeat calls are instant.
The Agentic Market is just starting. If you are shipping an agent and need a specific data API, tell us. We will probably build it.