Before you pay an x402 endpoint you have never called, buy what we observed when WE called
Before you pay an x402 endpoint you have never called, buy what we observed when WE called it: the outcome of our own unpaid probe, when we ran it, whether it answered a correct 402 with readable payment terms, and whether it publishes a call spec you can build a request from. Never probed returns observed:false — an honest unknown, never an invented uptime figure. Optional ML-DSA-65 attestation. If we hold no record of the URL at all, you are not charged.
6000 (raw units)
price
1
calls / 30d
1
unique payers
2026-08-22
updated
Provider
animica.dev · discovered, not yet claimed by its owner
Payment (x402 accepts[])
[
{
"scheme": "exact",
"network": "eip155:8453",
"payTo": "0x5D17c40FD6b119dc6006C4Ab3C20a917FCaB2aCD",
"asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
"amount": "6000",
"maxTimeoutSeconds": 60
},
{
"scheme": "exact",
"network": "animica:1",
"payTo": "anim1zqpsmegc0qcvzjfukm89xs0zeu3eqyyyel7kelehuszvwfarqypky2gr946ga",
"asset": "ANM",
"amount": "71270193221",
"maxTimeoutSeconds": 60
}
]Output schema
{
"animica": {
"catalog": "https://animica.dev/.well-known/x402",
"content_type": "application/json",
"currency": "USDC",
"description": "Before you pay an x402 endpoint you have never called, buy what we observed when WE called it: the outcome of our own unpaid probe, when we ran it, whether it answered a correct 402 with readable payment terms, and whether it publishes a call spec you can build a request from. Never probed returns observed:false — an honest unknown, never an invented uptime figure. Optional ML-DSA-65 attestation. If we hold no record of the URL at all, you are not charged.",
"documentation": "https://animica.dev/x402#product-market_reliability",
"name": "x402 endpoint reliability — what we observed",
"openapi": "https://animica.dev/x402/openapi.json",
"price": "0.006000",
"product": "market_reliability",
"provider": "Animica",
"terms": {
"amount_atomic": "6000",
"asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
"chain_id": 8453,
"network": "eip155:8453",
"pay_to": "0x5D17c40FD6b119dc6006C4Ab3C20a917FCaB2aCD",
"scheme": "exact"
},
"x402_version": 2
},
"bazaar": {
"discoverable": true,
"info": {
"input": {
"method": "POST",
"type": "http"
},
"output": {
"type": "json"
}
},
"schema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"input": {
"properties": {
"body": {
"properties": {
"attest": {
"description": "return the observation inside an ML-DSA-65 signed envelope (scheme 4099) bound to an Animica chain height, verifiable offline (default false). If it cannot be produced, the call fails and you are not charged.",
"type": "boolean"
},
"resource": {
"description": "the absolute http(s) URL of the x402 endpoint to report on, e.g. https://api.example.com/x402/thing",
"type": "string"
}
},
"required": [
"resource"
],
"type": "object"
},
"method": {
"enum": [
"POST"
],
"type": "string"
},
"queryParams": {
"properties": {
"attest": {
"description": "same as body.attest — pass attest=1",
"type": "string"
},
"resource": {
"description": "same as body.resource, for GET callers",
"type": "string"
},
"url": {
"description": "alias of resource",
"type": "string"
}
},
"type": "object"
},
"type": {
"const": "http",
"type": "string"
}
},
"required": [
"type",
"method"
],
"type": "object"
},
"output": {
"properties": {
"example": {},
"type": {
"type": "string"
}
},
"required": [
"type"
],
"type": "object"
}
},
"required": [
"input"
],
"type": "object"
}
},
"discovery": {
"discoverable": true,
"info": {
"input": {
"bodyFields": {
"attest": {
"description": "return the observation inside an ML-DSA-65 signed envelope (scheme 4099) bound to an Animica chain height, verifiable offline (default false). If it cannot be produced, the call fails and you are not charged.",
"required": false,
"type": "boolean"
},
"resource": {
"description": "the absolute http(s) URL of the x402 endpoint to report on, e.g. https://api.example.com/x402/thing",
"required": true,
"type": "string"
}
},
"bodyType": "json",
"method": "POST",
"queryParams": {
"attest": {
"description": "same as body.attest — pass attest=1",
"type": "string"
},
"resource": {
"description": "same as body.resource, for GET callers",
"type": "string"
},
"url": {
"description": "alias of resource",
"type": "string"
}
},
"type": "http"
},
"output": {
"description": "resource, key (the canonical form we index on), observed, observation {outcome, verdict, serves_x402, means, buyer_action, http_status, method, latency_ms, error, probed_at, age_seconds, fresh, stale_after_seconds, probes_recorded}, payment_terms {price_published_in_challenge, price_observed_usd, note}, uptime {available:false, success_rate:null, why_not_estimated}, call_spec {known, published, source, method, has_input_schema, spec}, directory {listed (null when the harvest was unreadable), listed_unknown_reason, lookup_available, price_usd, price_source, network, asset, pay_to, demand, reported_by_directory}, coverage {directory_services, harvest_age_seconds}, inference {used:false}, chain_anchor? (attest only), attestation? (ML-DSA-65 envelope), generated_at, took_ms",
"type": "json"
}
}
}
}Use it
curl
curl "https://animica.dev/x402/market/reliability" # -> 402 Payment Required, accepts[] lists how to pay # retry with a PAYMENT-SIGNATURE (or PAYMENT header) once paid
JavaScript
const res = await fetch("https://animica.dev/x402/market/reliability");
if (res.status === 402) {
const { accepts } = await res.json();
// pay one of accepts[] via an x402 client, then retry with the payment header
}Python
import httpx
res = httpx.get("https://animica.dev/x402/market/reliability")
if res.status_code == 402:
accepts = res.json()["accepts"]
# pay one of accepts[] via an x402 client, then retry with the payment headerMachine-readable
Everything on this page is also available as clean JSON at /resources/7539.json, and this resource appears in /discovery/resources and /discovery/search.