Skip to content

Watermark-Free Suno Music Model

  • 2025.07.17 Suno supports the new version v4.5+ with MV as chirp-bluejay
  • 2025.05.03 Suno supports the new version v4.5 with MV as chirp-auk
  • 2024.12.17 Suno supports all versions v4, v3.5, v3.0 with no watermark, long duration, high concurrency, and high quality
  • 2024.11.06 Suno currently has almost no watermark; we have a solution for watermark removal. ~Promotional price as low as 4 cents per song (already ended)~
  • 2024.03.27 This site now supports the music model suno
  • Two methods: chat and unofficial API. It is recommended to use the unofficial API
  • The chat method follows the OpenAI format. For the unofficial API, refer to Using Suno Unofficial API
  • One prompt generates 2 songs
  • Billing is per attempt, not per song
  • How to use: Visit https://suno.ddaiai.com and see the Online Trial section below

Note

  1. Visit https://suno.ddaiai.com (if blocked, change the subdomain prefix to suibian)

    2. If blocked, you can change the address yourself, e.g., https://suibian.ddaiai.com. Replace suibian with other prefixes like https://2025.ddaiai.com to access.

Online Trial

  • Configure the settings as shown below:
  • Suno API address: https://api.openai-hk.com/sunoapi
  • Suno KEY: hk-your-apiKey

cover

Effect preview: cover

Suno API

Create Lyrics Task

POST https://api.openai-hk.com/sunoapi/generate/lyrics/

Request Body:

json
{ "prompt": "大海" }
{ "prompt": "大海" }

Response:

json
{ "id": "9561baee-2d64-48fe-8318-d7e82e86712b" }
{ "id": "9561baee-2d64-48fe-8318-d7e82e86712b" }

Create Lyrics Task V2

POST https://api.openai-hk.com/sunoapi/generate/lyrics/

Request Body:

  • lyrics_model supports remi-v1 or default.
json
{ "prompt": "大海", "lyrics_model": "remi-v1" }
{ "prompt": "大海", "lyrics_model": "remi-v1" }

Response (2 lyric IDs):

json
{
  "lyrics_request_id": "e9da46a0-7331-4e7c-bebf-488791033aa8",
  "lyrics_a_id": "281e5626-5165-4de3-83ab-ddea1c4904b1",
  "lyrics_b_id": "a83395f6-f1e4-4655-86db-3d57eeabbe43"
}
{
  "lyrics_request_id": "e9da46a0-7331-4e7c-bebf-488791033aa8",
  "lyrics_a_id": "281e5626-5165-4de3-83ab-ddea1c4904b1",
  "lyrics_b_id": "a83395f6-f1e4-4655-86db-3d57eeabbe43"
}

Fetch lyrics separately:

GET https://api.openai-hk.com/sunoapi/lyrics/{lyrics_a_id}

Second lyric:

GET https://api.openai-hk.com/sunoapi/lyrics/{lyrics_b_id}

Fetch Lyrics

Fetch lyrics using the ID from above:

GET https://api.openai-hk.com/sunoapi/lyrics/{id}

Response:

json
{
  "text": "Lyric content",
  "title": "Lyric title",
  "status": "complete"
}
{
  "text": "Lyric content",
  "title": "Lyric title",
  "status": "complete"
}

Create Custom Song Task

POST https://api.openai-hk.com/sunoapi/generate

Request Body:

json
{
  "prompt": "string",
  "mv": "chirp-v4",
  "title": "string",
  "tags": "string",
  "continue_at": 120,
  "continue_clip_id": "string"
}
{
  "prompt": "string",
  "mv": "chirp-v4",
  "title": "string",
  "tags": "string",
  "continue_at": 120,
  "continue_clip_id": "string"
}
ParameterDescriptionTypeDefault
mvModel options: chirp-v4, chirp-v3-0, chirp-v3-5, chirp-auk, chirp-bluejaystringchirp-v3-5
titleTitlestring
tagsSong styles (separate multiple styles with spaces)string
continue_atStart time (seconds)integer(int64)
continue_clip_idPrevious song's IDstring

Response:

