---
title: "Create a durable request in the credential workspace."
method: POST
path: "/api/v1/interactions"
tags: ["Interactions"]
---

# Create a durable request in the credential workspace.

`POST /api/v1/interactions`

## Request

- Base URL: `https://commentary.dev`
- URL: `https://commentary.dev/api/v1/interactions`
- Auth: HTTP bearer

Requires Idempotency-Key. Only account-scoped tokens may create requests, and the linked Resource must currently be owned by the credential owner. Decision mutation is human-only; approved Fulfillment reporting uses its dedicated route and scope.

## Headers

- `Idempotency-Key` string, required
- `X-Correlation-Id` string
- `X-Commentary-Workspace-Id` string

## Request body

- object
  - `resource` InteractionResource, required
    - `type` 'draft_review' | 'form' | 'research_study' | 'web_app_review', required
    - `id` string, required
  - `content` object, required
  - `initialState` 'draft' | 'active'
  - `interactionType` 'request' | 'notification' | 'decision_request'
  - `priority` 'low' | 'normal' | 'high' | 'urgent'

## Response `201`

Successful response.

- object
  - `data` Interaction
    - `id` string, required
    - `resource` InteractionResource, required
      - `type` 'draft_review' | 'form' | 'research_study' | 'web_app_review', required
      - `id` string, required
    - `state` string, required
    - `currentRevisionId` string, required
    - `version` integer, required
    - `createdAt` string, date-time, required
    - `updatedAt` string, date-time, required
    - `terminalAt` string, date-time, nullable
    - `revisions` object[]
    - `messages` InteractionMessage[]
      - `id` string, required
      - `revisionId` string, required
      - `actor` object, required
      - `body` string, nullable, required
      - `createdAt` string, date-time, required
      - `messageVersion` integer
      - `editedAt` string, date-time, nullable
      - `editable` boolean: Human conversational eligibility; never grants bearer edit authority.

## Other responses

- `400`: The request was invalid.
- `401`: Authentication is required.
- `403`: The token or session does not have permission for this resource.
- `404`: The resource was not found.
- `409`: The idempotency key was reused incompatibly.
- `429`: The request was rate limited.

---

[API](https://skmtc.dev/commentary/apis/commentary-public-api.md) · [All operations](https://skmtc.dev/commentary/apis/commentary-public-api/llms.txt) · [OpenAPI document](https://skmtc.dev/commentary/apis/commentary-public-api/revisions/7aaafc198c52?raw)
