jobs_wait
ManagementWait For Jobs
Wait for Scenario jobs to finish — blocks server-side until every job completes or the server wait budget (~180s) expires, streaming progress notifications throughout. Use after model_run / asset_analyze / workflow_run returns status='in_progress', or after launching a batch with wait=false.
Args:
- job_ids: required — 1-32 job ids to wait on
- team_id, project_id: required for OAuth callers
Returns: status='completed' with one compact row per job (jobId, status, progress, assetIds, cuCost, error/hint when set), or status='in_progress' with rows so far plus pending_job_ids — call jobs_wait again with job_ids set to those pending_job_ids to continue waiting. Timeout is never an error.
Example: "Wait for my 3 generations" -> job_ids=["job_a","job_b","job_c"]
Don't use when: you only want the current status right now — use job_get.
read-onlyidempotentopen-world
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| job_ids | array | ✓ | Job IDs to wait on (1-32). |
| team_id | string | — | Team ID. Required if user belongs to multiple teams. |
| project_id | string | — | Project ID to scope the operation to. |
| response_format | enum(json | markdown) | json | Output format: 'json' for structured data, 'markdown' for human-readable text. |
Example Request
JSON
{
"job_ids": [
"job_gen_123",
"job_gen_124"
],
"team_id": "team_abc123",
"project_id": "proj_xyz789"
}Example Response
JSON
{
"status": "completed",
"jobs": [
{
"jobId": "job_gen_123",
"status": "success",
"progress": 1,
"assetIds": [
"asset_img001"
]
},
{
"jobId": "job_gen_124",
"status": "success",
"progress": 1,
"assetIds": [
"asset_img002"
]
}
]
}Common Use Cases
- Block until a batch of generation jobs finishes instead of polling one by one
- Continue waiting on pending_job_ids when a previous jobs_wait timed out