json
{
  "id": "8fb0a232-aef3-4f8a-82ad-72a3fde0bcc6",
  "clips": [
    {
      "id": "e9f2a77a-07d7-444a-a1f7-575477b0ff18",
      "video_url": "",
      "audio_url": "",
      "image_url": null,
      "image_large_url": null,
      "is_video_pending": false,
      "major_model_version": "v3",
      "model_name": "chirp-v3",
      "metadata": {
        "tags": "infectious house",
        "prompt": "[Verse]\nBlue waves crashing on the shore\nSunshine smiling evermore\n\n[Verse 2]\nSailboats drifting far from land\nSalt and sand go hand in hand\n\n[Chorus]\nOh the ocean holds my dreams\nIn its tide sun's golden beams\nLet the sea set me free\nIn its waves I find my peace\n\n[Verse 3]\nSeagulls flying by the pier\nWhispers of the water clear\n\n[Bridge]\nEndless horizon meets my eyes\nWhere the sea and sky collide\n\n[Verse 4]\nMoonlight dances on the waves\nIn the ocean's arms we lay",
        "gpt_description_prompt": null,
        "audio_prompt_id": null,
        "history": null,
        "concat_history": null,
        "type": "gen",
        "duration": null,
        "refund_credits": null,
        "stream": true,
        "infill": null,
        "error_type": null,
        "error_message": null
      },
      "is_liked": false,
      "user_id": "f60cf781-3c2e-4000-918c-73f68de2a28c",
      "display_name": "MercurialMetronomes303",
      "handle": "mercurialmetronomes303",
      "is_handle_updated": false,
      "avatar_image_url": null,
      "is_trashed": false,
      "reaction": null,
      "created_at": "2024-06-06T02:21:26.175Z",
      "status": "submitted",
      "title": "大海",
      "play_count": 0,
      "upvote_count": 0,
      "is_public": false
    },
    {
      "id": "399f0745-0168-463c-a18a-f681f5711280",
      "video_url": "",
      "audio_url": "",
      "image_url": null,
      "image_large_url": null,
      "is_video_pending": false,
      "major_model_version": "v3",
      "model_name": "chirp-v3",
      "metadata": {
        "tags": "infectious house",
        "prompt": "[Verse]\nBlue waves crashing on the shore\nSunshine smiling evermore\n\n[Verse 2]\nSailboats drifting far from land\nSalt and sand go hand in hand\n\n[Chorus]\nOh the ocean holds my dreams\nIn its tide sun's golden beams\nLet the sea set me free\nIn its waves I find my peace\n\n[Verse 3]\nSeagulls flying by the pier\nWhispers of the water clear\n\n[Bridge]\nEndless horizon meets my eyes\nWhere the sea and sky collide\n\n[Verse 4]\nMoonlight dances on the waves\nIn the ocean's arms we lay",
        "gpt_description_prompt": null,
        "audio_prompt_id": null,
        "history": null,
        "concat_history": null,
        "type": "gen",
        "duration": null,
        "refund_credits": null,
        "stream": true,
        "infill": null,
        "error_type": null,
        "error_message": null
      },
      "is_liked": false,
      "user_id": "f60cf781-3c2e-4000-918c-73f68de2a28c",
      "display_name": "MercurialMetronomes303",
      "handle": "mercurialmetronomes303",
      "is_handle_updated": false,
      "avatar_image_url": null,
      "is_trashed": false,
      "reaction": null,
      "created_at": "2024-06-06T02:21:26.176Z",
      "status": "submitted",
      "title": "大海",
      "play_count": 0,
      "upvote_count": 0,
      "is_public": false
    }
  ],
  "metadata": {
    "tags": "infectious house",
    "prompt": "[Verse]\nBlue waves crashing on the shore\nSunshine smiling evermore\n\n[Verse 2]\nSailboats drifting far from land\nSalt and sand go hand in hand\n\n[Chorus]\nOh the ocean holds my dreams\nIn its tide sun's golden beams\nLet the sea set me free\nIn its waves I find my peace\n\n[Verse 3]\nSeagulls flying by the pier\nWhispers of the water clear\n\n[Bridge]\nEndless horizon meets my eyes\nWhere the sea and sky collide\n\n[Verse 4]\nMoonlight dances on the waves\nIn the ocean's arms we lay",
    "gpt_description_prompt": null,
    "audio_prompt_id": null,
    "history": null,
    "concat_history": null,
    "type": "gen",
    "duration": null,
    "refund_credits": null,
    "stream": true,
    "infill": null,
    "error_type": null,
    "error_message": null
  },
  "major_model_version": "v3",
  "status": "complete",
  "created_at": "2024-06-06T02:21:26.168Z",
  "batch_size": 1
}
{
  "id": "8fb0a232-aef3-4f8a-82ad-72a3fde0bcc6",
  "clips": [
    {
      "id": "e9f2a77a-07d7-444a-a1f7-575477b0ff18",
      "video_url": "",
      "audio_url": "",
      "image_url": null,
      "image_large_url": null,
      "is_video_pending": false,
      "major_model_version": "v3",
      "model_name": "chirp-v3",
      "metadata": {
        "tags": "infectious house",
        "prompt": "[Verse]\nBlue waves crashing on the shore\nSunshine smiling evermore\n\n[Verse 2]\nSailboats drifting far from land\nSalt and sand go hand in hand\n\n[Chorus]\nOh the ocean holds my dreams\nIn its tide sun's golden beams\nLet the sea set me free\nIn its waves I find my peace\n\n[Verse 3]\nSeagulls flying by the pier\nWhispers of the water clear\n\n[Bridge]\nEndless horizon meets my eyes\nWhere the sea and sky collide\n\n[Verse 4]\nMoonlight dances on the waves\nIn the ocean's arms we lay",
        "gpt_description_prompt": null,
        "audio_prompt_id": null,
        "history": null,
        "concat_history": null,
        "type": "gen",
        "duration": null,
        "refund_credits": null,
        "stream": true,
        "infill": null,
        "error_type": null,
        "error_message": null
      },
      "is_liked": false,
      "user_id": "f60cf781-3c2e-4000-918c-73f68de2a28c",
      "display_name": "MercurialMetronomes303",
      "handle": "mercurialmetronomes303",
      "is_handle_updated": false,
      "avatar_image_url": null,
      "is_trashed": false,
      "reaction": null,
      "created_at": "2024-06-06T02:21:26.175Z",
      "status": "submitted",
      "title": "大海",
      "play_count": 0,
      "upvote_count": 0,
      "is_public": false
    },
    {
      "id": "399f0745-0168-463c-a18a-f681f5711280",
      "video_url": "",
      "audio_url": "",
      "image_url": null,
      "image_large_url": null,
      "is_video_pending": false,
      "major_model_version": "v3",
      "model_name": "chirp-v3",
      "metadata": {
        "tags": "infectious house",
        "prompt": "[Verse]\nBlue waves crashing on the shore\nSunshine smiling evermore\n\n[Verse 2]\nSailboats drifting far from land\nSalt and sand go hand in hand\n\n[Chorus]\nOh the ocean holds my dreams\nIn its tide sun's golden beams\nLet the sea set me free\nIn its waves I find my peace\n\n[Verse 3]\nSeagulls flying by the pier\nWhispers of the water clear\n\n[Bridge]\nEndless horizon meets my eyes\nWhere the sea and sky collide\n\n[Verse 4]\nMoonlight dances on the waves\nIn the ocean's arms we lay",
        "gpt_description_prompt": null,
        "audio_prompt_id": null,
        "history": null,
        "concat_history": null,
        "type": "gen",
        "duration": null,
        "refund_credits": null,
        "stream": true,
        "infill": null,
        "error_type": null,
        "error_message": null
      },
      "is_liked": false,
      "user_id": "f60cf781-3c2e-4000-918c-73f68de2a28c",
      "display_name": "MercurialMetronomes303",
      "handle": "mercurialmetronomes303",
      "is_handle_updated": false,
      "avatar_image_url": null,
      "is_trashed": false,
      "reaction": null,
      "created_at": "2024-06-06T02:21:26.176Z",
      "status": "submitted",
      "title": "大海",
      "play_count": 0,
      "upvote_count": 0,
      "is_public": false
    }
  ],
  "metadata": {
    "tags": "infectious house",
    "prompt": "[Verse]\nBlue waves crashing on the shore\nSunshine smiling evermore\n\n[Verse 2]\nSailboats drifting far from land\nSalt and sand go hand in hand\n\n[Chorus]\nOh the ocean holds my dreams\nIn its tide sun's golden beams\nLet the sea set me free\nIn its waves I find my peace\n\n[Verse 3]\nSeagulls flying by the pier\nWhispers of the water clear\n\n[Bridge]\nEndless horizon meets my eyes\nWhere the sea and sky collide\n\n[Verse 4]\nMoonlight dances on the waves\nIn the ocean's arms we lay",
    "gpt_description_prompt": null,
    "audio_prompt_id": null,
    "history": null,
    "concat_history": null,
    "type": "gen",
    "duration": null,
    "refund_credits": null,
    "stream": true,
    "infill": null,
    "error_type": null,
    "error_message": null
  },
  "major_model_version": "v3",
  "status": "complete",
  "created_at": "2024-06-06T02:21:26.168Z",
  "batch_size": 1
}

