---
title: "Create transaction with guardrails"
method: POST
path: "/transactions"
tags: ["Intelligence"]
---

# Create transaction with guardrails

`POST /transactions`

## Request

- Base URL: `https://api.mnemom.ai/v1`
- URL: `https://api.mnemom.ai/v1/transactions`
- Auth: one of:
  - HTTP bearer
  - API key in header `X-Mnemom-Api-Key`

Create a new guarded transaction. The transaction wraps one or more agent actions with CLPI policy guardrails, ensuring all tool invocations are evaluated against the effective policy before execution. Returns the transaction ID and initial evaluation status. **Authorization:** the caller must be a member of the org that owns `agent_id` (`403` otherwise).

## Request body

- object
  - `transaction_id` string, required: Client-supplied unique transaction identifier. A duplicate returns 409.
  - `agent_id` string, required: Agent performing the transaction. Must reference an existing agent.
  - `policy` object, required: CLPI policy governing the transaction.
  - `expires_at` string, date-time, required: Transaction expiry. Must be in the future.
  - `conscience_values` unknown[]: Optional conscience values attached to the transaction.
    - unknown

## Response `200`

Transaction created

- object
  - `transaction_id` string
  - `agent_id` string
  - `expires_at` string, date-time
  - `status` 'active' | 'expired': Computed lifecycle status derived from `expires_at` — `active` on creation.

## Other responses

- `400`: Bad request
- `401`: Authentication required
- `403`: Forbidden
- `404`: Resource not found
- `409`: Resource conflict — the request cannot proceed because of a current state conflict (e.g., resource already exists, version mismatch, in-flight idempotency key with a different body).
- `429`: Rate-limit exceeded. The global per-IP limiter (100 requests/minute, applied to every `/v1/*` route) rejected this request. Back off until the window resets — `Retry-After` carries the cooldown in seconds and `X-RateLimit-Reset` the absolute reset time.
- `500`: Server error — request was well-formed but the server failed to fulfill it. Typically a downstream dependency (DB / RPC / external API) returned an unexpected error.

---

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