Limits
Save requests have a lower limit because each save triggers background content extraction (fetching, parsing, and processing the URL). Markdown requests count against both the read and markdown limits because these responses are significantly larger and more expensive to serve.
Limits are applied per API token (i.e., per user account).
Rate limit headers
Every response includes headers showing your current quota:Handling 429 responses
When you exceed the limit, the API returns429 Too Many Requests with a Retry-After header:
Recommended retry strategy
Best practices
Use incremental sync instead of full fetches
Use incremental sync instead of full fetches
The
updated_since parameter on list endpoints dramatically reduces the number of requests needed to stay in sync. Fetch everything once, then sync only changes.Use larger page sizes
Use larger page sizes
Set
limit=100 (the maximum) to reduce the number of requests needed to paginate through results.Cache responses locally
Cache responses locally
Store items locally and only refetch when needed. The
updated_at field tells you if an item has changed.Batch your writes
Batch your writes
If you’re tagging many items, space your requests rather than firing them all at once.