Skip to main content

Changelog · August 29, 2026

Cache, timing and quota on every response

Tell a free cache hit from paid work, and see where you stand before you run out.

By · Last updated: August 2026

TL;DR

Every response with a request behind it now carries X-Result-Token, X-Cache (hit, miss or partial), X-Cache-Age, X-Processing-Time-Ms and the quota headers — sync and async, hit and miss, success and failure. Webhook payloads carry the same facts in an additive meta object.

Free plan, no credit card. 1,000 credits a month.

Most endpoints answer in plain text — Markdown, HTML, a base64 image — that you pipe straight into a file, so headers are the only place for metadata. A caller couldn't tell a free cache hit from paid work, which is the whole point of tuning max_age, and the only way to learn your quota was to run out.

A fact we don't have is omitted, never zeroed: an async accept on a cache miss carries no processing time, because nothing has happened yet.

A cache hit
X-Result-Token: 0Zx3…9aQ
X-Cache: hit
X-Cache-Age: 5400
X-Processing-Time-Ms: 14
X-Quota-Cost: 0
X-Quota-Remaining: 18750

FAQ

Frequently asked questions

X-Cache: hit, and X-Quota-Cost: 0.

Try it on the free plan.

Free plan, no card. Confirm your email and your API key is live — you'll be making real requests in minutes.