{"openapi":"3.1.0","info":{"title":"RenderRoute Image Generation API","summary":"One stable image API across fast, premium, fallback, and eligible local routes.","description":"RenderRoute normalizes image generation across Runware, Together AI, Leonardo AI, and an optional local OpenAI-compatible endpoint. Fallback applies only to eligible transient failures; safety rejections stop immediately.","contact":{"name":"RenderRoute","email":"hello@renderroute.app"},"license":{"name":"Proprietary preview"},"version":"0.3.0"},"servers":[{"url":"https://renderroute.app","description":"Production"}],"paths":{"/v1/models":{"get":{"tags":["Images"],"summary":"List routed image models","operationId":"list_models_v1_models_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ModelsResponse"}}}}}}},"/v1/images/generations":{"post":{"tags":["Images"],"summary":"Generate images with automatic provider routing","operationId":"create_image_generation_v1_images_generations_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Idempotency-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GenerationRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GenerationResponse"}}}},"400":{"description":"Safety or provider policy rejection"},"401":{"description":"Invalid API key"},"422":{"description":"Invalid request"},"429":{"description":"Rate limit exceeded"},"502":{"description":"Eligible providers failed"},"503":{"description":"No provider or required safety service available"}}}},"/v1/moderations":{"post":{"tags":["Images"],"summary":"Check a prompt against RenderRoute policy","operationId":"moderate_prompt_v1_moderations_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GenerationRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ModerationResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}}},"components":{"schemas":{"GeneratedImage":{"properties":{"url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Url"},"b64_json":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"B64 Json"},"revised_prompt":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Revised Prompt"}},"type":"object","title":"GeneratedImage"},"GenerationMeta":{"properties":{"request_id":{"type":"string","title":"Request Id"},"provider":{"type":"string","title":"Provider"},"provider_model":{"type":"string","title":"Provider Model"},"quality":{"$ref":"#/components/schemas/Quality"},"safety_mode":{"$ref":"#/components/schemas/SafetyMode"},"width":{"type":"integer","title":"Width"},"height":{"type":"integer","title":"Height"},"requested_width":{"type":"integer","title":"Requested Width"},"requested_height":{"type":"integer","title":"Requested Height"},"dimensions_adjusted":{"type":"boolean","title":"Dimensions Adjusted"},"duration_ms":{"type":"integer","title":"Duration Ms"},"fallback_used":{"type":"boolean","title":"Fallback Used"},"attempts":{"items":{"type":"string"},"type":"array","title":"Attempts"},"estimated_provider_cost_usd":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Estimated Provider Cost Usd"}},"type":"object","required":["request_id","provider","provider_model","quality","safety_mode","width","height","requested_width","requested_height","dimensions_adjusted","duration_ms","fallback_used","attempts"],"title":"GenerationMeta"},"GenerationRequest":{"properties":{"prompt":{"type":"string","maxLength":2000,"minLength":2,"title":"Prompt"},"negative_prompt":{"anyOf":[{"type":"string","maxLength":1000},{"type":"null"}],"title":"Negative Prompt"},"model":{"type":"string","maxLength":120,"title":"Model","default":"auto"},"quality":{"$ref":"#/components/schemas/Quality","default":"fast"},"provider":{"$ref":"#/components/schemas/ProviderChoice","default":"auto"},"width":{"type":"integer","maximum":8192.0,"minimum":1.0,"title":"Width","default":960},"height":{"type":"integer","maximum":8192.0,"minimum":1.0,"title":"Height","default":1472},"n":{"type":"integer","maximum":4.0,"minimum":1.0,"title":"N","default":1},"response_format":{"$ref":"#/components/schemas/ResponseFormat","default":"url"},"seed":{"anyOf":[{"type":"integer","maximum":2147483637.0,"minimum":0.0},{"type":"null"}],"title":"Seed"},"steps":{"anyOf":[{"type":"integer","maximum":100.0,"minimum":1.0},{"type":"null"}],"title":"Steps"},"safety_mode":{"$ref":"#/components/schemas/SafetyMode","default":"standard"},"auto_adjust_dimensions":{"type":"boolean","title":"Auto Adjust Dimensions","default":true},"user":{"anyOf":[{"type":"string","maxLength":128},{"type":"null"}],"title":"User"},"metadata":{"additionalProperties":{"anyOf":[{"type":"string"},{"type":"integer"},{"type":"number"},{"type":"boolean"},{"type":"null"}]},"type":"object","title":"Metadata"}},"additionalProperties":false,"type":"object","required":["prompt"],"title":"GenerationRequest","description":"OpenAI-familiar request with RenderRoute routing extensions."},"GenerationResponse":{"properties":{"created":{"type":"integer","title":"Created"},"data":{"items":{"$ref":"#/components/schemas/GeneratedImage"},"type":"array","title":"Data"},"meta":{"$ref":"#/components/schemas/GenerationMeta"}},"type":"object","required":["created","data","meta"],"title":"GenerationResponse"},"HTTPValidationError":{"properties":{"detail":{"items":{"$ref":"#/components/schemas/ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"},"ModelInfo":{"properties":{"id":{"type":"string","title":"Id"},"display_name":{"type":"string","title":"Display Name"},"quality":{"$ref":"#/components/schemas/Quality"},"provider":{"type":"string","title":"Provider"},"provider_model":{"type":"string","title":"Provider Model"},"supports_adult_mode":{"type":"boolean","title":"Supports Adult Mode"},"enabled":{"type":"boolean","title":"Enabled"},"notes":{"type":"string","title":"Notes"}},"type":"object","required":["id","display_name","quality","provider","provider_model","supports_adult_mode","enabled","notes"],"title":"ModelInfo"},"ModelsResponse":{"properties":{"object":{"type":"string","const":"list","title":"Object","default":"list"},"data":{"items":{"$ref":"#/components/schemas/ModelInfo"},"type":"array","title":"Data"}},"type":"object","required":["data"],"title":"ModelsResponse"},"ModerationResponse":{"properties":{"allowed":{"type":"boolean","title":"Allowed"},"categories":{"items":{"type":"string"},"type":"array","title":"Categories"},"reason":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Reason"}},"type":"object","required":["allowed"],"title":"ModerationResponse"},"ProviderChoice":{"type":"string","enum":["auto","runware","together","leonardo","local","mock"],"title":"ProviderChoice"},"Quality":{"type":"string","enum":["fast","premium"],"title":"Quality"},"ResponseFormat":{"type":"string","enum":["url","b64_json"],"title":"ResponseFormat"},"SafetyMode":{"type":"string","enum":["standard","adult"],"title":"SafetyMode"},"ValidationError":{"properties":{"loc":{"items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"array","title":"Location"},"msg":{"type":"string","title":"Message"},"type":{"type":"string","title":"Error Type"},"input":{"title":"Input"},"ctx":{"type":"object","title":"Context"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError"}},"securitySchemes":{"HTTPBearer":{"type":"http","scheme":"bearer"}}}}