Freepik Lip Sync API

The lip-sync API from Freepik — 6 operation(s) for lip-sync.

Operations 9

GET /v1/ai/lip-sync/latent-sync Latent Sync - List tasks #
POST /v1/ai/lip-sync/latent-sync Latent Sync - Lip-sync video generation #
GET /v1/ai/lip-sync/latent-sync/{task-id} Latent Sync - Get task status #
GET /v1/ai/lip-sync/veed-fabric-1-0 Veed Fabric 1.0 - List tasks #
POST /v1/ai/lip-sync/veed-fabric-1-0 Veed Fabric 1.0 - Generate talking video #
GET /v1/ai/lip-sync/veed-fabric-1-0/{task-id} Veed Fabric 1.0 - Get task status #
GET /v1/ai/lip-sync/veed-fabric-1-0-fast Veed Fabric 1.0 Fast - List tasks #
POST /v1/ai/lip-sync/veed-fabric-1-0-fast Veed Fabric 1.0 Fast - Generate talking video #
GET /v1/ai/lip-sync/veed-fabric-1-0-fast/{task-id} Veed Fabric 1.0 Fast - Get task status #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/freepik:freepik-lip-sync-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

freepik-lip-sync-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  description: The Magnific API is your gateway to a vast collection of high-quality digital resources for your applications and projects. As a leading platform, it offers a wide range of graphics, including vectors, photos, illustrations, icons, PSD templates, and more, all curated by talented designers from around the world.
  title: Magnific Lip Sync API
  version: 1.0.0
servers:
- description: B2B API Production V1
  url: https://api.magnific.com
