# Create workspace heartbeat test

Run the heartbeat ONCE and DRY: it plans, applies nothing, claims no wake, and answers the run it just wrote with its actions in full. Reach for it to see what the machine would do under the current settings before turning it on. Admin only. The loop that actually acts is the API's own worker, never a request.

Access class: `workspace:admin`.

## Endpoint

`POST /v1/workspace/heartbeat/test`

## Request body

Content type: `application/json`.

```json
{
  "body": {},
  "params": {},
  "query": {}
}
```

## Responses

### 201

the action's answer

Content type: `application/json`.

```json
{
  "data": {
    "actions": [
      {
        "created_at": "string",
        "id": 1.5,
        "kind": "string",
        "payload": {
          "body": "string",
          "recipient": "string"
        },
        "plan_index": 1.5,
        "reason": "string",
        "reverted_from": "string",
        "run_id": 1.5,
        "settled_at": "string",
        "state": "string"
      }
    ],
    "run": {
      "actions_applied": 1.5,
      "actions_planned": 1.5,
      "dry_run": true,
      "error_text": "string",
      "finished_at": "string",
      "id": 1.5,
      "model": "string",
      "reasoning_effort": "string",
      "started_at": "string",
      "wake_count": 1.5
    }
  }
}
```

### default

a refusal: `{"error": "<what a person needs to read>"}`. 401 no credential, 402 the plan does not include this, 403 the seat does not, 404 the thing does not exist or is not yours to see.

Content type: `application/json`.

```json
{
  "error": "string"
}
```
