ARAYA Public API
- OpenAPI Version:
3.1.0 - API Version:
2026-05-19
Public REST API for ARAYA video projects, renders, credits, API keys, and webhooks.
Each API key carries a set of scopes. Available scopes: projects:read, projects:write, renders:create, billing:read, webhooks:write, api_keys:write. Managing API keys (POST /v1/api-keys, rotate, delete) requires the api_keys:write scope. A key minted through the API cannot grant scopes the issuing key does not itself hold.
Servers
- URL:
https://stg.video.araya.org
Operations
GET /v1/projects
- Method:
GET - Path:
/v1/projects - Tags: Projects
Parameters
cursor
- In:
query
string
limit
- In:
query
integer, default: 50
Responses
Status: 200 Projects.
Content-Type: application/json
dataarrayItems:
language(required)stringname(required)stringstatus(required)stringuuid(required)stringanalyzed_atstring | null, format:date-timecompleted_atstring | null, format:date-timecreated_atstring | null, format:date-timeduration_secondsinteger | nullheightinteger | nullsource_filenamestring | nulluploaded_atstring | null, format:date-timewidthinteger | null
metaobjectapi_version(required)stringrequest_id(required)stringhas_morebooleannext_cursorstring | null
Example:
{
"data": [
{
"uuid": "",
"name": "",
"status": "",
"source_filename": null,
"duration_seconds": null,
"width": null,
"height": null,
"language": "",
"uploaded_at": null,
"analyzed_at": null,
"completed_at": null,
"created_at": null
}
],
"meta": {
"request_id": "",
"api_version": "",
"next_cursor": null,
"has_more": true
}
}POST /v1/projects
- Method:
POST - Path:
/v1/projects - Tags: Projects
Parameters
Idempotency-Key required
- In:
header
string
Request Body
Content-Type: application/json
language(required)string, possible values:"ja", "en"name(required)stringduration_secondsinteger | nullheightinteger | nullsource_filenamestring | nullwidthinteger | null
Example:
{
"name": "",
"source_filename": null,
"duration_seconds": null,
"width": null,
"height": null,
"language": "ja"
}Responses
Status: 201 Created project.
Content-Type: application/json
dataobjectlanguage(required)stringname(required)stringstatus(required)stringuuid(required)stringanalyzed_atstring | null, format:date-timecompleted_atstring | null, format:date-timecreated_atstring | null, format:date-timeduration_secondsinteger | nullheightinteger | nullsource_filenamestring | nulluploaded_atstring | null, format:date-timewidthinteger | null
metaobjectapi_version(required)stringrequest_id(required)stringhas_morebooleannext_cursorstring | null
Example:
{
"data": {
"uuid": "",
"name": "",
"status": "",
"source_filename": null,
"duration_seconds": null,
"width": null,
"height": null,
"language": "",
"uploaded_at": null,
"analyzed_at": null,
"completed_at": null,
"created_at": null
},
"meta": {
"request_id": "",
"api_version": "",
"next_cursor": null,
"has_more": true
}
}GET /v1/projects/{project_uuid}
- Method:
GET - Path:
/v1/projects/{project_uuid} - Tags: Projects
Parameters
project_uuid required
- In:
path
string
Responses
Status: 200 Project.
Content-Type: application/json
dataobjectlanguage(required)stringname(required)stringstatus(required)stringuuid(required)stringanalyzed_atstring | null, format:date-timecompleted_atstring | null, format:date-timecreated_atstring | null, format:date-timeduration_secondsinteger | nullheightinteger | nullsource_filenamestring | nulluploaded_atstring | null, format:date-timewidthinteger | null
metaobjectapi_version(required)stringrequest_id(required)stringhas_morebooleannext_cursorstring | null
Example:
{
"data": {
"uuid": "",
"name": "",
"status": "",
"source_filename": null,
"duration_seconds": null,
"width": null,
"height": null,
"language": "",
"uploaded_at": null,
"analyzed_at": null,
"completed_at": null,
"created_at": null
},
"meta": {
"request_id": "",
"api_version": "",
"next_cursor": null,
"has_more": true
}
}DELETE /v1/projects/{project_uuid}
- Method:
DELETE - Path:
/v1/projects/{project_uuid} - Tags: Projects
Parameters
project_uuid required
- In:
path
string
Idempotency-Key required
- In:
header
string
Responses
Status: 200 Project deleted.
Content-Type: application/json
dataobjectdeletedboolean
metaobjectapi_version(required)stringrequest_id(required)stringhas_morebooleannext_cursorstring | null
Example:
{
"data": {
"deleted": true
},
"meta": {
"request_id": "",
"api_version": "",
"next_cursor": null,
"has_more": true
}
}POST /v1/projects/{project_uuid}/upload-url
- Method:
POST - Path:
/v1/projects/{project_uuid}/upload-url - Tags: Uploads
Parameters
project_uuid required
- In:
path
string
Idempotency-Key required
- In:
header
string
Request Body
Content-Type: application/json
filename(required)stringmime_type(required)stringsize_bytes(required)integer
Example:
{
"filename": "",
"mime_type": "",
"size_bytes": 1
}Responses
Status: 201 Resumable upload session.
Content-Type: application/json
dataobjectchunk_sizeintegerexpires_atstring | null, format:date-timesession_uristringupload_session_uuidstring
metaobjectapi_version(required)stringrequest_id(required)stringhas_morebooleannext_cursorstring | null
Example:
{
"data": {
"upload_session_uuid": "",
"session_uri": "",
"chunk_size": 1,
"expires_at": null
},
"meta": {
"request_id": "",
"api_version": "",
"next_cursor": null,
"has_more": true
}
}POST /v1/projects/{project_uuid}/upload-completed
- Method:
POST - Path:
/v1/projects/{project_uuid}/upload-completed - Tags: Uploads
Parameters
project_uuid required
- In:
path
string
Idempotency-Key required
- In:
header
string
Request Body
Content-Type: application/json
upload_session_uuid(required)string
Example:
{
"upload_session_uuid": ""
}Responses
Status: 202 Analyze job queued.
Content-Type: application/json
dataobjectestimated_creditsintegerjob_uuidstringproject_uuidstringreserved_creditsintegerstatusstring
metaobjectapi_version(required)stringrequest_id(required)stringhas_morebooleannext_cursorstring | null
Example:
{
"data": {
"job_uuid": "",
"project_uuid": "",
"status": "",
"estimated_credits": 1,
"reserved_credits": 1
},
"meta": {
"request_id": "",
"api_version": "",
"next_cursor": null,
"has_more": true
}
}GET /v1/projects/{project_uuid}/scenes
- Method:
GET - Path:
/v1/projects/{project_uuid}/scenes - Tags: Scenes
Parameters
project_uuid required
- In:
path
string
Responses
Status: 200 Scenes.
Content-Type: application/json
dataarrayItems:
end_ms(required)integerscene_index(required)integerstart_ms(required)integersubtitle_text(required)stringis_lockedbooleannarration_textstring | nullnarration_uses_subtitleboolean
metaobjectapi_version(required)stringrequest_id(required)stringhas_morebooleannext_cursorstring | null
Example:
{
"data": [
{
"scene_index": 1,
"start_ms": 1,
"end_ms": 1,
"subtitle_text": "",
"narration_text": null,
"narration_uses_subtitle": true,
"is_locked": true
}
],
"meta": {
"request_id": "",
"api_version": "",
"next_cursor": null,
"has_more": true
}
}PUT /v1/projects/{project_uuid}/scenes
- Method:
PUT - Path:
/v1/projects/{project_uuid}/scenes - Tags: Scenes
Parameters
project_uuid required
- In:
path
string
Idempotency-Key required
- In:
header
string
Request Body
Content-Type: application/json
scenes(required)arrayItems:
end_ms(required)integerscene_index(required)integerstart_ms(required)integersubtitle_text(required)stringis_lockedbooleannarration_textstring | nullnarration_uses_subtitleboolean
Example:
{
"scenes": [
{
"scene_index": 1,
"start_ms": 1,
"end_ms": 1,
"subtitle_text": "",
"narration_text": null,
"narration_uses_subtitle": true,
"is_locked": true
}
]
}Responses
Status: 200 Updated scenes.
Content-Type: application/json
dataarrayItems:
end_ms(required)integerscene_index(required)integerstart_ms(required)integersubtitle_text(required)stringis_lockedbooleannarration_textstring | nullnarration_uses_subtitleboolean
metaobjectapi_version(required)stringrequest_id(required)stringhas_morebooleannext_cursorstring | null
Example:
{
"data": [
{
"scene_index": 1,
"start_ms": 1,
"end_ms": 1,
"subtitle_text": "",
"narration_text": null,
"narration_uses_subtitle": true,
"is_locked": true
}
],
"meta": {
"request_id": "",
"api_version": "",
"next_cursor": null,
"has_more": true
}
}GET /v1/projects/{project_uuid}/render-settings
- Method:
GET - Path:
/v1/projects/{project_uuid}/render-settings - Tags: Render Settings
Parameters
project_uuid required
- In:
path
string
Responses
Status: 200 Render settings.
Content-Type: application/json
dataobjectbgm_volume(required)integerfps(required)integer, possible values:24, 30, 60output_height(required)integeroutput_width(required)integersubtitle_style(required)objectcolor(required)stringfont_size(required)integerposition(required)string, possible values:"top", "middle", "bottom", "custom"background_colorstringbackground_opacitynumberposition_percentintegerstroke_colorstringstroke_widthinteger
tts_volume(required)integervoice_id(required)stringbgm_keystring | nullend_card_settingsobject | nullpronunciation_dictionaryarrayItems:
readingstringsurfacestring
metaobjectapi_version(required)stringrequest_id(required)stringhas_morebooleannext_cursorstring | null
Example:
{
"data": {
"voice_id": "",
"tts_volume": 1,
"bgm_key": null,
"bgm_volume": 1,
"subtitle_style": {
"font_size": 1,
"position": "top",
"position_percent": 0,
"color": "",
"background_color": "",
"background_opacity": 0,
"stroke_color": "",
"stroke_width": 0
},
"end_card_settings": null,
"pronunciation_dictionary": [
{
"surface": "",
"reading": ""
}
],
"output_width": 1,
"output_height": 1,
"fps": 24
},
"meta": {
"request_id": "",
"api_version": "",
"next_cursor": null,
"has_more": true
}
}PUT /v1/projects/{project_uuid}/render-settings
- Method:
PUT - Path:
/v1/projects/{project_uuid}/render-settings - Tags: Render Settings
Parameters
project_uuid required
- In:
path
string
Idempotency-Key required
- In:
header
string
Request Body
Content-Type: application/json
bgm_volume(required)integerfps(required)integer, possible values:24, 30, 60output_height(required)integeroutput_width(required)integersubtitle_style(required)objectcolor(required)stringfont_size(required)integerposition(required)string, possible values:"top", "middle", "bottom", "custom"background_colorstringbackground_opacitynumberposition_percentintegerstroke_colorstringstroke_widthinteger
tts_volume(required)integervoice_id(required)stringbgm_keystring | nullend_card_settingsobject | nullpronunciation_dictionaryarrayItems:
readingstringsurfacestring
Example:
{
"voice_id": "",
"tts_volume": 1,
"bgm_key": null,
"bgm_volume": 1,
"subtitle_style": {
"font_size": 1,
"position": "top",
"position_percent": 0,
"color": "",
"background_color": "",
"background_opacity": 0,
"stroke_color": "",
"stroke_width": 0
},
"end_card_settings": null,
"pronunciation_dictionary": [
{
"surface": "",
"reading": ""
}
],
"output_width": 1,
"output_height": 1,
"fps": 24
}Responses
Status: 200 Updated render settings.
GET /v1/projects/{project_uuid}/render-estimate
- Method:
GET - Path:
/v1/projects/{project_uuid}/render-estimate - Tags: Render Settings
Returns the credit estimate for the project's saved render settings.
Parameters
project_uuid required
- In:
path
string
Responses
Status: 200 Credit estimate.
Status: 404 Render settings have not been saved for this project yet.
GET /v1/projects/{project_uuid}/renders
- Method:
GET - Path:
/v1/projects/{project_uuid}/renders - Tags: Renders
Parameters
project_uuid required
- In:
path
string
Responses
Status: 200 Render jobs.
POST /v1/projects/{project_uuid}/renders
- Method:
POST - Path:
/v1/projects/{project_uuid}/renders - Tags: Renders
Parameters
project_uuid required
- In:
path
string
Idempotency-Key required
- In:
header
string
Responses
Status: 202 Render queued.
Content-Type: application/json
dataobjectestimated_creditsintegerjob_uuidstringproject_uuidstringreserved_creditsintegerstatusstring
metaobjectapi_version(required)stringrequest_id(required)stringhas_morebooleannext_cursorstring | null
Example:
{
"data": {
"job_uuid": "",
"project_uuid": "",
"status": "",
"estimated_credits": 1,
"reserved_credits": 1
},
"meta": {
"request_id": "",
"api_version": "",
"next_cursor": null,
"has_more": true
}
}GET /v1/jobs/{job_uuid}
- Method:
GET - Path:
/v1/jobs/{job_uuid} - Tags: Jobs
Parameters
job_uuid required
- In:
path
string
Responses
Status: 200 Job.
GET /v1/jobs/{job_uuid}/artifacts
- Method:
GET - Path:
/v1/jobs/{job_uuid}/artifacts - Tags: Jobs
Parameters
job_uuid required
- In:
path
string
Responses
Status: 200 Render artifacts.
POST /v1/jobs/{job_uuid}/cancel
- Method:
POST - Path:
/v1/jobs/{job_uuid}/cancel - Tags: Jobs
Parameters
job_uuid required
- In:
path
string
Idempotency-Key required
- In:
header
string
Responses
Status: 200 Canceled job.
GET /v1/credits/balance
- Method:
GET - Path:
/v1/credits/balance - Tags: Credits
Responses
Status: 200 Credit balance.
GET /v1/webhooks
- Method:
GET - Path:
/v1/webhooks - Tags: Webhooks
Responses
Status: 200 Webhooks.
POST /v1/webhooks
- Method:
POST - Path:
/v1/webhooks - Tags: Webhooks
Parameters
Idempotency-Key required
- In:
header
string
Request Body
Content-Type: application/json
events(required)arrayItems:
string, possible values:"render.completed", "render.failed"url(required)string, format:uridescriptionstring | null
Example:
{
"url": "",
"description": null,
"events": [
"render.completed"
]
}Responses
Status: 201 Registered webhook.
DELETE /v1/webhooks/{webhook_uuid}
- Method:
DELETE - Path:
/v1/webhooks/{webhook_uuid} - Tags: Webhooks
Parameters
webhook_uuid required
- In:
path
string
Responses
Status: 200 Disabled webhook.
POST /v1/api-keys
- Method:
POST - Path:
/v1/api-keys - Tags: API Keys
Requires the api_keys:write scope. The scopes of the new key must be a subset of the issuing key's scopes; otherwise the request is rejected with 400 (invalid_request).
Parameters
Idempotency-Key required
- In:
header
string
Responses
Status: 201 Created API key.
Schemas
Meta
- Type:
object
api_version(required)stringrequest_id(required)stringhas_morebooleannext_cursorstring | null
Example:
{
"request_id": "",
"api_version": "",
"next_cursor": null,
"has_more": true
}ErrorEnvelope
- Type:
object
error(required)objectcode(required)stringmessage(required)stringrequest_id(required)stringdetailsobject
Example:
{
"error": {
"code": "",
"message": "",
"details": {},
"request_id": ""
}
}Project
- Type:
object
language(required)stringname(required)stringstatus(required)stringuuid(required)stringanalyzed_atstring | null, format:date-timecompleted_atstring | null, format:date-timecreated_atstring | null, format:date-timeduration_secondsinteger | nullheightinteger | nullsource_filenamestring | nulluploaded_atstring | null, format:date-timewidthinteger | null
Example:
{
"uuid": "",
"name": "",
"status": "",
"source_filename": null,
"duration_seconds": null,
"width": null,
"height": null,
"language": "",
"uploaded_at": null,
"analyzed_at": null,
"completed_at": null,
"created_at": null
}ProjectEnvelope
- Type:
object
dataobjectlanguage(required)stringname(required)stringstatus(required)stringuuid(required)stringanalyzed_atstring | null, format:date-timecompleted_atstring | null, format:date-timecreated_atstring | null, format:date-timeduration_secondsinteger | nullheightinteger | nullsource_filenamestring | nulluploaded_atstring | null, format:date-timewidthinteger | null
metaobjectapi_version(required)stringrequest_id(required)stringhas_morebooleannext_cursorstring | null
Example:
{
"data": {
"uuid": "",
"name": "",
"status": "",
"source_filename": null,
"duration_seconds": null,
"width": null,
"height": null,
"language": "",
"uploaded_at": null,
"analyzed_at": null,
"completed_at": null,
"created_at": null
},
"meta": {
"request_id": "",
"api_version": "",
"next_cursor": null,
"has_more": true
}
}ProjectListEnvelope
- Type:
object
dataarrayItems:
language(required)stringname(required)stringstatus(required)stringuuid(required)stringanalyzed_atstring | null, format:date-timecompleted_atstring | null, format:date-timecreated_atstring | null, format:date-timeduration_secondsinteger | nullheightinteger | nullsource_filenamestring | nulluploaded_atstring | null, format:date-timewidthinteger | null
metaobjectapi_version(required)stringrequest_id(required)stringhas_morebooleannext_cursorstring | null
Example:
{
"data": [
{
"uuid": "",
"name": "",
"status": "",
"source_filename": null,
"duration_seconds": null,
"width": null,
"height": null,
"language": "",
"uploaded_at": null,
"analyzed_at": null,
"completed_at": null,
"created_at": null
}
],
"meta": {
"request_id": "",
"api_version": "",
"next_cursor": null,
"has_more": true
}
}CreateProjectRequest
- Type:
object
language(required)string, possible values:"ja", "en"name(required)stringduration_secondsinteger | nullheightinteger | nullsource_filenamestring | nullwidthinteger | null
Example:
{
"name": "",
"source_filename": null,
"duration_seconds": null,
"width": null,
"height": null,
"language": "ja"
}DeleteEnvelope
- Type:
object
dataobjectdeletedboolean
metaobjectapi_version(required)stringrequest_id(required)stringhas_morebooleannext_cursorstring | null
Example:
{
"data": {
"deleted": true
},
"meta": {
"request_id": "",
"api_version": "",
"next_cursor": null,
"has_more": true
}
}CreateUploadRequest
- Type:
object
filename(required)stringmime_type(required)stringsize_bytes(required)integer
Example:
{
"filename": "",
"mime_type": "",
"size_bytes": 1
}UploadSessionEnvelope
- Type:
object
dataobjectchunk_sizeintegerexpires_atstring | null, format:date-timesession_uristringupload_session_uuidstring
metaobjectapi_version(required)stringrequest_id(required)stringhas_morebooleannext_cursorstring | null
Example:
{
"data": {
"upload_session_uuid": "",
"session_uri": "",
"chunk_size": 1,
"expires_at": null
},
"meta": {
"request_id": "",
"api_version": "",
"next_cursor": null,
"has_more": true
}
}JobQueuedEnvelope
- Type:
object
dataobjectestimated_creditsintegerjob_uuidstringproject_uuidstringreserved_creditsintegerstatusstring
metaobjectapi_version(required)stringrequest_id(required)stringhas_morebooleannext_cursorstring | null
Example:
{
"data": {
"job_uuid": "",
"project_uuid": "",
"status": "",
"estimated_credits": 1,
"reserved_credits": 1
},
"meta": {
"request_id": "",
"api_version": "",
"next_cursor": null,
"has_more": true
}
}SceneInput
- Type:
object
end_ms(required)integerscene_index(required)integerstart_ms(required)integersubtitle_text(required)stringis_lockedbooleannarration_textstring | nullnarration_uses_subtitleboolean
Example:
{
"scene_index": 1,
"start_ms": 1,
"end_ms": 1,
"subtitle_text": "",
"narration_text": null,
"narration_uses_subtitle": true,
"is_locked": true
}SceneListEnvelope
- Type:
object
dataarrayItems:
end_ms(required)integerscene_index(required)integerstart_ms(required)integersubtitle_text(required)stringis_lockedbooleannarration_textstring | nullnarration_uses_subtitleboolean
metaobjectapi_version(required)stringrequest_id(required)stringhas_morebooleannext_cursorstring | null
Example:
{
"data": [
{
"scene_index": 1,
"start_ms": 1,
"end_ms": 1,
"subtitle_text": "",
"narration_text": null,
"narration_uses_subtitle": true,
"is_locked": true
}
],
"meta": {
"request_id": "",
"api_version": "",
"next_cursor": null,
"has_more": true
}
}RenderSettingsInput
- Type:
object
bgm_volume(required)integerfps(required)integer, possible values:24, 30, 60output_height(required)integeroutput_width(required)integersubtitle_style(required)objectcolor(required)stringfont_size(required)integerposition(required)string, possible values:"top", "middle", "bottom", "custom"background_colorstringbackground_opacitynumberposition_percentintegerstroke_colorstringstroke_widthinteger
tts_volume(required)integervoice_id(required)stringbgm_keystring | nullend_card_settingsobject | nullpronunciation_dictionaryarrayItems:
readingstringsurfacestring
Example:
{
"voice_id": "",
"tts_volume": 1,
"bgm_key": null,
"bgm_volume": 1,
"subtitle_style": {
"font_size": 1,
"position": "top",
"position_percent": 0,
"color": "",
"background_color": "",
"background_opacity": 0,
"stroke_color": "",
"stroke_width": 0
},
"end_card_settings": null,
"pronunciation_dictionary": [
{
"surface": "",
"reading": ""
}
],
"output_width": 1,
"output_height": 1,
"fps": 24
}RenderSettingsEnvelope
- Type:
object
dataobjectbgm_volume(required)integerfps(required)integer, possible values:24, 30, 60output_height(required)integeroutput_width(required)integersubtitle_style(required)objectcolor(required)stringfont_size(required)integerposition(required)string, possible values:"top", "middle", "bottom", "custom"background_colorstringbackground_opacitynumberposition_percentintegerstroke_colorstringstroke_widthinteger
tts_volume(required)integervoice_id(required)stringbgm_keystring | nullend_card_settingsobject | nullpronunciation_dictionaryarrayItems:
readingstringsurfacestring
metaobjectapi_version(required)stringrequest_id(required)stringhas_morebooleannext_cursorstring | null
Example:
{
"data": {
"voice_id": "",
"tts_volume": 1,
"bgm_key": null,
"bgm_volume": 1,
"subtitle_style": {
"font_size": 1,
"position": "top",
"position_percent": 0,
"color": "",
"background_color": "",
"background_opacity": 0,
"stroke_color": "",
"stroke_width": 0
},
"end_card_settings": null,
"pronunciation_dictionary": [
{
"surface": "",
"reading": ""
}
],
"output_width": 1,
"output_height": 1,
"fps": 24
},
"meta": {
"request_id": "",
"api_version": "",
"next_cursor": null,
"has_more": true
}
}CreateWebhookRequest
- Type:
object
events(required)arrayItems:
string, possible values:"render.completed", "render.failed"url(required)string, format:uridescriptionstring | null
Example:
{
"url": "",
"description": null,
"events": [
"render.completed"
]
}