GET

/v1/schemas/cartesia/audio/tts/sse?kind=output

kind outputactivity audiohash dd2e63f8…extracted Nov 5, 2026version currentsource upstream spec ↗
fieldrecorded source
schemaSource linked above.

upstream-spec

Source trace
0dd8cdf30227d49ed4a677682f1e04b9740d0e82a016d2239900dedda5c5b483
{
  "fetchedAt": 1793856043,
  "extractorVersion": "1",
  "verifiedAt": null
}

Response body

0 properties · 0 required · 0 $defs

This schema isn’t a plain object with properties — showing the raw JSON instead.

application/json
{
  "provider": "cartesia",
  "activity": "audio",
  "endpointId": "tts/sse",
  "kind": "output",
  "contentHash": "dd2e63f88554f5575b5f8efabe3ee8386d4843b7b9368524db2dc40aa575a4e0",
  "specRevision": "0dd8cdf30227d49ed4a677682f1e04b9740d0e82a016d2239900dedda5c5b483",
  "provenance": {
    "sourceUrl": "https://docs.cartesia.ai/_llms/en/api.txt",
    "sourceHash": "0dd8cdf30227d49ed4a677682f1e04b9740d0e82a016d2239900dedda5c5b483",
    "fetchedAt": 1793856043,
    "extractorVersion": "1",
    "derivation": "upstream-spec",
    "verifiedAt": null
  },
  "createdAt": 1793856043,
  "supersededAt": null,
  "schema": {
    "title": "TTSSSEEvent",
    "description": "An event emitted by the TTS SSE stream.",
    "oneOf": [
      {
        "$ref": "#/$defs/TTSSSEChunkEvent"
      },
      {
        "$ref": "#/$defs/TTSSSETimestampsEvent"
      },
      {
        "$ref": "#/$defs/TTSSSEPhonemeTimestampsEvent"
      },
      {
        "$ref": "#/$defs/TTSSSEDoneEvent"
      },
      {
        "$ref": "#/$defs/TTSSSEErrorEvent"
      }
    ],
    "discriminator": {
      "propertyName": "type",
      "mapping": {
        "chunk": "#/components/schemas/TTSSSEChunkEvent",
        "timestamps": "#/components/schemas/TTSSSETimestampsEvent",
        "phoneme_timestamps": "#/components/schemas/TTSSSEPhonemeTimestampsEvent",
        "done": "#/components/schemas/TTSSSEDoneEvent",
        "error": "#/components/schemas/TTSSSEErrorEvent"
      }
    },
    "$defs": {
      "SSEContextID": {
        "title": "SSEContextID",
        "type": "string",
        "nullable": true
      },
      "TTSSSEChunkEvent": {
        "title": "TTSSSEChunkEvent",
        "description": "Audio data chunk.",
        "type": "object",
        "example": {
          "type": "chunk",
          "done": false,
          "status_code": 206,
          "step_time": 123,
          "context_id": "50dc3b5e-5841-4aa1-9f94-60cfb9aead79",
          "data": "aSDinaTvuI8gbWludGxpZnk="
        },
        "properties": {
          "type": {
            "type": "string",
            "enum": [
              "chunk"
            ],
            "description": "Event type identifier."
          },
          "done": {
            "type": "boolean",
            "enum": [
              false
            ],
            "description": "Whether this is the final event for the request. Always `false` for chunk events."
          },
          "context_id": {
            "$ref": "#/$defs/SSEContextID",
            "description": "The context ID echoed back from the request, if one was provided."
          },
          "data": {
            "type": "string",
            "description": "Base64-encoded audio data."
          },
          "step_time": {
            "type": "number",
            "description": "Server-side processing time for this chunk in milliseconds."
          },
          "status_code": {
            "type": "integer",
            "description": "HTTP-style status code."
          }
        },
        "required": [
          "type",
          "done",
          "data",
          "step_time",
          "status_code"
        ]
      },
      "TTSSSEDoneEvent": {
        "title": "TTSSSEDoneEvent",
        "description": "Generation completion signal. Final event in the stream.",
        "type": "object",
        "example": {
          "type": "done",
          "done": true,
          "status_code": 206,
          "context_id": "50dc3b5e-5841-4aa1-9f94-60cfb9aead79"
        },
        "properties": {
          "type": {
            "type": "string",
            "enum": [
              "done"
            ],
            "description": "Event type identifier."
          },
          "done": {
            "type": "boolean",
            "enum": [
              true
            ],
            "description": "Whether generation is complete. Always `true` for done events."
          },
          "context_id": {
            "$ref": "#/$defs/SSEContextID",
            "description": "The context ID echoed back from the request, if one was provided."
          },
          "status_code": {
            "type": "integer",
            "description": "HTTP-style status code."
          }
        },
        "required": [
          "type",
          "done",
          "status_code"
        ]
      },
      "TTSSSEErrorEvent": {
        "title": "TTSSSEErrorEvent",
        "description": "Error information for the TTS SSE request.",
        "type": "object",
        "example": {
          "type": "error",
          "done": true,
          "title": "Invalid model",
          "message": "The model is not valid, make sure it is a valid model ID.",
          "error_code": "model_not_found",
          "status_code": 400,
          "doc_url": "https://docs.cartesia.ai/build-with-cartesia/tts-models/latest",
          "request_id": "2ff8af53-4d38-479d-8287-58940f01c701"
        },
        "properties": {
          "type": {
            "type": "string",
            "enum": [
              "error"
            ],
            "description": "Event type identifier."
          },
          "done": {
            "type": "boolean",
            "description": "Whether generation is complete."
          },
          "status_code": {
            "type": "integer",
            "description": "An HTTP response status code."
          },
          "title": {
            "type": "string",
            "description": "Human-readable error title."
          },
          "message": {
            "type": "string",
            "description": "Human-readable error message."
          },
          "error_code": {
            "type": "string",
            "nullable": true,
            "description": "Machine-readable error code."
          },
          "request_id": {
            "type": "string",
            "description": "Unique identifier for this request."
          },
          "doc_url": {
            "type": "string",
            "nullable": true,
            "description": "URL to relevant documentation."
          }
        },
        "required": [
          "type",
          "done",
          "status_code",
          "title",
          "message",
          "request_id"
        ]
      },
      "TTSSSEPhonemeTimestampsEvent": {
        "title": "TTSSSEPhonemeTimestampsEvent",
        "description": "Phoneme-level timing information.",
        "type": "object",
        "example": {
          "type": "phoneme_timestamps",
          "done": false,
          "status_code": 206,
          "context_id": "872ec12d-bc63-4e1e-a241-4f58c879d105",
          "phoneme_timestamps": {
            "phonemes": [
              "h",
              "ə",
              "l",
              "oʊ"
            ],
            "start": [
              0.093,
              0.174,
              0.255,
              0.337
            ],
            "end": [
              0.174,
              0.255,
              0.337,
              0.418
            ]
          }
        },
        "properties": {
          "type": {
            "type": "string",
            "enum": [
              "phoneme_timestamps"
            ],
            "description": "Event type identifier."
          },
          "done": {
            "type": "boolean",
            "enum": [
              false
            ],
            "description": "Whether this is the final event for the request. Always `false` for phoneme_timestamps events."
          },
          "context_id": {
            "$ref": "#/$defs/SSEContextID",
            "description": "The context ID echoed back from the request, if one was provided."
          },
          "phoneme_timestamps": {
            "type": "object",
            "description": "Phoneme-level timing information.",
            "properties": {
              "phonemes": {
                "type": "array",
                "items": {
                  "type": "string"
                },
                "description": "List of phonemes in order."
              },
              "start": {
                "type": "array",
                "items": {
                  "type": "number"
                },
                "description": "Start times in seconds for each phoneme."
              },
              "end": {
                "type": "array",
                "items": {
                  "type": "number"
                },
                "description": "End times in seconds for each phoneme."
              }
            },
            "required": [
              "phonemes",
              "start",
              "end"
            ]
          },
          "status_code": {
            "type": "integer",
            "description": "HTTP-style status code."
          }
        },
        "required": [
          "type",
          "done",
          "phoneme_timestamps",
          "status_code"
        ]
      },
      "TTSSSETimestampsEvent": {
        "title": "TTSSSETimestampsEvent",
        "description": "Word-level timing information.",
        "type": "object",
        "example": {
          "type": "timestamps",
          "done": false,
          "status_code": 206,
          "context_id": "872ec12d-bc63-4e1e-a241-4f58c879d105",
          "word_timestamps": {
            "words": [
              "Hello",
              "world"
            ],
            "start": [
              0,
              0.5
            ],
            "end": [
              0.4,
              0.9
            ]
          }
        },
        "properties": {
          "type": {
            "type": "string",
            "enum": [
              "timestamps"
            ],
            "description": "Event type identifier."
          },
          "done": {
            "type": "boolean",
            "enum": [
              false
            ],
            "description": "Whether this is the final event for the request. Always `false` for timestamps events."
          },
          "context_id": {
            "$ref": "#/$defs/SSEContextID",
            "description": "The context ID echoed back from the request, if one was provided."
          },
          "word_timestamps": {
            "type": "object",
            "description": "Word-level timing information.",
            "properties": {
              "words": {
                "type": "array",
                "items": {
                  "type": "string"
                },
                "description": "List of words in order."
              },
              "start": {
                "type": "array",
                "items": {
                  "type": "number"
                },
                "description": "Start times in seconds for each word."
              },
              "end": {
                "type": "array",
                "items": {
                  "type": "number"
                },
                "description": "End times in seconds for each word."
              }
            },
            "required": [
              "words",
              "start",
              "end"
            ]
          },
          "status_code": {
            "type": "integer",
            "description": "HTTP-style status code."
          }
        },
        "required": [
          "type",
          "done",
          "word_timestamps",
          "status_code"
        ]
      }
    }
  }
}

Validate a payload

before you spend tokens
shell
$ curl -X POST https://modelschemas.com/v1/validate \
    -d '{"provider":"cartesia","endpointId":"tts/sse","payload":{…}}'
→ {"valid": false, "errors": [{"path": "#", "keyword": "required", …}]}