# Read an order review

> Read an order review with an owner session or destination proof

`GET /v2/orders/{id}/review`

Read an order review with an owner session or destination proof.

**Authentication:** Required: the order’s owner session in `X-Session-ID`, or the destination proof `?verify=<destination-address>` (read-only).

## Parameters

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `id` | path | string (pattern `^[A-Za-z0-9:_-]{1,128}$`) | Yes | Public order identifier. Not a credential: every read still requires the owner session or the destination proof. |

## Response

`200` returns an object with:

- `review` · object or null · **required**
  - `orderId` · string · **required**
  - `ratingSpeed` · number · **required**
  - `ratingRate` · number · **required**
  - `ratingExperience` · number · **required**
  - `comment` · string or null · **required**
  - `createdAt` · string · **required**

Errors use the [standard error envelope](https://docs.wagyu.xyz/actions-and-retries.md#the-error-envelope): branch on `code`, never on the message.

## Example

<!-- curl -->
```bash
curl 'https://api-beta.wagyu.xyz/v2/orders/<orderId>/review' \
  -H 'x-session-id: <sessionId>'
```

<!-- JavaScript -->
```javascript
const res = await fetch('https://api-beta.wagyu.xyz/v2/orders/<orderId>/review', {
  headers: {"x-session-id":"<sessionId>"},
});
const data = await res.json();
```

<!-- Python -->
```python
import requests

res = requests.get('https://api-beta.wagyu.xyz/v2/orders/<orderId>/review', headers={"x-session-id":"<sessionId>"}, timeout=30)
data = res.json()
```

_No response is captured for this route: it needs a real order. The response fields above come from the live contract._

---
Source: https://docs.wagyu.xyz/api-reference/get-order-review · Built from the live Wagyu API on 2026-11-04.
