Create a source
Create a new source. Accepts either application/json (for URL,
YouTube, or text sources) or multipart/form-data (for file uploads).
The content is processed asynchronously.
Returns 202 Accepted with the source in processing status.
Poll GET /v1/sources/{id} to check processing status.
File uploads via multipart/form-data:
Send a file field with the file data and an optional title field.
Supported file types: PDF, plain text, markdown, CSV, DOCX, PPTX.
Maximum file size: 10 MB.
Authorization
BearerAuth Jellypod API key. Create and manage keys from the Jellypod dashboard under Settings → API Keys.
In: header
TypeScript Definitions
Use the request body type in TypeScript.
Response Body
application/json
application/json
application/json
application/json
application/json
curl -X POST "https://api.jellypod.com/v1/sources" \ -H "Content-Type: application/json" \ -d '{ "type": "url", "url": "http://example.com" }'{
"status": "accepted",
"data": {
"id": "b7c8d9e0-f1a2-3456-bcde-f12345678901",
"title": "OpenAI GPT-5 Announcement",
"type": "url",
"status": "completed",
"metadata": {
"url": "https://openai.com/blog/gpt-5"
},
"error_message": null,
"created_at": "2026-02-28T09:00:00.000Z",
"updated_at": "2026-02-28T09:01:00.000Z"
}
}{
"error": {
"code": "bad_request",
"message": "string",
"request_id": "string",
"details": [
{
"field": "string",
"message": "string"
}
]
}
}{
"error": {
"code": "bad_request",
"message": "string",
"request_id": "string",
"details": [
{
"field": "string",
"message": "string"
}
]
}
}{
"error": {
"code": "bad_request",
"message": "string",
"request_id": "string",
"details": [
{
"field": "string",
"message": "string"
}
]
}
}{
"error": {
"code": "bad_request",
"message": "string",
"request_id": "string",
"details": [
{
"field": "string",
"message": "string"
}
]
}
}Was this page helpful?