openapi: 3.2.0 info: title: Postiz Public Video Generation API description: 'API for managing social media posts, integrations, and media uploads in Postiz. ## Authentication All endpoints require an API key passed in the `Authorization` header: ``` Authorization: your-api-key ``` Get your API key from Postiz Settings. ## Rate Limits There is a limit of **30 requests per hour**. ## Terminology The UI uses `channel`, but the API uses `integration`. They refer to the same thing. ## Supported Platforms (27) **Social Platforms:** X (Twitter), LinkedIn, LinkedIn Page, Facebook, Instagram, Instagram Standalone, Threads, Bluesky, Mastodon, Warpcast (Farcaster), Nostr, VK **Video Platforms:** YouTube, TikTok **Community Platforms:** Reddit, Lemmy, Discord, Slack, Telegram **Design Platforms:** Pinterest, Dribbble **Blogging Platforms:** Medium, Dev.to, Hashnode, WordPress **Business:** Google My Business (GMB), Listmonk (newsletters)' license: name: MIT version: 1.0.0 servers: - url: https://api.postiz.com/public/v1 description: Postiz Cloud - url: https://{your-domain}/api/public/v1 description: Self-hosted variables: your-domain: default: localhost:5000 description: Your Postiz instance domain security: - ApiKeyAuth: [] tags: - name: Video Generation description: Generate videos with AI paths: /generate-video: post: tags: - Video Generation summary: Generate a video description: Create AI-generated videos for your posts. operationId: generateVideo requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/VideoGenerationRequest' examples: image-text-slides: summary: Image Text Slides value: type: image-text-slides output: vertical customParams: voice: elevenlabs-voice-id prompt: Description of the video content veo3: summary: VEO3 Fast Video value: type: veo3 output: vertical customParams: prompt: A scenic view of mountains at sunset images: [] responses: '200': description: Video generated successfully content: application/json: schema: type: array items: type: object properties: id: type: string path: type: string description: URL of the generated video /video/function: post: tags: - Video Generation summary: Video function description: Execute video-related functions like loading available voices. operationId: videoFunction requestBody: required: true content: application/json: schema: type: object properties: functionName: type: string description: Function to execute identifier: type: string description: Video type identifier params: type: object description: Additional parameters required: - functionName - identifier example: functionName: loadVoices identifier: image-text-slides responses: '200': description: Function executed successfully content: application/json: schema: type: object properties: voices: type: array items: type: object properties: id: type: string name: type: string components: schemas: Media: type: object required: - id - path properties: id: type: string path: type: string VideoGenerationRequest: type: object required: - type - output - customParams properties: type: type: string enum: - image-text-slides - veo3 description: Video generation type output: type: string enum: - vertical - horizontal description: Video orientation customParams: type: object properties: voice: type: string description: ElevenLabs voice ID (for image-text-slides) prompt: type: string description: Description/script for the video images: type: array maxItems: 3 items: $ref: '#/components/schemas/Media' description: Reference images (for veo3, max 3) securitySchemes: ApiKeyAuth: type: apiKey in: header name: Authorization description: Your Postiz API key