{"$schema":"https://json-schema.org/draft/2020-12/schema","count":26,"items":[{"name":"error-envelope","endpoint":"any 4xx","description":"Every 4xx/5xx JSON body from /api/* carries depotError {code, message, hint, status, docs} (also sent as the X-Depot-Error-Code header). Legacy fields are kept for compatibility: older routes send error (string) + errorCode; newer routes send error {code, message, hint}. Read depotError.","href":"/api/schemas/error-envelope"},{"name":"search","endpoint":"/api/search","description":"GET /api/search?q=","href":"/api/schemas/search"},{"name":"compare","endpoint":"/api/compare","description":"GET /api/compare?providers=a,b&jtbd=","href":"/api/schemas/compare"},{"name":"bundle","endpoint":"/api/bundle","description":"GET /api/bundle?jtbd=a,b | ?class= (full mode)","href":"/api/schemas/bundle"},{"name":"bundle-compact","endpoint":"/api/bundle","description":"GET /api/bundle?…&compact=1","href":"/api/schemas/bundle-compact"},{"name":"stack","endpoint":"/api/stack","description":"GET /api/stack?task= or POST /api/stack {task}","href":"/api/schemas/stack"},{"name":"answer","endpoint":"/api/answer","description":"GET /api/answer?task=&host=&framework=&existing=&volume=&sender= — front door: one ≤1 KB part per job","href":"/api/schemas/answer"},{"name":"answerCompact","endpoint":"/api/answer?format=compact&task=transactional+email","description":"GET /api/answer?task=&format=compact[&maxMonthly=&maxPriceAgeDays=&pricing=subscription&noUsageBilling=1] — whole response ≤ 2 KB","href":"/api/schemas/answerCompact"},{"name":"actionable","endpoint":"/api/actionable?jtbd=transactional-email","description":"GET /api/actionable?jtbd=&maxMonthly=&maxPriceAgeDays=&volume=&pricing=subscription&noUsageBilling=1 — inputs for an agent's own spend policy","href":"/api/schemas/actionable"},{"name":"packs","endpoint":"/api/packs","description":"GET /api/packs | ?id= | ?job= — unscored domain packs (sourced options, pick null)","href":"/api/schemas/packs"},{"name":"changes","endpoint":"/api/changes","description":"GET /api/changes?since=YYYY-MM-DD","href":"/api/schemas/changes"},{"name":"coverage","endpoint":"/api/coverage","description":"GET /api/coverage (?q=<task> adds per-clause coverage; ?domain=<pack or category> adds that domain's jobs)","href":"/api/schemas/coverage"},{"name":"decide","endpoint":"/api/decide","description":"GET /api/decide?jtbd= (top-level shape)","href":"/api/schemas/decide"},{"name":"freshness","endpoint":"/api/freshness","description":"GET /api/freshness?limit=","href":"/api/schemas/freshness"},{"name":"quote","endpoint":"/api/quote","description":"GET /api/quote?jtbd= (top-level shape)","href":"/api/schemas/quote"},{"name":"kit","endpoint":"/api/kit","description":"GET /api/kit?class= (top-level shape)","href":"/api/schemas/kit"},{"name":"feedback-request","endpoint":"/api/feedback","description":"POST /api/feedback body","href":"/api/schemas/feedback-request"},{"name":"correction-request","endpoint":"/api/corrections","description":"POST /api/corrections body (claim/correct a listing). Stored as pending; only a human approves; never changes a score.","href":"/api/schemas/correction-request"},{"name":"insight-request","endpoint":"/api/insights","description":"POST /api/insights body","href":"/api/schemas/insight-request"},{"name":"benchmark-run-request","endpoint":"/api/benchmark/runs","description":"POST /api/benchmark/runs body (official path: provenance proctor_scored|automated plus tracesMeta or trace.messages; omit selfScores)","href":"/api/schemas/benchmark-run-request"},{"name":"open-price-row","endpoint":"Depot Open Pricing & Outcome Schema v0.1 (MIT)","description":"One sourced price for one SKU of one provider, in one unit, as stated on an official public page on a given date. Units are never converted: a row states what the page states. Extra properties are allowed (prefix your own with x-).","href":"/api/schemas/open-price-row","id":"urn:depot-open-schema:v0.1:price-row","license":"MIT"},{"name":"open-price-observation","endpoint":"Depot Open Pricing & Outcome Schema v0.1 (MIT)","description":"What was observed for one series over consecutive runs that gave an identical answer. Series kinds: catalog (the amount the dataset stored), source_recheck (what the official page itself said), http (status of an official source page). A new answer starts a new segment; past segments are never edited (append-only).","href":"/api/schemas/open-price-observation","id":"urn:depot-open-schema:v0.1:price-observation","license":"MIT"},{"name":"open-price-event","endpoint":"Depot Open Pricing & Outcome Schema v0.1 (MIT)","description":"A dated change in a price series. source_price_changed = the amount the official page states moved (observed); amount_changed = the dataset was re-priced by a reviewer; first_seen / removed / restored / unit_changed / source_url_changed describe the row itself. Events are append-only.","href":"/api/schemas/open-price-event","id":"urn:depot-open-schema:v0.1:price-event","license":"MIT"},{"name":"open-outcome-receipt","endpoint":"Depot Open Pricing & Outcome Schema v0.1 (MIT)","description":"An agent's self-report of one outcome: which job, which provider, whether it succeeded, what it cost (with the unit) and how long it took, plus an optional evidence reference. Countersign-compatible: `agent` is the claimant, and `evidence.countersign` carries the exact `cs cite <claim_id>` block so the reader can re-check the claim. Receipts are observed self-reports, not measurements by the receiver. Never include prompts, payloads, secrets or personal data. v0.2 (backward compatible: every valid v0.1 receipt is a valid v0.2 receipt) adds evidenceTier (what the submitter claims; receivers re-derive their own), attestedBy, metric with a time window, an extensions slot for namespaced x- keys, and namespaced ids (e.g. harbor:job/intake) for jobs and providers outside the Depot catalog.","href":"/api/schemas/open-outcome-receipt","id":"urn:depot-open-schema:v0.2:outcome-receipt","license":"MIT"},{"name":"open-provider-price-feed","endpoint":"Depot Open Pricing & Outcome Schema v0.1 (MIT)","description":"A provider's own signed statement of its public list prices. Signature: Ed25519 over the canonical JSON (RFC 8785 JCS rules) of the whole feed with the `signature` member removed, with a key published in the provider's /.well-known/depot-provider.json (provider-well-known schema) or DNS TXT record. A receiver accepts a price only after cross-checking it against the public page at its sourceUrl. A feed never affects rank.","href":"/api/schemas/open-provider-price-feed","id":"urn:depot-open-schema:v0.1:provider-price-feed","license":"MIT"},{"name":"open-provider-well-known","endpoint":"Depot Open Pricing & Outcome Schema v0.1 (MIT)","description":"Served by the provider at https://<domain>/.well-known/depot-provider.json. Proves domain control (the verificationToken issued for a claim) and publishes the Ed25519 public keys that sign the provider's price feed. The same token can instead be published as a DNS TXT record: _depot-verify.<domain> TXT \"depot-verify=<token>\".","href":"/api/schemas/open-provider-well-known","id":"urn:depot-open-schema:v0.1:provider-well-known","license":"MIT"}],"openStandard":{"name":"Depot Open Pricing & Outcome Schema","version":"0.2.0","license":"MIT","docs":"/standard","schemas":["/api/schemas/open-price-row","/api/schemas/open-price-observation","/api/schemas/open-price-event","/api/schemas/open-outcome-receipt","/api/schemas/open-provider-price-feed","/api/schemas/open-provider-well-known"],"note":"MIT-licensed open format for agent price and outcome data. Depot's own data is validated against it on every build gate."},"aliases":{"receipt":"open-outcome-receipt","price-row":"open-price-row","price-observation":"open-price-observation","price-event":"open-price-event","outcome-receipt":"open-outcome-receipt","provider-price-feed":"open-provider-price-feed","provider-well-known":"open-provider-well-known"},"note":"Schemas cover required top-level shape. Extra properties may appear (additive API). Extra fields never change picks or scores."}