curl --request GET \
--url https://api.geekidea.ai/v1/dramas/{id}/episodes/{no} \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.geekidea.ai/v1/dramas/{id}/episodes/{no}"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.geekidea.ai/v1/dramas/{id}/episodes/{no}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));{
"id": "episode_0192f1c3a7b87c3e9a4f5b6c7d8e9f01",
"object": "drama.episode",
"drama_id": "<string>",
"episode_no": 1,
"status": "waiting_input",
"run": {
"id": "run_0192f1c3a7b87c3e9a4f5b6c7d8e9f01",
"object": "workflow.run",
"workflow": "geekidea/drama-episode",
"status": "running",
"progress": 40,
"auto_continue": true,
"budget_usd": 123,
"model_cost_usd": 123,
"fee_usd": 123,
"cost_usd": 123,
"held_usd": 123,
"error_code": "<string>",
"steps": [
{
"key": "storyboard",
"status": "succeeded",
"attempt": 1,
"error_code": "workflow_charge_exhausted",
"started_at": 123,
"finished_at": 123,
"confirmed_at": 123
}
],
"created_at": 123,
"finished_at": 123
},
"artifacts": [
{
"object": "drama.artifact",
"kind": "storyboard",
"step": "storyboard",
"version": 1,
"current": true,
"schema_version": 1,
"source": "generated",
"feedback": "<string>",
"payload": {},
"created_at": 123
}
],
"media": [
{
"id": "dmedia_0192f1c3a7b87c3e9a4f5b6c7d8e9f01",
"object": "drama.media",
"episode_no": 1,
"category": "keyframe",
"element_code": "<string>",
"shot_no": 123,
"stale": true,
"current": {
"version": 1,
"status": "succeeded",
"source": "<string>",
"file": {
"file_id": "<string>",
"url": "<string>",
"mime": "<string>",
"width": 123,
"height": 123
},
"generation_id": "<string>",
"prompt": "<string>",
"feedback": "<string>",
"error_code": "<string>",
"created_at": 123
},
"latest": {
"version": 1,
"status": "succeeded",
"source": "<string>",
"file": {
"file_id": "<string>",
"url": "<string>",
"mime": "<string>",
"width": 123,
"height": 123
},
"generation_id": "<string>",
"prompt": "<string>",
"feedback": "<string>",
"error_code": "<string>",
"created_at": 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
}{
"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>"
}
]
}
}Retrieve an episode
Returns the episode’s workflow run (steps and costs), the current version of each artifact, the media slots and the final video.
curl --request GET \
--url https://api.geekidea.ai/v1/dramas/{id}/episodes/{no} \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.geekidea.ai/v1/dramas/{id}/episodes/{no}"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.geekidea.ai/v1/dramas/{id}/episodes/{no}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));{
"id": "episode_0192f1c3a7b87c3e9a4f5b6c7d8e9f01",
"object": "drama.episode",
"drama_id": "<string>",
"episode_no": 1,
"status": "waiting_input",
"run": {
"id": "run_0192f1c3a7b87c3e9a4f5b6c7d8e9f01",
"object": "workflow.run",
"workflow": "geekidea/drama-episode",
"status": "running",
"progress": 40,
"auto_continue": true,
"budget_usd": 123,
"model_cost_usd": 123,
"fee_usd": 123,
"cost_usd": 123,
"held_usd": 123,
"error_code": "<string>",
"steps": [
{
"key": "storyboard",
"status": "succeeded",
"attempt": 1,
"error_code": "workflow_charge_exhausted",
"started_at": 123,
"finished_at": 123,
"confirmed_at": 123
}
],
"created_at": 123,
"finished_at": 123
},
"artifacts": [
{
"object": "drama.artifact",
"kind": "storyboard",
"step": "storyboard",
"version": 1,
"current": true,
"schema_version": 1,
"source": "generated",
"feedback": "<string>",
"payload": {},
"created_at": 123
}
],
"media": [
{
"id": "dmedia_0192f1c3a7b87c3e9a4f5b6c7d8e9f01",
"object": "drama.media",
"episode_no": 1,
"category": "keyframe",
"element_code": "<string>",
"shot_no": 123,
"stale": true,
"current": {
"version": 1,
"status": "succeeded",
"source": "<string>",
"file": {
"file_id": "<string>",
"url": "<string>",
"mime": "<string>",
"width": 123,
"height": 123
},
"generation_id": "<string>",
"prompt": "<string>",
"feedback": "<string>",
"error_code": "<string>",
"created_at": 123
},
"latest": {
"version": 1,
"status": "succeeded",
"source": "<string>",
"file": {
"file_id": "<string>",
"url": "<string>",
"mime": "<string>",
"width": 123,
"height": 123
},
"generation_id": "<string>",
"prompt": "<string>",
"feedback": "<string>",
"error_code": "<string>",
"created_at": 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
}{
"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
Response
OK
An episode (GET /v1/dramas/{id}/episodes/{no}): step progress, current artifacts and media slots.
ID (episode_ prefix)
"episode_0192f1c3a7b87c3e9a4f5b6c7d8e9f01"
Object type
"drama.episode"
Drama ID
Episode number
1
Status: producing / waiting_input / completed / failed / cancelled
draft, producing, waiting_input, completed, failed, cancelled "waiting_input"
A workflow run
Show child attributes
Show child attributes
Current version of each artifact
Show child attributes
Show child attributes
Media slots
Show child attributes
Show child attributes
A file: file ID and signed download URL.
Show child attributes
Show child attributes
A file: file ID and signed download URL.
Show child attributes
Show child attributes
Final video duration in milliseconds
