A public, read-only JSON API over the Fanio catalogue, plus licence verification and signed downloads. OpenAPI 3.1: https://fanio.net/v1/openapi.json
No key is needed to read. Requests are rate limited per IP. Every scene id has the form fanio:<pack>/<scene>.
Read
GET /v1/packs?page=1: 24 packs per page, each with up to six preview scenes, full counts and pricesGET /v1/packs/{pack}?page=1: one pack with 24 scenes per page and full countsGET /v1/scenes/{pack}/{scene}: one scene, with credit line, licence and linksGET /v1/scenes/{pack}/{scene}.svg: the SVG of a free scene (402 for paid scenes)GET /v1/scenes/{pack}/{scene}.png: a 480 px preview of any sceneGET /v1/scenes/{pack}/{scene}/provenance: how the scene was madeGET /v1/search?q=reading: search in English or Arabic. Uselimit(1 to 50) andoffsetfor pages. Repeatpack,character,style,activity,settingorseasonto select several values within one facet. Addfree=trueorfree=false,sort=title, andlang=arif needed. The response includestotaland facet counts.smart=trueoptionally re-ranks eligible first-page results when enabled on the server, with local fallback.GET /v1/licencesand/v1/licences/{tier}
Paid scenes
POST /v1/licences/verifywith{"key": "fanio_lk_..."}returns the licensed pack and tier.POST /v1/licences/downloadwith{"key": "...", "scene": "fanio:<pack>/<scene>"}returns a download URL valid for five minutes.
Keep licence keys secret; they are bearer credentials. Revealing the key again on the order page rotates it.
