Wallhaven API v1
Wallpaper search — full-resolution images with dimensions and thumbnails.
Anonymous callers get almost everything: sfw AND sketchy are both open, and only the nsfw bit needs a key — which makes it the wallpaper source that can be a fallback with nothing to apply for. The trap is that the nsfw bit fails in silence. A keyless purity=001 returns 200 with meta.total 0, and in a mixed request it simply contributes nothing: keyless 111 and 110 come back with the identical total. No error, no warning, no hint that a third of what you asked for was dropped. That is the third failure mode in this registry — Openverse 401s, Iconify clamps into range, this one says nothing at all — so the client clears that one bit when keyless, and throws if nsfw was the only thing asked for. Do NOT over-correct by pinning everything to sfw: an earlier version of this entry did, on the strength of a first page that was all sfw, and that page was all sfw only because sfw outnumbers sketchy about 50:1 in sort order. Totals are the evidence; one page is not. A key also widens the sfw and sketchy pools themselves (12728 to 13615, 242 to 745 on the same query) — presumably account filters, not measured further. Page size is a fixed 24 (per_page is accepted and ignored), making pagination the only lever. Two shapes bite: meta.query is a plain string for a normal search but resolves to {id, tag} for an exact-tag search, and ratio is a string ("1.5"), not a number. The key can travel as an X-API-Key header instead of the ?apikey= query the docs lead with, which keeps it out of access logs. And it sends no Access-Control-Allow-Origin at all, so a browser cannot call it directly — every web client needs a server hop, which is where the key should live anyway.