---
title: "Create a source from a URL, YouTube link, or text payload"
method: POST
path: "/v1/sources"
tags: ["Sources"]
---

# Create a source from a URL, YouTube link, or text payload

`POST /v1/sources`

## Request

- Base URL: `https://api.jellypod.com`
- URL: `https://api.jellypod.com/v1/sources`
- Auth: HTTP bearer

## Request body

- union: Body for creating a URL, YouTube, or text source. `type` is case-insensitive — the server lowercases it before validation. `url` is required when `type` is `url` or `youtube`; `content` is required when `type` is `text`.
  - object
    - `title` string
    - `type` 'url', required
    - `url` string, uri, required
  - object
    - `title` string
    - `type` 'youtube', required
    - `url` string, uri, required
  - object
    - `content` string, required
    - `title` string
    - `type` 'text', required

## Response `202`

Source accepted for processing

- AcceptedSourceResponse: Acknowledgement for asynchronous source processing.
  - `data` SourceRow, required: A content source used as input for episodes.
    - `created_at` string, required
    - `error_message` string, nullable, required
    - `id` string, uuid, required
    - `metadata` unknown
    - `status` string, required
    - `title` string, nullable, required
    - `type` string, nullable, required
    - `updated_at` string, required

## Other responses

- `400`: Validation failed or malformed request.
- `401`: Missing or invalid API key.
- `403`: Authenticated, but this API key does not have access to this resource.
- `404`: Resource not found.
- `415`: Request `Content-Type` is not supported for this endpoint.
- `429`: Rate limit exceeded. Response includes `Retry-After`, `RateLimit`, and `RateLimit-Policy` headers (IETF draft).
- `500`: Internal server error.
- `502`: The API could not enqueue the downstream asynchronous workflow.

---

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