---
title: "Update a Order request"
method: PUT
path: "/v1/order_requests/{id}"
tags: ["Order Requests"]
---

# Update a Order request

`PUT /v1/order_requests/{id}`

## Request

- Base URL: `https://api.hify.club`
- URL: `https://api.hify.club/v1/order_requests/{id}`
- Auth: API key in header `X-User-Token`

Assignment and attribute changes are applied in one transaction: a rejected update also rolls back the assignment. processing_state, processing_details and next_attempt_at are job-owned and not writable here.

## Request body

- object
  - `order_request` object
    - `user_id` string
    - `game_id` string
    - `status` 'open' | 'in_progress' | 'in_review' | 'done' | 'archived'
    - `assignee` string, nullable: Email of the annotator/editor taking ownership. Empty string or null unassigns. Only ShortRequest and HighlightRequest accept an assignee; a ReplayRequest returns 400.

## Response `200`

Order request updated

- OrderRequest
  - `id` integer
  - `type` 'HighlightRequest' | 'ReplayRequest' | 'ShortRequest'
  - `status` 'open' | 'in_progress' | 'in_review' | 'done' | 'archived'
  - `assignee` string, nullable: Email of the current human owner (annotator, then editor). Null when unassigned.
  - `assigned_at` string, date-time, nullable
  - `attention_state` 'annotating' | 'ready_to_bundle' | 'processing' | 'needs_editor' | 'editing' | 'in_review' | 'stuck' | 'done', nullable: Ops-facing pipeline stage group (one group = one owner). Grouped from the granular stored/derived states; the granular detail per row stays in processing_state and processing_message. Null for rows with no stage (e.g. pre-contract replays).
  - `stage_entered_at` string, date-time, nullable: When the current stage was entered. Poll rewrites do not move it.
  - `processing_state` string, nullable: Machine-readable stage stored by the owning job. Job-owned; not writable via this API.
  - `processing_details` object: Structured facts behind processing_state; schema per request type.
  - `processing_message` string, nullable: Human-readable rendering of processing_state + processing_details.
  - `next_attempt_at` string, date-time, nullable: When the system will next act. Null means nothing is scheduled (finished, or stuck).
  - `user` object
  - `game` object
  - `order` object

## Other responses

- `400`: Bad request — e.g. assigning a request type with no annotation step (ReplayRequest)
- `422`: Unprocessable entity — e.g. invalid status or malformed assignee email

---

[API](https://skmtc.dev/hify/apis/hify-apis.md) - [All operations](https://skmtc.dev/hify/apis/hify-apis/llms.txt) - [OpenAPI document](https://skmtc.dev/hify/apis/hify-apis/revisions/b5920403538d?raw)
