{"openapi":"3.1.0","info":{"title":"waste.tinymachines.ai","description":"An OpenAI-compatible endpoint in front of two inference engines running the\nsame Kimi-Linear weights with opposite memory strategies.\n\n| model | engine | streaming |\n|---|---|---|\n| `kimi-linear` | WASTE — quantised experts into a bounded RAM cache, CPU | yes |\n| `kimi-linear-airllm` | AirLLM — bf16 experts into VRAM, GPU. Minutes per reply | no |\n\nPick one with the `model` field. All `/v1/` routes need a bearer token; press\n**Authorize** to use *Try it out* from this page.\n\nEach engine runs one generation at a time and refuses overlap rather than\nqueueing, so a busy backend returns `503` immediately instead of holding the\nconnection open past every timeout in the chain.\n","version":"1.0.0"},"paths":{"/healthz":{"get":{"summary":"Healthz","operationId":"healthz_healthz_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Healthz Healthz Get"}}}}}}},"/status":{"get":{"summary":"Public status","description":"Which models are currently serving. No token required.","operationId":"status_status_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Status"}}}}}}},"/v1/models":{"get":{"summary":"Models","operationId":"models_v1_models_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Models V1 Models Get"}}}}},"security":[{"HTTPBearer":[]}]}},"/v1/chat/completions":{"post":{"summary":"Chat completion","operationId":"chat_v1_chat_completions_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ChatRequest"}}},"required":true},"responses":{"200":{"description":"An OpenAI-shaped completion, or an SSE stream","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}}},"components":{"schemas":{"ChatMessage":{"properties":{"role":{"type":"string","enum":["system","user","assistant","tool"],"title":"Role","default":"user"},"content":{"type":"string","title":"Content","default":""}},"type":"object","title":"ChatMessage"},"ChatRequest":{"properties":{"model":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Model","description":"Which engine to use. Omit for the default (the fast one).","examples":["kimi-linear"]},"messages":{"items":{"$ref":"#/components/schemas/ChatMessage"},"type":"array","minItems":1,"title":"Messages"},"max_tokens":{"anyOf":[{"type":"integer","minimum":1.0},{"type":"null"}],"title":"Max Tokens"},"temperature":{"anyOf":[{"type":"number","maximum":2.0,"minimum":0.0},{"type":"null"}],"title":"Temperature"},"top_p":{"anyOf":[{"type":"number","maximum":1.0,"exclusiveMinimum":0.0},{"type":"null"}],"title":"Top P"},"seed":{"anyOf":[{"type":"integer","minimum":0.0},{"type":"null"}],"title":"Seed"},"stream":{"type":"boolean","title":"Stream","description":"Server-sent events. Supported by `kimi-linear` only.","default":false}},"additionalProperties":true,"type":"object","required":["messages"],"title":"ChatRequest","description":"The request the gateway forwards.\n\n``extra=\"allow\"`` on purpose: the gateway validates the fields it routes on\nand passes everything else through untouched, so a backend can grow a\nparameter without the gateway needing to learn about it first."},"HTTPValidationError":{"properties":{"detail":{"items":{"$ref":"#/components/schemas/ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"},"ModelStatus":{"properties":{"id":{"type":"string","title":"Id"},"engine":{"type":"string","title":"Engine"},"available":{"type":"boolean","title":"Available"}},"type":"object","required":["id","engine","available"],"title":"ModelStatus"},"Status":{"properties":{"ok":{"type":"boolean","title":"Ok"},"models":{"items":{"$ref":"#/components/schemas/ModelStatus"},"type":"array","title":"Models"}},"type":"object","required":["ok","models"],"title":"Status","description":"Deliberately thin. `/healthz` carries cache statistics and memory figures\nand stays restricted; this says only what is up, and is public."},"ValidationError":{"properties":{"loc":{"items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"array","title":"Location"},"msg":{"type":"string","title":"Message"},"type":{"type":"string","title":"Error Type"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError"}},"securitySchemes":{"HTTPBearer":{"type":"http","description":"The endpoint's bearer token","scheme":"bearer"}}}}