{
  "openapi": "3.0.1",
  "info": {
    "title": "Video & Audio to Translated Subtitles",
    "description": "Turn audio and video into accurate, professionally formatted subtitles. Automatically transcribe, translate into multiple languages, and export ready-to-use SRT, VTT, TXT, and JSON files. No API keys required.",
    "version": "0.5",
    "x-build-id": "SgaKx3Tlk1azO09pz"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/lumaxys~professional-subtitle-formatter/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-lumaxys-professional-subtitle-formatter",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/acts/lumaxys~professional-subtitle-formatter/runs": {
      "post": {
        "operationId": "runs-sync-lumaxys-professional-subtitle-formatter",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor and returns information about the initiated run in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/runsResponseSchema"
                }
              }
            }
          }
        }
      }
    },
    "/acts/lumaxys~professional-subtitle-formatter/run-sync": {
      "post": {
        "operationId": "run-sync-lumaxys-professional-subtitle-formatter",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "inputSchema": {
        "type": "object",
        "properties": {
          "mediaFile": {
            "title": "Audio or video file (upload)",
            "type": "string",
            "description": "Upload one audio or video file. The format is detected automatically. Use either this field or Direct audio/video URL, not both. Leave both empty only for the free readiness check."
          },
          "mediaUrl": {
            "title": "Direct audio/video URL",
            "pattern": "^https?:\\/\\/.+",
            "type": "string",
            "description": "Direct public http(s) URL to an audio or video file. The format is detected automatically. YouTube, TikTok and Instagram page links are not supported. Leave both source fields empty only for the free readiness check."
          },
          "profile": {
            "title": "Subtitle style",
            "enum": [
              "documentary",
              "social",
              "accessibility"
            ],
            "type": "string",
            "description": "Choose the subtitle formatting rules: documentary for long-form content, social for shorter punchier cues, or accessibility for more readable SDH-style subtitles.",
            "default": "documentary"
          },
          "diarize": {
            "title": "Detect speakers",
            "type": "boolean",
            "description": "Detect and preserve speaker changes when the transcription service can identify multiple speakers.",
            "default": false
          },
          "includeSpeakerLabels": {
            "title": "Include speaker labels in text exports",
            "type": "boolean",
            "description": "Prefix exported subtitle text with speaker labels when speaker detection is available.",
            "default": false
          },
          "languageCode": {
            "title": "Input language (optional)",
            "type": "string",
            "description": "Optional 2- or 3-letter language code such as fr, en or ja. Leave empty to detect the spoken language automatically."
          },
          "targetLanguages": {
            "title": "Output language(s) (optional)",
            "maxItems": 5,
            "uniqueItems": true,
            "type": "array",
            "description": "Choose up to five languages for translated subtitles. Leave empty to generate subtitles only in the original detected language. Each selected language is charged per translated media minute.",
            "items": {
              "type": "string",
              "enum": [
                "EN-US",
                "EN-GB",
                "FR",
                "DE",
                "ES",
                "IT",
                "PT-BR",
                "PT-PT",
                "NL",
                "PL",
                "JA",
                "ZH-HANS",
                "ZH-HANT",
                "KO"
              ],
              "enumTitles": [
                "English (US)",
                "English (UK)",
                "French",
                "German",
                "Spanish",
                "Italian",
                "Portuguese (Brazil)",
                "Portuguese (Portugal)",
                "Dutch",
                "Polish",
                "Japanese",
                "Chinese (Simplified)",
                "Chinese (Traditional)",
                "Korean"
              ]
            },
            "default": []
          },
          "outputFormats": {
            "title": "Files to generate",
            "minItems": 1,
            "uniqueItems": true,
            "type": "array",
            "description": "Select one or more files to generate for the original transcription and each successful translation.",
            "items": {
              "type": "string",
              "enum": [
                "srt",
                "vtt",
                "txt",
                "json"
              ],
              "enumTitles": [
                "SRT subtitles",
                "WebVTT subtitles",
                "Plain text transcript",
                "Structured JSON"
              ]
            },
            "default": [
              "srt",
              "vtt",
              "txt",
              "json"
            ]
          },
          "maxCharsPerLine": {
            "title": "Max characters per line (advanced)",
            "minimum": 16,
            "maximum": 60,
            "type": "integer",
            "description": "Override the selected profile’s maximum number of visible characters on each subtitle line."
          },
          "maxLinesPerSubtitle": {
            "title": "Max lines per subtitle",
            "minimum": 1,
            "maximum": 2,
            "type": "integer",
            "description": "Override the selected profile’s maximum number of lines displayed in one subtitle cue."
          },
          "maxCps": {
            "title": "Max characters per second",
            "minimum": 8,
            "maximum": 30,
            "type": "number",
            "description": "Override the selected profile’s maximum reading speed in characters per second."
          },
          "minSubtitleDurationMs": {
            "title": "Minimum subtitle duration (ms)",
            "minimum": 300,
            "maximum": 3000,
            "type": "integer",
            "description": "Override the minimum time, in milliseconds, that a subtitle remains visible."
          },
          "maxSubtitleDurationMs": {
            "title": "Maximum subtitle duration (ms)",
            "minimum": 2000,
            "maximum": 10000,
            "type": "integer",
            "description": "Override the maximum time, in milliseconds, that a subtitle remains visible."
          },
          "maxMediaMinutes": {
            "title": "Maximum media duration (minutes)",
            "minimum": 1,
            "maximum": 180,
            "type": "integer",
            "description": "Reject media whose selected audio track exceeds this duration. The absolute platform safety limit is 180 minutes.",
            "default": 60
          }
        }
      },
      "runsResponseSchema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string"
              },
              "actId": {
                "type": "string"
              },
              "userId": {
                "type": "string"
              },
              "startedAt": {
                "type": "string",
                "format": "date-time",
                "example": "2025-01-08T00:00:00.000Z"
              },
              "finishedAt": {
                "type": "string",
                "format": "date-time",
                "example": "2025-01-08T00:00:00.000Z"
              },
              "status": {
                "type": "string",
                "example": "READY"
              },
              "meta": {
                "type": "object",
                "properties": {
                  "origin": {
                    "type": "string",
                    "example": "API"
                  },
                  "userAgent": {
                    "type": "string"
                  }
                }
              },
              "stats": {
                "type": "object",
                "properties": {
                  "inputBodyLen": {
                    "type": "integer",
                    "example": 2000
                  },
                  "rebootCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "restartCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "resurrectCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "computeUnits": {
                    "type": "integer",
                    "example": 0
                  }
                }
              },
              "options": {
                "type": "object",
                "properties": {
                  "build": {
                    "type": "string",
                    "example": "latest"
                  },
                  "timeoutSecs": {
                    "type": "integer",
                    "example": 300
                  },
                  "memoryMbytes": {
                    "type": "integer",
                    "example": 1024
                  },
                  "diskMbytes": {
                    "type": "integer",
                    "example": 2048
                  }
                }
              },
              "buildId": {
                "type": "string"
              },
              "defaultKeyValueStoreId": {
                "type": "string"
              },
              "defaultDatasetId": {
                "type": "string"
              },
              "defaultRequestQueueId": {
                "type": "string"
              },
              "buildNumber": {
                "type": "string",
                "example": "1.0.0"
              },
              "containerUrl": {
                "type": "string"
              },
              "usage": {
                "type": "object",
                "properties": {
                  "ACTOR_COMPUTE_UNITS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_WRITES": {
                    "type": "integer",
                    "example": 1
                  },
                  "KEY_VALUE_STORE_LISTS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_INTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_EXTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_SERPS": {
                    "type": "integer",
                    "example": 0
                  }
                }
              },
              "usageTotalUsd": {
                "type": "number",
                "example": 0.00005
              },
              "usageUsd": {
                "type": "object",
                "properties": {
                  "ACTOR_COMPUTE_UNITS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_WRITES": {
                    "type": "number",
                    "example": 0.00005
                  },
                  "KEY_VALUE_STORE_LISTS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_INTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_EXTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_SERPS": {
                    "type": "integer",
                    "example": 0
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}