# Jobs
| Type | Resource | Description |
|---|---|---|
| GET | /api/recipes/:recipe_id/jobs | List jobs from a recipe. |
| GET | /api/recipes/:recipe_id/jobs/:job_handle | Returns a single job's metadata. |
| POST | /api/job/resume | Resumes a particular job based on the resume_token you provide. This endpoint returns HTTP status code 204, indicating successful request processing without any content included in the response. This endpoint is leveraged by SDK Wait for resume actions. |
| POST | /api/recipes/:recipe_id/repeat_jobs | Repeats jobs you specify. |
# Rate limits
Job resources have the following rate limits:
| Type | Resource | Limit |
|---|---|---|
| POST | Repeat jobs: /api/recipes/:recipe_id/repeat_jobs | 1 request per second |
| All | All other Jobs endpoints | 60 requests per minute |
Additionally, Repeat jobs has the following payload limit:
| Type | Resource | Limit |
|---|---|---|
| POST | Repeat jobs: /api/recipes/:recipe_id/repeat_jobs | 25 jobs per request |
# List jobs from a recipe
Returns aggregated job information as well as detailed job information for a specified recipe in Workato.
GET /api/recipes/:recipe_id/jobs
Run-time data not available
Run-time data is the data that flows through the recipe at the time of job execution. This includes the input and output data from individual steps.
This data is available through the Workato platform on the job details page.
# Path parameters
| Name | Type | Description |
|---|---|---|
| recipe_id | integer required | Recipe ID. |
# Query parameters
| Name | Type | Description |
|---|---|---|
| offset_job_id | string optional | Offset job ID. |
| prev | boolean optional | Defaults to false. When prev=false, this call returns jobs completed prior to the offset_job_id. If prev=true, jobs newer than the offset_job_id are returned. |
| status | string optional | Filter by status - succeeded, failed or pending. |
| rerun_only | boolean optional | If true, returns jobs that were rerun only. |
| offset_run_id | integer (deprecated) | Offset run ID. This parameter has been deprecated. |
| failed | boolean (deprecated) | If true, returns failed jobs only. This parameter has been deprecated. |
# Sample request
curl -X GET 'https://www.workato.com/api/recipes/28904/jobs' \
-H 'Authorization: Bearer <api_token>'
# Response
{
"job_succeeded_count": 1,
"job_failed_count": 1,
"job_count": 1,
"job_scope_count": 1,
"items": [
{
"id": "j-KGAKfhsz-GYoLe",
"completed_at": "2015-01-02T01:02:03.000Z",
"started_at": "2015-01-02T01:02:03.000Z",
"title": "Callable recipes by Workato: new call for recipe: Calling IP address=129.1.1.1, Access profile ID=123456, and Access profile name=recipe_test",
"is_poll_error": false,
"error": null,
"is_error": false,
"status": "succeeded",
"calling_recipe_id": null,
"calling_job_id": null,
"recipe_id": 28904,
"root_recipe_id": null,
"root_job_id": null,
"master_job_id": "j-UIL3NQ8L-ekbIaw-B1"
},
{
"id": "j-AD9bJn99-hsCXcs",
"completed_at": "2015-01-02T01:02:03.000Z",
"started_at": "2015-01-02T01:02:03.000Z",
"title": "Callable recipes by Workato: new call for recipe: Calling IP address=129.1.1.1, Access profile ID=123456, and Access profile name=recipe_test",
"is_poll_error": false,
"error": "Callable recipes by Workato: new call for recipe: Calling IP address=129.1.1.1, Access profile ID=123456, and Access profile name=recipe_test",
"error_parts": {
"adapter": "marketo",
"error_type": "Missing required field",
"message": "'Filter values' must be present",
"error_id": "603260f5-a309-45b3-a20e-111d90a28917",
"error_at": "2020-01-22T01:17:18.021-08:00",
"input": "<redacted>",
"inner_message": null
},
"is_error": true,
"status": "failed",
"calling_recipe_id": null,
"calling_job_id": null,
"recipe_id": 28904,
"root_recipe_id": null,
"root_job_id": null,
"master_job_id": "j-USN6YQ8L-ekbNmw-B6"
}
]
}
# Get a job
Returns a single job's metadata by its job ID.
GET /api/recipes/:recipe_id/jobs/:job_id
Run-time data not available
Run-time data is the data that flows through the recipe at the time of job execution. This includes the input and output data from individual steps.
This data is available through the Workato platform on the job details page.
# Path parameters
| Name | Type | Description |
|---|---|---|
| recipe_id | integer required | Recipe ID. |
| job_id | string required | The job's unique identifier. You can retrieve a Job ID using the List jobs from a recipe endpoint or the Jobs page in Workato. |
# Sample request
curl -X GET 'https://www.workato.com/api/recipes/32723612/jobs/j-AJTAt8w6-wdAgWM' \
-H 'Authorization: Bearer <api_token>'
# Response
{
"id": "j-AJTAt8w6-wdAgWM",
"handle": "j-AJTAt8w6-wdAgWM",
"recipe_id": 32723676,
"completed_at": "2023-09-08T13:55:24.731-07:00",
"started_at": "2023-09-08T13:55:24.606-07:00",
"title": "Scheduler by Workato: new recurring event: Scheduled time=2023-09-08T13:55:24.177301-07:00, Scheduled day=Friday, and Scheduled week=36",
"is_poll_error": false,
"lines": [
{
"recipe_line_number": 0,
"adapter_name": "clock",
"adapter_operation": "scheduled_event",
"input": {
"time_unit": "minutes",
"trigger_every": "5"
},
"output": {
"scheduled_time": "2023-09-08T13:55:24.177301-07:00",
"scheduled_day": "Friday",
"scheduled_week": 36,
"scheduled_month": "September",
"last_job_time": "2023-09-08T12:05:31.000000-07:00"
},
"mask_data": false,
"line_stat": {
"total": 0.0034586129913805053,
"details": [
{
"name": "map_input",
"count": 1,
"average": 0.0032869009883143008,
"total": 0.0032869009883143008,
"min": 0.0032869009883143008,
"max": 0.0032869009883143008
},
{
"name": "summarize_output_report",
"count": 1,
"average": 0.000025447006919421256,
"total": 0.000025447006919421256,
"min": 0.000025447006919421256,
"max": 0.000025447006919421256
},
{
"name": "event_title",
"count": 1,
"average": 0.00013735999527852982,
"total": 0.00013735999527852982,
"min": 0.00013735999527852982,
"max": 0.00013735999527852982
},
{
"name": "summarize_input_report",
"count": 1,
"average": 0.00000890500086825341,
"total": 0.00000890500086825341,
"min": 0.00000890500086825341,
"max": 0.00000890500086825341
}
]
}
}
],
"error": null,
"is_error": false,
"is_repeat": false,
"is_test": false,
"is_test_case_job": false,
"master_job_id": "j-AJTAt8w6-wdAgWM",
"master_job_handle": "j-AJTAt8w6-wdAgWM",
"status": "succeeded",
"calling_recipe_id": null,
"calling_job_id": null,
"calling_job_handle": null,
"root_recipe_id": null,
"root_job_id": null
}
# Resume a job
Resumes a particular job based on the resume_token you provide. This endpoint returns HTTP status code 204, indicating successful request processing without any content included in the response.
This endpoint is invoked by third-party apps when using SDK Wait for resume actions.
POST /api/job/resume
# Request body
| Name | Type | Description |
|---|---|---|
| token | string required | The resume_token that matches the particular job you plan to resume. |
| data | hash optional | Any contextual data you plan to pass back to the job. This data is accessible by the action in the before_resume lambda. The payload's limit is 50MB. For payloads larger than the limit, you can send a reference and allow the action’s execute lambda to make a secondary request to retrieve the data. |
# Sample request
curl -X POST http://www.workato.com/api/job/resume \
-H "Authorization: Bearer <api_token>" \
-H "Content-Type: application/json" \
-d '{
"token": "<resume_token>",
"data": {...}
}'
# Repeat jobs
Repeats jobs you specify by their master job ID. Repeats use the latest recipe version.
POST /api/recipes/:recipe_id/repeat_jobs
LIMITATIONS
The Repeat jobs endpoint has the following limitations:
- You can only repeat jobs that are within the retention period. You can't repeat jobs in recipes that don't retain trigger event data. Refer to Data retention policies for more information.
- You can repeat a maximum of 25 jobs in each request.
- You can repeat each job a maximum of 100 times.
- You can only repeat jobs using the master job ID, not the ID of a previous repeat.
# Path parameters
| Name | Type | Description |
|---|---|---|
| recipe_id | string required | The ID of the recipe to repeat jobs in. |
# Request body
| Name | Type | Description |
|---|---|---|
| job_ids | array required | Contains the IDs of master jobs to repeat. You can retrieve a master_job_id using the List jobs from a recipe endpoint or the Jobs page in Workato. |
# Sample request
curl -X POST 'https://www.workato.com/api/recipes/51325710/repeat_jobs' \
-H "Authorization: Bearer <api_token>" \
-H "Content-Type: application/json" \
-d '{
"job_ids": [
"j-AJTAt8w6-wdAgWM",
"j-BK9nR5ft-xeAEXN",
"j-AY4oD6g8-hdINaS",
"j-AOidEfa9-4MdaTF"
]
}'
# Response
200 OK
A 200 OK status indicates the request was processed successfully. Check the results array for the status of each job and the summary for totals.
{
"results": [
{
"requested_job_id": "j-AJTAt8w6-wdAgWM",
"status": "enqueued",
"job": {
"id": "j-DN1pT7hv-zgFLZP"
}
},
{
"requested_job_id": "j-BK9nR5ft-xeAEXN",
"status": "failed",
"error": {
"type_id": "err.item.not_found",
"message": "Job not found"
}
},
{
"requested_job_id": "j-AY4oD6g8-hdINaS",
"status": "failed",
"error": {
"type_id": "err.job.repeat.invalid_id",
"message": "Non-master job handle specified: j-AY4oD6g8-hdINaS"
}
},
{
"requested_job_id": "j-AOidEfa9-4MdaTF",
"status": "failed",
"error": {
"type_id": "err.job.repeat.trigger_data_unavailable.expired",
"message": "Can not repeat job j-AOidEfa9-4MdaTF. It has been erased due to retention policy."
}
}
],
"summary": {
"total_requested": 4,
"total_enqueued": 1,
"total_failed": 3
}
}
400 Bad Request
You may receive a 400 Bad Request error for several reasons. For example, the request contains more than 25 jobs, an empty job_ids array, duplicate job_ids, or a malformed array. Refer to the 400 Bad Request troubleshooting guide for more information.
{ "message": "Maximum 25 jobs can be repeated in a single request. Received 75." }
{ "message": "param is missing or the value is empty or invalid: job_ids" }
Last updated: 2/26/2026, 3:56:21 PM