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.
Call it yourself
curl for this page
This API
curl "https://apis.io/api/v1/apis/suno-music-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
openapi: 3.2.0
info:
title: Suno API (sunoapi.org) Lyrics Music API
description: Third-party Suno API gateway (sunoapi.org) for AI music, lyrics, and audio generation. Suno itself does not publish a sanctioned developer API as of May 2026; this OpenAPI describes the public-facing endpoints documented at https://docs.sunoapi.org. Endpoints are asynchronous and rely on a callBackUrl for completion notifications, with task status retrievable via record-info endpoints.
version: 1.0.0
contact:
name: sunoapi.org docs
url: https://docs.sunoapi.org/
servers:
- url: https://api.sunoapi.org
description: Production
security:
- bearerAuth: []
tags:
- name: Music
description: Music generation endpoints
paths:
/api/v1/generate:
post:
tags:
- Music
summary: Generate music
description: Creates a music generation task. Returns a taskId; results are delivered via the callBackUrl when ready (stream URLs in ~30-40s, downloadable URLs in 2-3 minutes). Exactly two songs are returned per successful task.
operationId: generateMusic
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/GenerateMusicRequest'
responses:
'200':
description: Task accepted
content:
application/json:
schema:
$ref: '#/components/schemas/TaskResponse'
/api/v1/generate/record-info:
get:
tags:
- Music
summary: Get music generation details
description: Retrieve the status and audio results for a music generation task.
operationId: getMusicGenerationDetails
parameters:
- in: query
name: taskId
required: true
schema:
type: string
description: The task ID returned from Generate Music or Extend Music.
responses:
'200':
description: Task details
content:
application/json:
schema:
$ref: '#/components/schemas/MusicRecordInfoResponse'
components:
schemas:
MusicRecordInfoResponse:
type: object
properties:
code:
type: integer
msg:
type: string
data:
type: object
properties:
taskId:
type: string
parentMusicId:
type: string
param:
type: string
response:
type: object
properties:
taskId:
type: string
sunoData:
type: array
items:
$ref: '#/components/schemas/SunoTrack'
status:
type: string
enum:
- PENDING
- TEXT_SUCCESS
- FIRST_SUCCESS
- SUCCESS
- CREATE_TASK_FAILED
- GENERATE_AUDIO_FAILED
- CALLBACK_EXCEPTION
- SENSITIVE_WORD_ERROR
type:
type: string
enum:
- chirp-v3-5
- chirp-v4
operationType:
type: string
enum:
- generate
- extend
- upload_cover
- upload_extend
errorCode:
type: integer
nullable: true
errorMessage:
type: string
nullable: true
SunoTrack:
type: object
properties:
id:
type: string
audioUrl:
type: string
format: uri
streamAudioUrl:
type: string
format: uri
imageUrl:
type: string
format: uri
prompt:
type: string
modelName:
type: string
title:
type: string
tags:
type: string
createTime:
type: string
format: date-time
duration:
type: number
description: Duration in seconds.
TaskResponse:
type: object
properties:
code:
type: integer
example: 200
msg:
type: string
example: success
data:
type: object
properties:
taskId:
type: string
GenerateMusicRequest:
type: object
required:
- customMode
- instrumental
- callBackUrl
- model
properties:
customMode:
type: boolean
description: When true, requires style and title. Prompt required if instrumental=false.
instrumental:
type: boolean
callBackUrl:
type: string
format: uri
model:
type: string
description: Model identifier (e.g. chirp-v3-5, chirp-v4).
prompt:
type: string
style:
type: string
title:
type: string
personaId:
type: string
personaModel:
type: string
negativeTags:
type: string
vocalGender:
type: string
styleWeight:
type: number
weirdnessConstraint:
type: number
audioWeight:
type: number
securitySchemes:
bearerAuth:
type: http
scheme: bearer
bearerFormat: API Key