API referenceQuotes

Quote operations

Price a list of operations before running them: credits_expected and credits_max per line and in total, in credits and USD at list, pinned to a price_book_version.

Operations are {type:"generation", slug, quantity?, units?, provider?} (a /price-book line; units are characters or seconds per call), {type:"scenes", media_source, count, quality_tier?}, or {type:"project", ...} with the /projects/estimate inputs in snake_case. When a price depends on something left open (a TTS provider), credits_max is the dearest case. Stores the quote; moves no credits. 422 with a code when an operation cannot be priced.

POST
/quotes

Authorization

bearerAuth
AuthorizationBearer <token>

Typecut API key. Generate one in app.typecut.ai → Settings → API keys. Send as Authorization: Bearer tc_live_….

In: header

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

application/json

application/json

application/json

curl -X POST "https://example.com/quotes" \  -H "Content-Type: application/json" \  -d '{    "operations": [      {        "type": "generation"      }    ]  }'
{
  "data": {
    "quote_id": "3c071a1d-db86-46a7-9dc8-72ba3fbca992",
    "price_book_version": "string",
    "credits_expected": 0,
    "credits_max": 0,
    "usd_expected": 0,
    "usd_max": 0,
    "bound": "estimate",
    "line_items": [
      {
        "operation": 0,
        "line": "string",
        "description": "string",
        "quantity": 0,
        "credits_expected": 0,
        "credits_max": 0
      }
    ],
    "expires_at": "string",
    "created_at": "string",
    "credit_balance": 0,
    "affordable": true,
    "note": "string"
  }
}
{
  "error": {
    "type": "string",
    "code": "string",
    "message": "string"
  }
}
{
  "error": {
    "type": "string",
    "code": "string",
    "message": "string"
  }
}
{
  "error": {
    "type": "string",
    "code": "string",
    "message": "string"
  }
}