Freepik Music Generation API

The music-generation API from Freepik — 4 operation(s) for music-generation.

Operations 6

GET /v1/ai/music-generation/google-lyria Google Lyria - List tasks #
POST /v1/ai/music-generation/google-lyria Google Lyria - Generate music from text #
GET /v1/ai/music-generation/google-lyria/{task-id} Google Lyria - Get task status #
GET /v1/ai/music-generation/lyria-3 Lyria 3 - List tasks #
POST /v1/ai/music-generation/lyria-3 Lyria 3 - Generate music from text #
GET /v1/ai/music-generation/lyria-3/{task-id} Lyria 3 - 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-music-generation-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-music-generation-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 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)