> For clean Markdown of any page, append .md to the page URL. > For a complete documentation index, see https://docs.simplified.com/api-reference/platform/ai-models/list-image-models/llms.txt. > For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.simplified.com/_mcp/server. # Media · Models · List available AI image models GET https://api.simplified.com/api/v2/ai-image/models List every image model available for `generateImage`, with the capabilities each one supports. Public — no credential required. Call this **before** generating when you do not already know a model id. Passing a setting a model does not support is silently ignored rather than rejected, so discovering the model first is how you avoid an image that comes back subtly wrong (an aspect ratio that never applied, for example). Reference: https://docs.simplified.com/api-reference/platform/ai-models/list-image-models ## Request ### Query parameters - `capability` (enum, optional) — Return only models supporting this capability. - Allowed values: `prompt`, `reference_image`, `multiple_images`, `first_last_frame` ## Response ### 200 The image model catalog - `models` (list of ApiV2AiImageModelsGetResponsesContentApplicationJsonSchemaModelsItems, optional) ## Errors ### 400 Bad Request Error Unknown capability value - `any` ## Types ### ApiV2AiImageModelsGetResponsesContentApplicationJsonSchemaModelsItems ## Examples **Response** ```json { "models": [ {} ] } ``` **SDK Code** ```python import requests url = "https://api.simplified.com/api/v2/ai-image/models" response = requests.get(url) print(response.json()) ``` ```javascript const url = 'https://api.simplified.com/api/v2/ai-image/models'; const options = {method: 'GET'}; try { const response = await fetch(url, options); const data = await response.json(); console.log(data); } catch (error) { console.error(error); } ``` ```go package main import ( "fmt" "net/http" "io" ) func main() { url := "https://api.simplified.com/api/v2/ai-image/models" req, _ := http.NewRequest("GET", url, nil) res, _ := http.DefaultClient.Do(req) defer res.Body.Close() body, _ := io.ReadAll(res.Body) fmt.Println(res) fmt.Println(string(body)) } ``` ```ruby require 'uri' require 'net/http' url = URI("https://api.simplified.com/api/v2/ai-image/models") http = Net::HTTP.new(url.host, url.port) http.use_ssl = true request = Net::HTTP::Get.new(url) response = http.request(request) puts response.read_body ``` ```java import com.mashape.unirest.http.HttpResponse; import com.mashape.unirest.http.Unirest; HttpResponse response = Unirest.get("https://api.simplified.com/api/v2/ai-image/models") .asString(); ``` ```php request('GET', 'https://api.simplified.com/api/v2/ai-image/models'); echo $response->getBody(); ``` ```csharp using RestSharp; var client = new RestClient("https://api.simplified.com/api/v2/ai-image/models"); var request = new RestRequest(Method.GET); IRestResponse response = client.Execute(request); ``` ```swift import Foundation let request = NSMutableURLRequest(url: NSURL(string: "https://api.simplified.com/api/v2/ai-image/models")! as URL, cachePolicy: .useProtocolCachePolicy, timeoutInterval: 10.0) request.httpMethod = "GET" let session = URLSession.shared let dataTask = session.dataTask(with: request as URLRequest, completionHandler: { (data, response, error) -> Void in if (error != nil) { print(error as Any) } else { let httpResponse = response as? HTTPURLResponse print(httpResponse) } }) dataTask.resume() ```