# System API reference

> HTML version: https://storeshot.art/docs/api/system/

Service status. Contract 1.18.0; base URL `https://api.storeshot.art/v1`. Schemas: https://storeshot.art/docs/api/schemas.md

## GET /health

**Service health** (operation `getHealth`). No authentication.

Reports whether the API and its dependencies are healthy. No authentication.

**Credits.** Free: no credits.

**Responses:**

| Status | Description | Schema | Headers |
|---|---|---|---|
| `200` | All dependencies are healthy. | `HealthReport` | `X-Request-Id` |
| `503` | A dependency is down (`SERVICE_UNAVAILABLE`; `details` holds the report). | `ErrorEnvelope` | `X-Request-Id` |
| `default` | Error (see ErrorEnvelope and /v1/docs/errors). | `ErrorEnvelope` | `X-Request-Id` |

Example 200 response:

```json
{
  "status": "healthy",
  "version": "string",
  "commit": "string",
  "checks": {
    "database": "up",
    "redis": "up"
  }
}
```

## GET /status

**Public service status** (operation `getStatus`). No authentication.

Coarse state of the API, the generation pipeline and the image and vision models over the last 15 minutes. Always 200, cached for 30 s, readable from any origin. No authentication. A model with too little recent traffic is `unknown`; the top-level status is the worst known component.

**Credits.** Free: no credits.

**Responses:**

| Status | Description | Schema | Headers |
|---|---|---|---|
| `200` | The current status. | `StatusReport` | `X-Request-Id`, `Cache-Control` |
| `default` | Error (see ErrorEnvelope and /v1/docs/errors). | `ErrorEnvelope` | `X-Request-Id` |

Example 200 response:

```json
{
  "status": "operational",
  "updatedAt": "2026-10-29T12:00:00.000Z",
  "windowSeconds": 900,
  "components": [
    {
      "id": "api",
      "name": "Generation pipeline",
      "status": "operational"
    }
  ]
}
```
