# Get workspace status

`GET /api/v1/status`

What this workspace is, and what it can actually do. The first call a client should make: whether payments and yield are live, simulated or unavailable, the workspace clock, running totals, and a description of its configuration. Secrets are never included.

`unavailable` means the workspace's Circle credentials are stored but cannot be read. A cycle refuses to pay in that state rather than fall back to simulation, so status does not report it as `simulate`.

Send a [workspace API key](https://www.vestiarion.xyz/docs/get-started/authentication) as `Authorization: Bearer <key>`.

## Parameters

No parameters.

## Code samples

```bash
curl "https://www.vestiarion.xyz/api/v1/status" \
  -H "Authorization: Bearer $VESTIARION_API_KEY"
```

## Response

Example, `200` `application/json`:

```json
{
  "data": {
    "businessName": "Vestiarion workspace",
    "provenance": {
      "payments": "live",
      "yield": "simulate",
      "screening": "simulate"
    },
    "clock": {
      "mode": "simulate",
      "day": 25,
      "lastCycleAt": "2026-09-24T18:33:04.546517+00:00"
    },
    "totals": {
      "decisionsLogged": 77,
      "totalPaidOut": 4.815,
      "flagged": 1
    },
    "configuration": {
      "businessName": "Vestiarion workspace",
      "chain": {
        "circleConfigured": true,
        "arcRpcConfigured": false
      },
      "llm": {
        "pinned": null,
        "available": [
          "deepseek"
        ]
      },
      "compliance": {
        "mode": "bundled",
        "rescreenIntervalHours": 0
      },
      "followUp": {
        "staleAfterDays": 3,
        "reEscalateAfterDays": 7
      },
      "ledgerSigningKeyProvided": false,
      "githubTokenProvided": false,
      "clockMode": "simulate"
    },
    "apiVersion": "v1"
  }
}
```

**Fields**

- `data` (object, required): What this workspace is, and what it can actually do.
  - `businessName` (string, required): The workspace's name.
  - `provenance` (object, required): Payments and yield differ and are reported separately, as in the UI. `unavailable` means the workspace's Circle credentials are stored but could not be read: cycles refuse to pay then rather than simulate, so neither leg is live or simulated.
    - `payments` (string, required) One of `live`, `simulate`, `unavailable`.
    - `yield` (string, required) One of `live`, `simulate`, `unavailable`.
    - `screening` (string, required) One of `live`, `simulate`.
  - `clock` (object, required): The workspace's clock, and when its last cycle ran.
    - `mode` (string, required) One of `real`, `simulate`.
    - `day` (number, required)
    - `lastCycleAt` (string, nullable, required)
  - `totals` (object, required): Running totals across the workspace.
    - `decisionsLogged` (number, required)
    - `totalPaidOut` (number, required)
    - `flagged` (number, required)
  - `configuration` (object, required): What is configured for this workspace, as flags and modes. Never carries a secret.
  - `apiVersion` (string, required) One of `v1`.

## Errors

| Status | Code | When |
| --- | --- | --- |
| 401 | `unauthorized` | No key, or a malformed, unknown or revoked one: "A valid API key is required." |
| 403 | `forbidden` | The key's scopes do not cover this route: "This key cannot do that." Or, on a write, the person who created the key can no longer add records: "This key's issuer can no longer add records in this workspace." |
| 500 | `internal` | An unexpected server error. Implementation details are not exposed. |

## Notes

### Provenance

`provenance` says what the workspace's actions are backed by, per leg:

| Field | Values | Meaning |
| --- | --- | --- |
| `payments` | `live`, `simulate`, `unavailable` | Whether invoice and milestone payments settle on chain through Circle, or are simulated. |
| `yield` | `live`, `simulate`, `unavailable` | The same, for moves to and from the yield reserve. |
| `screening` | `live`, `simulate` | Whether this workspace's counterparties are screened against a live sanctions source (OpenSanctions) or the bundled, simulated watchlist. A sandbox always uses the bundled watchlist. |

`unavailable` means the workspace's Circle credentials are stored but cannot be read, for example because they are sealed under a master key this deployment does not hold. A cycle refuses to pay in that state rather than fall back to simulation, so status does not report it as `simulate`. Check `provenance.payments` before you treat a `paid` invoice as money that moved.

### Configuration

`configuration` describes the workspace's setup as flags and modes, and never carries a secret. Treat it as informational: its keys can grow. Three fields describe the ledger signing key; the example above was captured before the last two were added:

- `ledgerSigningKeyProvided`: whether the workspace's stored signing key could be read.
- `ledgerPublicKeyProvided`: always `false` inside a workspace, because the public half is derived from the stored signing key rather than configured on its own.
- `ledgerRetiredKeyCount`: how many earlier public keys the deployment still accepts when [verifying the ledger](https://www.vestiarion.xyz/docs/api/verify-ledger#key-identity-and-rotation).
