# Get job

URL: https://clippie.ai/developers/docs/get-job

Gets one job: status (queued, processing, rendering, completed, failed, canceled), step, progress, output (videoUrl, imageUrls, audioUrl, captions, editorUrl) and cost. Pass waitSeconds (up to 50) to wait for it to finish instead of polling in a loop.

## At a glance

| Property | Value |
| --- | --- |
| REST | `GET https://api.clippie.ai/v1/jobs/:id` |
| MCP tool | `get_job` |
| Scope | `read` |
| Cost | Free. Works with a read-only key. |

## Parameters

| Name | In | Type | Required | Default | Description |
| --- | --- | --- | --- | --- | --- |
| `id` | path | string | Yes |  | The job id, job_… 1-80 chars. |
| `wait` | query | integer | No |  | Wait up to this many seconds (max 50) for the job to finish. REST: ?wait=. 0-50. MCP: `waitSeconds`. |

## Example

curl:

```bash
curl "https://api.clippie.ai/v1/jobs/job_abc123?wait=30" \
  -H "Authorization: Bearer $CLIPPIE_API_KEY"
```

get-job.mjs:

```js
const auth = { Authorization: `Bearer ${process.env.CLIPPIE_API_KEY}` };

const res = await fetch('https://api.clippie.ai/v1/jobs/job_abc123?wait=30', { headers: auth });
if (!res.ok) throw new Error((await res.json()).error.message);
console.log(await res.json());
```

## Response

`200` with JSON. The full response schema is in the [OpenAPI spec](https://api.clippie.ai/v1/openapi.json).

## From an MCP client

Your AI calls `get_job` with the same fields as JSON arguments. See [MCP server](https://clippie.ai/developers/docs.md#mcp) to connect one.

tools/call:

```json
{
  "name": "get_job",
  "arguments": {
    "id": "job_abc123",
    "waitSeconds": 30
  }
}
```
