API metadata daftar model
curl --request GET \
--url https://api.apimart.ai/v1/modelsimport requests
url = "https://api.apimart.ai/v1/models"
response = requests.get(url)
print(response.text)const options = {method: 'GET'};
fetch('https://api.apimart.ai/v1/models', 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://api.apimart.ai/v1/models",
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://api.apimart.ai/v1/models"
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://api.apimart.ai/v1/models")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.apimart.ai/v1/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_bodyModel
API metadata daftar model
- GET /v1/models: daftar dasar dengan kategori, kemampuan, dan skema parameter melalui expand
- Mendukung filter
categorydan JSON Schema melaluiexpand=parameters - Cocok untuk otomatisasi, formulir dinamis, dan validasi awal
GET
/
v1
/
models
API metadata daftar model
curl --request GET \
--url https://api.apimart.ai/v1/modelsimport requests
url = "https://api.apimart.ai/v1/models"
response = requests.get(url)
print(response.text)const options = {method: 'GET'};
fetch('https://api.apimart.ai/v1/models', 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://api.apimart.ai/v1/models",
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://api.apimart.ai/v1/models"
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://api.apimart.ai/v1/models")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.apimart.ai/v1/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_bodyAPI metadata daftar model (
GET /v1/models) secara default hanya mengembalikan kolom dasar seperti nama model. Menambahkan parameter kueri expand akan menyertakan informasi berikut pada setiap model:- Kategori (
category):chat/image/video/audio - Tag kemampuan (
capability_tags): misalnyaText to VideodanImage to Image - Kontrak parameter (
parameters): JSON Schema standar yang menunjukkan kolom wajib/opsional, enumerasi, rentang, dan nilai default
Kompatibilitas mundur: tanpa expand (atau dengan nilai yang tidak dikenali), respons identik dengan format yang sudah ada sehingga klien lama tidak terpengaruh.
Cakupan model: model yang dikembalikan ditentukan oleh pembatasan model dan grup yang ditetapkan pada API key.
category=unknown berarti platform belum mencatat metadata kategori model tersebut.Mendapatkan daftar model dengan metadata
GET/v1/models
Header permintaan
Authorization: Bearer YOUR_API_KEY
Parameter kueri
| Parameter | Tipe | Wajib | Deskripsi |
|---|---|---|---|
expand | string | Tidak | category: menambahkan kategori dan tag kemampuan (ringan); parameters: juga menambahkan JSON Schema parameter lengkap (respons besar) |
category | string | Tidak | Memfilter berdasarkan chat / image / video / audio / unknown. Hanya berlaku saat expand diberikan |
expand tidak digunakan: ditentukan oleh pembatasan model dan grup yang ditetapkan pada API key.
Contoh 1: hanya kategori
cURL
curl -s "https://api.apimart.ai/v1/models?expand=category" \
-H "Authorization: Bearer YOUR_API_KEY"
{
"success": true,
"object": "list",
"data": [
{
"id": "wan2.6",
"object": "model",
"created": 1626777600,
"owned_by": "alibaba",
"supported_endpoint_types": ["openai"],
"category": "video",
"capability_tags": ["Text to Video"]
},
{
"id": "gpt-4o",
"object": "model",
"created": 1626777600,
"owned_by": "openai",
"supported_endpoint_types": ["openai"],
"category": "chat",
"capability_tags": ["Text", "Vision"]
}
]
}
Contoh 2: kontrak parameter lengkap untuk model video
cURL
curl -s "https://api.apimart.ai/v1/models?expand=parameters&category=video" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Accept-Encoding: gzip" --compressed
input_schema.properties hanya menampilkan sebagian kolom):
{
"id": "wan2.6",
"object": "model",
"created": 1626777600,
"owned_by": "alibaba",
"supported_endpoint_types": ["openai"],
"category": "video",
"capability_tags": ["Text to Video"],
"parameters": {
"operation": "video_generation",
"method": "POST",
"endpoint": "/v1/videos/generations",
"schema_version": "2026-07-30",
"source": "task_model_registry",
"input_schema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"additionalProperties": true,
"required": ["model"],
"anyOf": [
{ "required": ["prompt"] },
{ "required": ["messages"] },
{ "required": ["image_urls"] },
{ "required": ["image_with_roles"] },
{ "required": ["video_urls"] }
],
"properties": {
"model": { "type": "string", "const": "wan2.6" },
"prompt": { "type": "string", "minLength": 1 },
"duration": { "type": "integer", "minimum": 1 },
"resolution": { "type": "string" },
"aspect_ratio": { "type": "string" }
}
}
}
}
Kolom respons
Kolom item
| Kolom | Tipe | Kondisi | Deskripsi |
|---|---|---|---|
id / object / created / owned_by / supported_endpoint_types | - | Selalu | Sama seperti API yang sudah ada |
category | string | Dengan expand | chat / image / video / audio / unknown |
capability_tags | string[] | Dengan expand dan jika ada tag | Lihat tabel tag kemampuan |
parameters | object | Dengan expand=parameters dan jika ada kontrak | Lihat blok parameters |
category=unknown berarti platform belum mencatat metadata kategori model tersebut (biasanya nama nonstandar yang dikonfigurasi dalam daftar model yang diizinkan untuk API key). Model tetap dapat dipanggil seperti biasa.
Tag kemampuan
| Kategori | Tag yang mungkin |
|---|---|
| video | Text to Video, Image to Video, Video to Video |
| image | Text to Image, Image to Image |
| chat | Text, Embedding, Vision, Audio, Omni |
| audio | Audio |
Blok parameters
| Kolom | Deskripsi |
|---|---|
operation | image_generation / video_generation |
method + endpoint | Metode HTTP dan path untuk memanggil model (misalnya POST /v1/videos/generations) |
schema_version | Versi kontrak (tanggal); antarversi hanya menambahkan kolom |
source | Sumber data kontrak untuk pemecahan masalah; base berarti hanya tersedia kontrak dasar umum |
input_schema | Kontrak lengkap body permintaan dalam JSON Schema draft 2020-12 |
Cara membaca input_schema
Ini adalah JSON Schema standar yang dapat langsung digunakan oleh alat umum seperti ajv, pydantic, dan openapi-generator.- Parameter wajib = array
requiredtingkat atas;anyOfberarti “setidaknya satu dari kombinasi berikut” (pada contoh di atas, salah satu dariprompt,messages, atau tiga input media referensi) - Nilai enumerasi =
enumpada properti - Rentang =
minimum/maximum - Nilai default =
default additionalProperties: true: mengizinkan parameter ekstensi khusus model yang tidak tercantum dalam skema (diteruskan melaluimetadata)
Meminta satu model
Selain daftar, tersedia endpoint khusus untuk kontrak satu model (struktur yang sama, dengan blok tambahan yang menjelaskan idempotensi dan kontrak respons):curl -s "https://api.apimart.ai/v1/models/wan2.6/schema" \
-H "Authorization: Bearer YOUR_API_KEY"
# Untuk nama model yang mengandung "/", gunakan bentuk parameter kueri
curl -s "https://api.apimart.ai/v1/model-schema?model=provider/model-name" \
-H "Authorization: Bearer YOUR_API_KEY"
Catatan
- Saat ini model chat / audio hanya memiliki
categorydancapability_tags, tanpaparameters(kontrak parameter saat ini mencakup image / video dan akan ditambahkan untuk kategori lain pada versi berikutnya). - Skema merupakan kontrak upaya terbaik; validasi sisi server tetap menjadi acuan akhir. Beberapa batasan dinamis, seperti kombinasi resolusi dan durasi tertentu, mungkin tidak sepenuhnya dinyatakan dalam skema. Server masih dapat menolak permintaan dan memberikan alasan tertentu.
- Kesegaran data dihitung dalam menit. Katalog disimpan dalam cache, sehingga model baru atau perubahan parameter mungkin membutuhkan beberapa menit untuk muncul.
- Respons lengkap
expand=parametersdapat mencapai ratusan KB. Filter dengancategoryjika memungkinkan dan kirimAccept-Encoding: gzip. - Parameter ini hanya berlaku untuk daftar model berformat OpenAI. Daftar model berformat Anthropic / Gemini tidak mendukung
expand.