# Public access (no auth)
curl -X GET https://api.muvi.video/v1/catalog/models
# With auth for personalized results
curl -X GET https://api.muvi.video/v1/catalog/models \
-H "Authorization: Bearer YOUR_TOKEN"
import requests
# Public access
response = requests.get("https://api.muvi.video/v1/catalog/models")
# With auth for personalized results
response = requests.get(
"https://api.muvi.video/v1/catalog/models",
headers={"Authorization": "Bearer YOUR_TOKEN"}
)
models = response.json()
for model in models:
print(f"{model['slug']} - {model['capability']}")
// Public access
const response = await fetch("https://api.muvi.video/v1/catalog/models");
// With auth for personalized results
const authResponse = await fetch("https://api.muvi.video/v1/catalog/models", {
headers: { "Authorization": "Bearer YOUR_TOKEN" }
});
const models = await response.json();
models.forEach(model => {
console.log(`${model.slug} - ${model.capability}`);
});
[
{
"slug": "google/veo-3.1-fast/text-to-video",
"provider": {
"id": "google",
"name": "Google",
"logoUrl": "https://cdn.muvi.video/providers/google.png"
},
"category": "video",
"capability": "text-to-video",
"pricing": {
"baseCredits": 50,
"unit": "per_generation"
},
"tags": ["fast", "hd", "text-to-video"],
"ratings": {
"average": 4.5,
"count": 128
}
}
]
Catalog
List Catalog Models
Browse the public model catalog. No authentication required. Optional Bearer token enables visibility filtering and user-specific pricing.
GET
/
v1
/
catalog
/
models
# Public access (no auth)
curl -X GET https://api.muvi.video/v1/catalog/models
# With auth for personalized results
curl -X GET https://api.muvi.video/v1/catalog/models \
-H "Authorization: Bearer YOUR_TOKEN"
import requests
# Public access
response = requests.get("https://api.muvi.video/v1/catalog/models")
# With auth for personalized results
response = requests.get(
"https://api.muvi.video/v1/catalog/models",
headers={"Authorization": "Bearer YOUR_TOKEN"}
)
models = response.json()
for model in models:
print(f"{model['slug']} - {model['capability']}")
// Public access
const response = await fetch("https://api.muvi.video/v1/catalog/models");
// With auth for personalized results
const authResponse = await fetch("https://api.muvi.video/v1/catalog/models", {
headers: { "Authorization": "Bearer YOUR_TOKEN" }
});
const models = await response.json();
models.forEach(model => {
console.log(`${model.slug} - ${model.capability}`);
});
[
{
"slug": "google/veo-3.1-fast/text-to-video",
"provider": {
"id": "google",
"name": "Google",
"logoUrl": "https://cdn.muvi.video/providers/google.png"
},
"category": "video",
"capability": "text-to-video",
"pricing": {
"baseCredits": 50,
"unit": "per_generation"
},
"tags": ["fast", "hd", "text-to-video"],
"ratings": {
"average": 4.5,
"count": 128
}
}
]
Authentication
This is a public endpoint. Authentication is optional but recommended for personalized results.
Optional Bearer token. When provided, enables visibility filtering based on user segments and returns user-specific pricing.
Visibility Levels
| Level | Description |
|---|---|
public | Visible to all users, no authentication needed. |
segment | Visible only to users in specific segments (requires Bearer token). |
private | Visible only to users with the model in their allowedModels list. |
Response
Returns an array of catalog model objects.Show Catalog Model Object
Show Catalog Model Object
Unique slug in format
provider/model or provider/model/capability.Provider information (id, name, logoUrl).
Model category (e.g.,
video, image).Model capability (e.g.,
text-to-video, image-to-video).Pricing details including base credits and per-unit costs.
Descriptive tags for filtering and discovery.
Community ratings and review counts.
# Public access (no auth)
curl -X GET https://api.muvi.video/v1/catalog/models
# With auth for personalized results
curl -X GET https://api.muvi.video/v1/catalog/models \
-H "Authorization: Bearer YOUR_TOKEN"
import requests
# Public access
response = requests.get("https://api.muvi.video/v1/catalog/models")
# With auth for personalized results
response = requests.get(
"https://api.muvi.video/v1/catalog/models",
headers={"Authorization": "Bearer YOUR_TOKEN"}
)
models = response.json()
for model in models:
print(f"{model['slug']} - {model['capability']}")
// Public access
const response = await fetch("https://api.muvi.video/v1/catalog/models");
// With auth for personalized results
const authResponse = await fetch("https://api.muvi.video/v1/catalog/models", {
headers: { "Authorization": "Bearer YOUR_TOKEN" }
});
const models = await response.json();
models.forEach(model => {
console.log(`${model.slug} - ${model.capability}`);
});
[
{
"slug": "google/veo-3.1-fast/text-to-video",
"provider": {
"id": "google",
"name": "Google",
"logoUrl": "https://cdn.muvi.video/providers/google.png"
},
"category": "video",
"capability": "text-to-video",
"pricing": {
"baseCredits": 50,
"unit": "per_generation"
},
"tags": ["fast", "hd", "text-to-video"],
"ratings": {
"average": 4.5,
"count": 128
}
}
]
⌘I
