1. claude mcp add runapi -s user -- npx -y @runapi.ai/mcp
2. Restart Claude Code
3. Paste this prompt: Generate audio: "[strong French accent] Zat's life, my friend — you can't control everysing. [pause] But you can enjoy ze ride, non?"
1. codex plugin install runapi-mcp@agents
2. Restart Codex
3. Paste this prompt: Generate audio: "[strong French accent] Zat's life, my friend — you can't control everysing. [pause] But you can enjoy ze ride, non?"
1. npx @runapi.ai/mcp init cursor
2. Restart Cursor
3. Paste this prompt: Generate audio: "[strong French accent] Zat's life, my friend — you can't control everysing. [pause] But you can enjoy ze ride, non?"
1. npx @runapi.ai/mcp init windsurf
2. Restart Windsurf
3. Paste this prompt: Generate audio: "[strong French accent] Zat's life, my friend — you can't control everysing. [pause] But you can enjoy ze ride, non?"
curl -X POST https://runapi.ai/api/v1/elevenlabs/text_to_sound \
-H "Authorization: Bearer $RUNAPI_KEY" \
-H "Content-Type: application/json" \
--data-binary @- <<'JSON'
{
"model": "text-to-speech-turbo-v2.5",
"text": "[strong French accent] Zat's life, my friend — you can't control everysing. [pause] But you can enjoy ze ride, non?"
}
JSON
import { ElevenlabsClient } from "@runapi.ai/elevenlabs";
const client = new ElevenlabsClient({
apiKey: process.env.RUNAPI_API_KEY,
});
const result = await client.textToSound.run({
"model": "text-to-speech-turbo-v2.5",
"text": "[strong French accent] Zat's life, my friend — you can't control everysing. [pause] But you can enjoy ze ride, non?"
});
console.log(result.id);
require "runapi/elevenlabs"
client = RunApi::Elevenlabs::Client.new
result = client.text_to_sound.run(
model: "text-to-speech-turbo-v2.5",
text: "[strong French accent] Zat's life, my friend — you can't control everysing. [pause] But you can enjoy ze ride, non?"
)
puts result.id
package main
import (
"context"
"fmt"
"log"
"net/http"
"os"
"strings"
)
func main() {
body := strings.NewReader("{\"model\":\"text-to-speech-turbo-v2.5\",\"text\":\"[strong French accent] Zat's life, my friend — you can't control everysing. [pause] But you can enjoy ze ride, non?\"}")
req, err := http.NewRequestWithContext(context.Background(), http.MethodPost, "https://runapi.ai/api/v1/elevenlabs/text_to_sound", 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)
}
text-to-speech-turbo-v2.5/api/v1/elevenlabs/text_to_soundGet API Key
curl -X POST https://runapi.ai/api/v1/elevenlabs/text_to_sound \
-H "Authorization: Bearer $RUNAPI_KEY" \
-H "Content-Type: application/json" \
--data-binary @- <<'JSON'
{
"model": "text-to-speech-turbo-v2.5",
"text": "[whispers] I never knew it could be this way, but I'm glad we're here."
}
JSON
[sorrowful] I couldn't sleep that night. The air was too still, and the moonlight kept sliding through the blinds like it was trying to tell me something. [quietly] And suddenly, that's when I saw it.
curl -X POST https://runapi.ai/api/v1/elevenlabs/text_to_sound \
-H "Authorization: Bearer $RUNAPI_KEY" \
-H "Content-Type: application/json" \
--data-binary @- <<'JSON'
{
"model": "text-to-speech-turbo-v2.5",
"text": "[sorrowful] I couldn't sleep that night. The air was too still, and the moonlight kept sliding through the blinds like it was trying to tell me something. [quietly] And suddenly, that's when I saw it."
}
JSON
[tired] I've been working for 14 hours straight. [sigh] I can't even feel my hands anymore. [nervously] You sure this is going to work? [gulps] Okay… let's go.
curl -X POST https://runapi.ai/api/v1/elevenlabs/text_to_sound \
-H "Authorization: Bearer $RUNAPI_KEY" \
-H "Content-Type: application/json" \
--data-binary @- <<'JSON'
{
"model": "text-to-speech-turbo-v2.5",
"text": "[tired] I've been working for 14 hours straight. [sigh] I can't even feel my hands anymore. [nervously] You sure this is going to work? [gulps] Okay… let's go."
}
JSON
curl -X POST https://runapi.ai/api/v1/elevenlabs/text_to_sound \
-H "Authorization: Bearer $RUNAPI_KEY" \
-H "Content-Type: application/json" \
--data-binary @- <<'JSON'
{
"model": "text-to-speech-turbo-v2.5",
"text": "[laughing] Brooo—BROOO I don't know WHY that sent me!! [laughs harder] The chicken had NO PLOT, no twist, just raw determination!"
}
JSON
[frustrated sigh] I was seriously about to just trash the whole thing. And it was like... the FLOODGATES opened! It all just CLICKED. [happy gasp] I can't believe it actually worked.
curl -X POST https://runapi.ai/api/v1/elevenlabs/text_to_sound \
-H "Authorization: Bearer $RUNAPI_KEY" \
-H "Content-Type: application/json" \
--data-binary @- <<'JSON'
{
"model": "text-to-speech-turbo-v2.5",
"text": "[frustrated sigh] I was seriously about to just trash the whole thing. And it was like... the FLOODGATES opened! It all just CLICKED. [happy gasp] I can't believe it actually worked."
}
JSON
[professional] Thank you for calling Tech Solutions. How can I help you today? [sympathetic] Oh no, I'm really sorry to hear you're having trouble. [reassuring] Alright, based on what you're describing, I think we can fix this quickly.
curl -X POST https://runapi.ai/api/v1/elevenlabs/text_to_sound \
-H "Authorization: Bearer $RUNAPI_KEY" \
-H "Content-Type: application/json" \
--data-binary @- <<'JSON'
{
"model": "text-to-speech-turbo-v2.5",
"text": "[professional] Thank you for calling Tech Solutions. How can I help you today? [sympathetic] Oh no, I'm really sorry to hear you're having trouble. [reassuring] Alright, based on what you're describing, I think we can fix this quickly."
}
JSON
FAQ
Using this text-to-speech-turbo-v2.5 prompt
How do I copy this prompt safely?
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.