security:
- magnificApiKey: []
tags:
- name: lip-sync
paths:
  /v1/ai/lip-sync/latent-sync:
    get:
      description: Get the status of all Latent-Sync lip-sync tasks
      operationId: get_all_latent_sync_tasks
      responses:
        '200':
          content:
            application/json:
              examples:
                success - return all tasks:
                  $ref: '#/components/examples/200-tasks-list'
              schema:
                $ref: '#/components/schemas/get_all_style_transfer_tasks_200_response'
          description: OK - Get the status of all Latent-Sync lip-sync tasks
        '400':
          $ref: '#/components/responses/400-bad-request'
        '401':
          $ref: '#/components/responses/401-unauthorized'
        '500':
          $ref: '#/components/responses/500-internal-server-error'
        '503':
          $ref: '#/components/responses/503-service-unavailable'
      summary: Latent Sync - List tasks
      tags:
      - lip-sync
    post:
      description: Generate lip-synced video by synchronizing a video with an audio file using AI Latent-Sync technology
      operationId: create_latent_sync_lip_sync
      requestBody:
        content:
          application/json:
            examples:
              all-params:
                $ref: '#/components/examples/request-latent-sync-all-params'
              required-params:
                $ref: '#/components/examples/request-latent-sync-required-params'
            schema:
              $ref: '#/components/schemas/request'
        required: true
      responses:
        '200':
          $ref: '#/components/responses/task-detail-200-default-response'
        '400':
          $ref: '#/components/responses/400-bad-request'
        '401':
          $ref: '#/components/responses/401-unauthorized'
        '500':
          $ref: '#/components/responses/500-internal-server-error'
        '503':
          $ref: '#/components/responses/503-service-unavailable'
      summary: Latent Sync - Lip-sync video generation
      tags:
      - lip-sync
  /v1/ai/lip-sync/latent-sync/{task-id}:
    get:
      description: Get the status of one Latent-Sync lip-sync task
      operationId: get_latent_sync_task_status
      parameters:
      - description: ID of the task
        in: path
        name: task-id
        required: true
        schema:
          type: string
      responses:
        '200':
          content:
            application/json:
              examples:
                success - completed task:
                  $ref: '#/components/examples/200-latent-sync-task-completed'
                success - in progress task:
                  $ref: '#/components/examples/200-task-in-progress'
              schema:
                $ref: '#/components/schemas/get_style_transfer_task_status_200_response'
          description: OK - The task exists and the status is returned
        '400':
          $ref: '#/components/responses/400-bad-request'
        '401':
          $ref: '#/components/responses/401-unauthorized'
        '500':
          $ref: '#/components/responses/500-internal-server-error'
        '503':
          $ref: '#/components/responses/503-service-unavailable'
      summary: Latent Sync - Get task status
      tags:
      - lip-sync
  /v1/ai/lip-sync/veed-fabric-1-0:
    get:
      description: Retrieve all Veed Fabric 1.0 lip-sync tasks for the authenticated user.
      operationId: get_all_veed_fabric_1_0_tasks
      responses:
        '200':
          content:
            application/json:
              examples:
                success - return all tasks:
                  $ref: '#/components/examples/200-tasks-list'
              schema:
                $ref: '#/components/schemas/get_all_style_transfer_tasks_200_response'
          description: OK - List of Veed Fabric 1.0 tasks
        '400':
          $ref: '#/components/responses/400-bad-request'
        '401':
          $ref: '#/components/responses/401-unauthorized'
        '500':
          $ref: '#/components/responses/500-internal-server-error'
        '503':
          $ref: '#/components/responses/503-service-unavailable'
      summary: Veed Fabric 1.0 - List tasks
      tags:
      - lip-sync
    post:
      description: 'Generate a realistic talking video by combining a static portrait image with an audio file using Veed Fabric 1.0.

        The model produces a lip-synced video (MP4) where the person in the image speaks naturally in sync with the provided audio.

        Ideal for creating talking head videos from a single photo and voice recording.'
      operationId: create_veed_fabric_1_0_lip_sync
      requestBody:
        content:
          application/json:
            examples:
              all-params:
                $ref: '#/components/examples/request-veed-fabric-1-0-all-params'
              required-params:
                $ref: '#/components/examples/request-veed-fabric-1-0-required-params'
            schema:
              $ref: '#/components/schemas/request_1'
        required: true
      responses:
        '200':
          $ref: '#/components/responses/task-detail-200-default-response'
        '400':
          $ref: '#/components/responses/400-bad-request'
        '401':
          $ref: '#/components/responses/401-unauthorized'
        '500':
          $ref: '#/components/responses/500-internal-server-error'
        '503':
          $ref: '#/components/responses/503-service-unavailable'
      summary: Veed Fabric 1.0 - Generate talking video
      tags:
      - lip-sync
  /v1/ai/lip-sync/veed-fabric-1-0/{task-id}:
    get:
      description: Retrieve a specific Veed Fabric 1.0 lip-sync task by its ID, including generation status and result URL when completed.
      operationId: get_veed_fabric_1_0_task_status
      parameters:
      - description: ID of the task
        in: path
        name: task-id
        required: true
        schema:
          type: string
      responses:
        '200':
          content:
            application/json:
              examples:
                success - completed task:
                  $ref: '#/components/examples/200-veed-fabric-1-0-task-completed'
                success - in progress task:
                  $ref: '#/components/examples/200-task-in-progress'
              schema:
                $ref: '#/components/schemas/get_style_transfer_task_status_200_response'
          description: OK - The task exists and the status is returned
        '400':
          $ref: '#/components/responses/400-bad-request'
        '401':
          $ref: '#/components/responses/401-unauthorized'
        '500':
          $ref: '#/components/responses/500-internal-server-error'
        '503':
          $ref: '#/components/responses/503-service-unavailable'
      summary: Veed Fabric 1.0 - Get task status
      tags:
      - lip-sync
  /v1/ai/lip-sync/veed-fabric-1-0-fast:
    get:
      description: Retrieve all Veed Fabric 1.0 Fast lip-sync tasks for the authenticated user.
      operationId: get_all_veed_fabric_1_0_fast_tasks
      responses:
        '200':
          content:
            application/json:
              examples:
                success - return all tasks:
                  $ref: '#/components/examples/200-tasks-list'
              schema:
                $ref: '#/components/schemas/get_all_style_transfer_tasks_200_response'
          description: OK - List of Veed Fabric 1.0 Fast tasks
        '400':
          $ref: '#/components/responses/400-bad-request'
        '401':
          $ref: '#/components/responses/401-unauthorized'
        '500':
          $ref: '#/components/responses/500-internal-server-error'
        '503':
          $ref: '#/components/responses/503-service-unavailable'
      summary: Veed Fabric 1.0 Fast - List tasks
      tags:
      - lip-sync
    post:
      description: 'Generate a realistic talking video by combining a static portrait image with an audio file using Veed Fabric 1.0 Fast.

        This is the faster variant of Veed Fabric 1.0, optimized for reduced generation time while maintaining quality lip synchronization.

        Ideal for workflows requiring quick turnaround on talking head video generation.'
      operationId: create_veed_fabric_1_0_fast_lip_sync
      requestBody:
        content:
          application/json:
            examples:
              all-params:
                $ref: '#/components/examples/request-veed-fabric-1-0-fast-all-params'
              required-params:
                $ref: '#/components/examples/request-veed-fabric-1-0-fast-required-params'
            schema:
              $ref: '#/components/schemas/request_2'
        required: true
      responses:
        '200':
          $ref: '#/components/responses/task-detail-200-default-response'
        '400':
          $ref: '#/components/responses/400-bad-request'
        '401':
          $ref: '#/components/responses/401-unauthorized'
        '500':
          $ref: '#/components/responses/500-internal-server-error'
        '503':
          $ref: '#/components/responses/503-service-unavailable'
      summary: Veed Fabric 1.0 Fast - Generate talking video
      tags:
      - lip-sync
  /v1/ai/lip-sync/veed-fabric-1-0-fast/{task-id}:
    get:
      description: Retrieve a specific Veed Fabric 1.0 Fast lip-sync task by its ID, including generation status and result URL when completed.
      operationId: get_veed_fabric_1_0_fast_task_status
      parameters:
      - description: ID of the task
        in: path
        name: task-id
        required: true
        schema:
          type: string
      responses:
        '200':
          content:
            application/json:
              examples:
                success - completed task:
                  $ref: '#/components/examples/200-veed-fabric-1-0-fast-task-completed'
                success - in progress task:
                  $ref: '#/components/examples/200-task-in-progress'
              schema:
                $ref: '#/components/schemas/get_style_transfer_task_status_200_response'
          description: OK - The task exists and the status is returned
        '400':
          $ref: '#/components/responses/400-bad-request'
        '401':
          $ref: '#/components/responses/401-unauthorized'
        '500':
          $ref: '#/components/responses/500-internal-server-error'
        '503':
          $ref: '#/components/responses/503-service-unavailable'
      summary: Veed Fabric 1.0 Fast - Get task status
      tags:
      - lip-sync
