[Intro: ambient pads, reversed guitar, ethereal] [Verse 1: lo-fi drums, muted bass, whispered vocals] Walking through the rain at midnight Neon signs reflecting off the street [Pre-Chorus: building energy, adding layers] Something in the air is changing I can feel it pulling at my feet [Chorus: full production, soaring vocals, epic drums] We are the light that never fades Burning through the endless maze [Bridge: stripped down, piano only, vulnerable vocals] All the words I never said Echo softly in my head [Outro: fade out, ambient reprise]
suno-v4/api/v1/suno/text_to_music
RUN DETAILS
Model
suno-v4
Provider
Suno
Service
Suno
Endpoint
Text To Music
1. claude mcp add runapi -s user -- npx -y @runapi.ai/mcp
2. Restart Claude Code
3. Paste this prompt: Generate music: "[Intro: ambient pads, reversed guitar, ethereal] [Verse 1: lo-fi drums, muted bass, whispered vocals] Walking through the rain at midnight Neon signs reflecting off the street [Pre-Chorus: building energy, adding layers] Something in the air is changing I can feel it pulling at my feet [Chorus: full production, soaring vocals, epic drums] We are the light that never fades Burning through the endless maze [Bridge: stripped down, piano only, vulnerable vocals] All the words I never said Echo softly in my head [Outro: fade out, ambient reprise]"
1. codex plugin install runapi-mcp@agents
2. Restart Codex
3. Paste this prompt: Generate music: "[Intro: ambient pads, reversed guitar, ethereal] [Verse 1: lo-fi drums, muted bass, whispered vocals] Walking through the rain at midnight Neon signs reflecting off the street [Pre-Chorus: building energy, adding layers] Something in the air is changing I can feel it pulling at my feet [Chorus: full production, soaring vocals, epic drums] We are the light that never fades Burning through the endless maze [Bridge: stripped down, piano only, vulnerable vocals] All the words I never said Echo softly in my head [Outro: fade out, ambient reprise]"
1. npx @runapi.ai/mcp init cursor
2. Restart Cursor
3. Paste this prompt: Generate music: "[Intro: ambient pads, reversed guitar, ethereal] [Verse 1: lo-fi drums, muted bass, whispered vocals] Walking through the rain at midnight Neon signs reflecting off the street [Pre-Chorus: building energy, adding layers] Something in the air is changing I can feel it pulling at my feet [Chorus: full production, soaring vocals, epic drums] We are the light that never fades Burning through the endless maze [Bridge: stripped down, piano only, vulnerable vocals] All the words I never said Echo softly in my head [Outro: fade out, ambient reprise]"
1. npx @runapi.ai/mcp init windsurf
2. Restart Windsurf
3. Paste this prompt: Generate music: "[Intro: ambient pads, reversed guitar, ethereal] [Verse 1: lo-fi drums, muted bass, whispered vocals] Walking through the rain at midnight Neon signs reflecting off the street [Pre-Chorus: building energy, adding layers] Something in the air is changing I can feel it pulling at my feet [Chorus: full production, soaring vocals, epic drums] We are the light that never fades Burning through the endless maze [Bridge: stripped down, piano only, vulnerable vocals] All the words I never said Echo softly in my head [Outro: fade out, ambient reprise]"
curl -X POST https://runapi.ai/api/v1/suno/text_to_music \
-H "Authorization: Bearer $RUNAPI_KEY" \
-H "Content-Type: application/json" \
--data-binary @- <<'JSON'
{
"model": "suno-v4",
"prompt": "[Intro: ambient pads, reversed guitar, ethereal] [Verse 1: lo-fi drums, muted bass, whispered vocals] Walking through the rain at midnight Neon signs reflecting off the street [Pre-Chorus: building energy, adding layers] Something in the air is changing I can feel it pulling at my feet [Chorus: full production, soaring vocals, epic drums] We are the light that never fades Burning through the endless maze [Bridge: stripped down, piano only, vulnerable vocals] All the words I never said Echo softly in my head [Outro: fade out, ambient reprise]"
}
JSON
import { SunoClient } from "@runapi.ai/suno";
const client = new SunoClient({
apiKey: process.env.RUNAPI_API_KEY,
});
const result = await client.textToMusic.run({
"model": "suno-v4",
"prompt": "[Intro: ambient pads, reversed guitar, ethereal] [Verse 1: lo-fi drums, muted bass, whispered vocals] Walking through the rain at midnight Neon signs reflecting off the street [Pre-Chorus: building energy, adding layers] Something in the air is changing I can feel it pulling at my feet [Chorus: full production, soaring vocals, epic drums] We are the light that never fades Burning through the endless maze [Bridge: stripped down, piano only, vulnerable vocals] All the words I never said Echo softly in my head [Outro: fade out, ambient reprise]"
});
console.log(result.id);
require "runapi/suno"
client = RunApi::Suno::Client.new
result = client.text_to_music.run(
model: "suno-v4",
prompt: "[Intro: ambient pads, reversed guitar, ethereal] [Verse 1: lo-fi drums, muted bass, whispered vocals] Walking through the rain at midnight Neon signs reflecting off the street [Pre-Chorus: building energy, adding layers] Something in the air is changing I can feel it pulling at my feet [Chorus: full production, soaring vocals, epic drums] We are the light that never fades Burning through the endless maze [Bridge: stripped down, piano only, vulnerable vocals] All the words I never said Echo softly in my head [Outro: fade out, ambient reprise]"
)
puts result.id
package main
import (
"context"
"fmt"
"log"
"net/http"
"os"
"strings"
)
func main() {
body := strings.NewReader("{\"model\":\"suno-v4\",\"prompt\":\"[Intro: ambient pads, reversed guitar, ethereal] [Verse 1: lo-fi drums, muted bass, whispered vocals] Walking through the rain at midnight Neon signs reflecting off the street [Pre-Chorus: building energy, adding layers] Something in the air is changing I can feel it pulling at my feet [Chorus: full production, soaring vocals, epic drums] We are the light that never fades Burning through the endless maze [Bridge: stripped down, piano only, vulnerable vocals] All the words I never said Echo softly in my head [Outro: fade out, ambient reprise]\"}")
req, err := http.NewRequestWithContext(context.Background(), http.MethodPost, "https://runapi.ai/api/v1/suno/text_to_music", body)
if err != nil {
log.Fatal(err)
}
req.Header.Set("Authorization", "Bearer "+os.Getenv("RUNAPI_API_KEY"))
req.Header.Set("Content-Type", "application/json")
resp, err := http.DefaultClient.Do(req)
if err != nil {
log.Fatal(err)
}
defer resp.Body.Close()
fmt.Println(resp.Status)
}
Use the copy button beside the full prompt block. It copies only the prompt text, not surrounding page labels, so you can paste it into an agent instruction, a JSON request body, or your own prompt library.
Why does the detail page show parameters?
Some prompts were collected with saved generation settings such as aspect ratio, duration, or voice controls. When parameters exist, the page lists them separately so you can reuse the prompt text and the structured settings together.
Which endpoint should I call?
Use the endpoint path shown in the API code block. The path is generated from the prompt's RunAPI service and endpoint name, then rendered as the public API URL used by curl and SDK examples.
Can I use this prompt in an agent instead of code?
Yes. Pick Claude Code, Codex, Cursor, or Windsurf in the tab switcher, install the RunAPI MCP Server, and paste the generated instruction. The instruction includes the full prompt text.