HTTP Status Codes
Error Response Format
Error responses include a message explaining what went wrong:Common Errors
Invalid Filter Syntax
publication_year expects an integer.
Unknown Filter Field
authorships.author.id with an ID, not a name. See Resolve IDs.
Rate Limit Exceeded
- Check rate limit headers to see your remaining allowance
- Add delays between requests
- Use
per_page=100to reduce total requests - Consider a paid plan for higher limits
Entity Not Found
Retry Logic
Implement exponential backoff for transient errors:Rate Limit Headers
Every response includes headers showing your current status:- Monitor your usage
- Pause before hitting limits
- Calculate when limits reset (seconds until midnight UTC)
Best Practices
- Always set timeouts — Use 30-second timeouts to avoid hanging requests
- Implement backoff — Don’t retry immediately; wait 1s, 2s, 4s, etc.
- Check headers — Monitor
X-RateLimit-Remainingto avoid hitting limits - Log errors — Record failures for debugging
- Use bulk endpoints — Batch requests to reduce total API calls