Freepik Music Generation API
The music-generation API from Freepik — 4 operation(s) for music-generation.
The music-generation API from Freepik — 4 operation(s) for music-generation.
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-music-generation-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 Music Generation API
version: 1.0.0
servers:
- description: B2B API Production V1
url: https://api.magnific.com
security:
- magnificApiKey: []
tags:
- name: music-generation
paths:
/v1/ai/music-generation/google-lyria:
get:
description: Get the status of all Google Lyria music generation tasks
operationId: get_all_google_lyria_tasks
responses:
'200':
content:
application/json:
examples:
success:
$ref: '#/components/examples/200-tasks-list'
schema:
$ref: '#/components/schemas/get_all_sound_effects_tasks_200_response'
description: OK - Get the status of all Google Lyria 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: Google Lyria - List tasks
tags:
- music-generation
post:
description: 'Generate original 30-second music tracks from text descriptions using Google Lyria.
Create high-quality instrumental music by describing the genre, mood, instruments, and tempo you want. Ideal for video production, games, podcasts, and multimedia projects.
Each request produces a single track with a fixed duration of 30 seconds.
**Tips for effective prompts:**
- Include genre: "lo-fi hip hop", "orchestral", "synthwave", "acoustic folk"
- Describe mood: "uplifting", "melancholic", "energetic", "relaxed"
- Mention instruments: "piano", "strings", "electric guitar", "808 drums"
- Add tempo hints: "slow tempo", "upbeat", "driving rhythm"'
operationId: create_google_lyria_task
requestBody:
content:
application/json:
examples:
basic:
summary: Basic music generation
value:
prompt: Uplifting orchestral score with soaring strings and triumphant brass
with_negative_prompt:
summary: Guided generation with a negative prompt and seed
value:
prompt: Warm lo-fi hip hop beat with vinyl crackle and mellow keys
negative_prompt: vocals, distortion, harsh percussion
seed: 12345
schema:
$ref: '#/components/schemas/request_15'
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: Google Lyria - Generate music from text
tags:
- music-generation
/v1/ai/music-generation/google-lyria/{task-id}:
get:
description: Get the status of one Google Lyria music generation task
operationId: get_google_lyria_task_status
parameters:
- description: ID of the task
in: path
name: task-id
required: true
schema:
format: uuid
type: string
responses:
'200':
content:
application/json:
examples:
success - completed task:
$ref: '#/components/examples/200-task-completed'
success - in progress task:
$ref: '#/components/examples/200-task-in-progress'
schema:
$ref: '#/components/schemas/task-detail-200-default-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: Google Lyria - Get task status
tags:
- music-generation
/v1/ai/music-generation/lyria-3:
get:
description: Get the status of all Lyria 3 music generation tasks
operationId: get_all_lyria_3_tasks
responses:
'200':
content:
application/json:
examples:
success:
$ref: '#/components/examples/200-tasks-list'
schema:
$ref: '#/components/schemas/get_all_sound_effects_tasks_200_response'
description: OK - Get the status of all Lyria 3 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: Lyria 3 - List tasks
tags:
- music-generation
post:
description: 'Generate original music tracks from text descriptions using Lyria 3, with optional image references to guide mood and style.
Describe the genre, mood, instruments, and tempo you want, and optionally attach reference images that inform the atmosphere of the composition. Ideal for video production, games, podcasts, and multimedia projects.
**Tips for effective prompts:**
- Include genre: "cinematic", "jazz", "electronic", "ambient"
- Describe mood: "dramatic", "playful", "tense", "peaceful"
- Mention instruments: "grand piano", "saxophone", "synth pads", "percussion"
- Add tempo hints: "andante", "fast-paced", "steady groove"'
operationId: create_lyria_3_task
requestBody:
content:
application/json:
examples:
basic:
summary: Basic music generation
value:
prompt: Cinematic ambient track with warm synth pads, soft piano, and a gentle build
pro_with_reference:
summary: Pro model with a reference image
value:
prompt: Dramatic orchestral cue with rising strings and deep percussion
model: pro
reference_images:
- image: https://example.com/mood-reference.jpg
mime_type: image/jpeg
schema:
$ref: '#/components/schemas/request_16'
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: Lyria 3 - Generate music from text
tags:
- music-generation
/v1/ai/music-generation/lyria-3/{task-id}:
get:
description: Get the status of one Lyria 3 music generation task
operationId: get_lyria_3_task_status
parameters:
- description: ID of the task
in: path
name: task-id
required: true
schema:
format: uuid
type: string
responses:
'200':
content:
application/json:
examples:
success - completed task:
$ref: '#/components/examples/200-task-completed'
success - in progress task:
$ref: '#/components/examples/200-task-in-progress'
schema:
$ref: '#/components/schemas/task-detail-200-default-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: Lyria 3 - Get task status
tags:
- music-generation
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
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_16_reference_images_inner:
properties:
image:
description: Image URL (publicly accessible URL or GCS format)
example: https://example.com/reference-image.jpg
type: string
mime_type:
description: MIME type of the reference image
enum:
- image/png
- image/jpeg
- image/webp
example: image/jpeg
type: string
required:
- image
- mime_type
type: object
task-detail-200-default-response:
description: OK - The task exists and the status is returned
inline_object_1:
properties:
problem:
$ref: '#/components/schemas/inline_object_1_problem'
type: object
request_15:
properties:
prompt:
description: 'Text description of the music you want to generate with Google Lyria.
Be specific about genre, mood, instruments, and tempo for best results.
**Tips for effective prompts:**
- Include genre: "lo-fi hip hop", "orchestral", "synthwave", "acoustic folk"
- Describe mood: "uplifting", "melancholic", "energetic", "relaxed"
- Mention instruments: "piano", "strings", "electric guitar", "808 drums"
- Add tempo hints: "slow tempo", "upbeat", "driving rhythm"
'
example: Uplifting orchestral score with soaring strings and triumphant brass
maxLength: 2500
minLength: 1
type: string
negative_prompt:
description: 'Text describing elements to avoid in the generated track, such as unwanted
instruments, styles, or moods.
'
example: vocals, distortion, dissonance
type: string
seed:
description: 'Seed for reproducible generation. Using the same prompt and seed returns a
consistent result across requests. Omit to get a random seed on each request.
'
example: 12345
type: integer
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:
- prompt
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
inline_object_3:
example:
message: Service Unavailable. Please try again later.
properties:
message:
example: Service Unavailable. Please try again later.
type: string
type: object
request_16:
properties:
prompt:
description: 'Text description of the music you want to generate with Lyria 3.
Be specific about genre, mood, instruments, and tempo for best results.
**Tips for effective prompts:**
- Include genre: "cinematic", "jazz", "electronic", "ambient"
- Describe mood: "dramatic", "playful", "tense", "peaceful"
- Mention instruments: "grand piano", "saxophone", "synth pads", "percussion"
- Add tempo hints: "andante", "fast-paced", "steady groove"
'
example: Cinematic ambient track with warm synth pads, soft piano, and a gentle build
maxLength: 2000
minLength: 10
type: string
model:
default: clip
description: 'Lyria 3 generation model variant.
**Available models:**
- `clip`: Faster generation optimized for short clips (default)
- `pro`: Higher-fidelity generation for professional-quality tracks
'
enum:
- clip
- pro
example: clip
type: string
reference_images:
description: 'Optional reference images to guide the mood and style of the generated music.
Each entry must include the image URL and its MIME type.
**Image requirements:**
- Publicly accessible URLs or GCS format
- Supported formats: PNG, JPEG, WebP
'
example:
- image: https://example.com/mood-reference.jpg
mime_type: image/jpeg
items:
$ref: '#/components/schemas/request_16_reference_images_inner'
type: array
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:
- prompt
type: object
get_all_sound_effects_tasks_200_response:
example:
data:
- generated:
- https://openapi-generator.tech
- https://openapi-generator.tech
task_id: 046b6c7f-0b8a-43b9-b35d-6489e6daee91
status: CREATED
- generated:
- https://openapi-generator.tech
- https://openapi-generator.tech
task_id: 046b6c7f-0b8a-43b9-b35d-6489e6daee91
status: CREATED
properties:
data:
items:
$ref: '#/components/schemas/task-detail'
type: array
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-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
200-task-in-progress:
summary: Success - Task in progress
value:
data:
generated: []
task_id: 046b6c7f-0b8a-43b9-b35d-6489e6daee91
status: IN_PROGRESS
200-task-created:
summary: Success - Task created
value:
data:
generated: []
task_id: 046b6c7f-0b8a-43b9-b35d-6489e6daee91
status: CREATED
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
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)