Create Song Task (Description Mode)

POST https://api.openai-hk.com/sunoapi/generate
or
POST https://api.openai-hk.com/sunoapi/generate/description-mode (deprecated)

Request Body:

json
{
  "gpt_description_prompt": "Description content",
  "make_instrumental": false,
  "mv": "chirp-v4",
  "prompt": "Description content 2"
}
{
  "gpt_description_prompt": "Description content",
  "make_instrumental": false,
  "mv": "chirp-v4",
  "prompt": "Description content 2"
}

Response:

json
{
  "id": "344ec7d6-c976-4100-9804-f348bbf38422",
  "clips": [
    {
      "id": "0c60de63-fba7-4207-94ea-6a240c64f928",
      "video_url": "",
      "audio_url": "",
      "image_url": null,
      "image_large_url": null,
      "is_video_pending": false,
      "major_model_version": "v3",
      "model_name": "chirp-v3",
      "metadata": {
        "tags": null,
        "prompt": "大海",
        "gpt_description_prompt": "大海",
        "audio_prompt_id": null,
        "history": null,
        "concat_history": null,
        "type": "gen",
        "duration": null,
        "refund_credits": null,
        "stream": true,
        "infill": null,
        "error_type": null,
        "error_message": null
      },
      "is_liked": false,
      "user_id": "f60cf781-3c2e-4000-918c-73f68de2a28c",
      "display_name": "MercurialMetronomes303",
      "handle": "mercurialmetronomes303",
      "is_handle_updated": false,
      "avatar_image_url": null,
      "is_trashed": false,
      "reaction": null,
      "created_at": "2024-06-06T02:17:12.340Z",
      "status": "submitted",
      "title": "",
      "play_count": 0,
      "upvote_count": 0,
      "is_public": false
    },
    {
      "id": "28f4a72c-6a50-452f-a67c-5ab2354512c7",
      "video_url": "",
      "audio_url": "",
      "image_url": null,
      "image_large_url": null,
      "is_video_pending": false,
      "major_model_version": "v3",
      "model_name": "chirp-v3",
      "metadata": {
        "tags": null,
        "prompt": "大海",
        "gpt_description_prompt": "大海",
        "audio_prompt_id": null,
        "history": null,
        "concat_history": null,
        "type": "gen",
        "duration": null,
        "refund_credits": null,
        "stream": true,
        "infill": null,
        "error_type": null,
        "error_message": null
      },
      "is_liked": false,
      "user_id": "f60cf781-3c2e-4000-918c-73f68de2a28c",
      "display_name": "MercurialMetronomes303",
      "handle": "mercurialmetronomes303",
      "is_handle_updated": false,
      "avatar_image_url": null,
      "is_trashed": false,
      "reaction": null,
      "created_at": "2024-06-06T02:17:12.340Z",
      "status": "submitted",
      "title": "",
      "play_count": 0,
      "upvote_count": 0,
      "is_public": false
    }
  ],
  "metadata": {
    "tags": null,
    "prompt": "大海",
    "gpt_description_prompt": "大海",
    "audio_prompt_id": null,
    "history": null,
    "concat_history": null,
    "type": "gen",
    "duration": null,
    "refund_credits": null,
    "stream": true,
    "infill": null,
    "error_type": null,
    "error_message": null
  },
  "major_model_version": "v3",
  "status": "complete",
  "created_at": "2024-06-06T02:17:12.330Z",
  "batch_size": 1
}
{
  "id": "344ec7d6-c976-4100-9804-f348bbf38422",
  "clips": [
    {
      "id": "0c60de63-fba7-4207-94ea-6a240c64f928",
      "video_url": "",
      "audio_url": "",
      "image_url": null,
      "image_large_url": null,
      "is_video_pending": false,
      "major_model_version": "v3",
      "model_name": "chirp-v3",
      "metadata": {
        "tags": null,
        "prompt": "大海",
        "gpt_description_prompt": "大海",
        "audio_prompt_id": null,
        "history": null,
        "concat_history": null,
        "type": "gen",
        "duration": null,
        "refund_credits": null,
        "stream": true,
        "infill": null,
        "error_type": null,
        "error_message": null
      },
      "is_liked": false,
      "user_id": "f60cf781-3c2e-4000-918c-73f68de2a28c",
      "display_name": "MercurialMetronomes303",
      "handle": "mercurialmetronomes303",
      "is_handle_updated": false,
      "avatar_image_url": null,
      "is_trashed": false,
      "reaction": null,
      "created_at": "2024-06-06T02:17:12.340Z",
      "status": "submitted",
      "title": "",
      "play_count": 0,
      "upvote_count": 0,
      "is_public": false
    },
    {
      "id": "28f4a72c-6a50-452f-a67c-5ab2354512c7",
      "video_url": "",
      "audio_url": "",
      "image_url": null,
      "image_large_url": null,
      "is_video_pending": false,
      "major_model_version": "v3",
      "model_name": "chirp-v3",
      "metadata": {
        "tags": null,
        "prompt": "大海",
        "gpt_description_prompt": "大海",
        "audio_prompt_id": null,
        "history": null,
        "concat_history": null,
        "type": "gen",
        "duration": null,
        "refund_credits": null,
        "stream": true,
        "infill": null,
        "error_type": null,
        "error_message": null
      },
      "is_liked": false,
      "user_id": "f60cf781-3c2e-4000-918c-73f68de2a28c",
      "display_name": "MercurialMetronomes303",
      "handle": "mercurialmetronomes303",
      "is_handle_updated": false,
      "avatar_image_url": null,
      "is_trashed": false,
      "reaction": null,
      "created_at": "2024-06-06T02:17:12.340Z",
      "status": "submitted",
      "title": "",
      "play_count": 0,
      "upvote_count": 0,
      "is_public": false
    }
  ],
  "metadata": {
    "tags": null,
    "prompt": "大海",
    "gpt_description_prompt": "大海",
    "audio_prompt_id": null,
    "history": null,
    "concat_history": null,
    "type": "gen",
    "duration": null,
    "refund_credits": null,
    "stream": true,
    "infill": null,
    "error_type": null,
    "error_message": null
  },
  "major_model_version": "v3",
  "status": "complete",
  "created_at": "2024-06-06T02:17:12.330Z",
  "batch_size": 1
}

