---
title: "Create a transcript from a public URL"
description: "Accepts a YouTube or Spotify episode URL. Returns 200 when the enhanced transcript is ready, or 202 while processing."
canonical: "https://verbafy.io/docs/api/transcripts/create-transcript"
last-updated: "2026-09-23"
---

# Create a transcript from a public URL

Accepts a YouTube or Spotify episode URL. Returns 200 when the enhanced transcript is ready, or 202 while processing.

`POST /api/v1/transcripts`

OpenAPI operation `createTranscript`. Authenticate with a Clerk session JWT (`Authorization: Bearer {jwt}`) or the `verbafy_guest_session` cookie. `{jwt}` is a Clerk session token after you sign in on the website. Verbafy does not issue that token and does not show it in Settings. For scripts and agents, sign in, create an API key at [Settings → API keys](/app/settings/api-keys), and call Remote MCP with `Authorization: Bearer sk-…`. Credential setup: [Auth.md](/auth.md). Machine-readable contract: [OpenAPI](/openapi.json).

## curl

```curl
curl -X POST 'https://verbafy.io/api/v1/transcripts' \
  -H 'Authorization: Bearer {jwt}' \
  -H 'Content-Type: application/json' \
  -d '{"url":"https://www.youtube.com/watch?v=VIDEO_ID"}'
```

## JavaScript

```javascript
const response = await fetch('https://verbafy.io/api/v1/transcripts', {
  method: 'POST',
  headers: {
    Authorization: 'Bearer {jwt}',
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({"url":"https://www.youtube.com/watch?v=VIDEO_ID"})
});
```

## Python

```python
import httpx

response = httpx.post(
    "https://verbafy.io/api/v1/transcripts",
    headers={"Authorization":"Bearer {jwt}","Content-Type":"application/json"},
    json={"url":"https://www.youtube.com/watch?v=VIDEO_ID"},
)
```

```json
{
  "@context": "https://schema.org",
  "@graph": [
    {
      "@type": "Organization",
      "@id": "https://verbafy.io/#organization",
      "name": "Verbafy",
      "url": "https://verbafy.io",
      "inLanguage": "en",
      "knowsAbout": [
        "YouTube transcription",
        "Spotify episode transcription",
        "Meeting recording transcription",
        "Speaker diarization",
        "Transcript export"
      ],
      "hasOfferCatalog": {
        "@id": "https://verbafy.io/pricing#offers"
      },
      "contactPoint": {
        "@type": "ContactPoint",
        "contactType": "customer support",
        "email": "support@verbafy.io",
        "url": "https://verbafy.io/contact"
      }
    },
    {
      "@type": "TechArticle",
      "@id": "https://verbafy.io/docs/api/transcripts/create-transcript#page",
      "name": "Create a transcript from a public URL",
      "description": "Accepts a YouTube or Spotify episode URL. Returns 200 when the enhanced transcript is ready, or 202 while processing.",
      "url": "https://verbafy.io/docs/api/transcripts/create-transcript",
      "inLanguage": "en",
      "isPartOf": {
        "@id": "https://verbafy.io/#website"
      },
      "publisher": {
        "@id": "https://verbafy.io/#organization"
      }
    },
    {
      "@type": "BreadcrumbList",
      "itemListElement": [
        {
          "@type": "ListItem",
          "position": 1,
          "name": "Home",
          "item": "https://verbafy.io"
        },
        {
          "@type": "ListItem",
          "position": 2,
          "name": "Create a transcript from a public URL",
          "item": "https://verbafy.io/docs/api/transcripts/create-transcript"
        }
      ]
    }
  ]
}
```
