{"openapi":"3.1.0","info":{"title":"scriptly.to Public API","version":"2.0.0","description":"Read-only public REST API for scriptly.to. Combines the full surface of Rscripts and Scriptblox plus unique signals (works-now %, ratings, reactions, collections, oEmbed, OG cards). Attribution: include \"Powered by scriptly.to\" wherever the data is shown.","contact":{"name":"scriptly.to","url":"https://scriptly.to"},"license":{"name":"Free for public use, attribution required"}},"servers":[{"url":"https://scriptly.to/api/v2"}],"tags":[{"name":"Scripts"},{"name":"Games"},{"name":"Users"},{"name":"Collections"},{"name":"Discovery"},{"name":"Meta"}],"components":{"schemas":{"Meta":{"type":"object","required":["version","generated_at","attribution","docs_url"],"properties":{"version":{"type":"string","example":"2"},"generated_at":{"type":"string","format":"date-time"},"attribution":{"type":"string","example":"Powered by scriptly.to"},"attribution_required":{"type":"boolean","example":true},"docs_url":{"type":"string","format":"uri"}}},"PageInfo":{"type":"object","required":["page","limit","has_more"],"properties":{"page":{"type":"integer","minimum":1},"limit":{"type":"integer","minimum":1,"maximum":50},"total":{"type":["integer","null"]},"has_more":{"type":"boolean"}}},"Error":{"type":"object","required":["error","meta"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["invalid_query","invalid_slug","invalid_handle","invalid_url","missing_param","not_found","unsupported","rate_limited","internal"]},"message":{"type":"string"},"details":{}}},"meta":{"$ref":"#/components/schemas/Meta"}}},"Owner":{"type":"object","properties":{"username":{"type":"string"},"avatar_url":{"type":["string","null"],"format":"uri"},"roles":{"type":"array","items":{"type":"string"}},"verified":{"type":"boolean"},"url":{"type":"string","format":"uri"}}},"WorksNow":{"type":"object","properties":{"score":{"type":["integer","null"]},"works":{"type":"integer"},"broken":{"type":"integer"},"window_days":{"type":"integer"}}},"Script":{"type":"object","properties":{"slug":{"type":"string"},"title":{"type":"string"},"description":{"type":"string"},"tags":{"type":"array","items":{"type":"string"}},"key_system":{"type":"boolean"},"verified":{"type":"boolean"},"universal":{"type":"boolean"},"views":{"type":"integer"},"copies":{"type":"integer"},"saves":{"type":"integer"},"safe_score":{"type":"integer"},"current_version":{"type":"string"},"game":{"type":["object","null"],"properties":{"name":{"type":"string"},"url":{"type":["string","null"]},"image_url":{"type":["string","null"]}}},"rating":{"type":"object","properties":{"avg":{"type":"number"},"count":{"type":"integer"}}},"works_now":{"anyOf":[{"$ref":"#/components/schemas/WorksNow"},{"type":"null"}]},"reactions":{"type":["object","null"],"additionalProperties":{"type":"integer"}},"owner":{"anyOf":[{"$ref":"#/components/schemas/Owner"},{"type":"null"}]},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"},"url":{"type":"string","format":"uri"},"raw_url":{"type":"string","format":"uri"},"embed_url":{"type":"string","format":"uri"},"share_url":{"type":"string","format":"uri"},"og_image_url":{"type":"string","format":"uri"}}},"ScriptVersion":{"type":"object","properties":{"version":{"type":"string"},"changelog":{"type":["string","null"]},"safe_score":{"type":["integer","null"]},"published_at":{"type":"string","format":"date-time"},"raw_url":{"type":"string","format":"uri"}}},"ScriptDetail":{"allOf":[{"$ref":"#/components/schemas/Script"},{"type":"object","properties":{"versions":{"type":"array","items":{"$ref":"#/components/schemas/ScriptVersion"}}}}]},"Game":{"type":"object","properties":{"slug":{"type":"string"},"name":{"type":"string"},"image_url":{"type":["string","null"]},"scripts":{"type":"integer"},"views":{"type":"integer"},"url":{"type":"string","format":"uri"}}},"User":{"type":"object","properties":{"username":{"type":"string"},"avatar_url":{"type":["string","null"]},"bio":{"type":["string","null"]},"created_at":{"type":"string","format":"date-time"},"roles":{"type":"array","items":{"type":"string"}},"verified":{"type":"boolean"},"followers":{"type":"integer"},"script_count":{"type":"integer"},"url":{"type":"string","format":"uri"},"scripts_url":{"type":"string","format":"uri"},"collections_url":{"type":"string","format":"uri"},"recent_scripts":{"type":"array","items":{"$ref":"#/components/schemas/Script"}}}},"Collection":{"type":"object","properties":{"slug":{"type":"string"},"title":{"type":"string"},"description":{"type":["string","null"]},"cover_url":{"type":["string","null"]},"item_count":{"type":"integer"},"url":{"type":"string","format":"uri"},"api_url":{"type":"string","format":"uri"},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"}}},"Tag":{"type":"object","properties":{"tag":{"type":"string"},"count":{"type":"integer"}}},"Stats":{"type":"object","properties":{"scripts":{"type":"integer"},"creators":{"type":"integer"},"copies":{"type":"integer"},"views":{"type":"integer"}}},"ScriptListEnvelope":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/Script"}},"page":{"$ref":"#/components/schemas/PageInfo"},"meta":{"$ref":"#/components/schemas/Meta"}}},"ScriptEnvelope":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/ScriptDetail"},"meta":{"$ref":"#/components/schemas/Meta"}}},"GameListEnvelope":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/Game"}},"meta":{"$ref":"#/components/schemas/Meta"}}},"GameEnvelope":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/Game"},"meta":{"$ref":"#/components/schemas/Meta"}}},"UserEnvelope":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/User"},"meta":{"$ref":"#/components/schemas/Meta"}}},"CollectionEnvelope":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/Collection"},"meta":{"$ref":"#/components/schemas/Meta"}}},"CollectionListEnvelope":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/Collection"}},"meta":{"$ref":"#/components/schemas/Meta"}}},"TagListEnvelope":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/Tag"}},"meta":{"$ref":"#/components/schemas/Meta"}}},"StatsEnvelope":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/Stats"},"meta":{"$ref":"#/components/schemas/Meta"}}},"VersionListEnvelope":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/ScriptVersion"}},"meta":{"$ref":"#/components/schemas/Meta"}}},"OEmbed":{"type":"object","properties":{"version":{"type":"string","example":"1.0"},"type":{"type":"string","example":"rich"},"provider_name":{"type":"string"},"provider_url":{"type":"string","format":"uri"},"title":{"type":"string"},"author_name":{"type":["string","null"]},"author_url":{"type":["string","null"]},"width":{"type":"integer"},"height":{"type":"integer"},"html":{"type":"string"}}},"Health":{"type":"object","properties":{"data":{"type":"object","properties":{"status":{"type":"string","example":"ok"}}},"meta":{"$ref":"#/components/schemas/Meta"}}}}},"paths":{"/scripts":{"get":{"tags":["Scripts"],"summary":"List / search scripts","parameters":[{"name":"q","in":"query","schema":{"type":"string"},"description":"Full-text search"},{"name":"game","in":"query","schema":{"type":"string"}},{"name":"tag","in":"query","schema":{"type":"string"},"description":"Repeatable"},{"name":"verified","in":"query","schema":{"type":"string","enum":["true","false"]}},{"name":"key","in":"query","schema":{"type":"string","enum":["true","false"]}},{"name":"universal","in":"query","schema":{"type":"string","enum":["true","false"]}},{"name":"sort","in":"query","schema":{"type":"string","enum":["new","top","trending","safest","relevance"],"default":"new"}},{"name":"page","in":"query","schema":{"type":"integer","minimum":1,"default":1}},{"name":"limit","in":"query","schema":{"type":"integer","minimum":1,"maximum":50,"default":25}},{"name":"exclude","in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScriptListEnvelope"},"example":{"data":[{"slug":"infinite-yield","title":"Infinite Yield","description":"Universal admin command bar.","tags":["admin","universal"],"key_system":false,"verified":true,"universal":true,"views":124530,"copies":8421,"saves":312,"safe_score":96,"current_version":"v8.3.0","game":{"name":"Universal","url":null,"image_url":null},"rating":{"avg":4.7,"count":312},"works_now":{"score":96,"works":48,"broken":2,"window_days":14},"reactions":{"fire":124,"mind_blown":33},"owner":{"username":"edge","avatar_url":null,"roles":["verified"],"verified":true,"url":"https://scriptly.to/u/edge"},"created_at":"2024-01-01T00:00:00Z","updated_at":"2026-05-12T00:00:00Z","url":"https://scriptly.to/script/infinite-yield","raw_url":"https://scriptly.to/api/v2/scripts/infinite-yield/raw","embed_url":"https://scriptly.to/embed/infinite-yield","share_url":"https://scriptly.to/script/infinite-yield","og_image_url":"https://scriptly.to/api/og/script/infinite-yield.png"}],"page":{"page":1,"limit":25,"total":842,"has_more":true},"meta":{"version":"2","generated_at":"2026-06-08T12:00:00Z","attribution":"Powered by scriptly.to","attribution_required":true,"docs_url":"https://scriptly.to/api/docs"}}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/scripts/{slug}":{"get":{"tags":["Scripts"],"summary":"Get script detail","parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScriptEnvelope"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/scripts/{slug}/raw":{"get":{"tags":["Scripts"],"summary":"Raw Luau source (text/plain). Counts toward copies.","parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"type":"string"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/scripts/search":{"get":{"tags":["Scripts"],"summary":"Search scripts (alias of /scripts with q required)","parameters":[{"name":"q","in":"query","required":true,"schema":{"type":"string"}},{"name":"page","in":"query","schema":{"type":"integer","minimum":1,"default":1}},{"name":"limit","in":"query","schema":{"type":"integer","minimum":1,"maximum":50,"default":25}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScriptListEnvelope"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/scripts/{slug}/versions":{"get":{"tags":["Scripts"],"summary":"Version history","parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/VersionListEnvelope"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/scripts/{slug}/versions/{version}/raw":{"get":{"tags":["Scripts"],"summary":"Raw Luau source for a specific version","parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"version","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"type":"string"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/scripts/trending":{"get":{"tags":["Scripts"],"summary":"Trending scripts","parameters":[{"name":"limit","in":"query","schema":{"type":"integer","minimum":1,"maximum":50}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScriptListEnvelope"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/scripts/latest":{"get":{"tags":["Scripts"],"summary":"Newest scripts","parameters":[{"name":"limit","in":"query","schema":{"type":"integer","minimum":1,"maximum":50}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScriptListEnvelope"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/scripts/featured":{"get":{"tags":["Scripts"],"summary":"Featured (curated)","parameters":[{"name":"limit","in":"query","schema":{"type":"integer","minimum":1,"maximum":50}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScriptListEnvelope"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/scripts/random":{"get":{"tags":["Scripts"],"summary":"A single random live script (uncached)","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScriptEnvelope"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/games":{"get":{"tags":["Games"],"summary":"List games ranked by script count","parameters":[{"name":"limit","in":"query","schema":{"type":"integer","minimum":1,"maximum":200}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GameListEnvelope"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/games/{slug}":{"get":{"tags":["Games"],"summary":"Game detail + top scripts","parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GameEnvelope"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/games/{slug}/scripts":{"get":{"tags":["Games"],"summary":"Paginated scripts for a game","parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"page","in":"query","schema":{"type":"integer","minimum":1,"default":1}},{"name":"limit","in":"query","schema":{"type":"integer","minimum":1,"maximum":50,"default":25}},{"name":"sort","in":"query","schema":{"type":"string","enum":["top","new","safest"],"default":"top"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScriptListEnvelope"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/users/{handle}":{"get":{"tags":["Users"],"summary":"Public creator profile","parameters":[{"name":"handle","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserEnvelope"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/users/{handle}/scripts":{"get":{"tags":["Users"],"summary":"Scripts by creator","parameters":[{"name":"handle","in":"path","required":true,"schema":{"type":"string"}},{"name":"page","in":"query","schema":{"type":"integer","minimum":1,"default":1}},{"name":"limit","in":"query","schema":{"type":"integer","minimum":1,"maximum":50,"default":25}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScriptListEnvelope"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/users/{handle}/collections":{"get":{"tags":["Users"],"summary":"Public collections by creator","parameters":[{"name":"handle","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CollectionListEnvelope"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/collections/{slug}":{"get":{"tags":["Collections"],"summary":"Public collection detail","parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CollectionEnvelope"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/tags":{"get":{"tags":["Discovery"],"summary":"Top tags with counts","parameters":[{"name":"limit","in":"query","schema":{"type":"integer","minimum":1,"maximum":200}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TagListEnvelope"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/stats":{"get":{"tags":["Discovery"],"summary":"Global counts","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/StatsEnvelope"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/health":{"get":{"tags":["Meta"],"summary":"Health check","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Health"}}}}}}},"/oembed":{"get":{"tags":["Meta"],"summary":"oEmbed for scriptly script & collection URLs","parameters":[{"name":"url","in":"query","required":true,"schema":{"type":"string","format":"uri"}},{"name":"format","in":"query","schema":{"type":"string","enum":["json","xml"],"default":"json"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OEmbed"}},"text/xml":{"schema":{"type":"string"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}}}}