Fetch Songs

Using the clips IDs from the response (e.g., clipsId1, clipsId2):

GET https://api.openai-hk.com/sunoapi/feed/clipsId1,clipsId2

Response:

json
[
  {
    "id": "e9f2a77a-07d7-444a-a1f7-575477b0ff18",
    "video_url": "",
    "audio_url": "https://audiopipe.suno.ai/?item_id=e9f2a77a-07d7-444a-a1f7-575477b0ff18",
    "image_url": "https://cdn1.suno.ai/image_e9f2a77a-07d7-444a-a1f7-575477b0ff18.png",
    "image_large_url": "https://cdn1.suno.ai/image_large_e9f2a77a-07d7-444a-a1f7-575477b0ff18.png",
    "is_video_pending": false,
    "major_model_version": "v3",
    "model_name": "chirp-v3",
    "metadata": {
      "tags": "infectious house",
      "prompt": "[Verse]\nBlue waves crashing on the shore\nSunshine smiling evermore\n\n[Verse 2]\nSailboats drifting far from land\nSalt and sand go hand in hand\n\n[Chorus]\nOh the ocean holds my dreams\nIn its tide sun's golden beams\nLet the sea set me free\nIn its waves I find my peace\n\n[Verse 3]\nSeagulls flying by the pier\nWhispers of the water clear\n\n[Bridge]\nEndless horizon meets my eyes\nWhere the sea and sky collide\n\n[Verse 4]\nMoonlight dances on the waves\nIn the ocean's arms we lay",
      "gpt_description_prompt": null,
      "audio_prompt_id": null,
      "history": null,
      "concat_history": null,
      "type": "gen",
      "duration": null,
      "refund_credits": null,
      "stream": true,
      "infill": null,
      "error_type": null,
      "error_message": null
    },
    "is_liked": false,
    "user_id": "f60cf781-3c2e-4000-918c-73f68de2a28c",
    "display_name": "MercurialMetronomes303",
    "handle": "mercurialmetronomes303",
    "is_handle_updated": false,
    "avatar_image_url": null,
    "is_trashed": false,
    "reaction": null,
    "created_at": "2024-06-06T02:21:26.175Z",
    "status": "streaming",
    "title": "大海",
    "play_count": 0,
    "upvote_count": 0,
    "is_public": false
  },
  {
    "id": "399f0745-0168-463c-a18a-f681f5711280",
    "video_url": "",
    "audio_url": "https://audiopipe.suno.ai/?item_id=399f0745-0168-463c-a18a-f681f5711280",
    "image_url": "https://cdn1.suno.ai/image_399f0745-0168-463c-a18a-f681f5711280.png",
    "image_large_url": "https://cdn1.suno.ai/image_large_399f0745-0168-463c-a18a-f681f5711280.png",
    "is_video_pending": false,
    "major_model_version": "v3",
    "model_name": "chirp-v3",
    "metadata": {
      "tags": "infectious house",
      "prompt": "[Verse]\nBlue waves crashing on the shore\nSunshine smiling evermore\n\n[Verse 2]\nSailboats drifting far from land\nSalt and sand go hand in hand\n\n[Chorus]\nOh the ocean holds my dreams\nIn its tide sun's golden beams\nLet the sea set me free\nIn its waves I find my peace\n\n[Verse 3]\nSeagulls flying by the pier\nWhispers of the water clear\n\n[Bridge]\nEndless horizon meets my eyes\nWhere the sea and sky collide\n\n[Verse 4]\nMoonlight dances on the waves\nIn the ocean's arms we lay",
      "gpt_description_prompt": null,
      "audio_prompt_id": null,
      "history": null,
      "concat_history": null,
      "type": "gen",
      "duration": null,
      "refund_credits": null,
      "stream": true,
      "infill": null,
      "error_type": null,
      "error_message": null
    },
    "is_liked": false,
    "user_id": "f60cf781-3c2e-4000-918c-73f68de2a28c",
    "display_name": "MercurialMetronomes303",
    "handle": "mercurialmetronomes303",
    "is_handle_updated": false,
    "avatar_image_url": null,
    "is_trashed": false,
    "reaction": null,
    "created_at": "2024-06-06T02:21:26.176Z",
    "status": "streaming",
    "title": "大海",
    "play_count": 0,
    "upvote_count": 0,
    "is_public": false
  }
]
[
  {
    "id": "e9f2a77a-07d7-444a-a1f7-575477b0ff18",
    "video_url": "",
    "audio_url": "https://audiopipe.suno.ai/?item_id=e9f2a77a-07d7-444a-a1f7-575477b0ff18",
    "image_url": "https://cdn1.suno.ai/image_e9f2a77a-07d7-444a-a1f7-575477b0ff18.png",
    "image_large_url": "https://cdn1.suno.ai/image_large_e9f2a77a-07d7-444a-a1f7-575477b0ff18.png",
    "is_video_pending": false,
    "major_model_version": "v3",
    "model_name": "chirp-v3",
    "metadata": {
      "tags": "infectious house",
      "prompt": "[Verse]\nBlue waves crashing on the shore\nSunshine smiling evermore\n\n[Verse 2]\nSailboats drifting far from land\nSalt and sand go hand in hand\n\n[Chorus]\nOh the ocean holds my dreams\nIn its tide sun's golden beams\nLet the sea set me free\nIn its waves I find my peace\n\n[Verse 3]\nSeagulls flying by the pier\nWhispers of the water clear\n\n[Bridge]\nEndless horizon meets my eyes\nWhere the sea and sky collide\n\n[Verse 4]\nMoonlight dances on the waves\nIn the ocean's arms we lay",
      "gpt_description_prompt": null,
      "audio_prompt_id": null,
      "history": null,
      "concat_history": null,
      "type": "gen",
      "duration": null,
      "refund_credits": null,
      "stream": true,
      "infill": null,
      "error_type": null,
      "error_message": null
    },
    "is_liked": false,
    "user_id": "f60cf781-3c2e-4000-918c-73f68de2a28c",
    "display_name": "MercurialMetronomes303",
    "handle": "mercurialmetronomes303",
    "is_handle_updated": false,
    "avatar_image_url": null,
    "is_trashed": false,
    "reaction": null,
    "created_at": "2024-06-06T02:21:26.175Z",
    "status": "streaming",
    "title": "大海",
    "play_count": 0,
    "upvote_count": 0,
    "is_public": false
  },
  {
    "id": "399f0745-0168-463c-a18a-f681f5711280",
    "video_url": "",
    "audio_url": "https://audiopipe.suno.ai/?item_id=399f0745-0168-463c-a18a-f681f5711280",
    "image_url": "https://cdn1.suno.ai/image_399f0745-0168-463c-a18a-f681f5711280.png",
    "image_large_url": "https://cdn1.suno.ai/image_large_399f0745-0168-463c-a18a-f681f5711280.png",
    "is_video_pending": false,
    "major_model_version": "v3",
    "model_name": "chirp-v3",
    "metadata": {
      "tags": "infectious house",
      "prompt": "[Verse]\nBlue waves crashing on the shore\nSunshine smiling evermore\n\n[Verse 2]\nSailboats drifting far from land\nSalt and sand go hand in hand\n\n[Chorus]\nOh the ocean holds my dreams\nIn its tide sun's golden beams\nLet the sea set me free\nIn its waves I find my peace\n\n[Verse 3]\nSeagulls flying by the pier\nWhispers of the water clear\n\n[Bridge]\nEndless horizon meets my eyes\nWhere the sea and sky collide\n\n[Verse 4]\nMoonlight dances on the waves\nIn the ocean's arms we lay",
      "gpt_description_prompt": null,
      "audio_prompt_id": null,
      "history": null,
      "concat_history": null,
      "type": "gen",
      "duration": null,
      "refund_credits": null,
      "stream": true,
      "infill": null,
      "error_type": null,
      "error_message": null
    },
    "is_liked": false,
    "user_id": "f60cf781-3c2e-4000-918c-73f68de2a28c",
    "display_name": "MercurialMetronomes303",
    "handle": "mercurialmetronomes303",
    "is_handle_updated": false,
    "avatar_image_url": null,
    "is_trashed": false,
    "reaction": null,
    "created_at": "2024-06-06T02:21:26.176Z",
    "status": "streaming",
    "title": "大海",
    "play_count": 0,
    "upvote_count": 0,
    "is_public": false
  }
]

