---
search:
  tags:
    - Sources
    - POST
seo:
  description: >-
    Creates a Source from a web URL, a YouTube link, or a text payload.
    Reference for the POST /v1/sources endpoint in the Jellypod API.
sidebar:
  label: Create a source
  badge: POST
title: Create a source
type: openapi-operation
---
Creates a Source from a web URL, a YouTube link, or a text payload.

`POST /v1/sources`

**Request body** (`application/json`, required)

Request body example:

```json
{
  "title": "string",
  "type": "url",
  "url": "http://example.com"
}
```

**Responses**

- `202` — Source accepted for processing
- `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. Wait \`Retry-After\` seconds before retrying; \`RateLimit-Limit\`, \`RateLimit-Remaining\`, and \`RateLimit-Reset\` describe the window.
- `500` — Internal server error.
- `502` — The API could not enqueue the downstream asynchronous workflow.

Response example, 202:

```json
{
  "data": {
    "created_at": "string",
    "error_message": "string",
    "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
    "metadata": null,
    "status": "string",
    "title": "string",
    "type": "string",
    "updated_at": "string"
  }
}
```
