---
title: "Discover the next canonical conversation input"
method: POST
path: "/api/v1/agent/persistent/conversations/next_input"
tags: ["agent"]
---

# Discover the next canonical conversation input

`POST /api/v1/agent/persistent/conversations/next_input`

## Request

- Base URL: `https://composal.com` (the document declares no server; this is the origin it was published from)
- URL: `https://composal.com/api/v1/agent/persistent/conversations/next_input`
- Auth: HTTP bearer

Internal trusted Activity port. A short-lived conversation-scoped credential fixes the controlling principal, agent, conversation and lifecycle. The request is empty. Returns only an authorized input locator and short-lived input dispatch credential, or nulls when parked/caught up; no message bodies or execution permission. Never place credentials in workflow history.

## Request body

- object

## Response `200`

Next eligible input and scoped credential, or paired nulls. Response must not be cached.

- PersistentAgentConversationDiscovery
  - `organization_id` string, required
  - `agent_id` string, required
  - `conversation_id` string, required
  - `input_id` string, nullable, required
  - `dispatch_token` string, nullable, required: Trusted Activity transport only; not a workflow payload.

## Other responses

- `401`: Invalid, expired, superseded or disabled-agent dispatch capability
- `403`: Current task dispatch operation is not authorized
- `404`: Not found
- `409`: Canonical conflict or different workflow chain; reconcile the original identity
- `422`: Invalid or oversized JSON request
- `502`: Bad gateway
- `503`: Canonical state is temporarily unavailable; retry without inventing another task/workflow identity

---

[API](https://skmtc.dev/composal/apis/vex-api.md) - [All operations](https://skmtc.dev/composal/apis/vex-api/llms.txt) - [OpenAPI document](https://skmtc.dev/composal/apis/vex-api/revisions/74298a24e040?raw)
