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

# Submit transcribe job

> Transcribe a media file

Creates a new transcribe job. Sends the finished transcript to the provided webhook URL.

<Alert>
  This endpoint supports both a remote file from URL and a local file from multipart form data.
</Alert>

<Warning>
  If you use the enhanced model the max audio input duration is currently *60 minutes* (this will be increased in the near future).
</Warning>

## Transcribe a file from direct URL

If you have a media file accessible via a URL, you can provide the URL to the file in the request body with the header `Content-Type` set to `application/json`.

Typically you would use this method if you have a file stored in a cloud storage service such as Amazon S3.

Use the `url` field in the body of the request to provide the URL to the file.

<Warning>Make sure the URL to the file is publicly accessible, otherwise our endpoint cannot read the file. It must be a direct link to the file, not e.g. a Google Drive share link.</Warning>

## Transcribe an uploaded file

Instead of providing a direct URL, you can use the file key you get from the [Upload media file](/api-reference/upload) endpoint. It starts with `file://`.

## Receiving the transcript (Webhook)

The webhook URL is where the finished transcript will be sent. The transcript will be sent as a JSON object in the request body.

<Warning>Make sure the webhook URL is publicly accessible, otherwise our endpoint cannot send the transcript</Warning>

The request body of the webhook will be equal to the Transcript schema as specified on page [Transcript Schema](/api-reference/schemas/transcript).

## Job status and transcript output

You can view the status of the job by using the [Retrieve Job](/api-reference/retrieve-job) endpoint.

The output of the job will be saved in the `output` field of the job object, and is deleted after 24 hours.


## OpenAPI

````yaml POST /transcribe
openapi: 3.0.0
info:
  title: Spectropic API
  version: 1.0.0
servers:
  - url: https://api.spectropic.ai/v1
security:
  - Bearer: []
paths:
  /transcribe:
    post:
      tags:
        - Transcribe
      summary: Transcribe a media file
      description: Transcribe a media file
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                url:
                  anyOf:
                    - type: string
                    - type: string
                webhook:
                  type: string
                  format: uri
                vocabulary:
                  type: string
                  maxLength: 512
                language:
                  type: string
                  enum:
                    - af
                    - am
                    - ar
                    - as
                    - az
                    - ba
                    - be
                    - bg
                    - bn
                    - bo
                    - br
                    - bs
                    - ca
                    - cs
                    - cy
                    - da
                    - de
                    - el
                    - en
                    - es
                    - et
                    - eu
                    - fa
                    - fi
                    - fo
                    - fr
                    - gl
                    - gu
                    - ha
                    - haw
                    - he
                    - hi
                    - hr
                    - ht
                    - hu
                    - hy
                    - id
                    - is
                    - it
                    - ja
                    - jw
                    - ka
                    - kk
                    - km
                    - kn
                    - ko
                    - la
                    - lb
                    - ln
                    - lo
                    - lt
                    - lv
                    - mg
                    - mi
                    - mk
                    - ml
                    - mn
                    - mr
                    - ms
                    - mt
                    - my
                    - ne
                    - nl
                    - nn
                    - 'no'
                    - oc
                    - pa
                    - pl
                    - ps
                    - pt
                    - ro
                    - ru
                    - sa
                    - sd
                    - si
                    - sk
                    - sl
                    - sn
                    - so
                    - sq
                    - sr
                    - su
                    - sv
                    - sw
                    - ta
                    - te
                    - tg
                    - th
                    - tk
                    - tl
                    - tr
                    - tt
                    - uk
                    - ur
                    - uz
                    - vi
                    - yi
                    - yo
                    - zh
                    - yue
                model:
                  type: string
                  enum:
                    - standard
                    - enhanced
                    - distill
                  default: standard
                numSpeakers:
                  type: integer
                  minimum: 1
                  maximum: 25
              required:
                - url
              description: >-
                Transcribe a media file. Either provide a URL to a media file
                exposed to the public or a file:// key from a file uploaded to
                the Spectropic Upload API.
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  jobId:
                    type: string
                    format: uuid
                  status:
                    type: string
                    enum:
                      - created
                      - queued
                      - running
                      - succeeded
                      - failed
                  message:
                    type: string
                required:
                  - jobId
                  - status
                  - message
        '400':
          description: Validation failed
          content:
            application/json:
              schema:
                type: object
                properties:
                  requestId:
                    type: string
                    format: uuid
                  message:
                    type: string
                  errors:
                    type: array
                    items:
                      type: object
                      properties:
                        message:
                          type: string
                        field:
                          type: string
                      required:
                        - message
                        - field
                required:
                  - requestId
                  - message
                  - errors
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                type: object
                properties:
                  requestId:
                    type: string
                    format: uuid
                  message:
                    type: string
                required:
                  - requestId
                  - message
        '402':
          description: Payment required
          content:
            application/json:
              schema:
                type: object
                properties:
                  requestId:
                    type: string
                    format: uuid
                  message:
                    type: string
                required:
                  - requestId
                  - message
        '404':
          description: Not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  requestId:
                    type: string
                  message:
                    type: string
                required:
                  - requestId
                  - message
        '422':
          description: Validation failed
          content:
            application/json:
              schema:
                type: object
                properties:
                  requestId:
                    type: string
                    format: uuid
                  message:
                    type: string
                  errors:
                    type: array
                    items:
                      type: object
                      properties:
                        message:
                          type: string
                        field:
                          type: string
                      required:
                        - message
                        - field
                required:
                  - requestId
                  - message
                  - errors
        '429':
          description: Rate limited
          content:
            application/json:
              schema:
                type: object
                properties:
                  requestId:
                    type: string
                    format: uuid
                  message:
                    type: string
                required:
                  - requestId
                  - message
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                type: object
                properties:
                  requestId:
                    type: string
                    format: uuid
                  message:
                    type: string
                required:
                  - requestId
                  - message
components:
  securitySchemes:
    Bearer:
      type: http
      description: 'API key authentication. Add your API key with format: Bearer <API_KEY>'
      scheme: bearer

````