Restore a previous flow version
Flow Agents
Restore Flow Version
Replaces the agent’s current flow_config with the contents of a previously-saved
version. The current state stays in version history (every save creates a snapshot,
deduped by content hash) so you can always restore back to it later.
Validation:
- Agent must be a flow agent (
type='flow'). version_idmust reference a row fromGET /agents/:id/flow/versionsfor the same agent.
Required scope: agents:update.
POST
Restore a previous flow version
Replaces a flow agent’s current
flow_config with the contents of a previously-saved version. Useful when a recent change broke the flow and you want to go back to a known-good state without manually rebuilding.
Required scope: agents:update (same as PATCH /agents/:id).
How it works
Every save of a flow agent creates a row inflow_versions (deduped by content hash, so re-saving the same graph doesn’t create redundant rows). Calling restore:
- Looks up the row identified by
version_id - Verifies the row belongs to this agent
- Sets
agents.flow_configto that row’s stored content - Snapshots a new
flow_versionsrow reflecting the restored state — but if the restored content equals the current head (you’re restoring to where you already are), the unique constraint silently swallows it. No history pollution.
Workflow
- List versions:
GET /agents/:id/flow/versions→ pick aversion_id - Restore:
POST /agents/:id/flow/restorewith{ "version_id": "..." } - Optionally verify:
GET /agents/:idand inspectflow_config
Constraints
- Agent must be a flow agent (
type='flow'). Restoring on a prompt agent returns 400. version_idmust belong to the agent named in the path. Cross-agent version ids return 404.
Example request
Example response
Errors
Authorizations
Your Yappr API key (e.g. ypr_live_...). Generate one in the dashboard under Settings → API Keys.
Path Parameters
Body
application/json
Id from GET /agents/:id/flow/versions[].id.
Response
Restored. Returns the updated agent (same shape as PATCH /agents/:id).