Get public model catalog
curl --request GET \
--url https://inference.magica.com/v1/models/catalogimport requests
url = "https://inference.magica.com/v1/models/catalog"
response = requests.get(url)
print(response.text)const options = {method: 'GET'};
fetch('https://inference.magica.com/v1/models/catalog', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://inference.magica.com/v1/models/catalog",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://inference.magica.com/v1/models/catalog"
req, _ := http.NewRequest("GET", url, nil)
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://inference.magica.com/v1/models/catalog")
.asString();require 'uri'
require 'net/http'
url = URI("https://inference.magica.com/v1/models/catalog")
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{
"version": 123,
"generatedAt": "2023-11-07T05:31:56Z",
"models": {}
}Models
Get public model catalog
Return non-sensitive model catalog metadata, including categories, model IDs, and pricing metadata.
GET
/
v1
/
models
/
catalog
Get public model catalog
curl --request GET \
--url https://inference.magica.com/v1/models/catalogimport requests
url = "https://inference.magica.com/v1/models/catalog"
response = requests.get(url)
print(response.text)const options = {method: 'GET'};
fetch('https://inference.magica.com/v1/models/catalog', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://inference.magica.com/v1/models/catalog",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://inference.magica.com/v1/models/catalog"
req, _ := http.NewRequest("GET", url, nil)
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://inference.magica.com/v1/models/catalog")
.asString();require 'uri'
require 'net/http'
url = URI("https://inference.magica.com/v1/models/catalog")
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{
"version": 123,
"generatedAt": "2023-11-07T05:31:56Z",
"models": {}
}Returns the structured public model catalog used by Magica clients. This endpoint is intentionally public without an API key because it contains non-sensitive model metadata and pricing descriptors.
Use
Each value in
When generation fails, the route returns:
GET /v1/models when you need a flat list of nodeType and subModelId values for execution. Use this catalog when you are building richer model pickers with category and pricing metadata.
Authorization
No API key is required.Response
The response is a forward-compatible catalog object. Themodels map grows as new models launch, so clients should read the fields they need and tolerate additional fields.
Common fields include:
| Field | Meaning |
|---|---|
version | Catalog version number |
generatedAt | ISO timestamp for the generated catalog payload |
models | Model metadata keyed by model identifier |
models can include display metadata, category, supported modes, schema/pricing hints, and model-specific configuration used by Magica clients. Use GET /v1/models or GET /v1/models/search when you need a smaller execution-focused list.
Request
curl https://inference.magica.com/v1/models/catalog
Response example
{
"version": 1,
"generatedAt": "2026-07-05T13:00:00.000Z",
"models": {
"nano-banana-pro": {
"name": "Nano Banana Pro",
"category": "text-to-image"
}
}
}
Errors
| Status | Reason |
|---|---|
500 | Catalog generation failed |
{
"message": "Internal server error",
"code": "INTERNAL_SERVER_ERROR"
}
Was this page helpful?