Check [0].status—when it is complete, the task is finished.

Concatenate Songs

POST https://api.openai-hk.com/sunoapi/generate/concat

Request Body:

json
{
  "clip_id": "extended-song-id",
  "is_infill": false
}
{
  "clip_id": "extended-song-id",
  "is_infill": false
}

Use the returned id to fetch the status and result via the Fetch Songs endpoint. metadata.type will be concat.

json
{
  "id": "e193aa39-e97b-464d-938f-cd150f7fb05a",
  "video_url": "",
  "audio_url": "",
  "image_url": "https://cdn1.suno.ai/image_ea8b867f-d072-4a13-9418-eb687cfd956f.png",
  "image_large_url": "https://cdn1.suno.ai/image_large_ea8b867f-d072-4a13-9418-eb687cfd956f.png",
  "is_video_pending": false,
  "major_model_version": "v3.5",
  "model_name": "chirp-v3.5",
  "metadata": {
    "tags": "romantic country",
    "prompt": "[Verse]\n红楼梦里\n夜深人静\n烛光闪耀\n\n[Verse 2]\n花间舞者\n诉说离别\n心中藏愁\n\n[Chorus]\n红楼梦碎\n谁在梦醒\n无奈无声\n\n[Verse 3]\n往事如烟\n风吹云散\n空留思念\n\n[Bridge]\n梦起梦落\n何处寻觅\n那段旧情\n\n[Chorus]\n红楼梦碎\n谁在梦醒\n无奈无声\n\n[Verse]\n夜色 降临城市间\n街灯 照亮黑暗\n梦醒 人潮涌现\n心跳 跟随节拍\n\n[Verse 2]\n霓虹 灯火辉煌\n寂静 在我耳旁\n脚步 声音回荡\n迷失 无法望穿\n\n[Chorus]\n夜晚 让人依赖\n星光 点亮窗台\n一起 看月半掩\n心跳 多么愉快\n\n[Verse 3]\n回忆 在深夜中\n依稀 脑海相逢\n拥抱 柔软如风\n夜色 让我心动\n\n[Chorus]\n夜晚 让人依赖\n星光 点亮窗台\n一起 看月半掩\n心跳 多么愉快\n\n[Bridge]\n街头 冷风穿越\n心事 随夜放飞\n此刻 梦想不悔\n夜色 醉人沉醉",
    "gpt_description_prompt": null,
    "audio_prompt_id": null,
    "history": null,
    "concat_history": [
      {
        "id": "a015205b-43ef-4374-b334-b3a78ef977aa",
        "continue_at": 60,
        "type": "gen",
        "source": "web",
        "infill": false
      },
      {
        "id": "ea8b867f-d072-4a13-9418-eb687cfd956f",
        "continue_at": null
      }
    ],
    "type": "concat",
    "duration": null,
    "refund_credits": null,
    "stream": null,
    "infill": null,
    "has_vocal": null,
    "is_audio_upload_tos_accepted": null,
    "error_type": null,
    "error_message": null
  },
  "is_liked": false,
  "user_id": "7d44c563-4d66-449b-8de1-131e062baf43",
  "display_name": "HeavyHipHop606",
  "handle": "heavyhiphop606",
  "is_handle_updated": false,
  "avatar_image_url": "https://cdn1.suno.ai/defaultPink.jpg",
  "is_trashed": false,
  "reaction": null,
  "created_at": "2024-07-05T07:32:37.286Z",
  "status": "queued",
  "title": "红楼",
  "play_count": 0,
  "upvote_count": 0,
  "is_public": false
}
{
  "id": "e193aa39-e97b-464d-938f-cd150f7fb05a",
  "video_url": "",
  "audio_url": "",
  "image_url": "https://cdn1.suno.ai/image_ea8b867f-d072-4a13-9418-eb687cfd956f.png",
  "image_large_url": "https://cdn1.suno.ai/image_large_ea8b867f-d072-4a13-9418-eb687cfd956f.png",
  "is_video_pending": false,
  "major_model_version": "v3.5",
  "model_name": "chirp-v3.5",
  "metadata": {
    "tags": "romantic country",
    "prompt": "[Verse]\n红楼梦里\n夜深人静\n烛光闪耀\n\n[Verse 2]\n花间舞者\n诉说离别\n心中藏愁\n\n[Chorus]\n红楼梦碎\n谁在梦醒\n无奈无声\n\n[Verse 3]\n往事如烟\n风吹云散\n空留思念\n\n[Bridge]\n梦起梦落\n何处寻觅\n那段旧情\n\n[Chorus]\n红楼梦碎\n谁在梦醒\n无奈无声\n\n[Verse]\n夜色 降临城市间\n街灯 照亮黑暗\n梦醒 人潮涌现\n心跳 跟随节拍\n\n[Verse 2]\n霓虹 灯火辉煌\n寂静 在我耳旁\n脚步 声音回荡\n迷失 无法望穿\n\n[Chorus]\n夜晚 让人依赖\n星光 点亮窗台\n一起 看月半掩\n心跳 多么愉快\n\n[Verse 3]\n回忆 在深夜中\n依稀 脑海相逢\n拥抱 柔软如风\n夜色 让我心动\n\n[Chorus]\n夜晚 让人依赖\n星光 点亮窗台\n一起 看月半掩\n心跳 多么愉快\n\n[Bridge]\n街头 冷风穿越\n心事 随夜放飞\n此刻 梦想不悔\n夜色 醉人沉醉",
    "gpt_description_prompt": null,
    "audio_prompt_id": null,
    "history": null,
    "concat_history": [
      {
        "id": "a015205b-43ef-4374-b334-b3a78ef977aa",
        "continue_at": 60,
        "type": "gen",
        "source": "web",
        "infill": false
      },
      {
        "id": "ea8b867f-d072-4a13-9418-eb687cfd956f",
        "continue_at": null
      }
    ],
    "type": "concat",
    "duration": null,
    "refund_credits": null,
    "stream": null,
    "infill": null,
    "has_vocal": null,
    "is_audio_upload_tos_accepted": null,
    "error_type": null,
    "error_message": null
  },
  "is_liked": false,
  "user_id": "7d44c563-4d66-449b-8de1-131e062baf43",
  "display_name": "HeavyHipHop606",
  "handle": "heavyhiphop606",
  "is_handle_updated": false,
  "avatar_image_url": "https://cdn1.suno.ai/defaultPink.jpg",
  "is_trashed": false,
  "reaction": null,
  "created_at": "2024-07-05T07:32:37.286Z",
  "status": "queued",
  "title": "红楼",
  "play_count": 0,
  "upvote_count": 0,
  "is_public": false
}

