---
title: "Attach the request an intent was written from, stored verbatim, so the first review can show the original ask beside the agent's interpretation."
method: POST
path: "/api/v1/intents/{id}/original-request"
tags: ["proposal review"]
---

# Attach the request an intent was written from, stored verbatim, so the first review can show the original ask beside the agent's interpretation.

`POST /api/v1/intents/{id}/original-request`

Fills the gap that left the first review's original-request column empty: create_evidence takes a free-text source LABEL, not a document, so a ticket handed to an agent could never reach the column built to show it. One call writes a source document holding the text verbatim, one evidence item of type request that carries source_document_id, and the link to the intent. Attaching is deliberately not reviewing: the evidence lands status active, triage_status inbox and origin agent, which classifies as unreviewed — visible to the review, never counted as backing for a claim, so an agent cannot manufacture backing from its own input. The document is written with type import and file_type agent, which keeps it clear of the tracker-import undo path (that path requires a provider file_type). Same title and identical bytes in the same product is treated as the same request. Attaching a different request adds a second source rather than replacing the first; the review offers them as a picker.

## Path parameters

- `id` string, required

## Query parameters

- `workspace_id` string

## Request body

- object
  - `title` string, required — How a reviewer recognizes it: a ticket key, a document name, a thread subject. 1-200 chars.
  - `text` string, required — The request itself, 1-100000 chars. Stored exactly as sent: never summarized, tidied or translated.
  - `sourceUrl` string — Where it lives, when it has an address a person can open.

## Response `200`

This exact request was already attached. created is false and the existing ids are returned, so a retry does not stack duplicates behind the review's source picker.

- object

## Other responses

- `201` — Attached; created is true
- `400` — Invalid intent ID, or invalid body (zod) — returns { error, details }
- `403` — Lacks write scope
- `404` — Intent not found in this workspace
- `409` — code PRODUCT_REQUIRED: the intent has no product, so there is nowhere to file the request
- `429` — general bucket rate limit
- `500` — Could not attach the request

## Changes

- **2026-09-12** `c7d545bf359b` — 1 info
  - endpoint added

[Change history](https://skmtc.dev/pathmode/apis/pathmode-api/changes/api/v1/intents/:id/original-request/post.md)

---

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