# Get Order

> One managed mailbox order with its domains and mailboxes.

Requires an API key with the `read` scope.

## Path Parameters

<ParamField path="order_id" type="string" required>
  The order identifier.
</ParamField>

## Response

<ResponseField name="data" type="object">
  The order.

  <Expandable title="data">
    <ResponseField name="id" type="string">Order identifier.</ResponseField>
    <ResponseField name="status" type="string">`pending_payment`, `paid`, `provisioning`, `active`, `partially_failed`, `failed`, `past_due` or `cancelled`.</ResponseField>
    <ResponseField name="redirectUrl" type="string">Where the domains forward to.</ResponseField>
    <ResponseField name="oneTimeCents" type="integer">One-time cost in US cents (domain registration).</ResponseField>
    <ResponseField name="monthlyCents" type="integer">Monthly cost in US cents (mailboxes).</ResponseField>
    <ResponseField name="domainCount" type="integer">Domains in the order.</ResponseField>
    <ResponseField name="mailboxCount" type="integer">Mailboxes in the order.</ResponseField>
    <ResponseField name="failureMessage" type="string">Why the order failed, or `null`.</ResponseField>
    <ResponseField name="createdAt" type="string">ISO 8601 timestamp.</ResponseField>
    <ResponseField name="paidAt" type="string">ISO 8601 timestamp, or `null`.</ResponseField>
    <ResponseField name="provisionedAt" type="string">ISO 8601 timestamp, or `null`.</ResponseField>
    <ResponseField name="cancelledAt" type="string">ISO 8601 timestamp, or `null`.</ResponseField>
    <ResponseField name="domains" type="array">
      Domains in the order.

      <Expandable title="domains">
        <ResponseField name="id" type="string">Domain identifier.</ResponseField>
        <ResponseField name="name" type="string">Domain name.</ResponseField>
        <ResponseField name="platform" type="string">`GOOGLE` or `MICROSOFT`.</ResponseField>
        <ResponseField name="status" type="string">Domain status.</ResponseField>
        <ResponseField name="priceCents" type="integer">Registration price in US cents.</ResponseField>
        <ResponseField name="renewalDate" type="string">ISO 8601 timestamp, or `null`.</ResponseField>
        <ResponseField name="renewalPriceCents" type="integer">Renewal price in US cents, or `null`.</ResponseField>
        <ResponseField name="autoRenew" type="boolean">Whether the domain renews automatically.</ResponseField>
        <ResponseField name="renewalState" type="string">Renewal state, or `null`.</ResponseField>
        <ResponseField name="failureMessage" type="string">Why the domain failed, or `null`.</ResponseField>
        <ResponseField name="mailboxes" type="array">Mailboxes on the domain (same fields as List Mailboxes, without `orderId` and `domainName`).</ResponseField>
      </Expandable>
    </ResponseField>
  </Expandable>
</ResponseField>

<RequestExample>
```bash cURL
curl -X GET "https://api.foxreach.io/api/v1/managed-inboxes/orders/ord_abc123" \
  -H "X-API-Key: otr_your_key"
```

```python Python SDK (beta)
from foxreach import FoxReach

client = FoxReach(api_key="otr_your_key")
order = client.managed_inboxes.get_order("ord_abc123")
```

```typescript TypeScript SDK (beta)
import { FoxReach } from "foxreach";

const client = new FoxReach({ apiKey: "otr_your_key" });
const order = await client.managedInboxes.getOrder("ord_abc123");
```
</RequestExample>

<ResponseExample>
```json
{
  "data": {
    "id": "ord_abc123",
    "status": "active",
    "redirectUrl": "https://yourcompany.com",
    "oneTimeCents": 1400,
    "monthlyCents": 800,
    "domainCount": 1,
    "mailboxCount": 2,
    "failureMessage": null,
    "createdAt": "2026-10-20T09:00:00+00:00",
    "paidAt": "2026-10-20T09:02:00+00:00",
    "provisionedAt": "2026-10-20T09:40:00+00:00",
    "cancelledAt": null,
    "domains": [
      {
        "id": "dom_abc123",
        "name": "yourbrand-mail.com",
        "platform": "GOOGLE",
        "status": "active",
        "priceCents": 1400,
        "renewalDate": "2027-10-20T00:00:00+00:00",
        "renewalPriceCents": 1800,
        "autoRenew": true,
        "renewalState": null,
        "failureMessage": null,
        "mailboxes": [
          {
            "id": "mbx_abc123",
            "email": "jane@yourbrand-mail.com",
            "firstName": "Jane",
            "lastName": "Doe",
            "platform": "GOOGLE",
            "status": "active",
            "connectState": "connected",
            "emailAccountId": "cea_abc123",
            "monthlyCents": 400,
            "failureMessage": null,
            "lastConnectError": null,
            "connectedAt": "2026-10-20T09:45:00+00:00",
            "cancelledAt": null
          }
        ]
      }
    ]
  }
}
```
</ResponseExample>

## Errors

| Status | Description |
|--------|-------------|
| `401` | Missing, invalid, revoked or expired API key |
| `403` | API key does not have the required scope: `read` |
| `404` | Not found while managed mailboxes are switched off on this environment (`{"detail": "Not found"}`) |
| `404` | `Order not found`, or the order belongs to another workspace |

## Rate Limit

- **100 requests per minute, per API key.** Fixed 60-second window.
- Every response includes `X-RateLimit-Limit`, `X-RateLimit-Remaining`, and `X-RateLimit-Reset` (unix epoch seconds).
- A `429` response includes a `Retry-After` header (seconds until the bucket resets).

For client-side patterns (`Retry-After`, exponential backoff, monitoring `X-RateLimit-Remaining`), see [Rate Limiting](/rate-limiting).
