{
  "openapi": "3.0.1",
  "info": {
    "title": "Podcast Audiogram Generator - Waveform Video MP4",
    "description": "Turn a podcast episode or any audio link into social video clips: animated waveform, cover art, title, progress bar and captions from your SRT. Square, vertical and horizontal MP4 from an MP3 link or the RSS feed. Flat price per clip.",
    "version": "0.1",
    "x-build-id": "dgyv5UM2YmnCCL72n"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/maksym_kotenko~podcast-audiogram-generator/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-maksym_kotenko-podcast-audiogram-generator",
        "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/maksym_kotenko~podcast-audiogram-generator/runs": {
      "post": {
        "operationId": "runs-sync-maksym_kotenko-podcast-audiogram-generator",
        "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/maksym_kotenko~podcast-audiogram-generator/run-sync": {
      "post": {
        "operationId": "run-sync-maksym_kotenko-podcast-audiogram-generator",
        "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": {
          "audioUrl": {
            "title": "Audio file URL",
            "type": "string",
            "description": "Direct link to an MP3, M4A, AAC, WAV, OGG, OPUS or FLAC file, up to 500 MB. Leave this and the RSS feed empty to render a free demo clip."
          },
          "rssUrl": {
            "title": "Podcast RSS feed URL",
            "type": "string",
            "description": "The podcast's RSS feed. The Actor picks the episode below, downloads its audio and uses its title, show name and cover art."
          },
          "episode": {
            "title": "Episode from the feed",
            "minimum": 1,
            "maximum": 1000,
            "type": "integer",
            "description": "1 = latest episode, 2 = the one before it, and so on.",
            "default": 1
          },
          "episodeTitle": {
            "title": "Episode title contains",
            "type": "string",
            "description": "Pick the episode whose title contains this text (or whose GUID equals it) instead of using the number above."
          },
          "startTime": {
            "title": "Clip start",
            "type": "string",
            "description": "Where the clip starts in the audio: seconds (95), mm:ss (1:35) or hh:mm:ss (1:01:35). Used when the clip list below is empty."
          },
          "durationSeconds": {
            "title": "Clip length (seconds)",
            "minimum": 3,
            "maximum": 180,
            "type": "integer",
            "description": "Length of each clip, 3 to 180 seconds. 30-60 seconds suits Instagram, TikTok, Shorts and LinkedIn.",
            "default": 30
          },
          "clips": {
            "title": "Clip list",
            "type": "array",
            "description": "Several clips from the same audio, up to 20. Each item is {\"start\": \"12:30\", \"duration\": 45, \"title\": \"optional own title\"} or {\"start\": \"12:30\", \"end\": \"13:15\"} or a range string \"12:30-13:15\"."
          },
          "formats": {
            "title": "Video formats",
            "type": "array",
            "description": "Every clip is rendered in each selected format and each video is one charged clip. Square 1080x1080, vertical 1080x1920 (Reels, TikTok, Shorts), horizontal 1920x1080 (YouTube).",
            "items": {
              "type": "string",
              "enum": [
                "square",
                "vertical",
                "horizontal"
              ],
              "enumTitles": [
                "Square 1:1 (1080x1080)",
                "Vertical 9:16 (1080x1920)",
                "Horizontal 16:9 (1920x1080)"
              ]
            },
            "default": [
              "square"
            ]
          },
          "title": {
            "title": "Title",
            "type": "string",
            "description": "Big text on the video, for example the episode name. Defaults to the episode title from the RSS feed."
          },
          "subtitle": {
            "title": "Subtitle",
            "type": "string",
            "description": "Smaller text under the title, for example the show name or guest. Defaults to the show name from the RSS feed."
          },
          "coverImageUrl": {
            "title": "Cover image URL",
            "type": "string",
            "description": "JPG, PNG or WebP, up to 15 MB, shown as a rounded square. Defaults to the episode or show artwork from the RSS feed."
          },
          "useFeedCover": {
            "title": "Use cover art from the feed",
            "type": "boolean",
            "description": "When no cover image URL is given, use the episode artwork or the show artwork from the RSS feed.",
            "default": true
          },
          "waveStyle": {
            "title": "Waveform style",
            "enum": [
              "bars",
              "wave",
              "line"
            ],
            "type": "string",
            "description": "Bars - blocky equalizer-style waveform; Wave - filled waveform; Line - thin oscilloscope line.",
            "default": "bars"
          },
          "background": {
            "title": "Background",
            "enum": [
              "color",
              "blurred-cover"
            ],
            "type": "string",
            "description": "A solid color, or the cover art blurred across the whole frame.",
            "default": "color"
          },
          "backgroundColor": {
            "title": "Background color",
            "type": "string",
            "description": "Hex color, for example #0F172A.",
            "default": "#0F172A"
          },
          "waveColor": {
            "title": "Waveform color",
            "type": "string",
            "description": "Hex color, for example #38BDF8.",
            "default": "#38BDF8"
          },
          "textColor": {
            "title": "Text color",
            "type": "string",
            "description": "Hex color of the title, subtitle and captions.",
            "default": "#F8FAFC"
          },
          "accentColor": {
            "title": "Progress bar color",
            "type": "string",
            "description": "Hex color of the progress bar.",
            "default": "#F472B6"
          },
          "showProgressBar": {
            "title": "Progress bar",
            "type": "boolean",
            "description": "A thin bar at the bottom that fills up as the clip plays.",
            "default": true
          },
          "fadeInOut": {
            "title": "Fade audio in and out",
            "type": "boolean",
            "description": "Short fade at the start and the end so the clip does not cut in mid-word.",
            "default": true
          },
          "quality": {
            "title": "Video quality",
            "enum": [
              "standard",
              "high"
            ],
            "type": "string",
            "description": "Standard (25 fps) is right for social networks. High (30 fps) has finer detail and smaller files but renders about twice as long.",
            "default": "standard"
          },
          "captionsText": {
            "title": "Captions (SRT or WebVTT)",
            "type": "string",
            "description": "Paste subtitles in SRT or WebVTT to burn them into the video. Only the lines inside each clip are shown. The Actor does not transcribe audio."
          },
          "captionsUrl": {
            "title": "Captions file URL",
            "type": "string",
            "description": "Link to an SRT or WebVTT file, used when the captions box above is empty."
          },
          "captionsTimeline": {
            "title": "Caption times are relative to",
            "enum": [
              "episode",
              "clip"
            ],
            "type": "string",
            "description": "Episode - times count from the start of the whole episode (a full transcript). Clip - times count from the start of the clip.",
            "default": "episode"
          }
        }
      },
      "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
                  },
                  "PROXY_UNBLOCKER_UNITS": {
                    "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
                  },
                  "PROXY_UNBLOCKER_UNITS": {
                    "type": "integer",
                    "example": 0
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}