Error Response Format
All API errors return a JSON response with adetail field:
HTTP Error Codes
SDK Exception Mapping
The Python SDK maps HTTP errors to specific exception classes:Common Error Messages
400 Bad Request
401 Unauthorized
403 Forbidden
429 Too Many Requests
Page Concurrency Limit (returned in results, not as an HTTP error)
The page concurrency limit is enforced during processing, not at submission time. Instead of a429 response, the result will return with success set to false:
Subscription and Access Errors
When making API requests, you may encounter 403 errors related to your subscription status:No Active Subscription
Error:"You need an active, paid subscription to use this API."
This occurs when you don’t have an active subscription and have exhausted your free credits. To resolve:
- Subscribe to a paid plan in the dashboard
- New accounts include free credits — verify your email to claim them
Expired Subscription
Error:"Your subscription has expired. You may need to re-enable your plan, or pay an unpaid invoice."
Your subscription has passed its end date and grace period. To resolve:
- Renew your subscription in the dashboard
- Pay any outstanding invoices
Payment Failed
Error:"Your payment has failed. Please pay any unpaid invoices to continue using the API."
A payment for your subscription has failed and you’ve exceeded the grace period. To resolve:
- Update your payment method in the dashboard
- Pay any unpaid invoices
Inactive Subscription
Error:"Your subscription is not active. You may need to re-enable your plan or pay an unpaid invoice."
Your subscription is canceled or inactive. To resolve:
- Reactivate your subscription in the dashboard
- Subscribe to a new plan
Next Steps
Troubleshooting
Detailed debugging guide for common issues
Billing
Per-page pricing, payment failures, and grace periods
API Limits
File size limits, page limits, and rate limiting
SDK Reference
Python SDK with automatic retries and error handling