Respeecher Credits API

Check the account credit balance that meters marketplace text-to-speech and speech-to-speech usage (GET /api/credits). Credits map to TTS characters and STS minutes across the pay-as-you-go and subscription plans.

OpenAPI Specification

respeecher-openapi.yml Raw ↑
openapi: 3.0.2
info:
  title: Voice Markertplace API
  version: 0.6.0
paths:
  /api/healtz:
    get:
      tags:
      - healtz
      summary: Healtz
      operationId: healtz_api_healtz_get
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OK'
  /api/login:
    post:
      tags:
      - auth
      summary: Login
      operationId: login_api_login_post
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/LoginCreds'
        required: true
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/LoginResponse'
        '402':
          description: Payment Required
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /api/logout:
    post:
      tags:
      - auth
      summary: Logout
      operationId: logout_api_logout_post
      parameters:
      - required: false
        schema:
          title: X-Csrf-Token
          type: string
        name: x-csrf-token
        in: header
      - required: false
        schema:
          title: Api-Key
          type: string
        name: api-key
        in: header
      - required: false
        schema:
          title: Session Id
          type: string
        name: session_id
        in: cookie
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DefaultSuccessResponse'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /api/auth:
    post:
      tags:
      - auth
      summary: Authenticate
      operationId: authenticate_api_auth_post
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/User'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
  /api/calibration:
    get:
      tags:
      - calibration
      summary: Calibration List
      operationId: calibration_list_api_calibration_get
      parameters:
      - required: false
        schema:
          title: Limit
          maximum: 200.0
          minimum: 0.0
          type: integer
          default: 50
        name: limit
        in: query
      - required: false
        schema:
          title: Offset
          minimum: 0.0
          type: integer
          default: 0
        name: offset
        in: query
      - required: false
        schema:
          title: Search
          type: string
        name: search
        in: query
      - required: false
        schema:
          title: X-Csrf-Token
          type: string
        name: x-csrf-token
        in: header
      - required: false
        schema:
          title: Api-Key
          type: string
        name: api-key
        in: header
      - required: false
        schema:
          title: Session Id
          type: string
        name: session_id
        in: cookie
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CalibrationListResponse'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
    post:
      tags:
      - calibration
      summary: Calibrate
      operationId: calibrate_api_calibration_post
      parameters:
      - required: false
        schema:
          title: X-Csrf-Token
          type: string
        name: x-csrf-token
        in: header
      - required: false
        schema:
          title: Api-Key
          type: string
        name: api-key
        in: header
      - required: false
        schema:
          title: Session Id
          type: string
        name: session_id
        in: cookie
      requestBody:
        content:
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/Body_calibrate_api_calibration_post'
        required: true
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CalibrationResponse'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /api/calibration/{calibration_id}:
    get:
      tags:
      - calibration
      summary: Calibration Get
      operationId: calibration_get_api_calibration__calibration_id__get
      parameters:
      - required: true
        schema:
          title: Calibration Id
          type: string
          format: uuid4
        name: calibration_id
        in: path
      - required: false
        schema:
          title: X-Csrf-Token
          type: string
        name: x-csrf-token
        in: header
      - required: false
        schema:
          title: Api-Key
          type: string
        name: api-key
        in: header
      - required: false
        schema:
          title: Session Id
          type: string
        name: session_id
        in: cookie
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CalibrationResponse'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
    delete:
      tags:
      - calibration
      summary: Calibration Delete
      operationId: calibration_delete_api_calibration__calibration_id__delete
      parameters:
      - required: true
        schema:
          title: Calibration Id
          type: string
          format: uuid4
        name: calibration_id
        in: path
      - required: false
        schema:
          title: X-Csrf-Token
          type: string
        name: x-csrf-token
        in: header
      - required: false
        schema:
          title: Api-Key
          type: string
        name: api-key
        in: header
      - required: false
        schema:
          title: Session Id
          type: string
        name: session_id
        in: cookie
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CalibrationResponse'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
    patch:
      tags:
      - calibration
      summary: Calibration Rename
      operationId: calibration_rename_api_calibration__calibration_id__patch
      parameters:
      - required: true
        schema:
          title: Calibration Id
          type: string
          format: uuid4
        name: calibration_id
        in: path
      - required: false
        schema:
          title: X-Csrf-Token
          type: string
        name: x-csrf-token
        in: header
      - required: false
        schema:
          title: Api-Key
          type: string
        name: api-key
        in: header
      - required: false
        schema:
          title: Session Id
          type: string
        name: session_id
        in: cookie
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CalibrationRename'
        required: true
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CalibrationResponse'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /api/calibration/{calibration_id}/enable:
    put:
      tags:
      - calibration
      summary: Calibration Enable
      operationId: calibration_enable_api_calibration__calibration_id__enable_put
      parameters:
      - required: true
        schema:
          title: Calibration Id
          type: string
          format: uuid4
        name: calibration_id
        in: path
      - required: false
        schema:
          title: X-Csrf-Token
          type: string
        name: x-csrf-token
        in: header
      - required: false
        schema:
          title: Api-Key
          type: string
        name: api-key
        in: header
      - required: false
        schema:
          title: Session Id
          type: string
        name: session_id
        in: cookie
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CalibrationResponse'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /api/credits:
    get:
      tags:
      - credits
      summary: Get Credits
      operationId: get_credits_api_credits_get
      parameters:
      - required: false
        schema:
          title: X-Csrf-Token
          type: string
        name: x-csrf-token
        in: header
      - required: false
        schema:
          title: Api-Key
          type: string
        name: api-key
        in: header
      - required: false
        schema:
          title: Session Id
          type: string
        name: session_id
        in: cookie
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CreditsResponse'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /api/models:
    get:
      tags:
      - models
      summary: Model List
      operationId: model_list_api_models_get
      parameters:
      - required: false
        schema:
          title: Limit
          maximum: 100.0
          minimum: 0.0
          type: integer
          default: 0
        name: limit
        in: query
      - required: false
        schema:
          title: Offset
          minimum: 0.0
          type: integer
          default: 0
        name: offset
        in: query
      - required: false
        schema:
          title: Search
          type: string
        name: search
        in: query
      - required: false
        schema:
          allOf:
          - $ref: '#/components/schemas/ModelSortFields'
          default: date_created
        name: sort
        in: query
      - required: false
        schema:
          allOf:
          - $ref: '#/components/schemas/Direction'
          default: desc
        name: direction
        in: query
      - required: false
        schema:
          title: X-Csrf-Token
          type: string
        name: x-csrf-token
        in: header
      - required: false
        schema:
          title: Api-Key
          type: string
        name: api-key
        in: header
      - required: false
        schema:
          title: Session Id
          type: string
        name: session_id
        in: cookie
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ModelListResponse'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /api/projects:
    get:
      tags:
      - projects
      summary: Project List
      operationId: project_list_api_projects_get
      parameters:
      - required: false
        schema:
          title: Limit
          maximum: 100.0
          minimum: 0.0
          type: integer
          default: 50
        name: limit
        in: query
      - required: false
        schema:
          title: Offset
          minimum: 0.0
          type: integer
          default: 0
        name: offset
        in: query
      - required: false
        schema:
          allOf:
          - $ref: '#/components/schemas/ProjectSortFields'
          default: created_at
        name: sort
        in: query
      - required: false
        schema:
          allOf:
          - $ref: '#/components/schemas/Direction'
          default: desc
        name: direction
        in: query
      - required: false
        schema:
          title: Owner
          type: string
          format: uuid
        name: owner
        in: query
      - required: false
        schema:
          title: X-Csrf-Token
          type: string
        name: x-csrf-token
        in: header
      - required: false
        schema:
          title: Api-Key
          type: string
        name: api-key
        in: header
      - required: false
        schema:
          title: Session Id
          type: string
        name: session_id
        in: cookie
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProjectListResponse'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
    post:
      tags:
      - projects
      summary: Project Create
      operationId: project_create_api_projects_post
      parameters:
      - required: false
        schema:
          title: X-Csrf-Token
          type: string
        name: x-csrf-token
        in: header
      - required: false
        schema:
          title: Api-Key
          type: string
        name: api-key
        in: header
      - required: false
        schema:
          title: Session Id
          type: string
        name: session_id
        in: cookie
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ProjectCreate'
        required: true
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProjectResponse'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /api/projects/by-url:
    get:
      tags:
      - projects
      summary: Project Get By Url
      description: Get project by url
      operationId: project_get_by_url_api_projects_by_url_get
      parameters:
      - required: true
        schema:
          title: Project Url
          type: string
        name: project_url
        in: query
      - required: false
        schema:
          title: X-Csrf-Token
          type: string
        name: x-csrf-token
        in: header
      - required: false
        schema:
          title: Api-Key
          type: string
        name: api-key
        in: header
      - required: false
        schema:
          title: Session Id
          type: string
        name: session_id
        in: cookie
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProjectResponse'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /api/projects/{project_id}:
    put:
      tags:
      - projects
      summary: Project Update
      operationId: project_update_api_projects__project_id__put
      parameters:
      - required: true
        schema:
          title: Project Id
          type: string
          format: uuid4
        name: project_id
        in: path
      - required: false
        schema:
          title: X-Csrf-Token
          type: string
        name: x-csrf-token
        in: header
      - required: false
        schema:
          title: Api-Key
          type: string
        name: api-key
        in: header
      - required: false
        schema:
          title: Session Id
          type: string
        name: session_id
        in: cookie
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ProjectUpdate'
        required: true
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProjectResponse'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
    delete:
      tags:
      - projects
      summary: Project Delete
      operationId: project_delete_api_projects__project_id__delete
      parameters:
      - required: true
        schema:
          title: Project Id
          type: string
          format: uuid4
        name: project_id
        in: path
      - required: false
        schema:
          title: X-Csrf-Token
          type: string
        name: x-csrf-token
        in: header
      - required: false
        schema:
          title: Api-Key
          type: string
        name: api-key
        in: header
      - required: false
        schema:
          title: Session Id
          type: string
        name: session_id
        in: cookie
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProjectDeleteResp'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
    patch:
      tags:
      - projects
      summary: Project Rename
      operationId: project_rename_api_projects__project_id__patch
      parameters:
      - required: true
        schema:
          title: Project Id
          type: string
          format: uuid4
        name: project_id
        in: path
      - required: false
        schema:
          title: X-Csrf-Token
          type: string
        name: x-csrf-token
        in: header
      - required: false
        schema:
          title: Api-Key
          type: string
        name: api-key
        in: header
      - required: false
        schema:
          title: Session Id
          type: string
        name: session_id
        in: cookie
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ProjectRename'
        required: true
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProjectResponse'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /api/projects/{project_id}/export:
    get:
      tags:
      - projects
      summary: Project Export
      description: Export project recordings into .zip archive
      operationId: project_export_api_projects__project_id__export_get
      parameters:
      - required: true
        schema:
          title: Project Id
          type: string
          format: uuid4
        name: project_id
        in: path
      - required: false
        schema:
          title: Starred Only
          type: boolean
          default: false
        name: starred_only
        in: query
      - required: false
        schema:
          title: X-Csrf-Token
          type: string
        name: x-csrf-token
        in: header
      - required: false
        schema:
          title: Api-Key
          type: string
        name: api-key
        in: header
      - required: false
        schema:
          title: Session Id
          type: string
        name: session_id
        in: cookie
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema: {}
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /api/folders:
    get:
      tags:
      - folders
      summary: Folder List
      description: This is my super cool description
      operationId: folder_list_api_folders_get
      parameters:
      - required: true
        schema:
          title: Project Id
          type: string
          format: uuid4
        name: project_id
        in: query
      - required: false
        schema:
          title: Limit
          maximum: 200.0
          minimum: 0.0
          type: integer
          default: 50
        name: limit
        in: query
      - required: false
        schema:
          title: Offset
          minimum: 0.0
          type: integer
          default: 0
        name: offset
        in: query
      - required: false
        schema:
          allOf:
          - $ref: '#/components/schemas/Direction'
          default: desc
        name: direction
        in: query
      - required: false
        schema:
          title: X-Csrf-Token
          type: string
        name: x-csrf-token
        in: header
      - required: false
        schema:
          title: Api-Key
          type: string
        name: api-key
        in: header
      - required: false
        schema:
          title: Session Id
          type: string
        name: session_id
        in: cookie
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FolderListResponse'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
    post:
      tags:
      - folders
      summary: Folder Create
      operationId: folder_create_api_folders_post
      parameters:
      - required: false
        schema:
          title: X-Csrf-Token
          type: string
        name: x-csrf-token
        in: header
      - required: false
        schema:
          title: Api-Key
          type: string
        name: api-key
        in: header
      - required: false
        schema:
          title: Session Id
          type: string
        name: session_id
        in: cookie
      requestBody:
        content:
          application/json:
            sc

# --- truncated at 32 KB (136 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/respeecher/refs/heads/main/openapi/respeecher-openapi.yml