ShapelessAIAll capabilities
Media

Turn text into speech

Read up to 2,000 characters aloud into a WAV in the media library, for $0.03 a call.

View as Markdown

Pick one of six narrator voices (Sulafat, Charon, Kore, Achird, Erinome, Schedar) or pass a character from GET /api/characters to speak in that actor's designed or cloned voice. Energy is calm, confident, energetic or hype, and a style line adds direction in plain words. The WAV key goes into a video edit or a post.

Ask in plain words

  • "read this script aloud in a calm female voice"
  • "text to speech API for my videos"
  • "say this in my cloned voice"
  • "make a voiceover for the launch clip"

From an agent host (MCP)

Server: https://shapelessai.com/mcp (add it to your host).

  • tools_run with { "name": "speak", "input": { ... } }: the input is the REST body below; tools_list prints its JSON Schema.

From code (REST)

Bearer API key with the scope each call names (auth, OpenAPI).

  • POST /api/speech (write scope): Text to speech (tool speak): {text (<= 2000 chars), voice? (Sulafat, Charon, Kore, Achird, Erinome, Schedar), character? (id or slug, reads in its voice), energy? (calm|confident|energetic|hype), style?, name?, budgetUsd?}. Output mediaKey is a WAV.

From a terminal (CLI)

  • shapeless tools run speak --input '<json>' (tools show speak prints the schema)

Example

curl -s https://shapelessai.com/api/speech -H "Authorization: Bearer $SHAPELESS_API_KEY" -H "Content-Type: application/json" -d '{"text":"We ship on Friday. Here is what changed.","voice":"Kore","energy":"energetic"}'

Refusals

StatusMeaning
400The input does not match the tool's schema; the message names the field.
402Not enough credit to hold budgetUsd, or the call costs more than budgetUsd.
404No such tool on this deployment.
422The tool refused this input; nothing was charged.
502The tool failed; nothing was charged.

Where else

Every capability · Docs · /llms.txt