Use when an agent needs reprice regret
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, e…
by api.oblique.markets · discovered, not yet claimed by its owner · updated 2026-10-08
Mirrored from Coinbase's public x402 Bazaar. The description is the provider's own text and has not been reviewed here; the payment requirements are copied as published.
What it does
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. $
Tags: reprice · regret · market-data · bazaar
Call contract
- Method
- POST
- Input
- json
- Output
- json
- Last paid call
- 2026-10-08
{
"resource_url": "https://x402.shizu.me/crypto"
}{
"assumptions": [
"calls_30d and payers_30d are Bazaar-rep…"
],
"evidence_hash": "sha256:00000000000000000000000000000000…",
"generated_at": "2026-09-07T12:00:00.000Z",
"networks": [
"eip155:8453"
],
"peers": {
"excludes_self": true,
"median_amount_atomic": 5000,
"median_payers_30d": 1,
"sample_size": 12,
"tag_or_category": "crypto"
},
"price_history": [
{
"amount_atomic": 3000,
"calls_30d": 61,
"network": "eip155:8453",
"payers_30d": 8,
"snap_date": "2026-08-09"
}
],
"regret_total_usdc": -0.211,
"repricing_events": [
{
"after": {
"calls_30d": 211,
"payers_30d": 8,
"snap_date": "2026-09-07"
},
"after_price": 7000,
"after_price_usdc": 0.007,
"before": {
"calls_30d": 230,
"payers_30d": 8,
"snap_date": "2026-08-29"
},
"before_price": 6000,
"before_price_usdc": 0.006,
"calls_30d_delta": -19,
"change_date": "2026-08-30",
"counterfactual": {
"assumption": "volume assumed unchanged: both revenues…",
"calls_30d": 211,
"regret_usdc": -0.211,
"revenue_at_new_price_usdc": 1.477,
"revenue_at_old_price_usdc": 1.266
},
"network": "eip155:8453",
"payers_30d_delta": 0,
"ratio": 1.1667,
"verdict": "Raised 6000 → 7000 atomic ($0.006 → $0.…"
}
],
"resource_url": "https://x402.shizu.me/crypto",
"seller_payto": "0x217e5Fe265EB78b29067bF8324ef03a7D8e16…",
"service_name": "Crypto Spot Price",
"snapshot_range": {
"days": 30,
"first": "2026-08-09",
"last": "2026-09-07",
"observations": 30
},
"status": "repricing_observed",
"still_listed": true,
"window": {
"days": 30,
"from": "2026-08-09",
"to": "2026-09-07"
}
}Use with an agent
- Discover. Agents find this listing with
GET https://bazaar.saylorinnovations.com/discovery/search?query=…, the MCP toolsearch_resources, or/discovery/resources. - Inspect. Fetch
/resources/25997.jsonfor the price and payment options. - Pay. Call
GET https://api.oblique.markets/api/v1/paid/reprice-regret. The provider answers402with its payment requirements. An x402 client signs one of the options below and retries withPAYMENT-SIGNATURE. - Execute. The provider returns
200with the data. Agent Bazaar is not in the request path and never sees your payment.
For humans
You don't need an account or an API key; you need a wallet holding a small amount of USDC on Base, Solana, and an x402-capable client (see the examples below). Call the endpoint unpaid first to see exactly what it asks for.
Pricing & payment
- Price
- $0.01 / request
- Protocol
- x402 v2
- Auth
- No account or API key. Pay per request.
- Networks
- Base, Solana
- Demand
- 4 calls · 4 unique payers in 30d (public x402 Bazaar data)
x402 payment requirements
| Scheme | Network | Asset | Amount | Pay to | Timeout |
|---|---|---|---|---|---|
| exact | Base eip155:8453 | USDC | $0.01 | 0x970007590aCC5C938cd51345B17AF51B1B40D3Ab | 60s |
| exact | Solana solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp | USDC | $0.01 | GYyTRmt317JafPHXPnM54Fsvsma5GnS9wm6qGMqaykdS | 60s |
accepts[] (raw JSON)
[
{
"scheme": "exact",
"network": "eip155:8453",
"payTo": "0x970007590aCC5C938cd51345B17AF51B1B40D3Ab",
"asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
"amount": "10000",
"amountUsd": 0.01,
"maxTimeoutSeconds": 60
},
{
"scheme": "exact",
"network": "solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp",
"payTo": "GYyTRmt317JafPHXPnM54Fsvsma5GnS9wm6qGMqaykdS",
"asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
"amount": "10000",
"amountUsd": 0.01,
"maxTimeoutSeconds": 60
}
]Schemas
Output schema (JSON Schema)
{
"properties": {
"assumptions": {
"items": {
"type": "string"
},
"type": "array"
},
"evidence_hash": {
"type": "string"
},
"generated_at": {
"type": "string"
},
"networks": {
"items": {
"type": "string"
},
"type": "array"
},
"peers": {
"properties": {
"excludes_self": {
"type": "boolean"
},
"median_amount_atomic": {
"type": "integer"
},
"median_payers_30d": {
"type": "integer"
},
"sample_size": {
"type": "integer"
},
"tag_or_category": {
"type": "string"
}
},
"type": "object"
},
"price_history": {
"items": {
"properties": {
"amount_atomic": {
"type": "integer"
},
"calls_30d": {
"type": "integer"
},
"network": {
"type": "string"
},
"payers_30d": {
"type": "integer"
},
"snap_date": {
"type": "string"
}
},
"type": "object"
},
"type": "array"
},
"regret_total_usdc": {
"type": "number"
},
"repricing_events": {
"items": {
"properties": {
"after": {
"type": "object"
},
"after_price": {
"type": "integer"
},
"after_price_usdc": {
"type": "number"
},
"before": {
"type": "object"
},
"before_price": {
"type": "integer"
},
"before_price_usdc": {
"type": "number"
},
"calls_30d_delta": {
"type": "integer"
},
"change_date": {
"type": "string"
},
"counterfactual": {
"type": "object"
},
"network": {
"type": "string"
},
"payers_30d_delta": {
"type": "integer"
},
"ratio": {
"type": "number"
},
"verdict": {
"type": "string"
}
},
"type": "object"
},
"type": "array"
},
"resource_url": {
"type": "string"
},
"seller_payto": {
"type": "string"
},
"service_name": {
"type": "string"
},
"snapshot_range": {
"properties": {
"days": {
"type": "integer"
},
"first": {
"type": "string"
},
"last": {
"type": "string"
},
"observations": {
"type": "integer"
}
},
"type": "object"
},
"status": {
"type": "string"
},
"still_listed": {
"type": "boolean"
},
"window": {
"properties": {
"days": {
"type": "integer"
},
"from": {
"type": "string"
},
"to": {
"type": "string"
}
},
"type": "object"
}
},
"type": "object"
}Example shape — generated from the schema, not a captured live response
{
"assumptions": [
"string"
],
"evidence_hash": "string",
"generated_at": "string",
"networks": [
"string"
],
"peers": {
"excludes_self": true,
"median_amount_atomic": 0,
"median_payers_30d": 0,
"sample_size": 0,
"tag_or_category": "string"
},
"price_history": [
{
"amount_atomic": 0,
"calls_30d": 0,
"network": "string",
"payers_30d": 0,
"snap_date": "string"
}
],
"regret_total_usdc": 0,
"repricing_events": [
{
"after": {},
"after_price": 0,
"after_price_usdc": 0,
"before": {},
"before_price": 0,
"before_price_usdc": 0,
"calls_30d_delta": 0,
"change_date": "string",
"counterfactual": {},
"network": "string",
"payers_30d_delta": 0,
"ratio": 0,
"verdict": "string"
}
],
"resource_url": "string",
"seller_payto": "string",
"service_name": "string",
"snapshot_range": {
"days": 0,
"first": "string",
"last": "string",
"observations": 0
},
"status": "string",
"still_listed": true,
"window": {
"days": 0,
"from": "string",
"to": "string"
}
}Examples
curl -X POST 'https://api.oblique.markets/api/v1/paid/reprice-regret' -H 'Content-Type: application/json' --data '{"resource_url":"https://x402.shizu.me/crypto"}'
# -> 402 Payment Required; read PAYMENT-REQUIRED
# retry the identical request with PAYMENT-SIGNATUREconst res = await fetch("https://api.oblique.markets/api/v1/paid/reprice-regret", {
"method": "POST",
"headers": {
"content-type": "application/json"
},
"body": "{\"resource_url\":\"https://x402.shizu.me/crypto\"}"
});
if (res.status === 402) {
const { accepts } = await res.json();
// pay one of accepts[] via an x402 client, then retry with the payment header
}import httpx
import json
res = httpx.request("POST", "https://api.oblique.markets/api/v1/paid/reprice-regret", json=json.loads("{\"resource_url\":\"https://x402.shizu.me/crypto\"}"))
if res.status_code == 402:
accepts = res.json()["accepts"]
# pay one of accepts[] via an x402 client, then retry with the payment headerDetails
- Provider
- api.oblique.markets
- Endpoint
- https://api.oblique.markets/api/v1/paid/reprice-regret
- Machine-readable
/resources/25997.json