Audio-to-Audio Generation

You can test this feature at https://suno.ddaiai.com. Below is a preview:

suno

The API involves 6 steps:

1. Upload Request

POST https://api.openai-hk.com/sunoapi/uploads/audio

Request Body:

json
{ "extension": "mp3" }
{ "extension": "mp3" }

Response:

json
{
  "id": "c25a8c59-000a-481f-ac28-efde2dc9e677",
  "url": "https://suno-uploads.s3.amazonaws.com/",
  "fields": {
    "Content-Type": "audio/mpeg",
    "key": "raw_uploads/c25a8c59-000a-481f-ac28-efde2dc9e677.mp3",
    "AWSAccessKeyId": "AKIA2V4GXGDKJMTPWLXO",
    "policy": "eyJleHBpcmF0aW9uIjogIjIwMjQtMDYtMTdUMDY6MTg6MzJaIiwgImNvbmRpdGlvbnMiOiBbWyJjb250ZW50LWxlbmd0aC1yYW5nZSIsIDAsIDEwNDg1NzYwMF0sIFsic3RhcnRzLXdpdGgiLCAiJENvbnRlbnQtVHlwZSIsICJhdWRpby9tcGVnIl0sIHsiYnVja2V0IjogInN1bm8tdXBsb2FkcyJ9LCB7ImtleSI6ICJyYXdfdXBsb2Fkcy9jMjVhOGM1OS0wMDBhLTQ4MWYtYWMyOC1lZmRlMmRjOWU2NzcubXAzIn1dfQ==",
    "signature": "yjfB/HTNgPHURNLRdeizNMVgG6k="
  }
}
{
  "id": "c25a8c59-000a-481f-ac28-efde2dc9e677",
  "url": "https://suno-uploads.s3.amazonaws.com/",
  "fields": {
    "Content-Type": "audio/mpeg",
    "key": "raw_uploads/c25a8c59-000a-481f-ac28-efde2dc9e677.mp3",
    "AWSAccessKeyId": "AKIA2V4GXGDKJMTPWLXO",
    "policy": "eyJleHBpcmF0aW9uIjogIjIwMjQtMDYtMTdUMDY6MTg6MzJaIiwgImNvbmRpdGlvbnMiOiBbWyJjb250ZW50LWxlbmd0aC1yYW5nZSIsIDAsIDEwNDg1NzYwMF0sIFsic3RhcnRzLXdpdGgiLCAiJENvbnRlbnQtVHlwZSIsICJhdWRpby9tcGVnIl0sIHsiYnVja2V0IjogInN1bm8tdXBsb2FkcyJ9LCB7ImtleSI6ICJyYXdfdXBsb2Fkcy9jMjVhOGM1OS0wMDBhLTQ4MWYtYWMyOC1lZmRlMmRjOWU2NzcubXAzIn1dfQ==",
    "signature": "yjfB/HTNgPHURNLRdeizNMVgG6k="
  }
}

