Skip to content
Get started
TypeScript

Jobs

API reference for the Job class and .wait() method.

Every endpoint that returns a job in its response is enhanced — the job object gains a .wait() method that polls until completion.

Polls client.jobs.retrieve() until the job reaches a terminal status.

Signature

job.wait(options?: WaitOptions): Promise<Job>

Parameters

NameTypeDefaultDescription
options.intervalMsnumber3000Polling interval in milliseconds.
options.timeoutMsnumber120000Maximum wait time in milliseconds. Throws if exceeded.

Returns

Promise<Job> — A new Job instance with the terminal state. The Job object contains all standard API job fields:

PropertyTypeDescription
jobIdstringThe job ID.
statusstringTerminal status: 'success', 'failure', or 'canceled'.
progressnumberProgress between 0 and 1.
metadataobjectJob metadata, including flow and assetIds for workflow jobs.
createdAtstringISO 8601 creation timestamp.
updatedAtstringISO 8601 last update timestamp.
jobTypestringThe type of job (e.g. 'workflow', 'inference').
wait()functionCan be called again (returns immediately if already terminal).

Errors

Throws Error if the job does not reach a terminal status within timeoutMs.

try {
const completed = await response.job.wait({ timeoutMs: 10_000 });
} catch (err) {
// "Job job_... did not complete within 10s"
}
import Scenario from '@scenario-labs/sdk';
const client = new Scenario({ apiKey: '...' });
const response = await client.workflows.run('wflow_...', {
body: { prompt: 'a fantasy sword' },
});
const completed = await response.job.wait();
console.log(completed.status); // 'success'
console.log(completed.metadata); // { assetIds: [...], flow: [...] }

client.jobs.retrieve(jobID) — enhanced response

Section titled “client.jobs.retrieve(jobID) — enhanced response”

client.jobs.retrieve() returns a response where response.job has .wait().

const response = await client.jobs.retrieve('job_...');
const completed = await response.job.wait();
console.log(completed.status); // 'success' | 'failure' | 'canceled'

client.jobs.triggerAction(jobID, params) — enhanced response

Section titled “client.jobs.triggerAction(jobID, params) — enhanced response”

client.jobs.triggerAction() also returns a response where response.job has .wait().

const response = await client.jobs.triggerAction('job_...', { action: 'cancel' });
const completed = await response.job.wait();

ResourceMethods
client.jobsretrieve(), triggerAction()
client.workflowsrun(), userApproval()
client.generatecaption(), describeStyle(), detect(), embed(), patch(), runModel(), translate()
client.models.traintrigger()