{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://artifacts.apis.io/mediacaption-api/json-schema/mediacaption-api-bulk-transcript-request-schema.json",
  "title": "BulkTranscriptRequest",
  "x-generated": "2026-11-09",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/mediacaption-api-jobs-api-openapi.yml#/components/schemas/BulkTranscriptRequest",
  "type": "object",
  "additionalProperties": false,
  "required": [
    "webhookId",
    "items"
  ],
  "properties": {
    "webhookId": {
      "type": "string",
      "description": "**Required** active dashboard webhook ID for one final job-level event."
    },
    "items": {
      "type": "array",
      "description": "**Required** array of public transcript requests.",
      "minItems": 1,
      "maxItems": 100,
      "items": {
        "$ref": "#/$defs/BulkTranscriptItemRequest"
      }
    }
  },
  "$defs": {
    "BulkTranscriptItemRequest": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "externalId": {
          "type": "string",
          "description": "Customer-provided item ID returned in job results and webhooks."
        },
        "url": {
          "type": "string",
          "format": "uri"
        },
        "videoId": {
          "type": "string"
        },
        "language": {
          "$ref": "#/$defs/LanguageTag"
        }
      },
      "anyOf": [
        {
          "required": [
            "url"
          ]
        },
        {
          "required": [
            "videoId"
          ]
        }
      ]
    },
    "LanguageTag": {
      "type": "string",
      "pattern": "^[A-Za-z]{2,3}(?:-[A-Za-z0-9]{2,8})*$"
    }
  }
}