# Read a persisted domain-purchase order's status by id

> Read a persisted domain-purchase order's status by id: CustomDomain™ API reference in the registrar group. Covers parameters, request body and responses.

Source: https://docs.customdomain.ai/docs/api-reference/registrar/getSellOrder

## `GET https://api.customdomain.ai/v1/sell/orders/{id}`

A widget token or a delegated agent token (`domains:read`) reads an order of its own application; a tenant API key reads an order of any of its applications. An order of another application answers `404`.

### Authentication

`widgetJWT`, `apiKey`, `agentToken`

### Parameters

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `id` | path | string | yes |  |

### Responses

| Status | Description |
| --- | --- |
| `200` | Order |
| `401` | Error envelope: {code, title, details}. |
| `403` | Error envelope: {code, title, details}. |
| `404` | Error envelope: {code, title, details}. |
| `503` | Error envelope: {code, title, details}. |

### `200` response body

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `orderId` | string | yes |  |
| `domain` | string | yes |  |
| `registrar` | string | no |  |
| `status` | `quoted`, `purchasing`, `purchased`, `transferred`, `failed`, `expired` | yes |  |
| `createdAt` | string | no |  |
| `regOrderId` | string | no | the registrar's order reference, once purchased. |
| `jobId` | string | no |  |
| `link` | string | no | sharing-rail checkout URL, if any. |
| `freeDomain` | boolean | no | promo (first-domain-free) registration. |

The full specification is served at `GET https://api.customdomain.ai/v1/openapi.json`.
