{
  "vertical": "trade",
  "title": "Trade — reference & computation for auction houses and galleries",
  "essence": "Artlogic manages; artbitrage speaks. No keys, no database, no funds, no take-rate.",
  "disclosure": {
    "informational_only": true,
    "legal_advice": false,
    "note": "Reference arithmetic over cited public schedules. Confirm against the primary source before invoicing. Never legal, tax, or valuation advice."
  },
  "endpoints": [
    {
      "method": "GET",
      "path": "/api/trade",
      "desc": "This directory"
    },
    {
      "method": "GET",
      "path": "/api/trade/fees",
      "desc": "Buyer's-premium schedules with effective dates and source citations",
      "params": "house, location, category, as_of"
    },
    {
      "method": "GET",
      "path": "/api/trade/fees/compute",
      "desc": "All-in buyer cost: marginal band math, line items, schedule_applied, explicit not_included",
      "params": "hammer, currency, house, location, category, as_of, display_in"
    },
    {
      "method": "GET",
      "path": "/api/trade/rates",
      "desc": "The baked FX MoneyFacts behind display_in — ECB reference rates as cited facts (source, recompute recipe, staleness), from the MONEYWORLD info layer",
      "params": ""
    },
    {
      "method": "GET",
      "path": "/api/trade/arr",
      "desc": "Artist's Resale Right royalty: cumulative bands, cap status, liable society",
      "params": "price, currency=EUR, sale_date, artist_death_year, jurisdiction"
    },
    {
      "method": "GET",
      "path": "/api/trade/thresholds",
      "desc": "Dated compliance constants (AML, export, import, VAT) with source_url per entry",
      "params": "jurisdiction, kind"
    },
    {
      "method": "GET",
      "path": "/api/trade/gates",
      "desc": "Does this object cross a licensing/compliance gate — one call, each gate citing its regulation",
      "params": "year, value, currency, jurisdiction, materials, category"
    },
    {
      "method": "GET",
      "path": "/api/trade/vocab",
      "desc": "Trade vocabularies: lot lifecycle, settlement status, heading-qualifier ladder, catalogue symbols, gallery availability"
    },
    {
      "method": "GET",
      "path": "/api/trade/vocab/:id",
      "desc": "One vocabulary by id, e.g. /api/trade/vocab/heading-qualifiers"
    },
    {
      "method": "GET",
      "path": "/api/trade/lots",
      "desc": "The frozen artbitrage.lot/1 contract: fields, enums, CSV door documentation"
    },
    {
      "method": "POST",
      "path": "/api/trade/lots",
      "desc": "Validate lot records — application/json (one record) or text/csv (Artlogic-vocabulary fuzzy header mapping, then strict re-validation); echoes normalized records with content_hash; never stores"
    },
    {
      "method": "GET",
      "path": "/api/trade/provenance",
      "desc": "The versioned aam-provenance/1 grammar: punctuation semantics with per-rule verification status"
    },
    {
      "method": "POST",
      "path": "/api/trade/provenance",
      "desc": "Round-trip: {display_string} → parsed artbitrage.provenance-chain/1 events, or {events} → generated display string; never stores"
    },
    {
      "method": "GET",
      "path": "/api/trade/results",
      "desc": "The voluntary results corpus with an honest coverage matrix — thin stated plainly, never fake-full"
    },
    {
      "method": "POST",
      "path": "/api/trade/results",
      "desc": "Validate a results submission (price_basis required — houses publish premium-inclusive), receive an unsigned witness receipt and the pull-request persistence path"
    }
  ]
}