ElevenLabs Forced Alignment API

Force align an audio file to a text transcript to get precise word-level and character level timing information. Response is a list of characters with their start and end times as milliseconds elapsed from the start of the recording.

Operations 1

Each operation below carries the questions people ask an LLM about it and the instructions they give an agent to run it. Generated by API Evangelist overlay

POST /v1/forced-alignment Align a transcript to audio timing · Create Forced Alignment #
Ask an LLM
“Can I get word-by-word timings for audio when I already have the transcript?”
“How do I sync a script to a recording to build karaoke-style captions?”
Tell an agent
Align text {text} to audio {file}.
Get character and word timings for {file} using transcript {text}.

Documentation

Specifications

Other Resources

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/elevenlabs-forced-alignment-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

elevenlabs-forced-alignment-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: ElevenLabs API Documentation Forced Alignment API
  description: This is the documentation for the ElevenLabs API. You can use this API to use our service programmatically, this is done by using your API key. You can find your API key in the dashboard at https://elevenlabs.io/app/settings/api-keys.
  version: '1.0'
tags:
- name: forced-alignment
  description: Force align an audio file to a text transcript to get precise word-level and character level timing information. Response is a list of characters with their start and end times as milliseconds elapsed from the start of the recording.
paths:
  /v1/forced-alignment:
    post:
      tags:
      - forced-alignment
      summary: Create Forced Alignment
      description: Force align an audio file to text. Use this endpoint to get the timing information for each character and word in an audio file based on a provided text transcript.
      operationId: forced_alignment
      parameters:
      - name: xi-api-key
        in: header
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          description: Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.
          title: Xi-Api-Key
        description: Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.
      requestBody:
        required: true
        content:
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/Body_Create_forced_alignment_v1_forced_alignment_post'
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForcedAlignmentResponseModel'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
      x-fern-sdk-group-name: forced_alignment
      x-fern-sdk-method-name: create
components:
  schemas:
    HTTPValidationError:
      properties:
        detail:
          items:
            $ref: '#/components/schemas/ValidationError'
          type: array
          title: Detail
      type: object
      title: HTTPValidationError
    Body_Create_forced_alignment_v1_forced_alignment_post:
      properties:
        file:
          type: string
          title: File
          description: The file to align. All major audio formats are supported. The file size must be less than 1GB.
          format: binary
        text:
          type: string
          title: Text
          description: The text to align with the audio. The input text can be in any format, however diarization is not supported at this time.
      type: object
      required:
      - file
      - text
      title: Body_Create_forced_alignment_v1_forced_alignment_post
    ForcedAlignmentWordResponseModel:
      properties:
        text:
          type: string
          title: Text
          description: The word that was transcribed.
        start:
          type: number
          title: Start
          description: The start time of the word in seconds.
        end:
          type: number
          title: End
          description: The end time of the word in seconds.
        loss:
          type: number
          title: Loss
          description: The average alignment loss/confidence score for this word, calculated from its constituent characters.
      type: object
      required:
      - text
      - start
      - end
      - loss
      title: ForcedAlignmentWordResponseModel
      description: Model representing a single word with its timing information from the aligner.
      example:
        end: 1.02
        loss: 0.12
        start: 0.0
        text: Hello
    ForcedAlignmentResponseModel:
      properties:
        characters:
          items:
            $ref: '#/components/schemas/ForcedAlignmentCharacterResponseModel'
          type: array
          title: Characters
          description: List of characters with their timing information.
        words:
          items:
            $ref: '#/components/schemas/ForcedAlignmentWordResponseModel'
          type: array
          title: Words
          description: List of words with their timing information.
        loss:
          type: number
          title: Loss
          description: The average alignment loss/confidence score for the entire transcript, calculated from all characters.
      type: object
      required:
      - characters
      - words
      - loss
      title: ForcedAlignmentResponseModel
      description: Model representing the response from the aligner service.
    ValidationError:
      properties:
        loc:
          items:
            anyOf:
            - type: string
            - type: integer
          type: array
          title: Location
        msg:
          type: string
          title: Message
        type:
          type: string
          title: Error Type
      type: object
      required:
      - loc
      - msg
      - type
      title: ValidationError
    ForcedAlignmentCharacterResponseModel:
      properties:
        text:
          type: string
          title: Text
          description: The character that was transcribed.
        start:
          type: number
          title: Start
          description: The start time of the character in seconds.
        end:
          type: number
          title: End
          description: The end time of the character in seconds.
      type: object
      required:
      - text
      - start
      - end
      title: ForcedAlignmentCharacterResponseModel
      description: Model representing a single character with its timing information from the aligner.
      example:
        end: 0.02
        start: 0.0
        text: H