API referenceHolds

Reserve credits

Hold a quote's credits_max (quote_id) or an amount (credits).

Hold a quote's credits_max (quote_id) or an amount (credits). A hold moves no credits; it lowers credits_available on GET /me (balance minus active holds) until it is captured, released or expires (ttl_seconds, default 3600), so parallel work cannot spend the same credits. Idempotent on idempotency_key (body) or the Idempotency-Key header: a retry returns the same hold with 200 and replayed: true. 402 when available credits fall short.

POST
/holds

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

application/json

application/json

application/json

curl -X POST "https://example.com/holds" \  -H "Content-Type: application/json" \  -d '{}'
{
  "data": {
    "hold_id": "4ce991bb-2101-434c-985c-39697d3f31c4",
    "quote_id": "3c071a1d-db86-46a7-9dc8-72ba3fbca992",
    "held": 0,
    "captured": 0,
    "remaining": 0,
    "status": "active",
    "reason": "string",
    "expires_at": "string",
    "created_at": "string",
    "closed_at": "string",
    "replayed": true,
    "credits_available": 0
  }
}
{
  "data": {
    "hold_id": "4ce991bb-2101-434c-985c-39697d3f31c4",
    "quote_id": "3c071a1d-db86-46a7-9dc8-72ba3fbca992",
    "held": 0,
    "captured": 0,
    "remaining": 0,
    "status": "active",
    "reason": "string",
    "expires_at": "string",
    "created_at": "string",
    "closed_at": "string",
    "replayed": true,
    "credits_available": 0
  }
}
{
  "error": {
    "type": "string",
    "code": "string",
    "message": "string"
  }
}
{
  "error": {
    "type": "string",
    "code": "string",
    "message": "string"
  }
}
{
  "error": {
    "type": "string",
    "code": "string",
    "message": "string"
  }
}
{
  "error": {
    "type": "string",
    "code": "string",
    "message": "string"
  }
}
{
  "error": {
    "type": "string",
    "code": "string",
    "message": "string"
  }
}