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

# Transcribe Route



## OpenAPI

````yaml /api-reference/openapi.json post /v1/jobs/transcribe
openapi: 3.0.1
info:
  title: Hamsa API
  description: Trying out our transcription and media-to-text APIs
  license:
    name: MIT
  version: 1.0.0
servers:
  - url: https://api.tryhamsa.com
security: []
paths:
  /v1/jobs/transcribe:
    post:
      summary: Transcribe media to text
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/TranscriptRequest'
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TranscriptResponse'
        '400':
          description: Bad request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorSchema'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorSchema'
        '500':
          description: Server Side Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorSchema'
      security:
        - ApiKeyAuth: []
components:
  schemas:
    TranscriptRequest:
      type: object
      properties:
        mediaUrl:
          type: string
          format: uri
        processingType:
          type: string
          enum:
            - async
          default: async
        webhookUrl:
          type: string
          format: uri
        webhookAuth:
          $ref: '#/components/schemas/ExternalWebhookAuthScheme'
        title:
          type: string
        model:
          type: string
          enum:
            - Hamsa-General-V2.0
            - Hamsa-Conversational-V1.0
        language:
          type: string
          enum:
            - ar
            - en
          default: ar
        returnSrtFormat:
          type: boolean
          default: false
        srtOptions:
          type: object
          description: >-
            You can override srtOptions default values and send the object only
            if returnSrtFormat is false.
          properties:
            maxLinesPerSubtitle:
              type: integer
              example: 2
              default: 2
            singleSpeakerPerSubtitle:
              type: boolean
              default: true
              example: true
            maxCharsPerLine:
              type: integer
              example: 42
              default: 42
            maxMergeableGap:
              type: number
              example: 0.3
              default: 0.3
            minDuration:
              type: number
              example: 0.7
              default: 0.7
            maxDuration:
              type: number
              example: 7
              default: 7
            minGap:
              type: number
              example: 0.04
              default: 0.04
      required:
        - mediaUrl
        - model
    TranscriptResponse:
      type: object
      properties:
        success:
          type: boolean
        message:
          type: string
        data:
          type: object
          properties:
            jobId:
              type: string
          required:
            - jobId
    ErrorSchema:
      type: object
      properties:
        code:
          type: integer
        message:
          type: string
    ExternalWebhookAuthScheme:
      type: object
      description: >-
        Authorization header to be sent in this format: `Authorization:
        [authKey] [authSecret]`
      properties:
        authKey:
          type: string
          example: Token
          nullable: true
        authSecret:
          type: string
          example: Secret
          nullable: true
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      in: header
      name: Authorization
      description: >-
        Pass the API key in the Authorization header, You need to put Token
        keyword before the API key. e.g. 'Authorization: Token <api-key>'

````