API, TypeScript, and CLI
Get with Receipt
Software asks for an outcome. Receipt handles provider discovery, a signed quote, policy and approval, payment, execution, validation where configured, settlement, and proof.
HTTP API
maxSpend is decimal USD. Response money fields contain a decimal string, ISO currency, and integer minor-unit amount. The response also returns status, result, seller, provider, assurance, validation, transaction ID, and all three Receipt links.
POST /v1/get
Authorization: Bearer <Receipt developer token>
Content-Type: application/json
{
"task": "Receipt runtime capabilities",
"input": { "query": "Receipt runtime capabilities" },
"maxSpend": 0.10,
"deadline": "2026-07-20T18:00:00.000Z",
"validateAs": "delivered",
"dataPolicy": { "dataResidency": "US" },
"projectId": "accelerator-demo",
"clientId": "my-agent",
"workflowRunId": "research-42",
"externalReference": "lead-7",
"idempotencyKey": "research-42-search-1"
}Domain statuses are completed, requires_approval, no_eligible_provider, deadline_unreachable, policy_blocked, provider_failed, and validation_failed. Use dryRun: true for a free quote-only response with no provider request, hold, settlement, or charge.
TypeScript SDK
Use POST /v1/get, the TypeScript client’s receipt.get(...), or receipt get. All three compose the existing Receipt commerce engine.
const outcome = await receipt.get({
task: "Receipt runtime capabilities",
input: { query: "Receipt runtime capabilities" },
maxSpend: 0.10,
validateAs: "delivered",
projectId: "accelerator-demo",
workflowRunId: "research-42",
idempotencyKey: "research-42-search-1"
});Install @receiptprotocol/sdk and create a client with one Receipt developer access token. HTTP and authentication failures throw a typed ReceiptError; business outcomes remain in the response’s status union.
Safe replay
Every request carries one idempotency key. Exact replay returns the original transaction without another provider request, hold, validation, settlement, or charge.
Honest assurance
Get reports Delivered unless a bound validator actually ran and passed. A provider response alone is never described as Validated.
CLI
receipt get "Receipt runtime capabilities" \
--input-json '{"query":"Receipt runtime capabilities"}' \
--max-usd 0.10 \
--idempotency-key research-42-search-1 \
--jsonAdd --dry-run to stop after the free signed quote. No provider is contacted and no funds are reserved.
Current boundaries
The first demonstrable path uses existing low-cost web-search inventory. This release does not claim multi-provider equivalence, automatic fallback, or validated web search unless those conditions are present in the returned transaction evidence.
