Picsart API Platform
← All models

Eleven STS v2

ElevenLabs · Audio · Speech → Speech

Swap your voice to a different speaker while keeping timing and emotion.

Model ID: eleven-sts-v2Workflow: elevenlabs/v1/speech-to-speech
Voice ChangerEmotion Preserved
Try on Playground ↗

Authentication

Send your Picsart API key as a bearer token on every request.

Header
Authorization: Bearer <PICSART_API_KEY>

Make a request

One endpoint serves every model: POST to /workflows/v1/models/execute with the model id and its input in the body. The nesting is deliberate — the outer paramsis the envelope every workflow takes, and the inner one is this model's own input. Those inner names are the same unified ones the SDK takes, so a call translates one-to-one between the two — no per-vendor naming to learn.

cURL
curl -X POST 'https://api.picsart.com/workflows/v1/models/execute' \
  -H 'Authorization: Bearer $PICSART_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{
  "params": {
    "model": "eleven-sts-v2",
    "params": {
      "audioUrl": "https://cdn.example.com/input.mp3"
    }
  }
}'

Async (submit & poll)

This model can run longer than the sync limit (~20s), so send it to /workflows/v1/models/submit, which returns a task id, and poll /workflows/v1/models/{taskId}/result until response.status is COMPLETED or FAILED.

cURL
# 1. Submit the job
curl -X POST 'https://api.picsart.com/workflows/v1/models/submit' \
  -H 'Authorization: Bearer $PICSART_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{
  "params": {
    "model": "eleven-sts-v2",
    "params": {
      "audioUrl": "https://cdn.example.com/input.mp3"
    }
  }
}'
# → { "status": "success", "response": { "id": "task_abc123" } }

# 2. Poll until response.status is COMPLETED
curl 'https://api.picsart.com/workflows/v1/models/task_abc123/result' \
  -H 'Authorization: Bearer $PICSART_API_KEY'
Result body
{
  "status": "success",
  "response": {
    "id": "task_abc123",
    "status": "COMPLETED",
    "result": {
      "url": "https://cdn.picsart.com/…/result",
      "items": [
        {
          "url": "https://cdn.picsart.com/…/result"
        }
      ],
      "model": "eleven-sts-v2"
    },
    "usage": {
      "credits": 4
    }
  }
}

Parameters

7 parameters, sent inside the inner paramsobject. Identical to the SDK's — one parameter set, whichever transport you use.

ParameterTypeRequiredDefaultDetails
audioUrl
Speech Audio
file (audio)yes——
voiceId
Voice
catalognoJBFqnCBsd6RMkjVDRZzboptions from elevenlabs/v1/catalog/voices
removeBackgroundNoise
Remove Background Noise
booleannofalse—
stability
Stability
rangeno—0–1 (step 0.05)
similarityBoost
Similarity
rangeno—0–1 (step 0.05)
styleExaggeration
Style Exaggeration
rangeno—0–1 (step 0.05)
speed
Speed
rangeno—0.1–5 (step 0.05)

Response

The body arrives in the gateway's status envelope, so the output is at response.result — alongside the task id, its status and the credits charged. Asset models return url plus an items array; text models return text instead.

Response body
{
  "status": "success",
  "response": {
    "id": "task_abc123",
    "status": "COMPLETED",
    "result": {
      "url": "https://cdn.picsart.com/…/result",
      "items": [
        {
          "url": "https://cdn.picsart.com/…/result"
        }
      ],
      "model": "eleven-sts-v2"
    },
    "usage": {
      "credits": 4
    }
  }
}