Skip to main content
GET
Get a demand exchange (proposal pass)

Authorizations

Authorization
string
header
required

API key or access token

Path Parameters

runId
integer
required

Surrogate id of the chef compose run that anchors this exchange (the demand-inbox ledger row id).

Required range: 1 <= x <= 9007199254740991
Example:

42

Response

Get a demand exchange (proposal pass)

The full story of one brief → proposal → result exchange: brief facts, ordered passes with product allocation + pricing rows, per-pass outcome, and an exchange-level result. Every number is traceable to a persisted artifact or outcome record; missing inputs render unavailable, never 0.

exchangeId
string
required

The compose-run id anchoring this exchange.

buyer
string | null
required
briefText
string | null
required
briefFacts
object | null
required

Condensed brief facts read from the persisted brief artifact request (never reconstructed). Any field the buyer did not send is null.

briefArtifactId
string | null
required
briefArtifactAvailable
boolean
required

False when no brief artifact was captured (historical run). Readers must say "brief unavailable" rather than reconstruct it.

proposalArtifactId
string | null
required

The most recent proposal artifact id, for reference.

result
enum<string>
required

Exchange-level commercial result. Derivation rule: won if ANY pass is won; else lost if the most recent decided pass is lost; else pending. With one run per exchange today this equals the run outcome.

Available options:
closed_won,
closed_lost,
pending
wonValue
object[] | null
required

Money won across the exchange, one entry per currency (both-or-nothing amount+currency per the AI-4726 money model; never summed cross-currency). Null when nothing won recorded a priced outcome.

statedBudget
object | null
required

The buyer's stated budget range. Surfaced at the exchange level so a lost exchange still shows the demand it represented (the AI-4726 lost-demand visibility).

ledBy
enum<string> | null
required
Available options:
agent,
human
grade
enum<string> | null
required
Available options:
A,
B,
C,
D,
F
feedback
string | null
required
receivedAt
string
required
respondedAt
string | null
required
grouping
object
required
passes
object[]
required