---
title: "Evaluate whether an actor may take an action"
method: POST
path: "/agents/action-proposals"
tags: ["agents"]
---

# Evaluate whether an actor may take an action

`POST /agents/action-proposals`

## Request

- Base URL: `https://catalyst.stratogenic.ai` (the document declares no server; this is the origin it was published from)
- URL: `https://catalyst.stratogenic.ai/agents/action-proposals`
- Auth: API key in header `X-API-Key`

Deterministic policy decision endpoint for AI agent actions.

Returns `allow`, `proposal_required`, or `deny` based on:
- Whether the actor is registered and active
- Whether the capability is in the actor's declared capabilities
- The actor's `governance_mode` and `risk_class`

Same input always produces the same decision. No randomness. Use this before any agent takes a real-world action.

## Request body

- ActionProposal
  - `machine_actor_id` string, required: Registered actor making the proposal
  - `capability` string, required: The capability being exercised, e.g. 'send_email', 'update_crm'
  - `target_system` string, nullable: System the action will affect, e.g. 'hubspot', 'shopify'
  - `action_description` string, nullable: Human-readable description of the proposed action
  - `dry_run` boolean: If true, evaluate policy but do not record a commitment

## Response `200`

Successful Response

- unknown

## Other responses

- `422`: Validation Error

---

[API](https://skmtc.dev/stratogenic/apis/stratogenic-catalyst-api.md) · [All operations](https://skmtc.dev/stratogenic/apis/stratogenic-catalyst-api/llms.txt) · [OpenAPI document](https://skmtc.dev/stratogenic/apis/stratogenic-catalyst-api/revisions/ad906ad7a85d?raw)
