> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://developer.ideogram.ai/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://developer.ideogram.ai/_mcp/server.

# Get model details

GET https://api.ideogram.ai/models/{model_id}

Get detailed information about a specific custom model. The user must either own the model or the model must be shared with the user's organization via the model registry. Returns 404 if the model is not found or not accessible.


Reference: https://developer.ideogram.ai/v1/api-reference/custom-model-training/get-model

## Authentication

- `Api-Key` header (required) — API key for access control. Use in the header with the name \"Api-Key\"

## Request

### Path parameters

- `model_id` (string, required)

## Response

### 200

Model retrieved successfully

- `model` (CustomModel, required) — A custom model.

## Errors

### 401 Unauthorized Error

Unauthorized

- `any`

### 404 Not Found Error

Model not found

- `any`

## Types

### CustomModel

A custom model.

- `model_id` (string, required) — Unique identifier for the model (base64 URL-safe encoded UUID).
- `name` (string, required) — Display name of the model.
- `status` (enum, required) — The status of a custom model.
  - Allowed values: `CREATING`, `DRAFT`, `TRAINING`, `COMPLETED`, `ERRORED`, `ARCHIVED`
- `creation_time` (datetime, required) — When the model was created.
- `is_available_for_generation` (boolean, required) — Whether the model is available for image generation.
- `is_owned` (boolean, required) — Whether the authenticated user owns this model.
- `custom_model_uri` (string, optional, nullable) — A custom model URI in the format model/\<model\_name>/version/\<version\_name>. Use this URI when generating images with this model. Only present for models that have been registered in the model registry.
- `dataset_id` (string, optional, nullable) — ID of the dataset (collection) the model was trained from.
- `last_update_time` (datetime, optional, nullable) — When the model was last updated.

## Examples

**Response**

```json
{
  "model": {
    "model_id": "model_id",
    "name": "name",
    "status": "CREATING",
    "creation_time": "2024-01-15T09:30:00Z",
    "is_available_for_generation": true,
    "is_owned": true,
    "custom_model_uri": "model/my-custom-model/version/1",
    "dataset_id": "dataset_id",
    "last_update_time": "2024-01-15T09:30:00Z"
  }
}
```

**SDK Code**

```python
import requests

url = "https://api.ideogram.ai/models/model_id"

headers = {"Api-Key": "<apiKey>"}

response = requests.get(url, headers=headers)

print(response.json())
```

```javascript
const url = 'https://api.ideogram.ai/models/model_id';
const options = {method: 'GET', headers: {'Api-Key': '<apiKey>'}};

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.ideogram.ai/models/model_id"

	req, _ := http.NewRequest("GET", url, nil)

	req.Header.Add("Api-Key", "<apiKey>")

	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.ideogram.ai/models/model_id")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Get.new(url)
request["Api-Key"] = '<apiKey>'

response = http.request(request)
puts response.read_body
```

```java
import com.mashape.unirest.http.HttpResponse;
import com.mashape.unirest.http.Unirest;

HttpResponse<String> response = Unirest.get("https://api.ideogram.ai/models/model_id")
  .header("Api-Key", "<apiKey>")
  .asString();
```

```php
<?php
require_once('vendor/autoload.php');

$client = new \GuzzleHttp\Client();

$response = $client->request('GET', 'https://api.ideogram.ai/models/model_id', [
  'headers' => [
    'Api-Key' => '<apiKey>',
  ],
]);

echo $response->getBody();
```

```csharp
using RestSharp;

var client = new RestClient("https://api.ideogram.ai/models/model_id");
var request = new RestRequest(Method.GET);
request.AddHeader("Api-Key", "<apiKey>");
IRestResponse response = client.Execute(request);
```

```swift
import Foundation

let headers = ["Api-Key": "<apiKey>"]

let request = NSMutableURLRequest(url: NSURL(string: "https://api.ideogram.ai/models/model_id")! as URL,
                                        cachePolicy: .useProtocolCachePolicy,
                                    timeoutInterval: 10.0)
request.httpMethod = "GET"
request.allHTTPHeaderFields = headers

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()
```