← oblique.markets · all endpoints
Use when an agent needs reprice regret. Returns Seller-side repricing report from daily x402 Bazaar snapshot history for one listing (resource_url) or every listing paid to one address (seller_payto, 25 per page) over a 7–90 day window: price change points, each repricing event with 30d calls and payers before and after, a per-event USDC revenue counterfactual on observed volume (regret_usdc), a one-line verdict, peer medians, an evidence hash; one observed price returns no_repricing_observed. $
| Price | $0.01 per call (10000 atomic USDC, scheme exact) |
|---|---|
| Category | market-data |
| Rails | x402 · USDC on Base (eip155:8453) and Solana · MPP pathUSD on Tempo |
| Canonical URL | https://api.oblique.markets/api/v1/paid/reprice-regret |
curl -i https://api.oblique.markets/api/v1/paid/reprice-regret # → HTTP 402 with the exact payment requirements; pay, then retry with PAYMENT-SIGNATURE (x402) or Authorization: Payment (MPP)
{
"type": "object",
"additionalProperties": false,
"description": "Exactly one of resource_url or seller_payto is required.",
"examples": [
{
"resource_url": "https://x402.shizu.me/crypto"
}
],
"properties": {
"resource_url": {
"type": "string",
"description": "One listing: the resource URL exactly as the x402 Bazaar reports it (http/https). Mutually exclusive with seller_payto."
},
"seller_payto": {
"type": "string",
"description": "All listings paid to this address (the payTo the Bazaar reports); up to 25 per page with a cursor. Mutually exclusive with resource_url."
},
"window_days": {
"type": "integer",
"minimum": 7,
"maximum": 90,
"default": 30,
"description": "How many snapshot days back from the latest snapshot to replay (7–90, default 30)."
},
"network": {
"type": "string",
"description": "Optional CAIP-2 network filter, e.g. 'eip155:8453' or 'solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdpKuc147dw2N9d'."
},
"cursor": {
"type": "string",
"description": "Opaque paging cursor from a previous seller_payto response."
}
}
}{
"resource_url": "https://x402.shizu.me/crypto",
"service_name": "Crypto Spot Price",
"seller_payto": "0x217e5Fe265EB78b29067bF8324ef03a7D8e167C4",
"networks": [
"eip155:8453"
],
"status": "repricing_observed",
"window": {
"days": 30,
"from": "2026-08-09",
"to": "2026-09-07"
},
"snapshot_range": {
"first": "2026-08-09",
"last": "2026-09-07",
"days": 30,
"observations": 30
},
"still_listed": true,
"price_history": [
{
"snap_date": "2026-08-09",
"amount_atomic": 3000,
"network": "eip155:8453",
"payers_30d": 8,
"calls_30d": 61
},
{
"snap_date": "2026-08-11",
"amount_atomic": 4000,
"network": "eip155:8453",
"payers_30d": 9,
"calls_30d": 74
},
{
"snap_date": "2026-08-18",
"amount_atomic": 5000,
"network": "eip155:8453",
"payers_30d": 9,
"calls_30d": 88
},
{
"snap_date": "2026-08-23",
"amount_atomic": 6000,
"network": "eip155:8453",
"payers_30d": 10,
"calls_30d": 191
},
{
"snap_date": "2026-08-30",
"amount_atomic": 7000,
"network": "eip155:8453",
"payers_30d": 8,
"calls_30d": 230
}
],
"repricing_events": [
{
"network": "eip155:8453",
"change_date": "2026-08-30",
"before_price": 6000,
"after_price": 7000,
"before_price_usdc": 0.006,
"after_price_usdc": 0.007,
"ratio": 1.1667,
"before": {
"snap_date": "2026-08-29",
"payers_30d": 8,
"calls_30d": 230
},
"after": {
"snap_date": "2026-09-07",
"payers_30d": 8,
"calls_30d": 211
},
"calls_30d_delta": -19,
"payers_30d_delta": 0,
"counterfactual": {
"calls_30d": 211,
"revenue_at_new_price_usdc": 1.477,
"revenue_at_old_price_usdc": 1.266,
"regret_usdc": -0.211,
"assumption": "volume assumed unchanged: both revenues use the calls_30d observed at the new price"
},
"verdict": "Raised 6000 → 7000 atomic ($0.006 → $0.007) on 2026-08-30; on the 211 calls_30d observed at the new price by 2026-09-07 the new price earns $1.477 versus $1.266 at the old price (regret -$0.211): the reprice earned more on unchanged volume; calls_30d moved 230 → 211 (-19) and payers_30d 8 → 8 (+0) across it."
}
],
"regret_total_usdc": -0.211,
"peers": {
"tag_or_category": "crypto",
"median_amount_atomic": 5000,
"median_payers_30d": 1,
"sample_size": 12,
"excludes_self": true
},
"evidence_hash": "sha256:0000000000000000000000000000000000000000000000000000000000000000",
"assumptions": [
"calls_30d and payers_30d are Bazaar-reported trailing 30-day counts, read from daily snapshots",
"before readings come from the last snapshot at the old price; after readings from the last snapshot at which the new price still held",
"volume assumed unchanged: both revenues use the calls_30d observed at the new price",
"no demand elasticity is inferred beyond the observed snapshots; a change before the window is not an event"
],
"generated_at": "2026-09-07T12:00:00.000Z"
}Worked TypeScript/Python clients and MCP configs: oblique-markets/oblique-examples · Agent Skills: oblique-markets/skills
Pay per call with x402 (USDC on Base or Solana) or MPP (pathUSD on Tempo). No accounts. Machine doors: /.well-known/x402.json · /openapi.json · /llms-full.txt · MCP · humans: remote.observer