Vinci uses simple usage-based pricing.
  • Video generation: $0.05 per second of generated video
  • API management: Included
  • Usage monitoring: Included
Info All prices in USD. Costs are calculated based on actual processing time.

Check balance

Endpoint
GET /api/v1/billing/balance
Authentication
Authorization: Bearer sk-your-api-key-here
Response
{
  "balance_usd": 25.50,
  "total_spent_usd": 134.75
}
curl -X GET "https://tryvinci.com/api/v1/billing/balance" \
  -H "Authorization: Bearer sk-your-api-key-here"

Usage statistics

Endpoint
GET /api/v1/billing/usage?days={days}
Authentication
Authorization: Bearer sk-your-api-key-here
Response
{
  "period_days": 30,
  "total_requests": 156,
  "total_seconds": 420.5,
  "total_cost_usd": 21.025,
  "current_balance_usd": 25.50,
  "total_spent_usd": 134.75
}
curl -X GET "https://tryvinci.com/api/v1/billing/usage?days=7" \
  -H "Authorization: Bearer sk-your-api-key-here"

Balance check helper

import requests

def check_balance_for_video(duration_seconds, api_key):
    balance_url = "https://tryvinci.com/api/v1/billing/balance"
    headers = {"Authorization": f"Bearer {api_key}"}
    r = requests.get(balance_url, headers=headers)
    r.raise_for_status()
    balance = r.json()

    estimated_cost = duration_seconds * 0.05
    if balance["balance_usd"] < estimated_cost:
        return False
    return True

Error handling

When balance is insufficient, the API may return 402.
Insufficient balance response
{
  "detail": "Insufficient balance. Current balance: $1.25, required: $2.50"
}
import requests

def make_video_request(prompt, duration, api_key):
    url = "https://tryvinci.com/api/v1/generate/text-to-video"
    headers = {"Authorization": f"Bearer {api_key}", "Content-Type": "application/json"}
    data = {"prompt": prompt, "duration_seconds": duration}
    r = requests.post(url, headers=headers, json=data)
    if r.status_code == 402:
        print(f"Insufficient balance: {r.json().get('detail')}")
        return None
    r.raise_for_status()
    return r.json()

Cost optimization tips

  • Use shorter durations during development.
  • Poll status every 5–10 seconds and implement retry backoff.
  • Monitor usage weekly and set balance alerts.