Appearance
Polling Jobs
POST /sessions returns immediately with a job_id. Poll the status endpoint until the job reaches a terminal state.
Status endpoint
http
GET https://api.motion.so/api/motion/sessions/{job_id}
Authorization: Bearer motion_your_api_keyStatus values
| Status | Meaning |
|---|---|
queued | The job was accepted and is waiting to start. |
created | The backing Mosaic Motion session exists and is preparing to run. |
running | The job is actively generating. |
awaiting_user_input | The job is waiting on user input. API initiated runs auto approve planning stages where possible. |
completed | The job finished successfully. |
failed | The job failed. Check the error field. |
Polling interval
Start with a 2 to 5 second interval. Increase the interval for long-running jobs.
js
async function waitForMotionJob(jobId, apiKey) {
while (true) {
const response = await fetch(
`https://api.motion.so/api/motion/sessions/${jobId}`,
{
headers: {
Authorization: `Bearer ${apiKey}`,
},
},
)
const job = await response.json()
if (job.status === 'completed' || job.status === 'failed') {
return job
}
await new Promise((resolve) => setTimeout(resolve, 3000))
}
}