openapi: 3.1.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 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 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. securitySchemes: bearerAuth: type: http scheme: bearer bearerFormat: API Key