Skip to main content

Approvals

List pending approval items

GET
/approvals

Authorization

bearerClerk
AuthorizationBearer <token>

Clerk session JWT from an authenticated dashboard user. Format: Bearer eyJ....

In: header

Query Parameters

type?string

Filter by type: message, goal, handoff, or all (default)

limit?integer

Max items (default 50, max 200)

Formatint64

Response Body

application/json

application/problem+json

curl -X GET "https://loading/api/v1/approvals"
{
  "$schema": "/api/v1/schemas/ListApprovalsResponse.json",
  "items": [
    {
      "$schema": "/api/v1/schemas/ApprovalItemBody.json",
      "agent_id": "string",
      "agent_name": "string",
      "approval_id": "string",
      "channel": "string",
      "confidence": 0.1,
      "contact_name": "string",
      "context": "string",
      "created_at": "string",
      "payload": null,
      "resolved_at": "string",
      "resolved_by": "string",
      "status": "string",
      "tags": [
        "string"
      ],
      "type": "string",
      "user_id": "string"
    }
  ],
  "pending_count": 0
}
{
  "$schema": "/api/v1/schemas/ErrorModel.json",
  "detail": "Property foo is required but is missing.",
  "errors": [
    {
      "location": "string",
      "message": "string",
      "value": null
    }
  ],
  "instance": "https://example.com/error-log/abc123",
  "status": 400,
  "title": "Bad Request",
  "type": "https://example.com/errors/example"
}

Create a pending approval item

POST
/approvals

Authorization

bearerClerk
AuthorizationBearer <token>

Clerk session JWT from an authenticated dashboard user. Format: Bearer eyJ....

In: header

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

application/problem+json

curl -X POST "https://loading/api/v1/approvals" \  -H "Content-Type: application/json" \  -d '{    "agent_id": "string",    "agent_name": "string",    "channel": "string",    "confidence": 0.1,    "contact_name": "string",    "context": "string",    "payload": null,    "tags": [      "string"    ],    "type": "string",    "user_id": "string"  }'
{
  "$schema": "/api/v1/schemas/ApprovalItemBody.json",
  "agent_id": "string",
  "agent_name": "string",
  "approval_id": "string",
  "channel": "string",
  "confidence": 0.1,
  "contact_name": "string",
  "context": "string",
  "created_at": "string",
  "payload": null,
  "resolved_at": "string",
  "resolved_by": "string",
  "status": "string",
  "tags": [
    "string"
  ],
  "type": "string",
  "user_id": "string"
}
{
  "$schema": "/api/v1/schemas/ErrorModel.json",
  "detail": "Property foo is required but is missing.",
  "errors": [
    {
      "location": "string",
      "message": "string",
      "value": null
    }
  ],
  "instance": "https://example.com/error-log/abc123",
  "status": 400,
  "title": "Bad Request",
  "type": "https://example.com/errors/example"
}

Resolve an approval item (approve/reject/take_over)

POST
/approvals/{id}/resolve

Authorization

bearerClerk
AuthorizationBearer <token>

Clerk session JWT from an authenticated dashboard user. Format: Bearer eyJ....

In: header

Path Parameters

id*string

Approval item ID

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

action*string

approve, reject, or take_over

Response Body

application/json

application/problem+json

curl -X POST "https://loading/api/v1/approvals/string/resolve" \  -H "Content-Type: application/json" \  -d '{    "action": "string"  }'
{
  "$schema": "/api/v1/schemas/ApprovalItemBody.json",
  "agent_id": "string",
  "agent_name": "string",
  "approval_id": "string",
  "channel": "string",
  "confidence": 0.1,
  "contact_name": "string",
  "context": "string",
  "created_at": "string",
  "payload": null,
  "resolved_at": "string",
  "resolved_by": "string",
  "status": "string",
  "tags": [
    "string"
  ],
  "type": "string",
  "user_id": "string"
}
{
  "$schema": "/api/v1/schemas/ErrorModel.json",
  "detail": "Property foo is required but is missing.",
  "errors": [
    {
      "location": "string",
      "message": "string",
      "value": null
    }
  ],
  "instance": "https://example.com/error-log/abc123",
  "status": 400,
  "title": "Bad Request",
  "type": "https://example.com/errors/example"
}