TOON Gateway v1.0.0 ========================= A reverse proxy that returns JSON API responses as TOON (Token-Oriented Object Notation), a compact, lossless encoding of the JSON data model for LLM prompts. Open this URL in a browser for the full docs and a live JSON -> TOON converter. Base URL : https://toon-gateway.up.railway.app Upstream : https://jsonplaceholder.typicode.com Source : https://github.com/andreibesleaga/toon-gateway Format : https://toonformat.dev/ Limits : per IP 100 requests / 15 min, 30 / 60 s burst, 60 conversions / 15 min. No key needed. Over the limit: 429. Methods : GET, HEAD, OPTIONS ENDPOINTS GET / Proxied to the upstream API. JSON responses come back as text/toon; other content passes through. Successful GETs are cached 300 s. POST /__gateway/encode Convert the JSON request body to TOON (max 256 KB). Query: delimiter=comma|tab|pipe indent=1..8 keyFolding=off|safe GET /health {"status":"healthy|degraded","redis":...} ?strict=1 returns 503 when the cache is down. GET /__gateway/info Version, upstream, cache TTL, limits (JSON). EXAMPLES curl -i https://toon-gateway.up.railway.app/posts/1 curl -X POST https://toon-gateway.up.railway.app/__gateway/encode \ -H 'Content-Type: application/json' \ -d '[{"id":1,"name":"Alice"},{"id":2,"name":"Bob"}]' [2]{id,name}: 1,Alice 2,Bob RESPONSE HEADERS Content-Type: text/toon the body was converted X-Cache: HIT|MISS served from Redis | fetched and then cached X-Cache: BYPASS request carried credentials, shared cache not used X-Cache: UNAVAILABLE cache down, served uncached RateLimit-* remaining budget for your IP RUN YOUR OWN (point it at your API with UPSTREAM_URL) git clone https://github.com/andreibesleaga/toon-gateway.git && cd toon-gateway && docker-compose up -d