Créditos
Qué consume créditos, cuándo ocurre el cobro, cómo saber el precio antes y cómo revisar el extracto.
Los créditos son el saldo del workspace. Toda ruta que cobra dice el precio antes de cobrar, y todo débito aparece en el extracto con el id de lo que lo causó.
Qué cobra
| Acción | Cuándo cobra | Cómo saber el precio antes |
|---|---|---|
Clipping (POST /clips) | al crear el envío | credits_cost en POST /clips/info |
Traducción de subtítulos (translate_to) | junto con el clipping | credits_charged en la respuesta de POST /clips |
Transcripción (POST /transcriptions) | al crear, por minuto de audio, más un adicional con speaker_labels | credits_charged en la respuesta |
| Monitoreo de transmisión en vivo | por cada bloque de 10 minutos que generó clips, solo con el monitor encendido | |
| Generación de imagen, video y voz | al crear, al precio que enviaste | GET /generations/models |
| Persona: foto y video | al crear | GET /personas/catalog y GET /personas/swap/quote |
Leer, listar, analizar, renderizar y publicar no cobran.
Revisa el precio antes
POST /clips/info no cobra nada y devuelve el costo exacto del clipping:
{
"id": "7412908365112823",
"duration": 213,
"credits_cost": 4,
"credits_original": 5,
"discount_percent": 20,
"current_balance": 120,
"credits_unlimited": false
}credits_original y discount_percent muestran el descuento aplicado, cuando lo hay.
Saldo
curl https://api.cut.pro/api/v1/balance \
-H "X-Api-Key: $CUTPRO_API_KEY"{ "balance": 120, "unlimited": false, "unlimited_until": null }Saldo insuficiente
La ruta responde 402 antes de crear el job, y no se cobra nada:
{
"code": "INSUFFICIENT_CREDITS",
"extra": { "credits_needed": 121, "current_balance": 40, "is_owner": true }
}credits_neededycurrent_balancedicen cuánto falta.is_ownerdice si el dueño de la clave puede comprar créditos para este workspace.- En generación y persona,
extra.top_up_urles la página donde se compran créditos. Muéstrala a la persona.
Extracto
GET /balance/history lista cada movimiento, del más nuevo al más antiguo:
curl "https://api.cut.pro/api/v1/balance/history?type=debit&limit=20" \
-H "X-Api-Key: $CUTPRO_API_KEY"{
"transactions": [
{
"id": "7412908372201188",
"type": "debit",
"amount": -4,
"balance_after": 116,
"reference_type": "usage",
"reference_id": "7412908371004912",
"description": null,
"waived": false,
"expires_at": null,
"created_at": "2026-10-29T18:01:12.000Z"
}
],
"pagination": { "current_page": 1, "total_pages": 1, "total_count": 1, "has_next_page": false, "has_previous_page": false, "limit": 20 }
}amount es negativo en el débito y positivo en el crédito. reference_id apunta a lo que causó el movimiento (el envío, la suscripción, el reembolso). expires_at solo viene completo en créditos que vencen. Filtra por type y reference_type.
Devoluciones
- Clipping cancelado:
DELETEsobre un envío que aún se procesa lo cancela y devuelve los créditos. - Generación que falló: vuelve sola. En una generación lista que salió mal se puede pedir el reembolso en
POST /generations/{id}/refund, antes de descargar o publicar, y el equipo decide. - Transcripción repetida o sin voz: el audio ya transcrito vuelve de la caché con
credits_charged: 0, y el audio sin voz termina enno_speechsin cobro. - Traducción innecesaria: si el video ya está en el idioma de
translate_to, el adicional de la traducción se devuelve.
Uso gratuito
Un workspace puede estar en uso gratuito. Mientras dure, los jobs corren sin consumir créditos y nunca se rechazan por saldo.
GET /balancemuestraunlimited: trueyunlimited_until(nulles sin fecha de término).GET /workspacetrae lo mismo encredits_unlimitedycredits_unlimited_until.POST /clips/infotraecredits_unlimitedjunto acredits_cost.
El extracto sigue registrando todo: cada job aparece con el valor que habría costado y waived: true, y balance_after no cambia. Los campos de cobro real, como credits_charged, vienen en 0.
La generación con IA y las personas siempre consumen créditos, incluso en uso gratuito.