The id here is the audio_id for later steps, and the url is the endpoint for the next request.

2. Upload File

POST https://suno-uploads.s3.amazonaws.com/

Example cURL:

shell
curl --request POST \
  --url https://suno-uploads.s3.amazonaws.com/ \
  --header 'content-type: multipart/form-data' \
  --form Content-Type=audio/mpeg \
  --form key=raw_uploads/c25a8c59-000a-481f-ac28-efde2dc9e677.mp3 \
  --form AWSAccessKeyId=AKIA2V4GXGDKJMTPWLXO \
  --form policy=eyJleHBpcmF0aW9uIjogIjIwMjQtMDYtMTdUMDY6MTg6MzJaIiwgImNvbmRpdGlvbnMiOiBbWyJjb250ZW50LWxlbmd0aC1yYW5nZSIsIDAsIDEwNDg1NzYwMF0sIFsic3RhcnRzLXdpdGgiLCAiJENvbnRlbnQtVHlwZSIsICJhdWRpby9tcGVnIl0sIHsiYnVja2V0IjogInN1bm8tdXBsb2FkcyJ9LCB7ImtleSI6ICJyYXdfdXBsb2Fkcy9jMjVhOGM1OS0wMDBhLTQ4MWYtYWMyOC1lZmRlMmRjOWU2NzcubXAzIn1dfQ== \
  --form signature=yjfB/HTNgPHURNLRdeizNMVgG6k= \
  --form file=@/you_mp3_dir_file.mp3
curl --request POST \
  --url https://suno-uploads.s3.amazonaws.com/ \
  --header 'content-type: multipart/form-data' \
  --form Content-Type=audio/mpeg \
  --form key=raw_uploads/c25a8c59-000a-481f-ac28-efde2dc9e677.mp3 \
  --form AWSAccessKeyId=AKIA2V4GXGDKJMTPWLXO \
  --form policy=eyJleHBpcmF0aW9uIjogIjIwMjQtMDYtMTdUMDY6MTg6MzJaIiwgImNvbmRpdGlvbnMiOiBbWyJjb250ZW50LWxlbmd0aC1yYW5nZSIsIDAsIDEwNDg1NzYwMF0sIFsic3RhcnRzLXdpdGgiLCAiJENvbnRlbnQtVHlwZSIsICJhdWRpby9tcGVnIl0sIHsiYnVja2V0IjogInN1bm8tdXBsb2FkcyJ9LCB7ImtleSI6ICJyYXdfdXBsb2Fkcy9jMjVhOGM1OS0wMDBhLTQ4MWYtYWMyOC1lZmRlMmRjOWU2NzcubXAzIn1dfQ== \
  --form signature=yjfB/HTNgPHURNLRdeizNMVgG6k= \
  --form file=@/you_mp3_dir_file.mp3
  • The request body includes the fields from above plus the file (MP3).
  • A 20x response indicates success.

3. Report Upload Completion

POST https://api.openai-hk.com/sunoapi/uploads/audio/{id}/upload-finish

