curl --request POST \
--url https://api.geekidea.ai/v1/dramas/{id}/episodes \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"budget_usd": 20
}
'import requests
url = "https://api.geekidea.ai/v1/dramas/{id}/episodes"
payload = { "budget_usd": 20 }
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({budget_usd: 20})
};
fetch('https://api.geekidea.ai/v1/dramas/{id}/episodes', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));{
"id": "drama_0192f1c3a7b87c3e9a4f5b6c7d8e9f01",
"object": "drama",
"status": "producing",
"source": "ai",
"title": "<string>",
"aspect_ratio": "9:16",
"resolution": "720p",
"language": "zh",
"planned_episodes": 3,
"episode_seconds": 60,
"models": {
"text": "<string>",
"image": "<string>",
"video": "<string>",
"image_quality": "<string>"
},
"web_research": true,
"auto_confirm": true,
"auto_continue": true,
"episodes": [
{
"id": "<string>",
"episode_no": 1,
"status": "draft",
"run_id": "<string>",
"progress": 123,
"final_video": {
"file_id": "<string>",
"url": "<string>",
"mime": "<string>",
"width": 123,
"height": 123
},
"cover": {
"file_id": "<string>",
"url": "<string>",
"mime": "<string>",
"width": 123,
"height": 123
},
"duration_ms": 123
}
],
"end_user": "<string>",
"metadata": {},
"created_at": 123
}{
"error": {
"message": "The model does not exist or you do not have access to it.",
"type": "not_found_error",
"param": "model",
"code": "model_not_found",
"retryable": false,
"errors": [
{
"param": "messages",
"code": "missing_parameter",
"message": "<string>"
}
]
}
}{
"error": {
"message": "The model does not exist or you do not have access to it.",
"type": "not_found_error",
"param": "model",
"code": "model_not_found",
"retryable": false,
"errors": [
{
"param": "messages",
"code": "missing_parameter",
"message": "<string>"
}
]
}
}{
"error": {
"message": "The model does not exist or you do not have access to it.",
"type": "not_found_error",
"param": "model",
"code": "model_not_found",
"retryable": false,
"errors": [
{
"param": "messages",
"code": "missing_parameter",
"message": "<string>"
}
]
}
}{
"error": {
"message": "The model does not exist or you do not have access to it.",
"type": "not_found_error",
"param": "model",
"code": "model_not_found",
"retryable": false,
"errors": [
{
"param": "messages",
"code": "missing_parameter",
"message": "<string>"
}
]
}
}{
"error": {
"message": "The model does not exist or you do not have access to it.",
"type": "not_found_error",
"param": "model",
"code": "model_not_found",
"retryable": false,
"errors": [
{
"param": "messages",
"code": "missing_parameter",
"message": "<string>"
}
]
}
}{
"error": {
"message": "The model does not exist or you do not have access to it.",
"type": "not_found_error",
"param": "model",
"code": "model_not_found",
"retryable": false,
"errors": [
{
"param": "messages",
"code": "missing_parameter",
"message": "<string>"
}
]
}
}{
"error": {
"message": "The model does not exist or you do not have access to it.",
"type": "not_found_error",
"param": "model",
"code": "model_not_found",
"retryable": false,
"errors": [
{
"param": "messages",
"code": "missing_parameter",
"message": "<string>"
}
]
}
}{
"error": {
"message": "The model does not exist or you do not have access to it.",
"type": "not_found_error",
"param": "model",
"code": "model_not_found",
"retryable": false,
"errors": [
{
"param": "messages",
"code": "missing_parameter",
"message": "<string>"
}
]
}
}Start the next episode
Starts the next episode. The previous episode must be completed and the planned episode count not reached, otherwise 409 workflow_invalid_state. With auto_continue=true the next episode starts automatically.
curl --request POST \
--url https://api.geekidea.ai/v1/dramas/{id}/episodes \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"budget_usd": 20
}
'import requests
url = "https://api.geekidea.ai/v1/dramas/{id}/episodes"
payload = { "budget_usd": 20 }
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({budget_usd: 20})
};
fetch('https://api.geekidea.ai/v1/dramas/{id}/episodes', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));{
"id": "drama_0192f1c3a7b87c3e9a4f5b6c7d8e9f01",
"object": "drama",
"status": "producing",
"source": "ai",
"title": "<string>",
"aspect_ratio": "9:16",
"resolution": "720p",
"language": "zh",
"planned_episodes": 3,
"episode_seconds": 60,
"models": {
"text": "<string>",
"image": "<string>",
"video": "<string>",
"image_quality": "<string>"
},
"web_research": true,
"auto_confirm": true,
"auto_continue": true,
"episodes": [
{
"id": "<string>",
"episode_no": 1,
"status": "draft",
"run_id": "<string>",
"progress": 123,
"final_video": {
"file_id": "<string>",
"url": "<string>",
"mime": "<string>",
"width": 123,
"height": 123
},
"cover": {
"file_id": "<string>",
"url": "<string>",
"mime": "<string>",
"width": 123,
"height": 123
},
"duration_ms": 123
}
],
"end_user": "<string>",
"metadata": {},
"created_at": 123
}{
"error": {
"message": "The model does not exist or you do not have access to it.",
"type": "not_found_error",
"param": "model",
"code": "model_not_found",
"retryable": false,
"errors": [
{
"param": "messages",
"code": "missing_parameter",
"message": "<string>"
}
]
}
}{
"error": {
"message": "The model does not exist or you do not have access to it.",
"type": "not_found_error",
"param": "model",
"code": "model_not_found",
"retryable": false,
"errors": [
{
"param": "messages",
"code": "missing_parameter",
"message": "<string>"
}
]
}
}{
"error": {
"message": "The model does not exist or you do not have access to it.",
"type": "not_found_error",
"param": "model",
"code": "model_not_found",
"retryable": false,
"errors": [
{
"param": "messages",
"code": "missing_parameter",
"message": "<string>"
}
]
}
}{
"error": {
"message": "The model does not exist or you do not have access to it.",
"type": "not_found_error",
"param": "model",
"code": "model_not_found",
"retryable": false,
"errors": [
{
"param": "messages",
"code": "missing_parameter",
"message": "<string>"
}
]
}
}{
"error": {
"message": "The model does not exist or you do not have access to it.",
"type": "not_found_error",
"param": "model",
"code": "model_not_found",
"retryable": false,
"errors": [
{
"param": "messages",
"code": "missing_parameter",
"message": "<string>"
}
]
}
}{
"error": {
"message": "The model does not exist or you do not have access to it.",
"type": "not_found_error",
"param": "model",
"code": "model_not_found",
"retryable": false,
"errors": [
{
"param": "messages",
"code": "missing_parameter",
"message": "<string>"
}
]
}
}{
"error": {
"message": "The model does not exist or you do not have access to it.",
"type": "not_found_error",
"param": "model",
"code": "model_not_found",
"retryable": false,
"errors": [
{
"param": "messages",
"code": "missing_parameter",
"message": "<string>"
}
]
}
}{
"error": {
"message": "The model does not exist or you do not have access to it.",
"type": "not_found_error",
"param": "model",
"code": "model_not_found",
"retryable": false,
"errors": [
{
"param": "messages",
"code": "missing_parameter",
"message": "<string>"
}
]
}
}Authorizations
Provide your API key in the Authorization header using Bearer auth
Headers
Path Parameters
Drama ID
Body
Request to start the next episode.
Budget for this episode in USD
x >= 020
Response
OK
A drama (POST /v1/dramas, GET /v1/dramas/{id}).
ID (drama_ prefix)
"drama_0192f1c3a7b87c3e9a4f5b6c7d8e9f01"
Object type
"drama"
Status: draft / producing / completed / archived
draft, producing, completed, archived "producing"
Source: ai (written from the brief) / script (adapted from a script)
ai, script "ai"
Title (available after understand or the outline)
Aspect ratio
"9:16"
Resolution
"720p"
Language
"zh"
Planned number of episodes
3
Episode length in seconds
60
Models used by the drama.
Show child attributes
Show child attributes
Whether the brief is researched on the web
Whether each step continues automatically
Whether the next episode starts automatically
Episodes started so far
Show child attributes
Show child attributes
End-user identifier
Your metadata
Show child attributes
Show child attributes
Creation time (Unix seconds)
