{"openapi":"3.1.0","info":{"title":"Permit Verdicts API","version":"0.5.0","description":"Decision-ready verdicts, paid per call via x402 with no account or API key. Two engines: (1) a settlement oracle that resolves crypto price events across independent venues, and (2) address-level building-permit and municipal-risk intelligence for 7 US cities.","contact":{"name":"Permit Verdicts","email":"support@permitverdict.com"},"x-guidance":"Use the settlement oracle when you need to know whether a crypto price condition actually occurred — e.g. resolving a prediction market, verifying a conditional order trigger, or settling a bet. It queries Hyperliquid, Coinbase and Kraken independently (Binance blocks this host's region and is reported unavailable rather than counted) and returns YES/NO/DISPUTED with per-venue evidence, so it answers questions a single price feed cannot. Use the permit endpoints when you need to know what a US property has on record with its city: permit history, open permits, code violations, and unpaid municipal penalties. Free endpoints exist for both engines — call those first to check coverage before paying."},"servers":[{"url":"https://permitverdict.com"}],"x-payment-info":{"protocol":"x402","version":2,"network":"base","asset":"USDC","payTo":"0xE11d7Ff8c7573b15F9F6F6d4961Afb4109d3ddA5","accepts":["x402"],"no_account_required":true,"note":"Payment is authentication. No signup, no API key. Prices below are in decimal USD; the runtime 402 challenge quotes atomic units."},"paths":{"/v1/oracle/assets":{"get":{"operationId":"listSettlementAssets","summary":"Settlement oracle coverage (FREE)","description":"Free. Which assets, venues, operators and modes the settlement oracle supports, plus the price of each paid tier.","security":[],"responses":{"200":{"description":"Coverage document"}}}},"/v1/oracle/venues":{"get":{"operationId":"getVenueHealth","summary":"Which price venues are responding right now (FREE)","description":"Free. Live health of every configured venue. Call this before paying to see how many independent sources will back a verdict.","security":[],"parameters":[{"name":"asset","in":"query","schema":{"type":"string","default":"BTC"}}],"responses":{"200":{"description":"Venue health"}}}},"/v1/oracle/spot":{"get":{"operationId":"getCrossVenueSpot","summary":"Cross-venue spot price with spread","description":"Paid $0.01. Median price across independent venues plus the spread in basis points. A wide spread means venues disagree and any settlement in that range is contestable.","x-payment-info":{"protocol":"x402","price_usd":0.01,"asset":"USDC","network":"base"},"parameters":[{"name":"asset","in":"query","required":true,"schema":{"type":"string"},"example":"BTC"}],"responses":{"200":{"description":"Cross-venue price"},"402":{"description":"Payment required (x402 challenge)"}}}},"/v1/oracle/resolve":{"get":{"operationId":"resolvePriceEvent","summary":"Settlement verdict for a crypto price event","description":"Paid $0.05. Did the asset trade or close above/below a threshold during a window? Returns YES / NO / DISPUTED / UNRESOLVED with per-venue evidence and stated confidence. mode=touch counts any intrabar print; mode=close counts only candle closes — they give different answers and that difference is the most common settlement dispute.","x-payment-info":{"protocol":"x402","price_usd":0.05,"asset":"USDC","network":"base"},"parameters":[{"name":"asset","in":"query","required":true,"schema":{"type":"string"},"example":"BTC"},{"name":"operator","in":"query","required":true,"schema":{"type":"string","enum":["above","at_or_above","below","at_or_below"]}},{"name":"threshold","in":"query","required":true,"schema":{"type":"number"},"example":100000},{"name":"from","in":"query","schema":{"type":"string","format":"date-time"}},{"name":"to","in":"query","schema":{"type":"string","format":"date-time"}},{"name":"mode","in":"query","schema":{"type":"string","enum":["touch","close"],"default":"touch"}}],"responses":{"200":{"description":"Settlement verdict with evidence"},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402 challenge)"}}}},"/v1/oracle/attest":{"get":{"operationId":"attestPriceEvent","summary":"Attested settlement record with signed decision_id","description":"Paid $0.25. Everything /resolve returns plus a signed decision_id and a SHA-256 integrity hash over the verdict and evidence — a citable artifact for disputes and audit trails. The decision_id is self-contained and signed by the payment wallet, so a counterparty can authenticate it offline and re-check it later without any stored state on our side.","x-payment-info":{"protocol":"x402","price_usd":0.25,"asset":"USDC","network":"base"},"parameters":[{"name":"asset","in":"query","required":true,"schema":{"type":"string"}},{"name":"operator","in":"query","required":true,"schema":{"type":"string"}},{"name":"threshold","in":"query","required":true,"schema":{"type":"number"}},{"name":"from","in":"query","schema":{"type":"string","format":"date-time"}},{"name":"to","in":"query","schema":{"type":"string","format":"date-time"}},{"name":"mode","in":"query","schema":{"type":"string","enum":["touch","close"]}}],"responses":{"200":{"description":"Attested settlement record"},"402":{"description":"Payment required (x402 challenge)"}}}},"/v1/oracle/decode":{"get":{"operationId":"decodeDecisionId","summary":"Authenticate a decision_id (FREE)","description":"Free. Read what a decision_id claims and check whether Permit Verdict issued it. The id is signed by the wallet that receives payment, so forgery and after-the-fact editing are both detectable. Tells you the record is genuine; does not tell you the verdict is still correct — use /v1/oracle/verify for that.","parameters":[{"name":"decision_id","in":"query","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Decoded claim plus authenticity result"},"400":{"description":"Unreadable decision_id"}}}},"/v1/oracle/verify":{"get":{"operationId":"verifyDecision","summary":"Does an attested settlement still hold?","description":"Paid $0.02. Re-resolves an attested settlement against the price venues right now and returns CONFIRMED, CHANGED or INDETERMINATE. Exchanges revise candle history and outages end, so an attestation proves what was said while only a fresh resolution proves it is still true. Call this on any decision_id you are about to rely on.","x-payment-info":{"protocol":"x402","price_usd":0.02,"asset":"USDC","network":"base"},"parameters":[{"name":"decision_id","in":"query","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Verification result with fresh evidence"},"400":{"description":"Unreadable decision_id"},"402":{"description":"Payment required (x402 challenge)"}}}},"/v1/address/{jurisdiction}/verdict":{"get":{"operationId":"getPermitVerdict","summary":"Permit verdict for a street address","description":"Paid: $2.00 USDC on base via x402. Returns HTTP 402 with payment requirements until paid.","x-payment-info":{"protocol":"x402","price_usd":2,"asset":"USDC","network":"base"},"parameters":[{"name":"jurisdiction","in":"path","required":true,"schema":{"type":"string","enum":["san_francisco","seattle","austin","nyc","chicago","los_angeles","new_orleans"]}},{"name":"address","in":"query","required":true,"schema":{"type":"string"},"example":"760 14th St"}],"responses":{"200":{"description":"Verdict with supporting permits","content":{"application/json":{"schema":{"type":"object","properties":{"jurisdiction":{"type":"string"},"verdict":{"type":"string"},"signals":{"type":"array","items":{"type":"string"}},"stats":{"type":"object"},"permits":{"type":"array","items":{"type":"object"}}}}}}},"402":{"description":"Payment required (x402 challenge)"},"404":{"description":"Unknown jurisdiction"},"502":{"description":"Upstream city portal error"}}}},"/v1/address/{jurisdiction}/activity":{"get":{"operationId":"checkPermitActivity","summary":"Permit activity summary for an address (FREE)","description":"Free. Counts and dates only: permits on record, open permits, permits in the last 5 years, last activity date. No permit detail and no verdict — those are the paid endpoint.","security":[],"parameters":[{"name":"jurisdiction","in":"path","required":true,"schema":{"type":"string","enum":["san_francisco","seattle","austin","nyc","chicago","los_angeles","new_orleans"]}},{"name":"address","in":"query","required":true,"schema":{"type":"string"},"example":"760 14th St"}],"responses":{"200":{"description":"Activity summary"},"404":{"description":"Unknown jurisdiction"}}}},"/v1/leads/{jurisdiction}":{"get":{"operationId":"findActiveProjects","summary":"Recently permitted construction projects (FREE preview, 5 results)","security":[],"parameters":[{"name":"jurisdiction","in":"path","required":true,"schema":{"type":"string","enum":["san_francisco","seattle","austin","nyc","chicago","los_angeles","new_orleans"]}},{"name":"feed","in":"query","schema":{"type":"string","enum":["contractor","investor"]}},{"name":"days","in":"query","schema":{"type":"integer","default":30}},{"name":"min_cost","in":"query","schema":{"type":"integer","default":50000}},{"name":"max_cost","in":"query","schema":{"type":"integer","default":0}}],"responses":{"200":{"description":"Lead preview"},"404":{"description":"Unknown jurisdiction"}}}},"/":{"get":{"operationId":"getServiceInfo","summary":"Service description (free)","security":[],"responses":{"200":{"description":"OK"}}}},"/health":{"get":{"operationId":"getHealth","summary":"Health check (free)","security":[],"responses":{"200":{"description":"OK"}}}}}}