Introduction
Veedcrawl is a REST API that lets AI agents and developers understand social media videos. It extracts transcripts, metadata, and visual AI information from YouTube, TikTok, Instagram, X/Twitter, and Facebook.
Base URL
https://api.veedcrawl.comAuthentication
Every /v1/* request requires an x-api-key header.
curl "https://api.veedcrawl.com/v1/me" \ -H "x-api-key: YOUR_API_KEY"
Get your API key by signing up at veedcrawl.com/login. New accounts receive 100 free credits.
Health
/healthFreeCheck API server health. No auth required.
curl "https://api.veedcrawl.com/health"
{ "status": "ok" }Current org
/v1/meFreeReturns your org info and remaining credits.
curl "https://api.veedcrawl.com/v1/me" \ -H "x-api-key: YOUR_KEY"
{
"orgId": "org_abc123",
"name": "My Org",
"creditsRemaining": 87
}Metadata
/v1/metadataFreeFetch title, author, view count, like count, thumbnail, and platform stats for any video URL.
url — query param, required. Full video URL.
curl "https://api.veedcrawl.com/v1/metadata?url=https://www.youtube.com/watch?v=dQw4w9WgXcQ" \ -H "x-api-key: YOUR_KEY"
{
"title": "Rick Astley - Never Gonna Give You Up",
"author": "Rick Astley",
"platform": "youtube",
"duration": 213,
"viewCount": 1400000000,
"likeCount": 15000000,
"thumbnail": "https://i.ytimg.com/vi/dQw4w9WgXcQ/maxresdefault.jpg"
}Transcript
/v1/transcript1–5 creditsEnqueue a transcription job. Returns a jobId to poll.
Modes: native (platform captions, 1 credit) · generate (OpenAI Whisper, 5 credits) · auto (tries native first, fallback to Whisper)
# Enqueue
curl -X POST "https://api.veedcrawl.com/v1/transcript" \
-H "x-api-key: YOUR_KEY" \
-H "Content-Type: application/json" \
-d '{"url":"https://www.youtube.com/watch?v=dQw4w9WgXcQ","mode":"auto"}'
# Response
{ "jobId": "job_abc123", "status": "queued" }
# Poll
curl "https://api.veedcrawl.com/v1/transcript/job_abc123" \
-H "x-api-key: YOUR_KEY"{
"jobId": "job_abc123",
"status": "completed",
"resultJson": {
"text": "Never gonna give you up, never gonna let you down..."
}
}Poll until status === "completed" or "failed".
AI Extract
/v1/extract10 creditsRun GPT-4o Vision over your video to extract structured information.
# Enqueue
curl -X POST "https://api.veedcrawl.com/v1/extract" \
-H "x-api-key: YOUR_KEY" \
-H "Content-Type: application/json" \
-d '{"url":"https://www.youtube.com/watch?v=...","prompt":"Extract all product names shown"}'
# Poll
curl "https://api.veedcrawl.com/v1/extract/job_xyz456" \
-H "x-api-key: YOUR_KEY"{
"jobId": "job_xyz456",
"status": "completed",
"resultJson": {
"products": ["iPhone 16 Pro", "AirPods Pro 2"]
}
}API Keys
/v1/keysFreeList all API keys for your org.
/v1/keysFreeCreate a new API key. Body: { "name": string }
/v1/keys/:idFreeRevoke an API key by ID.
# List
curl "https://api.veedcrawl.com/v1/keys" -H "x-api-key: YOUR_KEY"
# Create
curl -X POST "https://api.veedcrawl.com/v1/keys" \
-H "x-api-key: YOUR_KEY" \
-H "Content-Type: application/json" \
-d '{"name":"my-agent"}'
# Revoke
curl -X DELETE "https://api.veedcrawl.com/v1/keys/key_abc123" \
-H "x-api-key: YOUR_KEY"Credits
| Operation | Credits |
|---|---|
| Metadata | 0 (free) |
| Current org (GET /v1/me) | 0 (free) |
| Transcript — native captions | 1 |
| Transcript — Whisper AI | 5 |
| AI visual extraction | 10 |
Errors
All errors follow this shape:
{
"error": "error-code",
"message": "Human-readable description",
"details": null,
"documentationUrl": null
}Rate limits
| Tier | Endpoints | Limit |
|---|---|---|
| Heavy | extract, generate transcript | 20 req/min |
| Light | metadata, native transcript | 120 req/min |
Rate limit headers: X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset