Error Response Format
All errors follow a consistent structure:HTTP Status Codes
| Status Code | Meaning | When It Occurs |
|---|---|---|
200 | Success | Request completed successfully |
202 | Accepted | Async job created, use job ID to poll status |
400 | Bad Request | Invalid input or parameters |
401 | Unauthorized | Missing or invalid API key |
403 | Forbidden | API key lacks required permissions |
404 | Not Found | Resource doesn’t exist |
408 | Request Timeout | Operation took too long |
429 | Too Many Requests | Rate limit or quota exceeded |
500 | Internal Server Error | Server-side error occurred |
Error Codes Reference
Authentication Errors (401)
| Error Code | Message | Solution |
|---|---|---|
UNAUTHORIZED | Request lacks authentication | Include X-API-Key header |
INVALID_API_KEY | Invalid or inactive API key | Check your API key is correct and active |
API_KEY_INACTIVE | API key has been deactivated | Create a new API key |
Authorization Errors (403)
| Error Code | Message | Solution |
|---|---|---|
FORBIDDEN | Insufficient permissions | Upgrade your plan or contact support |
Validation Errors (400)
| Error Code | Message | Solution |
|---|---|---|
INVALID_INPUT | Validation failed | Check request parameters match schema |
INVALID_VIDEO_ID | Invalid YouTube video ID or URL | Verify the video ID is correct |
MISSING_PARAMETER | Required parameter is missing | Include all required parameters |
INVALID_URL | Invalid URL provided | Ensure URL is well-formed |
CRAWL_LIMIT_EXCEEDED | Crawl limit too high | Reduce limit to max 1000 pages |
Resource Errors (404)
| Error Code | Message | Solution |
|---|---|---|
NOT_FOUND | Resource not found | Verify the resource ID exists |
KEY_NOT_FOUND | API key not found | Check the API key is valid |
CHANNEL_NOT_FOUND | YouTube channel not found | Verify the channel ID |
PLAYLIST_NOT_FOUND | YouTube playlist not found | Verify the playlist ID |
TRANSCRIPT_UNAVAILABLE | Video transcript not available | Try a different video or check if captions exist |
JOB_NOT_FOUND | Job ID not found | Verify the job ID is correct |
WEBHOOK_NOT_FOUND | Webhook not found | Check the webhook ID |
Rate Limiting Errors (429)
| Error Code | Message | Solution |
|---|---|---|
RATE_LIMIT_EXCEEDED | Too many requests | Wait for rate limit to reset (check X-RateLimit-Reset header) |
QUOTA_EXCEEDED | Monthly quota exhausted | Wait for quota reset or enable auto-recharge |
YouTube Specific Errors
| Error Code | Status | Message | Solution |
|---|---|---|---|
TRANSCRIPT_UNAVAILABLE | 404 | Video transcript not available | Video may not have captions |
LANGUAGE_NOT_SUPPORTED | 400 | Language not supported | Try ‘en’ or check available languages |
CHANNEL_NOT_FOUND | 404 | YouTube channel not found | Verify channel ID is correct |
PLAYLIST_NOT_FOUND | 404 | YouTube playlist not found | Verify playlist ID is correct |
Scraping Errors
| Error Code | Status | Message | Solution |
|---|---|---|---|
SCRAPING_FAILED | 500 | Failed to scrape URL | URL may be inaccessible or blocked |
INVALID_URL | 400 | Invalid URL provided | Check URL format |
CRAWL_TIMEOUT | 408 | Crawl operation timed out | Reduce crawl limit or retry |
CRAWL_LIMIT_EXCEEDED | 400 | Crawl limit too high | Maximum 1000 pages per crawl |
Job Errors
| Error Code | Status | Message | Solution |
|---|---|---|---|
JOB_NOT_FOUND | 404 | Job ID not found | Verify job ID is correct |
JOB_FAILED | 500 | Job processing failed | Check job details for specific error |
JOB_TIMEOUT | 408 | Job timed out | Retry with smaller batch |
Server Errors (500)
| Error Code | Message | Solution |
|---|---|---|
INTERNAL_ERROR | Internal server error | Retry request, contact support if persists |
DATABASE_ERROR | Database operation failed | Retry request |
EXTERNAL_SERVICE_ERROR | External service unavailable | Retry request, check status page |
Handling Errors in Your Code
TypeScript/JavaScript
Python
Go
Response Headers for Debugging
When handling errors, check these headers for additional context:| Header | Description | Example |
|---|---|---|
X-RateLimit-Remaining | Requests remaining this period | 45 |
X-RateLimit-Reset | Unix timestamp when limit resets | 1704326400 |
Retry-After | Seconds to wait before retrying | 60 |
X-Credits-Remaining | Credits remaining in quota | 850 |
Common Error Scenarios
Quota Exceeded Mid-Month
Quota Exceeded Mid-Month
Problem: You’ve exhausted your monthly quota before the reset date.Solutions:
- Enable auto-recharge in dashboard
- Upgrade to a higher tier
- Wait for monthly reset
- Optimize your requests to use fewer credits
Rate Limit Exceeded
Rate Limit Exceeded
Problem: Too many requests in a short time period.Solutions:
- Implement exponential backoff
- Respect the
Retry-Afterheader - Batch your requests when possible
- Upgrade to a higher tier with higher rate limits
Transcript Not Available
Transcript Not Available
Problem: Video doesn’t have transcripts/captions.Solutions:
- Check if the video has captions on YouTube
- Try different language codes
- Handle this gracefully in your application
Invalid Video ID
Invalid Video ID
Problem: The video ID format is incorrect or video doesn’t exist.Solutions:
- Verify the video ID is 11 characters
- Ensure the video exists on YouTube
- Check for typos in the ID
Need Help?
If you’re experiencing errors that aren’t covered here:- Check the status page for ongoing incidents
- Review your implementation against the API Reference
- Contact support with the error code and request ID