{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://artifacts.apis.io/kymaapi-com/json-schema/kymaapi-com-video-job-schema.json",
  "title": "VideoJob",
  "x-generated": "2026-10-30",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/kymaapi-com-openapi.json#/components/schemas/VideoJob",
  "type": "object",
  "properties": {
    "id": {
      "type": "string"
    },
    "object": {
      "type": "string",
      "enum": [
        "video.job"
      ]
    },
    "status": {
      "type": "string",
      "enum": [
        "pending",
        "processing",
        "succeeded",
        "failed",
        "refunded",
        "expired"
      ]
    },
    "model": {
      "type": "string"
    },
    "created_at": {
      "type": "string",
      "format": "date-time"
    },
    "completed_at": {
      "type": [
        "string",
        "null"
      ],
      "format": "date-time"
    },
    "output": {
      "type": [
        "object",
        "null"
      ],
      "properties": {
        "url": {
          "type": "string",
          "description": "Vercel Blob URL of the generated video"
        },
        "metadata": {
          "type": "object",
          "properties": {}
        }
      }
    },
    "error": {
      "type": [
        "object",
        "null"
      ],
      "properties": {
        "message": {
          "type": "string"
        },
        "code": {
          "type": "string"
        }
      }
    },
    "estimated_cost": {
      "type": [
        "number",
        "null"
      ],
      "description": "Hold amount placed at submit time (USD), as the ledger holds it. `null` while the job is queued and nothing is held yet."
    },
    "charged_amount": {
      "type": [
        "number",
        "null"
      ],
      "description": "Final billed amount (USD) once the hold is released: what a successful job cost, `0` for a failed or refunded one. `null` until then."
    },
    "refunded_amount": {
      "type": [
        "number",
        "null"
      ],
      "description": "The part of the hold returned to your balance (USD) once it is released. `null` until then."
    }
  }
}