Documentation / API Reference / Get Workflow action
Get Workflow action Retrieve one action execution in a retained Workflow run, including its resolved inputs, status, and result.
GET
/workflows/{workflowId} /runs/{runId} /actions/{actionRunId}
Authorization Authorization
header
string
required
Enter the project access token with the Bearer prefix, e.g. "Bearer project_access_token"
Path Parameters actionRunId
string
required
ID of the Asset action run.
Responses 200 400 401 403 404 409 429 503
application/json The requested Asset action run.
Show data properties
ID of the Asset processed by this action.
completed_at
object
date-time
required
When the action completed, failed, was skipped, or was cancelled. Null while work remains.
created_at
string
date-time
required
When the action was accepted.
Unique action execution ID, prefixed with acr_.
Resolved parameters and input references for this execution.
Show input properties
LanguageCode specifies the target language for the translated subtitle track, such as en or fr. The same code appears in the caption and HLS manifest.
Available options:
enfresdeitptnljakozharhirutrplsv
Resolution specifies the H.264 MP4 output resolution. highest selects the largest supported output without upscaling.
Hobby supports up to 1080p; other plans support up to 2160p. Streaming resolution limits do not apply.
Available options:
highest240p360p480p540p720p1080p1440p2160p
ID of the original caption to translate. Included only for translation actions.
Thumbnail settings. Included only for create_thumbnails actions.
Option 1 Option 2
Show Option 1 properties
timestamps
number[]
required
Timestamps specifies 1 to 100 Source-relative target times in seconds. Times outside the selected range are skipped when the action runs. If none remain, the action is skipped without a charge. Repeated targets produce separate outputs.
Count specifies 1 to 100 thumbnails at the middle of equal sections of the selected range.
Required range: 1 <= x <= 100
format
default: "jpeg"
string
Format specifies the image encoding.
Available options:
jpegwebp
Metadata attaches string values to this request. The serialized object may contain at most 2048 bytes.
output
default: "images"
string
Output specifies individual images or automatically arranged sprite sheets.
Available options:
imagessprites
Range limits sampling to part of the Source. Defaults to the whole Source duration.
Show range properties
End specifies the exclusive upper bound in seconds. Defaults to the Source duration.
Start specifies the inclusive lower bound in seconds. Defaults to zero.
Required range: x >= 0
Size specifies the maximum image or tile edge in pixels, from 64 to 1920. Defaults to 320. Odd sizes are supported. Preserves display aspect ratio without cropping or upscaling.
Required range: 64 <= x <= 1920
Show Option 2 properties
Count specifies 1 to 100 thumbnails at the middle of equal sections of the selected range.
Required range: 1 <= x <= 100
format
default: "jpeg"
string
Format specifies the image encoding.
Available options:
jpegwebp
Metadata attaches string values to this request. The serialized object may contain at most 2048 bytes.
output
default: "images"
string
Output specifies individual images or automatically arranged sprite sheets.
Available options:
imagessprites
Range limits sampling to part of the Source. Defaults to the whole Source duration.
Show range properties
End specifies the exclusive upper bound in seconds. Defaults to the Source duration.
Start specifies the inclusive lower bound in seconds. Defaults to zero.
Required range: x >= 0
Size specifies the maximum image or tile edge in pixels, from 64 to 1920. Defaults to 320. Odd sizes are supported. Preserves display aspect ratio without cropping or upscaling.
Required range: 64 <= x <= 1920
Timestamps specifies 1 to 100 Source-relative target times in seconds. Times outside the selected range are skipped when the action runs. If none remain, the action is skipped without a charge. Repeated targets produce separate outputs.
TranscriptId specifies the original transcript consumed by caption publication. Omitted for actions without a transcript input.
Current action status. pending means accepted; running means executing; waiting means awaiting Asset readiness or an output. completed, failed, skipped, and cancelled are terminal states.
Available options:
pendingrunningwaitingcompletedfailedskippedcancelled
The action performed: create a static rendition, generate an original transcript or captions, translate a caption, or generate thumbnails.
Available options:
create_static_renditioncreate_captioncreate_transcripttranslate_captioncreate_thumbnails
updated_at
string
date-time
required
When the action was last updated.
workflow_run_id
object
required
ID of the Workflow run that started the action. Null for direct output requests.
Action key within the rule. Omitted for direct output requests.
Reason the action failed. Omitted when no failure message is available.
Machine-readable reason for waiting, skipping, failure, or cancellation. Omitted when no reason applies.
Output reference and reuse flag. Included when the action completes successfully.
Show result properties
ID of the caption, static rendition, or thumbnail request produced by the action.
output_type
string
required
Type of output referenced by output_id. Caption generation and translation both produce caption outputs.
Available options:
captionstatic_renditionthumbnailtranscript
Whether the action reused an existing output instead of creating one.
Rule key from the Workflow definition. Omitted for direct output requests.
status
"success"
string
required
Status of the API request. Always success for this response.
Get Workflow action
application/json Show error properties
Code is the HTTP status code
Message is a human-readable error description
Examples:
Invalid request parameters
type
"ValidationError"
string
required
Type indicates the error category
Available options:
ValidationError
status
"error"
string
required
Status indicates the response status "error"
Validation error
application/json Error response details
Show error properties
Code is the HTTP status code
Message is a human-readable error description
Examples:
Authentication error: invalid token or subscription inactive
type
"AuthenticationError"
string
required
Type indicates the error category
Available options:
AuthenticationError
status
"error"
string
required
Status indicates the response status "error"
Authentication error
application/json Error response details
Show error properties
Code is the HTTP status code
Message is a human-readable error description
Examples:
Unauthorized to perform this action
type
"ForbiddenError"
string
required
Type indicates the error category
Available options:
ForbiddenError
status
"error"
string
required
Status indicates the response status "error"
Forbidden error
application/json Error response details
Show error properties
Code is the HTTP status code
Message is a human-readable error description
Examples:
Ressource not found
type
"NotFoundError"
string
required
Type indicates the error category
Available options:
NotFoundError
status
"error"
string
required
Status indicates the response status "error"
NotFound error
application/json Error response details
Show error properties
Code is the HTTP status code
Message is a human-readable error description
Examples:
source_unavailable: the original video is no longer accessible
type
"ConflictError"
string
required
Type indicates the error category
Available options:
ConflictError
status
"error"
string
required
Status indicates the response status "error"
Conflict error
application/json Error response details
Show error properties
Code is the HTTP status code
Message is a human-readable error description
Examples:
Rate limit exceeded
type
"TooManyRequestsError"
string
required
Type indicates the error category
Available options:
TooManyRequestsError
status
"error"
string
required
Status indicates the response status "error"
TooManyRequests error
application/json Error response details
Show error properties
Code is the HTTP status code
Message is a human-readable error description
Examples:
The service is temporarily unavailable; retry the request
type
"ServiceUnavailableError"
string
required
Type indicates the error category
Available options:
ServiceUnavailableError
status
"error"
string
required
Status indicates the response status "error"
ServiceUnavailable error
# Get Workflow action
> Retrieve one action execution in a retained Workflow run, including its resolved inputs, status, and result.
```json
{
"path": "/workflows/{workflowId}/runs/{runId}/actions/{actionRunId}",
"method": "get",
"schema": {
"description": "Retrieve one action execution in a retained Workflow run, including its resolved inputs, status, and result.",
"operationId": "getAssetActionRun",
"parameters": [
{
"description": "ID of the Workflow.",
"in": "path",
"name": "workflowId",
"required": true,
"schema": {
"type": "string"
}
},
{
"description": "ID of the Workflow run.",
"in": "path",
"name": "runId",
"required": true,
"schema": {
"type": "string"
}
},
{
"description": "ID of the Asset action run.",
"in": "path",
"name": "actionRunId",
"required": true,
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/AssetActionRunResponse",
"examples": [
{
"data": {
"action_id": "caption",
"asset_id": "ast_example",
"completed_at": null,
"created_at": "2026-10-02T10:00:00Z",
"id": "acr_example",
"input": {},
"reason": "output_ready",
"rule_id": "asset_ready",
"status": "waiting",
"type": "create_caption",
"updated_at": "2026-10-02T10:00:00Z",
"workflow_run_id": "wfr_example"
},
"status": "success"
}
]
}
}
},
"description": "Get Workflow action"
},
"400": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ResponseErrorValidation"
}
}
},
"description": "Validation error"
},
"401": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ResponseErrorAuthentication"
}
}
},
"description": "Authentication error"
},
"403": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ResponseErrorForbidden"
}
}
},
"description": "Forbidden error"
},
"404": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ResponseErrorNotFound"
}
}
},
"description": "NotFound error"
},
"409": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ResponseErrorConflict"
}
}
},
"description": "Conflict error"
},
"429": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ResponseErrorTooManyRequests"
}
}
},
"description": "TooManyRequests error"
},
"503": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ResponseErrorServiceUnavailable"
}
}
},
"description": "ServiceUnavailable error"
}
},
"security": [
{
"ProjectAccessToken": []
}
],
"summary": "Get Workflow action",
"tags": [
"Workflows"
],
"x-codeSamples": [
{
"lang": "typescript",
"source": "import Chunkify from '@chunkify/chunkify';\n\nconst client = new Chunkify({\n projectAccessToken: 'My Project Access Token',\n});\n\nconst result = await client.workflows.runs.actions.retrieve(\n 'acr_example',\n {\n workflowId: 'wfl_example',\n runId: 'wfr_example',\n },\n);\n\nconsole.log(result);"
},
{
"lang": "python",
"source": "from chunkify import Chunkify\n\nclient = Chunkify(\n project_access_token=\"My Project Access Token\",\n)\n\nresult = client.workflows.runs.actions.retrieve(\n \"acr_example\",\n workflow_id=\"wfl_example\",\n run_id=\"wfr_example\",\n)\n\nprint(result)"
},
{
"lang": "php",
"source": "\u003c?php\n\nuse Chunkify\\Client;\n\n$client = new Client(\n projectAccessToken: 'My Project Access Token',\n);\n\n$result = $client-\u003eworkflows-\u003eruns-\u003eactions-\u003eretrieve(\n 'acr_example',\n workflowID: 'wfl_example',\n runID: 'wfr_example',\n);\n\nvar_dump($result);"
},
{
"lang": "golang",
"source": "package main\n\nimport (\n\t\"context\"\n\t\"fmt\"\n\n\t\"github.com/chunkifydev/chunkify-go\"\n\t\"github.com/chunkifydev/chunkify-go/option\"\n)\n\nfunc main() {\n\tclient := chunkify.NewClient(\n\t\toption.WithProjectAccessToken(\"My Project Access Token\"),\n\t)\n\n\tresult, err := client.Workflows.Runs.Actions.Get(\n\t\tcontext.TODO(),\n\t\t\"acr_example\",\n\t\tchunkify.WorkflowRunActionGetParams{\n\t\t\tWorkflowID: \"wfl_example\",\n\t\t\tRunID: \"wfr_example\",\n\t\t},\n\t)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\tfmt.Printf(\"%+v\\n\", result)\n}\n"
}
]
}
}
```
```json #/components/schemas/ResponseErrorAuthentication
{
"description": "Error response",
"properties": {
"error": {
"description": "Error response details",
"properties": {
"code": {
"const": 401,
"description": "Code is the HTTP status code",
"examples": [
401
],
"type": "integer"
},
"message": {
"description": "Message is a human-readable error description",
"examples": [
"Authentication error: invalid token or subscription inactive"
],
"type": "string"
},
"type": {
"const": "AuthenticationError",
"description": "Type indicates the error category",
"enum": [
"AuthenticationError"
],
"type": "string"
}
},
"required": [
"type",
"code",
"message"
],
"type": "object"
},
"status": {
"const": "error",
"description": "Status indicates the response status \"error\"",
"type": "string"
}
},
"required": [
"status",
"error"
],
"type": "object"
}
```
```json #/components/schemas/ResponseErrorForbidden
{
"properties": {
"error": {
"description": "Error response details",
"properties": {
"code": {
"const": 403,
"description": "Code is the HTTP status code",
"examples": [
403
],
"type": "integer"
},
"message": {
"description": "Message is a human-readable error description",
"examples": [
"Unauthorized to perform this action"
],
"type": "string"
},
"type": {
"const": "ForbiddenError",
"description": "Type indicates the error category",
"enum": [
"ForbiddenError"
],
"type": "string"
}
},
"required": [
"type",
"code",
"message"
],
"type": "object"
},
"status": {
"const": "error",
"description": "Status indicates the response status \"error\"",
"type": "string"
}
},
"required": [
"status",
"error"
]
}
```
```json #/components/schemas/ResponseErrorNotFound
{
"description": "Error response",
"properties": {
"error": {
"description": "Error response details",
"properties": {
"code": {
"const": 404,
"description": "Code is the HTTP status code",
"examples": [
404
],
"type": "integer"
},
"message": {
"description": "Message is a human-readable error description",
"examples": [
"Ressource not found"
],
"type": "string"
},
"type": {
"const": "NotFoundError",
"description": "Type indicates the error category",
"enum": [
"NotFoundError"
],
"type": "string"
}
},
"required": [
"type",
"code",
"message"
],
"type": "object"
},
"status": {
"const": "error",
"description": "Status indicates the response status \"error\"",
"type": "string"
}
},
"required": [
"status",
"error"
],
"type": "object"
}
```
```json #/components/schemas/ResponseErrorConflict
{
"description": "Error response",
"properties": {
"error": {
"description": "Error response details",
"properties": {
"code": {
"const": 409,
"description": "Code is the HTTP status code",
"examples": [
409
],
"type": "integer"
},
"message": {
"description": "Message is a human-readable error description",
"examples": [
"source_unavailable: the original video is no longer accessible"
],
"type": "string"
},
"type": {
"const": "ConflictError",
"description": "Type indicates the error category",
"enum": [
"ConflictError"
],
"type": "string"
}
},
"required": [
"type",
"code",
"message"
],
"type": "object"
},
"status": {
"const": "error",
"description": "Status indicates the response status \"error\"",
"type": "string"
}
},
"required": [
"status",
"error"
],
"type": "object"
}
```
```json #/components/schemas/ResponseErrorTooManyRequests
{
"description": "Error response",
"properties": {
"error": {
"description": "Error response details",
"properties": {
"code": {
"const": 429,
"description": "Code is the HTTP status code",
"examples": [
429
],
"type": "integer"
},
"message": {
"description": "Message is a human-readable error description",
"examples": [
"Rate limit exceeded"
],
"type": "string"
},
"type": {
"const": "TooManyRequestsError",
"description": "Type indicates the error category",
"enum": [
"TooManyRequestsError"
],
"type": "string"
}
},
"required": [
"type",
"code",
"message"
],
"type": "object"
},
"status": {
"const": "error",
"description": "Status indicates the response status \"error\"",
"type": "string"
}
},
"required": [
"status",
"error"
],
"type": "object"
}
```
```json #/components/schemas/ResponseErrorServiceUnavailable
{
"properties": {
"error": {
"description": "Error response details",
"properties": {
"code": {
"const": 503,
"description": "Code is the HTTP status code",
"examples": [
503
],
"type": "integer"
},
"message": {
"description": "Message is a human-readable error description",
"examples": [
"The service is temporarily unavailable; retry the request"
],
"type": "string"
},
"type": {
"const": "ServiceUnavailableError",
"description": "Type indicates the error category",
"enum": [
"ServiceUnavailableError"
],
"type": "string"
}
},
"required": [
"type",
"code",
"message"
],
"type": "object"
},
"status": {
"const": "error",
"description": "Status indicates the response status \"error\"",
"type": "string"
}
},
"required": [
"status",
"error"
]
}
```
```json #/components/schemas/AssetActionRunResponse
{
"description": "Response containing one Asset action run.",
"properties": {
"data": {
"$ref": "#/components/schemas/AssetActionRun",
"description": "The requested Asset action run."
},
"status": {
"const": "success",
"description": "Status of the API request. Always success for this response.",
"type": "string"
}
},
"required": [
"status",
"data"
],
"type": "object"
}
```
```json #/components/schemas/AssetActionRun
{
"description": "One execution of an Asset action, started by a Workflow or a direct output request.",
"properties": {
"action_id": {
"description": "Action key within the rule. Omitted for direct output requests.",
"type": "string"
},
"asset_id": {
"description": "ID of the Asset processed by this action.",
"type": "string"
},
"completed_at": {
"description": "When the action completed, failed, was skipped, or was cancelled. Null while work remains.",
"format": "date-time",
"type": [
"string",
"null"
]
},
"created_at": {
"description": "When the action was accepted.",
"format": "date-time",
"type": "string"
},
"error": {
"description": "Reason the action failed. Omitted when no failure message is available.",
"type": "string"
},
"id": {
"description": "Unique action execution ID, prefixed with acr_.",
"type": "string"
},
"input": {
"$ref": "#/components/schemas/AssetActionInput",
"description": "Resolved parameters and input references for this execution."
},
"reason": {
"description": "Machine-readable reason for waiting, skipping, failure, or cancellation. Omitted when no reason applies.",
"type": "string"
},
"result": {
"$ref": "#/components/schemas/AssetActionResult",
"description": "Output reference and reuse flag. Included when the action completes successfully."
},
"rule_id": {
"description": "Rule key from the Workflow definition. Omitted for direct output requests.",
"type": "string"
},
"status": {
"$ref": "#/components/schemas/AssetActionStatus",
"description": "Current execution status of the action."
},
"type": {
"$ref": "#/components/schemas/AssetActionType",
"description": "Type of action performed."
},
"updated_at": {
"description": "When the action was last updated.",
"format": "date-time",
"type": "string"
},
"workflow_run_id": {
"description": "ID of the Workflow run that started the action. Null for direct output requests.",
"type": [
"string",
"null"
]
}
},
"required": [
"id",
"asset_id",
"workflow_run_id",
"type",
"status",
"input",
"created_at",
"updated_at",
"completed_at"
],
"type": "object"
}
```
```json #/components/schemas/AssetActionStatus
{
"description": "Current action status. pending means accepted; running means executing; waiting means awaiting Asset readiness or an output. completed, failed, skipped, and cancelled are terminal states.",
"enum": [
"pending",
"running",
"waiting",
"completed",
"failed",
"skipped",
"cancelled"
],
"type": "string"
}
```
```json #/components/schemas/AssetActionType
{
"description": "The action performed: create a static rendition, generate an original transcript or captions, translate a caption, or generate thumbnails.",
"enum": [
"create_static_rendition",
"create_caption",
"create_transcript",
"translate_caption",
"create_thumbnails"
],
"type": "string"
}
```
```json #/components/schemas/AssetActionInput
{
"description": "Resolved action inputs. Only fields relevant to the action type are included.",
"properties": {
"language_code": {
"description": "LanguageCode specifies the target language for the translated subtitle track, such as en or fr. The same code appears in the caption and HLS manifest.",
"enum": [
"en",
"fr",
"es",
"de",
"it",
"pt",
"nl",
"ja",
"ko",
"zh",
"ar",
"hi",
"ru",
"tr",
"pl",
"sv"
],
"type": "string"
},
"resolution": {
"description": "Resolution specifies the H.264 MP4 output resolution. highest selects the largest supported output without upscaling.\nHobby supports up to 1080p; other plans support up to 2160p. Streaming resolution limits do not apply.",
"enum": [
"highest",
"240p",
"360p",
"480p",
"540p",
"720p",
"1080p",
"1440p",
"2160p"
],
"type": "string"
},
"source_caption_id": {
"description": "ID of the original caption to translate. Included only for translation actions.",
"type": "string"
},
"thumbnails": {
"$ref": "#/components/schemas/WorkflowThumbnailParams",
"description": "Thumbnail settings. Included only for create_thumbnails actions."
},
"transcript_id": {
"description": "TranscriptId specifies the original transcript consumed by caption publication. Omitted for actions without a transcript input.",
"type": "string"
}
},
"type": "object"
}
```
```json #/components/schemas/WorkflowThumbnailParams
{
"additionalProperties": false,
"description": "Generate additional thumbnails in the Asset folder and Storage. Each layout, format and size combination can be requested once. Specify exactly one of timestamps or count.",
"oneOf": [
{
"required": [
"timestamps"
]
},
{
"required": [
"count"
]
}
],
"properties": {
"count": {
"description": "Count specifies 1 to 100 thumbnails at the middle of equal sections of the selected range.",
"maximum": 100,
"minimum": 1,
"type": "integer"
},
"format": {
"$ref": "#/components/schemas/ThumbnailFormat",
"default": "jpeg",
"description": "Format selects JPEG or WebP. Defaults to JPEG."
},
"metadata": {
"additionalProperties": {
"type": "string"
},
"description": "Metadata attaches string values to this request. The serialized object may contain at most 2048 bytes.",
"type": "object",
"x-maxJSONBytes": 2048
},
"output": {
"$ref": "#/components/schemas/ThumbnailOutput",
"default": "images",
"description": "Output selects images or sprites. Defaults to images."
},
"range": {
"$ref": "#/components/schemas/ThumbnailRangeParams",
"description": "Range limits sampling to part of the Source. Defaults to the whole Source duration."
},
"size": {
"default": 320,
"description": "Size specifies the maximum image or tile edge in pixels, from 64 to 1920. Defaults to 320. Odd sizes are supported. Preserves display aspect ratio without cropping or upscaling.",
"maximum": 1920,
"minimum": 64,
"type": "integer"
},
"timestamps": {
"description": "Timestamps specifies 1 to 100 Source-relative target times in seconds. Times outside the selected range are skipped when the action runs. If none remain, the action is skipped without a charge. Repeated targets produce separate outputs.",
"items": {
"description": "A target time in seconds.",
"minimum": 0,
"type": "number"
},
"maxItems": 100,
"minItems": 1,
"type": "array"
}
},
"type": "object",
"x-reject-null-fields": [
"timestamps",
"count",
"range",
"output",
"format",
"size",
"metadata"
],
"x-reject-unknown-fields": true
}
```
```json #/components/schemas/ThumbnailFormat
{
"description": "Format specifies the image encoding.",
"enum": [
"jpeg",
"webp"
],
"type": "string"
}
```
```json #/components/schemas/ThumbnailOutput
{
"description": "Output specifies individual images or automatically arranged sprite sheets.",
"enum": [
"images",
"sprites"
],
"type": "string"
}
```
```json #/components/schemas/ThumbnailRangeParams
{
"additionalProperties": false,
"description": "Optional Source-relative sampling boundaries.",
"properties": {
"end": {
"description": "End specifies the exclusive upper bound in seconds. Defaults to the Source duration.",
"exclusiveMinimum": 0,
"type": "number"
},
"start": {
"description": "Start specifies the inclusive lower bound in seconds. Defaults to zero.",
"minimum": 0,
"type": "number"
}
},
"type": "object",
"x-reject-null-fields": [
"start",
"end"
],
"x-reject-unknown-fields": true
}
```
```json #/components/schemas/AssetActionResult
{
"description": "Reference to the output created or reused by a completed action.",
"properties": {
"output_id": {
"description": "ID of the caption, static rendition, or thumbnail request produced by the action.",
"type": "string"
},
"output_type": {
"description": "Type of output referenced by output_id. Caption generation and translation both produce caption outputs.",
"enum": [
"caption",
"static_rendition",
"thumbnail",
"transcript"
],
"type": "string"
},
"reused": {
"description": "Whether the action reused an existing output instead of creating one.",
"type": "boolean"
}
},
"required": [
"output_id",
"output_type",
"reused"
],
"type": "object"
}
```
```json #/components/schemas/ResponseErrorValidation
{
"properties": {
"error": {
"properties": {
"code": {
"const": 400,
"description": "Code is the HTTP status code",
"examples": [
400
],
"type": "integer"
},
"message": {
"description": "Message is a human-readable error description",
"examples": [
"Invalid request parameters"
],
"type": "string"
},
"type": {
"const": "ValidationError",
"description": "Type indicates the error category",
"enum": [
"ValidationError"
],
"type": "string"
}
},
"required": [
"type",
"code",
"message"
],
"type": "object"
},
"status": {
"const": "error",
"description": "Status indicates the response status \"error\"",
"type": "string"
}
},
"required": [
"status",
"error"
]
}
```