GoRunner

Delete many finished runs in one call

Requires scope run:manage
POST
/api/runs/delete

Deletes every TERMINAL run (completed, failed, cancelled) among the ids posted; ids that name an in-flight or paused run, a run in another workspace, or a run that no longer exists are SKIPPED rather than failing the call. Deletion is permanent.

This is a POST, not a DELETE, because it carries a body. The path is literally /api/runs/delete — it is matched before /api/runs/{id}.

The counts in the response are: deleted = rows actually removed, requested = how many of the posted ids were parseable UUIDs, skipped = requested - deleted. Ids that are not valid UUIDs are dropped silently and are NOT counted in requested, so posting only malformed ids returns {"deleted":0,"requested":0,"skipped":0} with status 200.

Authorization

bearerAuth
AuthorizationBearer <token>

An API token: Authorization: Bearer grt_…. Mint one in the app under Settings → Workspace → API tokens; the raw value is shown once. Scopes confine the token — see x-permission on each operation.

In: header

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

The ids to delete. Only terminal runs are removed; the rest are skipped.

Response Body

application/json

application/json

application/json

application/json

application/json

application/json

curl -X POST "https://example.com/api/runs/delete" \  -H "Content-Type: application/json" \  -d '{    "ids": [      "6e0346a3-e54d-40e3-9779-4ba1e707e35b"    ]  }'
{  "data": {    "deleted": 0,    "requested": 0,    "skipped": 0  }}