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

# Text-to-Speech Price Calculation

> Estimate the price of a text-to-speech generation request. Either text or count_text must be provided.

Estimate the cost of a text-to-speech job before submitting it.


## OpenAPI

````yaml openapi-v2.json POST /api/v2/audio/speech/price
openapi: 3.0.0
info:
  title: deAPI REST API
  description: >-
    Decentralized AI inference API for image generation, video processing, audio
    transcription, and more.
  contact:
    name: deAPI Support
    url: https://deapi.ai
    email: support@deapi.ai
  version: 0.0.1
servers:
  - url: https://api.deapi.ai
    description: Production API Server base URL
security:
  - bearerAuth: []
tags:
  - name: Client API v2
    description: Current client endpoints (OpenAI-aligned noun-based paths)
paths:
  /api/v2/audio/speech/price:
    post:
      tags:
        - Client API v2
      description: >-
        Estimate the price of a text-to-speech generation request. Either text
        or count_text must be provided.
      operationId: estimateSpeechPrice
      parameters:
        - $ref: '#/components/parameters/AcceptHeader'
      requestBody:
        description: >-
          Audio generation parameters. Either text or count_text must be
          provided. Voice is optional (not needed for voice_clone or
          voice_design modes).
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Txt2AudioPriceRequestBody'
      responses:
        '200':
          description: Calculated price for text2audio inference.
          content:
            application/json:
              schema:
                properties:
                  data:
                    properties:
                      price:
                        description: Calculated price for the inference
                        type: number
                        format: float
                        example: 0.25
                    type: object
                type: object
        '401':
          description: Unauthorized user.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/response_error_default'
        '404':
          description: Not found.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/response_error_default'
        '422':
          $ref: '#/components/responses/ValidationError'
        '429':
          $ref: '#/components/responses/RateLimitExceeded'
      security:
        - bearerAuth: []
components:
  parameters:
    AcceptHeader:
      name: Accept
      in: header
      required: true
      schema:
        type: string
        default: application/json
        enum:
          - application/json
  schemas:
    Txt2AudioPriceRequestBody:
      required:
        - model
        - lang
        - speed
        - format
        - sample_rate
      properties:
        text:
          description: >-
            Text to be converted to speech. Either this or count_text must be
            provided.
          type: string
          example: A beautiful sunset over mountains
          nullable: true
        count_text:
          description: >-
            Number of characters for price calculation. Either this or text must
            be provided.
          type: integer
          example: 1000
          nullable: true
        model:
          description: >-
            The model to use for speech generation. Available models can be
            retrieved via the GET /api/v1/client/models endpoint.
          type: string
          example: Kokoro
        mode:
          description: 'TTS mode: custom_voice (default), voice_clone, or voice_design.'
          type: string
          enum:
            - custom_voice
            - voice_clone
            - voice_design
          example: custom_voice
          nullable: true
        voice:
          description: Name of the voice to be used. Only relevant for custom_voice mode.
          type: string
          example: af_sky
          nullable: true
        lang:
          description: Language to be used during audio generation
          type: string
          example: en-us
        speed:
          description: Generated audio speech speed
          type: number
          example: 1
        format:
          description: Audio output format
          type: string
          example: mp3
        sample_rate:
          description: Sample rate of generated audio
          type: number
          example: 24000
        instruct:
          description: >-
            Natural language voice description for voice_design mode price
            calculation.
          type: string
          nullable: true
      type: object
    response_error_default:
      properties:
        data:
          description: Information from success endpoint
          type: object
        message:
          description: Error general message
          type: string
        errors:
          description: Information about errors
          type: array
          items: {}
        statusCode:
          description: Status code
          type: integer
      type: object
    response_error_rate_limit:
      description: Rate limit exceeded response
      properties:
        message:
          description: Error message
          type: string
          example: Too Many Attempts.
      type: object
  responses:
    ValidationError:
      description: >-
        Validation failed. Common errors include: model does not exist, model
        does not support the inference type for this endpoint, or invalid
        request parameters.
      content:
        application/json:
          schema:
            properties:
              message:
                description: General error message
                type: string
                example: The selected model does not support Text To Image.
              errors:
                description: Detailed validation errors by field
                type: object
                example:
                  model:
                    - The selected model does not support Text To Image.
            type: object
    RateLimitExceeded:
      description: >-
        Rate limit exceeded. Check X-RateLimit-Type header to determine if
        minute (RPM) or daily (RPD) limit was hit.
      headers:
        X-RateLimit-Limit:
          description: Maximum requests allowed per minute (RPM)
          schema:
            type: integer
            example: 3
        X-RateLimit-Remaining:
          description: Remaining requests in current minute window
          schema:
            type: integer
            example: 0
        X-RateLimit-Daily-Limit:
          description: Maximum requests allowed per day (RPD)
          schema:
            type: integer
            example: 100
        X-RateLimit-Daily-Remaining:
          description: Remaining requests in current day window
          schema:
            type: integer
            example: 95
        X-RateLimit-Type:
          description: 'Type of rate limit exceeded: "minute" for RPM, "daily" for RPD'
          schema:
            type: string
            enum:
              - minute
              - daily
            example: minute
        Retry-After:
          description: >-
            Seconds until rate limit resets (60 for minute, up to 86400 for
            daily)
          schema:
            type: integer
            example: 60
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/response_error_rate_limit'
  securitySchemes:
    bearerAuth:
      type: http
      bearerFormat: JWT
      scheme: bearer

````