---
title: "Transcribe a recording from a link"
method: POST
path: "/transcripts"
tags: ["Transcripts"]
---

# Transcribe a recording from a link

`POST /transcripts`

## Request

- Base URL: `https://tryslicemedia.com/api/v1`
- URL: `https://tryslicemedia.com/api/v1/transcripts`
- Auth: HTTP bearer

Uses the account's 3 free transcripts a month (shared with the website), then Transcribe hours. Up to 90 minutes a file.

## Headers

- `Idempotency-Key` string

## Request body

- object
  - `url` string, uri, required: A direct https link to an audio or video file.

## Response `200`

Already done

- Transcript
  - `transcript_id` string
  - `status` 'processing' | 'completed' | 'failed'
  - `results_url` string
  - `file_name` string
  - `duration_minutes` number
  - `word_count` integer
  - `language` string
  - `transcript` string
  - `transcript_truncated` boolean
  - `downloads` object
    - `txt` string
    - `srt` string
    - `vtt` string
  - `message` string

## Other responses

- `202`: Accepted
- `400`: Invalid input. The message says which field.
- `401`: Missing, unknown, revoked or expired key.
- `402`: Needs credit or the Slice plan (plan_or_credit_required, credit_required, plan_required), or the balance is below zero after a refunded credit pack (balance_below_zero). Numbers are in the error.
- `403`: The key lacks the permission (scope) this needs, or the account is under billing review.
- `409`: Busy, or an Idempotency-Key still running.
- `422`: Idempotency-Key reused with a different body.
- `429`: Rate limited. See retry_after and the RateLimit-* headers.

---

[API](https://skmtc.dev/tryslicemedia/apis/slice-api.md) · [All operations](https://skmtc.dev/tryslicemedia/apis/slice-api/llms.txt) · [OpenAPI document](https://skmtc.dev/tryslicemedia/apis/slice-api/revisions/3dc0b0bd8755?raw)
