> ## Documentation Index
> Fetch the complete documentation index at: https://docs.play.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Get an Async TTS Job

> Gets the current status of an async TTS job.




## OpenAPI

````yaml GET /api/v1/tts/{asyncTtsJobId}
openapi: 3.1.0
info:
  title: PlayAI API
  version: 1.0.0
  description: |
    A single, combined OpenAPI specification that merges:
      • PlayAI Agent API
      • PlayAI PlayNote API
      • PlayAI Text-to-Speech (TTS) API
      • PlayAI Dialog Turbo API

    This file contains all endpoints, schemas, and components 
    from the four original specs. See "Merged Issues" below 
    for notes on how certain conflicts were resolved.
servers:
  - url: https://api.play.ai
security:
  - ApiKeyAuth: []
    XUserIdAuth: []
paths:
  /api/v1/tts/{asyncTtsJobId}:
    get:
      description: |
        Gets the current status of an async TTS job.
      parameters:
        - name: asyncTtsJobId
          in: path
          description: The ID of the asynchronous TTS job.
          required: true
          schema:
            type: string
            format: uuid
      responses:
        '200':
          description: The TTS job.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TtsAsyncJob'
        '400':
          $ref: '#/components/responses/400-InvalidParametersError'
        '401':
          $ref: '#/components/responses/401-UnauthorizedError'
        '403':
          $ref: '#/components/responses/403-ForbiddenError'
        '429':
          $ref: '#/components/responses/429-RateLimitedError'
        '500':
          $ref: '#/components/responses/500-UnexpectedError'
components:
  schemas:
    TtsAsyncJob:
      type: object
      required:
        - id
        - createdAt
        - input
        - completedAt
        - output
      properties:
        id:
          type: string
          format: uuid
        createdAt:
          type: string
          format: date-time
        input:
          type: object
          description: The parameters used to create the job.
        completedAt:
          type: string
          format: date-time
          nullable: true
        output:
          oneOf:
            - type: object
              title: Job completed
              required:
                - status
                - url
                - contentType
                - fileSize
                - duration
              properties:
                status:
                  type: string
                  enum:
                    - COMPLETED
                url:
                  type: string
                  format: uri
                contentType:
                  type: string
                fileSize:
                  type: number
                duration:
                  type: number
            - type: object
              title: Job in progress
              required:
                - status
              properties:
                status:
                  type: string
                  enum:
                    - IN_PROGRESS
            - type: object
              title: Job failed
              required:
                - status
              properties:
                status:
                  type: string
                  enum:
                    - FAILED
    ErrorResponseObject:
      type: object
      properties:
        errorMessage:
          type: string
        errorId:
          type: string
  responses:
    400-InvalidParametersError:
      description: The provided payload contains one or more invalid parameters.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponseObject'
          example:
            errorMessage: The 'text' parameter must be provided.
            errorId: INVALID_PARAMETERS
    401-UnauthorizedError:
      description: >-
        The request was not authorized. Please verify your authorization
        headers.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponseObject'
          example:
            errorMessage: >
              The authorization header must be provided in the format 'Bearer
              <YOUR-API-KEY>'
            errorId: UNAUTHORIZED
    403-ForbiddenError:
      description: >-
        The provided API key's plan does not have access to the requested
        resource.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponseObject'
          example:
            errorMessage: API access is not available on your current plan.
            errorId: UNSUPPORTED_PLAN
    429-RateLimitedError:
      description: >-
        The server has received too many requests from your IP address within a
        certain time frame and has temporarily blocked your access to this
        resource.
      content:
        application/json:
          schema:
            type: string
          example: Rate limit exceeded. Please wait a few moments and try again.
    500-UnexpectedError:
      description: An unexpected error occurred.
      content:
        application/json:
          schema:
            type: object
            properties:
              errorMessage:
                type: string
              errorId:
                type: string
  securitySchemes:
    ApiKeyAuth:
      type: http
      scheme: bearer
      description: >
        Your secret API key from [PlayAI](https://play.ai/api/keys), formatted
        as `Bearer YOUR_SECRET_API_KEY`.
    XUserIdAuth:
      type: apiKey
      in: header
      name: X-USER-ID
      description: |
        Your unique user ID from [PlayAI](https://play.ai/api/keys).
      x-prompt: What is your PlayAI user ID?

````