# Platform and health

> Reference for GET /health, GET /readyz, GET /v1/platform, GET /v1/fleet and GET /v1/suggestions — the data plane's health and readiness checks and the sample organization, fleet and starter prompts the Mortar console and website display.

These endpoints describe the data plane's health and readiness, and the sample data the Mortar website and console are built around. Responses that hold sample data say so with `"illustrative": true`, so nothing can mistake them for measurements of your traffic.

## Check health

`GET /health`

Reports whether the data plane is up and what it serves. It's the one endpoint outside `/v1`. No key is needed.

```bash title="Request"
curl https://api.mortar.one/health
```

```json title="Response" output
{
  "status": "ok",
  "version": "1.4.0",
  "uptimeSeconds": 86400,
  "inFlightGenerations": 2,
  "sessions": 14,
  "rooms": 31,
  "servedModel": "Qwen/Qwen2.5-7B-Instruct",
  "servedContextTokens": 4096,
  "upstream": {
    "mode": "mock",
    "target": null,
    "label": "mock"
  }
}
```

### Response

| Field | Type | Description |
| --- | --- | --- |
| `status` | string | `ok` whenever the data plane can answer. |
| `version` | string | The build's version: a release number such as `1.4.0`, the module version of an unreleased build, or `dev`. |
| `uptimeSeconds` | integer | Seconds since the process started. |
| `inFlightGenerations` | integer | Chat completions being generated right now. |
| `sessions` | integer | Cache sessions the router is tracking. |
| `rooms` | integer | Saved conversations across every owner. |
| `servedModel` | string | The default model. |
| `servedContextTokens` | integer | The default model's context window, in tokens. |
| `upstream.mode` | string | `proxy` when the data plane forwards requests to a model server, `mock` when replies come from its built-in demo responder. |
| `upstream.target` | string or null | The model server's address in `proxy` mode, otherwise `null`. |
| `upstream.label` | string | A short name for where replies come from. |

## Check readiness

`GET /readyz`

Reports whether this instance should receive new traffic, for a load balancer to poll. It answers `503` as soon as the instance starts shutting down, while it finishes the requests it already has; in production it keeps answering for 5 seconds after that, so the balancer can move traffic away before the instance stops listening. The control plane isn't checked, so a control-plane outage never takes data-plane instances out of rotation. No key is needed.

```bash title="Request"
curl https://api.mortar.one/readyz
```

```json title="Response" output
{
  "status": "ready"
}
```

### Response

| Field | Type | Description |
| --- | --- | --- |
| `status` | string | `ready` when the instance should receive traffic. |

While the instance shuts down, the status is `503` and the body is the [error envelope](/docs/api#errors) with `type` set to `draining`.

## Get the platform overview

`GET /v1/platform`

Returns the sample organization, its environments, an in-flight rollout and the full model catalog, as the website's product preview shows them. No key is needed.

```bash title="Request"
curl https://api.mortar.one/v1/platform
```

### Response

| Field | Type | Description |
| --- | --- | --- |
| `org` | object | The sample organization: `id`, `name` and `initials`. |
| `environments` | array | Where the sample deployments run. Each has `id`, `label`, `deployment`, `region` and `byoc`. |
| `rollout` | object | A deployment being rolled out: `deployment`, `target` and its `steps`. |
| `privateEndpoint` | object | The address applications call in the sample Bring Your Own Cloud environment: `url` and `note`. |
| `servedModel` | string | The default model. |
| `servedContextTokens` | integer | The default model's context window, in tokens. |
| `models` | array | The catalog, with the fields [`GET /v1/models`](/docs/api/models) summarises plus `parameters`, `contextTokens`, `gpuClass`, `gpuCount`, `p50TtftMs` and `decodeTokensPerSec`. |
| `illustrative` | boolean | Always `true`. |

## Get the fleet

`GET /v1/fleet`

Returns the sample fleet the console's deployments view shows: deployments, team GPU quotas and headline numbers for the last 30 days. Needs an API key.

```bash title="Request"
curl https://api.mortar.one/v1/fleet \
  -H "Authorization: Bearer $MORTAR_API_KEY"
```

### Response

| Field | Type | Description |
| --- | --- | --- |
| `deployments` | array | The sample deployments. |
| `deployments[].name` | string | The deployment's name, such as `support-assistant`. |
| `deployments[].modelId` | string | The ID of the model it serves. |
| `deployments[].model` | string | That model's display name. |
| `deployments[].environmentId` | string | The environment it runs in, such as `byoc-acme-prod`. |
| `deployments[].env` | string | That environment's display label, such as `BYOC · acme-prod`. |
| `deployments[].byoc` | boolean | Whether the environment is in the customer's own cloud account, with [Bring Your Own Cloud](/docs/guides/deployment-models). |
| `deployments[].gpu` | string | The GPU each replica runs on, such as `L4`. |
| `deployments[].replicas.ready` | integer | Replicas serving now. |
| `deployments[].replicas.max` | integer | The most the deployment may scale to. |
| `deployments[].status` | string | `serving`, `rolling` or `idle`. |
| `deployments[].spendUsd` | integer | Sample spend, in whole US dollars. |
| `deployments[].tokensMillions` | integer | Sample tokens served, in millions. |
| `quotas` | array | Each team's GPU reservation: `team`, `gpu`, `used` and `quota`. |
| `kpis` | array | Headline numbers: `key`, `label`, `value`, `raw`, `delta`, `good` and `up`. |
| `illustrative` | boolean | Always `true`. |

## List prompt suggestions

`GET /v1/suggestions`

Returns the starter prompts the console shows in an empty conversation. No key is needed.

### Query parameters

| Parameter | Type | Description |
| --- | --- | --- |
| `surface` | string | `landing` for the shorter set the website uses. Leave it out for the console's set. |

```bash title="Request"
curl "https://api.mortar.one/v1/suggestions?surface=landing"
```

```json title="Response, first entry" output
{
  "data": [
    {
      "text": "What is Bring Your Own Cloud?",
      "value": "In BYOC, what actually leaves my cloud account?"
    }
  ]
}
```

### Response

| Field | Type | Description |
| --- | --- | --- |
| `data` | array | The suggestions, in display order. |
| `data[].text` | string | The label to show. |
| `data[].value` | string | The prompt to send when the suggestion is chosen. |
