Freepik Lip Sync API
The lip-sync API from Freepik — 6 operation(s) for lip-sync.
The lip-sync API from Freepik — 6 operation(s) for lip-sync.
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
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.curl "https://apis.io/api/v1/apis/freepik:freepik-lip-sync-api"
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
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: 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)