Changelog · September 27, 2026
A missing or wrong API key answers in JSON
Handle an authentication failure the way you handle every other error: by its code.
By Roger Campos · Last updated: September 2026
TL;DR
A request with no API key, or one that doesn't match an active project, used to get a plain-text 401. It now answers in the same JSON shape as every other error: {"error": "invalid_api_key", "message": "…"}, with a WWW-Authenticate: Bearer challenge. The message says whether a key arrived at all.
Free plan, no credit card. 1,000 credits a month.
Code that reads errors by their error field can now read this one too. The message tells the two cases apart — no Authorization header at all, or a key that isn't valid — and never says whether a key exists, was revoked or belongs to another account.
curl -X POST https://urlpipe.dev/markdown \
-H "Authorization: Bearer not-a-key" \
-H "Content-Type: application/json" \
-d '{"url": "https://example.com"}'FAQ
Frequently asked questions
Did the status code change?
Which scheme should the Authorization header use?
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.