---
title: "Check on a free API job through its link"
method: GET
path: "/api/try/jobs/{id}"
tags: ["Free API"]
---

# Check on a free API job through its link

`GET /api/try/jobs/{id}`

## Request

- Base URL: `https://audo.ai`
- URL: `https://audo.ai/api/try/jobs/{id}`
- Auth: none required

The link comes in a 202 response's Location header and statusUrl. Once the job succeeds, outputs has download links.

## Path parameters

- `id` string, required

## Query parameters

- `t` string, required
- `wait` number

## Response `200`

OK

- object
  - `id` string, required
  - `tool` 'remove_noise' | 'enhance_voice' | 'transcribe_audio' | 'align_script' | 'cut_audio' | 'remove_silence' | 'adjust_loudness' | 'convert_audio' | 'join_audio' | 'replace_audio' | 'analyze_audio' | 'remove_fillers' | 'level_speakers' | 'mix_tracks', required
  - `status` 'queued' | 'running' | 'succeeded' | 'failed' | 'cancelled' | 'held', required
  - `progress` integer, required: How much of the job is done, from 0 to 100. It never goes down, and its first part is the time a job usually takes to start
  - `stage` 'queued' | 'preparing' | 'processing' | 'finishing' | 'succeeded' | 'failed' | 'cancelled' | 'held', required: Where the job is: queued (not started yet, perhaps behind the account's other running jobs), preparing (getting the file ready), processing (the tool's work), finishing (saving the result), then succeeded, failed, or cancelled; or held (waiting for payment: see finishUrl)
  - `estimatedSecondsLeft` integer, nullable, required: About how many seconds the job has left, from the file's length and how fast the tool runs, refined as it goes. A rough guide. Null while it's queued, while Audo is busy (waitingForWorker), and once it has ended
  - `waitingForWorker` boolean, required: True while a running job has waited in line longer than a start usually takes: Audo is busy, and the job carries on as soon as there's room. A free job also waits behind paid ones, so it can wait longer; jobs with credits go first
  - `inputFileIds` string[], required: The main input first
  - `outputFileIds` string[], required: The main output first, once the job succeeds
  - `free` boolean, required: A free job processes only the first part of its input, at no cost
  - `processedSeconds` number, required: How much of the input the job processes
  - `quotedCredits` integer, required
  - `chargedCredits` integer, nullable, required: Set when the job succeeds
  - `result` object, nullable, required: The tool's details, such as loudness before and after
  - `error` object, nullable, required
    - `code` string, required
    - `message` string, required
  - `createdAt` string, required: ISO 8601 time
  - `startedAt` string, nullable, required: ISO 8601 time
  - `finishedAt` string, nullable, required: ISO 8601 time
  - `finishUrl` string, nullable: For a free result cut short: the page where the whole file can run, as a new job. Null when the job did the whole file
  - `statusUrl` string, required: This job's capability link. GET it to check on the job; it works for 1 hour
  - `fullPriceCredits` integer, nullable, required: The price to process the whole input with credits
  - `outputs` object[], required: The outputs with download links, once the job succeeds
    - `fileId` string, required
    - `filename` string, required
    - `contentType` string, required
    - `sizeBytes` integer, nullable, required
    - `durationSeconds` number, nullable, required
    - `hasVideo` boolean, required
    - `url` string, required: A signed download link
    - `expiresAt` string, required: ISO 8601 time
    - `fileExpiresAt` string: When Audo deletes the file itself (the link above expires sooner)
  - `finishPriceCredits` integer, nullable: What the whole file costs in credits (1 credit is 1 cent)
  - `finishedBy` object, nullable: Once someone paid to finish this free run: the whole-file job
    - `jobId` string, required
    - `status` 'queued' | 'running' | 'succeeded' | 'failed' | 'cancelled' | 'held', required
    - `progress` integer, required
    - `statusUrl` string, required: The whole-file job's own status link. GET it until its status is succeeded, then download its outputs
  - `nextStep` string: What to do next, for an agent

## Other responses

- `default`: An error, with what went wrong and what to do next

---

[API](https://skmtc.dev/audo/apis/audo-api.md) · [All operations](https://skmtc.dev/audo/apis/audo-api/llms.txt) · [OpenAPI document](https://skmtc.dev/audo/apis/audo-api/revisions/0800e93224eb?raw)