components:
  schemas:
    inline_object_4:
      example:
        data:
          generated:
          - https://openapi-generator.tech
          - https://openapi-generator.tech
          task_id: 046b6c7f-0b8a-43b9-b35d-6489e6daee91
          status: CREATED
      properties:
        data:
          $ref: '#/components/schemas/task-detail_1'
      required:
      - data
      type: object
    inline_object_1_problem_invalid_params_inner:
      properties:
        name:
          description: Name of the invalid parameter.
          example: page
          type: string
        field:
          description: Field of the invalid parameter. Mirrors `name`.
          example: page
          type: string
        reason:
          example: Parameter 'page' must be greater than 0
          type: string
      required:
      - field
      - name
      - reason
      type: object
    request_2:
      properties:
        resolution:
          $ref: '#/components/schemas/resolution_3'
        audio_url:
          description: URL of the audio file for lip synchronization. The person in the image will speak in sync with this audio. Must be a publicly accessible URL. Supported formats include MP3, WAV, and M4A.
          example: https://example.com/speech-audio.mp3
          type: string
        image_url:
          description: URL of the portrait image to animate into a talking video. The image should contain a clearly visible face for best lip-sync results. Must be a publicly accessible URL.
          example: https://example.com/portrait.jpg
          type: string
        webhook_url:
          description: 'Optional callback URL that will receive asynchronous notifications whenever the task changes status. The payload sent to this URL is the same as the corresponding GET endpoint response, but without the data field.

            '
          example: https://www.example.com/webhook
          format: uri
          type: string
      required:
      - audio_url
      - image_url
      - resolution
      type: object
    task:
      example:
        task_id: 046b6c7f-0b8a-43b9-b35d-6489e6daee91
        status: CREATED
      properties:
        task_id:
          description: Task identifier
          format: uuid
          type: string
        status:
          description: Task status
          enum:
          - CREATED
          - IN_PROGRESS
          - COMPLETED
          - FAILED
          type: string
      required:
      - status
      - task_id
      type: object
    request:
      properties:
        video_url:
          description: URL of the video to sync
          example: https://example.com/input-video.mp4
          type: string
        audio_url:
          description: URL of the audio to sync
          example: https://example.com/input-audio.mp3
          type: string
        seed:
          default: 0
          description: Seed for the syncing process
          example: 42
          type: integer
        guidance_scale:
          default: 1.0
          description: Guidance strength for the sync process
          example: 1.0
          format: float
          type: number
        return_private_url:
          default: false
          description: If true, the private URL (gs URI) of the generated video will be returned
          example: false
          type: boolean
        webhook_url:
          description: 'Optional callback URL that will receive asynchronous notifications whenever the task changes status. The payload sent to this URL is the same as the corresponding GET endpoint response, but without the data field.

            '
          example: https://www.example.com/webhook
          format: uri
          type: string
      required:
      - audio_url
      - video_url
      type: object
    inline_object_1:
      properties:
        problem:
          $ref: '#/components/schemas/inline_object_1_problem'
      type: object
    inline_object_1_problem:
      properties:
        message:
          example: Validation error
          type: string
        invalid_params:
          items:
            $ref: '#/components/schemas/inline_object_1_problem_invalid_params_inner'
          type: array
      required:
      - invalid_params
      - message
      type: object
    inline_object_2:
      example:
        message: Internal Server Error
      properties:
        message:
          example: Internal Server Error
          type: string
      type: object
    inline_object:
      example:
        message: message
      properties:
        message:
          type: string
      type: object
    resolution_3:
      description: 'Output video resolution. Controls the quality and dimensions of the generated talking video.

        - `720p`: HD resolution (1280x720). Best for high-quality previews and production use.

        - `480p`: SD resolution (854x480). Suitable for drafts and faster processing.

        '
      enum:
      - 720p
      - 480p
      type: string
    request_1:
      properties:
        resolution:
          $ref: '#/components/schemas/resolution_3'
        audio_url:
          description: URL of the audio file for lip synchronization. The person in the image will speak in sync with this audio. Must be a publicly accessible URL. Supported formats include MP3, WAV, and M4A.
          example: https://example.com/speech-audio.mp3
          type: string
        image_url:
          description: URL of the portrait image to animate into a talking video. The image should contain a clearly visible face for best lip-sync results. Must be a publicly accessible URL.
          example: https://example.com/portrait.jpg
          type: string
        webhook_url:
          description: 'Optional callback URL that will receive asynchronous notifications whenever the task changes status. The payload sent to this URL is the same as the corresponding GET endpoint response, but without the data field.

            '
          example: https://www.example.com/webhook
          format: uri
          type: string
      required:
      - audio_url
      - image_url
      - resolution
      type: object
    get_style_transfer_task_status_200_response:
      example:
        data:
          generated:
          - https://openapi-generator.tech
          - https://openapi-generator.tech
          task_id: 046b6c7f-0b8a-43b9-b35d-6489e6daee91
          status: CREATED
      properties:
        data:
          $ref: '#/components/schemas/task-detail'
      required:
      - data
      type: object
    inline_object_3:
      example:
        message: Service Unavailable. Please try again later.
      properties:
        message:
          example: Service Unavailable. Please try again later.
          type: string
      type: object
    get_all_style_transfer_tasks_200_response:
      example:
        data:
        - task_id: 046b6c7f-0b8a-43b9-b35d-6489e6daee91
          status: CREATED
        - task_id: 046b6c7f-0b8a-43b9-b35d-6489e6daee91
          status: CREATED
      properties:
        data:
          items:
            $ref: '#/components/schemas/task'
          type: array
      required:
      - data
      type: object
    task-detail:
      allOf:
      - $ref: '#/components/schemas/task'
      - properties:
          generated:
            items:
              description: URL of the generated image
              format: uri
              type: string
            type: array
        required:
        - generated
        type: object
      example:
        generated:
        - https://openapi-generator.tech
        - https://openapi-generator.tech
        task_id: 046b6c7f-0b8a-43b9-b35d-6489e6daee91
        status: CREATED
    task-detail_1:
      allOf:
      - $ref: '#/components/schemas/task'
      - properties:
          generated:
            items:
              description: URL of the generated image
              format: uri
              type: string
            type: array
        required:
        - generated
        type: object
      example:
        generated:
        - https://openapi-generator.tech
        - https://openapi-generator.tech
        task_id: 046b6c7f-0b8a-43b9-b35d-6489e6daee91
        status: CREATED
  responses:
    401-unauthorized:
      content:
        application/json:
          examples:
            invalid_api_key:
              summary: API key is not valid
              value:
                message: Invalid API key
            missing_api_key:
              summary: API key is not provided
              value:
                message: Missing API key
          schema:
            $ref: '#/components/schemas/inline_object'
      description: Unauthorized - The client must authenticate itself to get the requested response.
    503-service-unavailable:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/inline_object_3'
      description: Service Unavailable
    task-detail-200-default-response:
      content:
        application/json:
          examples:
            success - created task:
              $ref: '#/components/examples/200-task-created'
            success - in progress task:
              $ref: '#/components/examples/200-task-in-progress'
            success - completed task:
              $ref: '#/components/examples/200-task-completed'
            success - failed task:
              $ref: '#/components/examples/200-task-failed'
          schema:
            $ref: '#/components/schemas/inline_object_4'
      description: OK - The task exists and the status is returned
    400-bad-request:
      content:
        application/json:
          examples:
            invalid_page:
              summary: Parameter 'page' is not valid
              value:
                message: Parameter 'page' must be greater than 0
            invalid_query:
              summary: Parameter 'query' is not valid
              value:
                message: Parameter 'query' must not be empty
            invalid_filter:
              summary: Parameter 'filter' is not valid
              value:
                message: Parameter 'filter' is not valid
            generic_bad_request:
              summary: Bad Request
              value:
                message: Parameter ':attribute' is not valid
          schema:
            $ref: '#/components/schemas/inline_object'
        application/problem+json:
          examples:
            invalid_page:
              summary: Parameter 'page' is not valid
              value:
                message: Validation error
                invalid_params:
                - field: page
                  reason: Parameter 'page' must be greater than 0
                - field: per_page
                  reason: Parameter 'per_page' must be greater than 0
          schema:
            $ref: '#/components/schemas/inline_object_1'
      description: Bad Request - The server could not understand the request due to invalid syntax.
    500-internal-server-error:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/inline_object_2'
      description: Internal Server Error - The server has encountered a situation it doesn't know how to handle.
  examples:
    200-task-failed:
      summary: Success - Task failed
      value:
        data:
          generated: []
          task_id: 046b6c7f-0b8a-43b9-b35d-6489e6daee91
          status: FAILED
    200-latent-sync-task-completed:
      summary: Success - Latent-Sync task completed
      value:
        data:
          generated:
          - https://ai-statics.freepik.com/lip-sync-completed-video.mp4
          task_id: 046b6c7f-0b8a-43b9-b35d-6489e6daee91
          status: COMPLETED
    request-veed-fabric-1-0-fast-required-params:
      summary: Request - Veed Fabric 1.0 Fast required params
      value:
        resolution: 720p
        image_url: https://example.com/portrait.jpg
        audio_url: https://example.com/speech-audio.mp3
    200-tasks-list:
      summary: Success - Return all tasks
      value:
        data:
        - task_id: 046b6c7f-0b8a-43b9-b35d-6489e6daee91
          status: IN_PROGRESS
        - task_id: 046b6c7f-0b8a-43b9-b35d-6489e6daee92
          status: COMPLETED
        - task_id: 046b6c7f-0b8a-43b9-b35d-6489e6daee93
          status: COMPLETED
        - task_id: 046b6c7f-0b8a-43b9-b35d-6489e6daee93
          status: CREATED
    request-veed-fabric-1-0-all-params:
      summary: Request - Veed Fabric 1.0 all params
      value:
        resolution: 720p
        image_url: https://example.com/portrait.jpg
        audio_url: https://example.com/speech-audio.mp3
        webhook_url: https://my-webhook-url.com/endpoint
    request-veed-fabric-1-0-fast-all-params:
      summary: Request - Veed Fabric 1.0 Fast all params
      value:
        resolution: 720p
        image_url: https://example.com/portrait.jpg
        audio_url: https://example.com/speech-audio.mp3
        webhook_url: https://my-webhook-url.com/endpoint
    200-task-in-progress:
      summary: Success - Task in progress
      value:
        data:
          generated: []
          task_id: 046b6c7f-0b8a-43b9-b35d-6489e6daee91
          status: IN_PROGRESS
    request-veed-fabric-1-0-required-params:
      summary: Request - Veed Fabric 1.0 required params
      value:
        resolution: 720p
        image_url: https://example.com/portrait.jpg
        audio_url: https://example.com/speech-audio.mp3
    200-task-created:
      summary: Success - Task created
      value:
        data:
          generated: []
          task_id: 046b6c7f-0b8a-43b9-b35d-6489e6daee91
          status: CREATED
    200-veed-fabric-1-0-fast-task-completed:
      summary: Success - Veed Fabric 1.0 Fast task completed
      value:
        data:
          generated:
          - https://ai-statics.freepik.com/lip-sync-veed-fabric-1-0-fast-output.mp4
          task_id: 046b6c7f-0b8a-43b9-b35d-6489e6daee91
          status: COMPLETED
    200-task-completed:
      summary: Success - Task completed
      value:
        data:
          generated:
          - https://ai-statics.freepik.com/completed_task_image.jpg
          task_id: 046b6c7f-0b8a-43b9-b35d-6489e6daee91
          status: COMPLETED
    200-veed-fabric-1-0-task-completed:
      summary: Success - Veed Fabric 1.0 task completed
      value:
        data:
          generated:
          - https://ai-statics.freepik.com/lip-sync-veed-fabric-1-0-output.mp4
          task_id: 046b6c7f-0b8a-43b9-b35d-6489e6daee91
          status: COMPLETED
    request-latent-sync-required-params:
      summary: Request - Latent-Sync Lip Sync required params
      value:
        video_url: https://example.com/input-video.mp4
        audio_url: https://example.com/input-audio.mp3
    request-latent-sync-all-params:
      summary: Request - Latent-Sync Lip Sync all params
      value:
        video_url: https://example.com/input-video.mp4
        audio_url: https://example.com/input-audio.mp3
        seed: 42
        guidance_scale: 1.2
        return_private_url: true
        webhook_url: https://my-webhook-url.com/endpoint
  securitySchemes:
    magnificApiKey:
      description: 'Your Magnific API key. Required for authentication. [Learn how to obtain an API key](https://docs.magnific.com/quickstart)

        '
      in: header
      name: x-magnific-api-key
      type: apiKey
x-provenance:
  method: harvested
  publisher: Freepik
  source: https://storage.googleapis.com/fc-freepik-pro-rev1-eu-api-specs/magnific-api-v1-openapi.yaml?v=46\
  note: split by refine-openapis from the provider's own published document, verified by fetch (openapi/_original/*.fetch.json);
    stamped by stamp-openapi-provenance.py (roadmap#793)