Authentication
This endpoint requires an API key with the check_status scope.
Authorization: Bearer YOUR_API_KEY
Request Body
The model slug to estimate costs for. Example: "google/veo-3.1-fast/text-to-video"
Optional model version. If omitted, the latest stable version is used.
Optional model-specific input parameters. Some models use input parameters (e.g. resolution, duration) for dynamic pricing calculations.
Response
The base cost of the job in micro-cents before any discounts.
The final estimated cost in micro-cents after applying any applicable discounts.
Detailed cost breakdown by component.
Whether a discount is applied to this estimate.
Discount details when hasDiscount is true. Contains the discount type and amount.
Examples
curl -X POST https://api.muvi.video/v1/jobs/estimate \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "google/veo-3.1-fast/text-to-video",
"input": {
"prompt": "A cinematic drone shot of a mountain landscape at sunset",
"duration": 10
}
}'
import requests
response = requests.post(
"https://api.muvi.video/v1/jobs/estimate",
headers={
"Authorization": "Bearer YOUR_API_KEY",
"Content-Type": "application/json"
},
json={
"model": "google/veo-3.1-fast/text-to-video",
"input": {
"prompt": "A cinematic drone shot of a mountain landscape at sunset",
"duration": 10
}
}
)
data = response.json()
print(f"Base cost: {data['baseCostMicroCents']} micro-cents")
print(f"Estimated cost: {data['estimatedCostMicroCents']} micro-cents")
print(f"Has discount: {data['hasDiscount']}")
const response = await fetch("https://api.muvi.video/v1/jobs/estimate", {
method: "POST",
headers: {
"Authorization": "Bearer YOUR_API_KEY",
"Content-Type": "application/json"
},
body: JSON.stringify({
model: "google/veo-3.1-fast/text-to-video",
input: {
prompt: "A cinematic drone shot of a mountain landscape at sunset",
duration: 10
}
})
});
const data = await response.json();
console.log(`Base cost: ${data.baseCostMicroCents} micro-cents`);
console.log(`Estimated cost: ${data.estimatedCostMicroCents} micro-cents`);
console.log(`Has discount: ${data.hasDiscount}`);
Example Response
{
"baseCostMicroCents": 500000,
"estimatedCostMicroCents": 400000,
"breakdown": [
{
"component": "base_generation",
"costMicroCents": 300000
},
{
"component": "extended_duration",
"costMicroCents": 200000
}
],
"hasDiscount": true,
"discounted": {
"type": "volume",
"percentage": 20,
"savedMicroCents": 100000
}
}