> This page is optimized for agents. Use the linked Markdown pages and llms.txt indexes for related API content.

# Service health

> Database reachability and catalog presence. Unauthenticated. 503 names what an operator must do: `missing` is a migration to apply, `unservable` is a build to publish.

- Product: Service
- Section: service
- Snapshot: Current
- Method: `GET`
- Path: `/health`
- Availability: generally-available

## Execute with curl

```bash
curl "https://api.golfapi.dev/health"
```

## Execute with JavaScript

```javascript
const response = await fetch(`https://api.golfapi.dev/health`);
const body = await response.json();
```

## Execute with Python

```python
import requests

response = requests.get(
    f"https://api.golfapi.dev/health",
    timeout=10,
)
response.raise_for_status()
body = response.json()
```

## Responses

### Response `200`

Category: success  

Every registered resource can be served.

#### `application/json`

##### Generated example

```json
{
  "ok": true,
  "db": "ok",
  "missing": [
    "missing"
  ],
  "unservable": [
    "unservable"
  ],
  "degraded": [
    "degraded"
  ],
  "request_id": "request_id"
}
```

##### Schema

###### Health

Type: `Health`  

Not a liveness check. 503 here can mean one registered club type is missing while every other resource serves normally, so a monitor must not read it as a total outage.

###### `ok`

Type: `boolean`  
Required: yes  

###### `db`

Type: `string`  
Required: yes  
Allowed values: `ok`, `error`, `unconfigured`  

###### `missing`

Type: `string[]`  
Required: no  

Registered resources whose catalog table this target lacks. Apply that resource's migration.

###### string

Type: `string`  

###### `unservable`

Type: `string[]`  
Required: no  

Resources migrated but with nothing published to serve. Materialize and publish the build.

###### string

Type: `string`  

###### `degraded`

Type: `string[]`  
Required: no  

Club types whose tables carry a document column the published build left unfilled, as `<resource>@<version>`. An operator signal: materialize and publish the build. It is not part of ok.

###### string

Type: `string`  

###### `request_id`

Type: `string`  
Required: no  

### Response `503`

Category: server-error  

The database is unreachable or unconfigured, or a registered resource cannot be served.

#### `application/json`

##### Generated example

```json
{
  "ok": true,
  "db": "ok",
  "missing": [
    "missing"
  ],
  "unservable": [
    "unservable"
  ],
  "degraded": [
    "degraded"
  ],
  "request_id": "request_id"
}
```

##### Schema

###### Health

Type: `Health`  

Not a liveness check. 503 here can mean one registered club type is missing while every other resource serves normally, so a monitor must not read it as a total outage.

###### `ok`

Type: `boolean`  
Required: yes  

###### `db`

Type: `string`  
Required: yes  
Allowed values: `ok`, `error`, `unconfigured`  

###### `missing`

Type: `string[]`  
Required: no  

Registered resources whose catalog table this target lacks. Apply that resource's migration.

###### string

Type: `string`  

###### `unservable`

Type: `string[]`  
Required: no  

Resources migrated but with nothing published to serve. Materialize and publish the build.

###### string

Type: `string`  

###### `degraded`

Type: `string[]`  
Required: no  

Club types whose tables carry a document column the published build left unfilled, as `<resource>@<version>`. An operator signal: materialize and publish the build. It is not part of ok.

###### string

Type: `string`  

###### `request_id`

Type: `string`  
Required: no  

## Related representations

- [Human documentation](/api/service/methods/health/)
- [curl Markdown](/api/service/curl/methods/health.md)
- [JavaScript Markdown](/api/service/javascript/methods/health.md)
- [Python Markdown](/api/service/python/methods/health.md)
- [product llms.txt](/api/service/llms.txt)
