---
title: "Get order status"
method: GET
path: "/orders/{id}"
tags: ["Orders"]
---

# Get order status

`GET /orders/{id}`

## Request

- Base URL: `https://barevalue.com/api/v1`
- URL: `https://barevalue.com/api/v1/orders/{id}`
- Auth: HTTP bearer

Retrieve the current status of an order. While it is being edited: the step, percentage and estimated seconds remaining. When done: each file with its kind and a download link, what the edit changed, and what is not included and why. When failed: why, and what to do next.

## Path parameters

- `id` integer, required

## Response `200`

Order details

- OrderResponse
  - `order_id` integer
  - `status` 'new' | 'submitted' | 'in_progress_submitted' | 'done' | 'failed' | 'canceled': new: accepted and not yet placed, its file is being fetched and measured (usually under a minute, several minutes when the fetch is retried); ask again after retry_after_seconds. submitted and in_progress_submitted: being edited. done: files ready. failed: see failure
  - `type` string
  - `podcast_name` string, nullable
  - `episode_name` string, nullable
  - `episode_number` string, nullable
  - `duration_minutes` number, nullable
  - `cost` number
  - `credits_used` number
  - `submitted_at` string, date-time, nullable
  - `completed_at` string, date-time, nullable
  - `progress` object: While the order is being edited
    - `current_step` string
    - `current_step_display` string
    - `percentage` integer
    - `started_at` string, date-time, nullable
    - `estimated_seconds_remaining` integer: A rough estimate from recent orders of similar length
  - `retry_after_seconds` integer: While the order is new (its file is being fetched) or being edited: when to ask again. Also sent as the Retry-After header
  - `downloads` OrderDownload[]: When status is done
    - `filename` string
    - `kind` 'edited_audio' | 'clip' | 'show_notes' | 'transcript' | 'timestamps' | 'other': What the file is. A lossless upload returns two edited_audio files, WAV and MP3
    - `format` string: File extension, lower case
    - `version` integer: 1 unless the filename carries a version (_v2, _v3). A revision is delivered beside the file it replaces
    - `url` string, uri: Download link, valid until expires_at
    - `expires_at` string, date-time
  - `not_included` OrderNotIncluded[]: When status is done: what this order does not include, and why
    - `kind` 'show_notes' | 'clip' | 'transcript'
    - `reason` 'episode_too_short' | 'not_produced' | 'text_only': text_only: there is no file, but the text is available from the content endpoint
    - `message` string
  - `summary` OrderSummary, nullable: What the edit changed. Null until it has been written, shortly after the order is done
    - `changes` string[]: What the edit did, one line each. A line that says something was removed or trimmed is present only when the edit recorded a cut of that kind
    - `cuts` integer: Every cut the edit recorded: passages the editor removed (requested cuts, false starts, repeated words, off-topic talk) and the automatic trimming of filler words and long pauses. Cuts on record for the run that was delivered: 0 means none is on record, which is nothing cut or, rarely, no record kept
    - `seconds_removed` number: Seconds taken out by the cuts counted in cuts. A recorded figure, not the difference between the two lengths: music or a closing tag added to the episode makes it longer
    - `duration_before_seconds` number, nullable: Measured length of the recording as it was sent. null when it was not measured as one length: an order of more than one file (tracks, parts or a recording with its music) always gives null. Never the minutes counted for the order
    - `duration_after_seconds` number, nullable: Measured length of the delivered episode. null until it has been measured, which can take a few minutes after the order is done, and it may stay null (an order that was edited again is not measured a second time). Probe the downloaded file for the exact length when it is null
    - `recording_quality` 'excellent' | 'good' | 'fair' | 'needs_improvement' | 'null', nullable: How the raw recording sounded before editing
    - `recording_tip` string, nullable: A tip to pass on to the person who recorded it, when there is one
  - `text_content` object: When status is done: which text parts the content endpoint has
    - `show_notes` boolean
    - `transcript` boolean
    - `url` string, uri
  - `failure` OrderFailure
    - `code` 'content_not_recognized' | 'language_not_supported' | 'file_too_long' | 'instructions_out_of_scope' | 'too_many_failed_orders' | 'submission_refused' | 'edit_held_back' | 'processing_failed' | 'servers_full': servers_full: the order was accepted, waited hours for a place and was never edited; order again later. edit_held_back on a revision: it would have sounded worse than the original edit, which stays in place. A failed order or revision, whatever the code, uses no minutes from the allowance
    - `message` string: A sentence you can pass to your user
    - `retryable` boolean: Whether ordering the same file again may work. False for everything refused because of the file itself
    - `next_action` string: What to do about it
    - `detected_language` string: Only with language_not_supported
  - `feedback` object: When status is done: whether the edit has been rated, and how to rate it or have it changed
    - `given` boolean
    - `rating` 'positive' | 'negative' | 'null', nullable
    - `ask` string, nullable: What to ask your user, until a rating is given
    - `revision` string: How to have this edit changed

## Other responses

- `401`: Missing or invalid API key
- `404`: Resource not found

---

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