Request Body:

json
{ "upload_type": "file_upload", "upload_filename": "you_mp3_name.mp3" }
{ "upload_type": "file_upload", "upload_filename": "you_mp3_name.mp3" }

4. Check Processing Status

GET https://api.openai-hk.com/sunoapi/uploads/audio/{id}

Response:

json
{
  "id": "c25a8c59-000a-481f-ac28-efde2dc9e677",
  "status": "complete",
  "error_message": null,
  "s3_id": "m_05c9b477-4519-4810-9ffa-00580c082067",
  "title": "S-100096-100096-84069F8B",
  "image_url": "https://cdn1.suno.ai/image_05c9b477-4519-4810-9ffa-00580c082067.png"
}
{
  "id": "c25a8c59-000a-481f-ac28-efde2dc9e677",
  "status": "complete",
  "error_message": null,
  "s3_id": "m_05c9b477-4519-4810-9ffa-00580c082067",
  "title": "S-100096-100096-84069F8B",
  "image_url": "https://cdn1.suno.ai/image_05c9b477-4519-4810-9ffa-00580c082067.png"
}

When status is complete, the upload is processed.

5. Initialize Audio Clip

POST https://api.openai-hk.com/sunoapi/uploads/audio/{id}/initialize-clip

Request Body:

json
{}
{}

Response:

json
{
  "clip_id": "05c9b477-4519-4810-9ffa-00580c082067"
}
{
  "clip_id": "05c9b477-4519-4810-9ffa-00580c082067"
}

6. Fetch and Remix

  • Use the Fetch Songs endpoint with the clip_id.
  • (Deprecated) Use the Custom Song Task with continue_clip_id set to clip_id and mv set to chirp-v3-5-upload.
  • For different versions:
json
{
  "prompt": "lyrics",
  "tags": "",
  "negative_tags": "",
  "mv": "chirp-v4",
  "title": "title",
  "continue_clip_id": "ca94a97d-d3f2-4a63-aeee-ba3a43384bcd",
  "continue_at": 10,
  "task": "upload_extend"
}
{
  "prompt": "lyrics",
  "tags": "",
  "negative_tags": "",
  "mv": "chirp-v4",
  "title": "title",
  "continue_clip_id": "ca94a97d-d3f2-4a63-aeee-ba3a43384bcd",
  "continue_at": 10,
  "task": "upload_extend"
}

Audio-to-Audio via URL Upload

  • The above method is cumbersome.
  • This endpoint simplifies the process.
  • Only supports mp3.
  • Consumes more resources (200 credits per request).

POST https://api.openai-hk.com/sunoapi/uploads/audio-url

Request Body:

json
{
  "url": "http://cdnimg.exbapp.com/ai/2024-06-18/d416d9c3c34eb22c7d8c094831d8dbd0.mp3"
}
{
  "url": "http://cdnimg.exbapp.com/ai/2024-06-18/d416d9c3c34eb22c7d8c094831d8dbd0.mp3"
}

Response:

json
{
  "clip_id": "f4e624c0-b018-4933-8f35-be2bcc79a0c8",
  "code": "success",
  "data": "f4e624c0-b018-4933-8f35-be2bcc79a0c8",
  "message": ""
}
{
  "clip_id": "f4e624c0-b018-4933-8f35-be2bcc79a0c8",
  "code": "success",
  "data": "f4e624c0-b018-4933-8f35-be2bcc79a0c8",
  "message": ""
}
  • Use the clip_id for remixing (see Step 6).
  • Compatible with newapi format (data = clip_id).
  • cURL example:
shell
curl --request POST \
  --url https://api.openai-hk.com/sunoapi/uploads/audio-url \
  --header 'Authorization: Bearer hk-yourKey' \
  --header 'content-type: application/json' \
  --data '{
	"url": "http://cdnimg.exbapp.com/ai/2024-06-18/d416d9c3c34eb22c7d8c094831d8dbd0.mp3"
}'
curl --request POST \
  --url https://api.openai-hk.com/sunoapi/uploads/audio-url \
  --header 'Authorization: Bearer hk-yourKey' \
  --header 'content-type: application/json' \
  --data '{
	"url": "http://cdnimg.exbapp.com/ai/2024-06-18/d416d9c3c34eb22c7d8c094831d8dbd0.mp3"
}'

Compatibility with NewAPI and Others

  • A. Compatible with NewAPI format.
  • B. Compatible with god format.
  • C. Contact support for other formats.

Chat-Based Interaction

  • Use the chat interface with the model suno-v3.

Setup

  • Configure as shown below:
  • OpenAi API address: https://api.openai-hk.com
  • OpenAi API KEY: hk-your-apiKey

cover

Demo

  • Set the model to suno-v3: cover
  • Enter a prompt to generate 2 songs, lyrics, and cover art: covercover

Chat API Demo

Aligned with OpenAI's API—just change the model to suno-v3.

shell
curl --request POST \
  --url https://api.openai-hk.com/v1/chat/completions \
  --header 'Authorization: Bearer hk-your-key' \
  --header 'content-type: application/json' \
  --data '{
    "max_tokens": 800,
    "model": "suno-v3",
    "temperature": 0.8,
    "top_p": 1,
    "presence_penalty": 1,
    "stream":false,
    "messages": [
        {
            "role": "user",
            "content": "儿时的回忆"
        }
    ]
}'
curl --request POST \
  --url https://api.openai-hk.com/v1/chat/completions \
  --header 'Authorization: Bearer hk-your-key' \
  --header 'content-type: application/json' \
  --data '{
    "max_tokens": 800,
    "model": "suno-v3",
    "temperature": 0.8,
    "top_p": 1,
    "presence_penalty": 1,
    "stream":false,
    "messages": [
        {
            "role": "user",
            "content": "儿时的回忆"
        }
    ]
}'