x402 List

x402 Protocol Service Directory

Sippar Token Market Data

Data PAYMENT-READY

payment-ready until 2026-09-08

Canonical token market data for a ticker: price, market cap, FDV, liquidity, 24h change and volume with buy/sell split and netflow, launch date, on-chain total supply (Nansen token-screener plus on-chain reads; response includes the required "Powered by Nansen API" attribution). Neutral facts only, no ratings, no predictions, not investment advice.

Pay from $0.05 to $0.50 per request in USDC on Base, settled onchain via the x402 protocol, no signup, no API key needed.

measured since 2026-07-17 (start of our harvest window) · $0.42 all-time · last settled 2026-08-14

BASE URL https://sippar.network WEBSITE https://sippar.network/api/sippar/sell/catalog ENDPOINTS 5 NETWORK Base ASSET USDC MEMBER SINCE 2026-07-18 MONITORED SINCE 2026-07-18

VERDICT

ranking generation 3

solid 77/100 #229 of 257 in Data by measured score

What the score read on this service: status online, 94.5% uptime 30d, 3865ms response p95, x402 compliance 14 of 14, $0.05 price against the category, on-chain traction measured. Each of those is measured, and each is published in full below.

The score comes from our own monitoring, never from reviews, operator claims, or a language model: reliability, x402 compliance, price against the category, a deterministic risk flag, and a small on-chain traction term, weighted by ranking generation 3. It is not placement anyone can buy: the paid verify tier is reported beside it and is not one of its inputs. Every component below stays published and read-only.

It is a score inside Data, and only there: price and speed are scored against the whole category field, every listing in it that carries no danger flag, the scored service included, which here means 257 listings, this one among them. That set is wider than the 257 the position above is counted against, because a listing we have measured too little of to rank still sits in the field the price and the speed are normalized over. The same service in a different field would read differently. The same engine answers GET /api/v1/best, and asked for a different pool (the whole directory, or another filter) it returns a different number for this service under this same ranking generation. Neither is more correct: they answer different questions, and the methodology states which is which.

Bands on the 0 to 100 measured score: strong at 93 and above, solid from 75, mixed from 55, weak below 55. Price and speed are scored against the whole category field, every listing in it that carries no danger flag, the scored service included, so the score places a service in its own field.

ALTERNATIVES IN DATA

Other Data services in this directory, ordered by the same measured score. The figures are ours: 30-day uptime from our own probes, 30-day settlement volume read on-chain (a conservative undercount, and null where we cannot measure it, never a zero).

Ranked alternative x402 services in the same category, with band, measured score, 30-day uptime and 30-day on-chain settlement volume
SERVICE BAND SCORE UPTIME 30D VOL 30D
ThirdMade Shelf strong 99 100% ---
TariffMonkee strong 98 100% ---
AgentToll strong 98 100% ---
Utilia Agent Utilities strong 97 99.9% ---
Japan Transit API strong 97 99.1% ---
5 of 256 other ranked services in Data · see the whole category

ASSESSMENT

updated 4h ago

The parts the verdict above is computed from, each with its proof. Click any chip. Measured values stay read-only; unknown is honest, and an unknown is never counted as a zero.

reliability 94.5%
uptime 24h
97.8%
uptime 7d
96.4%
uptime 30d
94.5%
uptime 90d
95.7%
response p95
3865ms
avg response
1189ms
total checks
2,734

Measured on the unpaid 402 handshake, not the paid call. A service can 402 correctly and still fail after payment.

compliance A (14/14)

14 of 14 x402 conformance checks pass. Full checklist below.

jump to compliance checklist

price $0.05 to $0.50 (p88 in Data)
price (min)
$0.05
price (max)
$0.50
category percentile (min)
p88 in Data
category percentile (max)
p88 in Data
endpoints / prices
5 / 5
model
tiered
stability
100%
risk clean

No deterministic risk flag. Risk fires only on an exact blocklist match, or a reserved-brand name with a mismatched verified payTo. Never from low uptime, a high price, or a model guess.

domain age
188d
registrar
GoDaddy.com, LLC
hosting
custom
domain created
2026-02-23

Identity facts, not a risk score.

traction $0.00 30d · 0 buyers
volume 30d
$0.00
buyers 30d
0
settlements 30d
0
measured since
2026-07-17 (start of our harvest window)
last settlement
2026-08-14
top buyer share
-
trend 7d vs 30d
-
networks
eip155:8453
volume all-time
$0.42
settlements all-time
5
median settlement 30d
-
max settlement 30d
-
settled via
-

Conservative undercount: only USDC settlements via facilitators we measure are counted. A measured floor, not an estimate.

Top buyer share is a concentration signal, not part of the ranking score.

CHANGES

2 in 30d

Payout, price, and schema changes detected on this service's x402 wire. A payout rotation at an unchanged price shows up here even when nothing else moves. Full feed at /changes.

changes schema changed 19h ago (2 in 30d)

schema changed · 19h ago

endpoint added GET /api/sippar/sell/company-intel

endpoint added GET /api/sippar/sell/property-intel

endpoint added GET /api/sippar/sell/social-search

endpoint added GET /api/sippar/sell/web-content

schema added GET /api/sippar/sell/company-intel exact eip155:8453 0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913 USDC 2 application/json 300 https://sippar.network/api/sippar/sell/company-intel {"name":"USD Coin","version":"2"}

schema added GET /api/sippar/sell/property-intel exact eip155:8453 0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913 USDC 2 application/json 300 https://sippar.network/api/sippar/sell/property-intel {"name":"USD Coin","version":"2"}

schema added GET /api/sippar/sell/social-search exact eip155:8453 0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913 USDC 2 application/json 300 https://sippar.network/api/sippar/sell/social-search {"name":"USD Coin","version":"2"}

schema added GET /api/sippar/sell/web-content exact eip155:8453 0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913 USDC 2 application/json 300 https://sippar.network/api/sippar/sell/web-content {"name":"USD Coin","version":"2"}

schema changed · 19d ago

schema removed GET /api/sippar/sell/token-intel exact eip155:8453 0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913 USDC 2 300 {"name":"USD Coin","version":"2"}

schema added GET /api/sippar/sell/token-intel exact eip155:8453 0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913 USDC 2 application/json 300 https://sippar.network/api/sippar/sell/token-intel {"name":"USD Coin","version":"2"}

see all changes for this service

WHAT IT DOES

ai-derived

No AI synthesis has been produced for this service yet.

ENDPOINTS

Service endpoints with HTTP method, path, description, pricing, and network
METHOD PATH DESCRIPTION PRICE NETWORK ASSET 402 CHANNEL
GET /api/sippar/sell/company-intel Enrich a company by domain. Pass a company domain (e.g. "stripe.com") in the "company" field and get firmographic data (CompanyEnrich, sold by StableEnrich): industry, employee range, revenue range, country, founding year, technologies, NAICS codes and funding. One call, no account, pay from your own wallet. Firmographic facts only, no person-level data. A domain maps to a single company so there is no name-ambiguity. No domain? A LinkedIn company URL is the next-best input — it is a unique key and resolves reliably; a bare name is accepted but is best-effort. Every record carries the supplier's own "dataUpdatedAt" so you can see how fresh it is. $0.15 Base USDC header
GET /api/sippar/sell/property-intel Building-level solar/roof data for a lat/lng (StableEnrich → Google Solar API): roof segments, sunshine hours, panel capacity estimate. US-centric coverage; real-estate/solar/field-service SDR use case. Requires both "latitude" and "longitude" body fields. $0.06 Base USDC header
GET /api/sippar/sell/social-search What people are publicly saying about a topic, across Reddit, YouTube and LinkedIn in one call. Returns Sippar's own cited answer plus links to the posts, not the posts themselves. Follow the citations to read them at the source. No account, API key or contract on any platform. Coverage is best-effort and point-in-time; a platform with nothing to say is reported as such rather than dropped. $0.50 Base USDC header
GET /api/sippar/sell/token-intel Canonical token market data for a ticker: price, market cap, FDV, liquidity, 24h change + volume with buy/sell split and netflow, launch date, on-chain total supply (Nansen token-screener + on-chain reads; response includes the required "Powered by Nansen API" attribution). Optionally pin the exact contract address (body field "address") to skip ticker resolution — tickers are not unique. Neutral facts only — no ratings, no predictions, not investment advice. $0.10 Base USDC header
GET /api/sippar/sell/web-content Clean extracted content for one URL (StableEnrich → Exa): pull a target company's site, press page, or about page for enrichment context. One URL per call. $0.05 Base USDC header
5 endpoints

REQUEST / RESPONSE EXAMPLE

An unpaid request to GET /api/sippar/sell/company-intel returns HTTP 402 with the payment terms. Settle onchain via your facilitator, then retry with the X-Payment header.

// request
curl -i 'https://sippar.network/api/sippar/sell/company-intel'
// 402 response (captured by monitor) · 5 payloads · click to expand
[
  {
    "error": "Payment Required",
    "rails": [
      {
        "how": "Pay the MPP challenge in the WWW-Authenticate header, retry with Authorization: Payment <credential>.",
        "rail": "tempo-mpp"
      },
      {
        "how": "Send 0.15 USDC on Base (chainId 8453) to 0x65C955A6d412162fb2e347780eEbdCb2b7Cdc316 — either broadcast it yourself and retry with X-PAYMENT: <txHash>, or sign the \"exact\"-scheme authorization in accepts[] (EIP-3009 transferWithAuthorization) and retry with X-PAYMENT: <base64 x402 v2 PaymentPayload>; we settle that through the CDP facilitator.",
        "rail": "base-x402",
        "paymentRequirements": {
          "asset": {
            "symbol": "USDC",
            "address": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
            "decimals": 6
          },
          "payTo": "0x65C955A6d412162fb2e347780eEbdCb2b7Cdc316",
          "amount": "150000",
          "chainId": 8453,
          "network": "base-mainnet",
          "description": "Company Enrichment",
          "amountFormatted": "0.15 USDC"
        }
      },
      {
        "how": "Send 0.15 USDC (mint EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v) on Solana mainnet to DqUsFZHpYNdCXYXp5ioFamRrvb7RmJitcomqMTHSUoFC, retry with X-PAYMENT: <transaction signature>. Each signature is accepted once.",
        "rail": "solana-x402",
        "paymentRequirements": {
          "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
          "payTo": "DqUsFZHpYNdCXYXp5ioFamRrvb7RmJitcomqMTHSUoFC",
          "amount": "150000",
          "scheme": "exact",
          "network": "solana-mainnet",
          "maxTimeoutSeconds": 120
        }
      }
    ],
    "accepts": [
      {
        "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
        "extra": {
          "name": "USD Coin",
          "version": "2"
        },
        "payTo": "0x65C955A6d412162fb2e347780eEbdCb2b7Cdc316",
        "amount": "150000",
        "scheme": "exact",
        "network": "eip155:8453",
        "mimeType": "application/json",
        "resource": "https://sippar.network/api/sippar/sell/company-intel",
        "description": "Enrich a company by domain. Pass a company domain (e.g. \"stripe.com\") in the \"company\" field and get firmographic data (CompanyEnrich, sold by StableEnrich): industry, employee range, revenue range, country, founding year, technologies, NAICS codes and funding. One call, no account, pay from your own wallet. Firmographic facts only, no person-level data. A domain maps to a single company so there is no name-ambiguity. No domain? A LinkedIn company URL is the next-best input — it is a unique key and resolves reliably; a bare name is accepted but is best-effort. Every record carries the supplier's own \"dataUpdatedAt\" so you can see how fresh it is.",
        "maxAmountRequired": "150000",
        "maxTimeoutSeconds": 300
      }
    ],
    "collect": {
      "collectUrl": "https://sippar.network/api/sippar/sell/company-intel/collect",
      "asyncHandle": {
        "how": "Send `Prefer: respond-async` (or `?async=1`, or `\"async\": true` in the body) with your payment. The response is an immediate 202 carrying the settlement key and this collect URL; the result is collected from there.",
        "recommended": false,
        "preferHeader": "respond-async",
        "acceptedStatus": 202
      },
      "collectMethod": "POST",
      "inFlightStatus": 409,
      "settlementKeyIs": "the exact value you sent in X-PAYMENT (tx hash, Solana signature, or signed x402 payload), or the MPP credential in Authorization",
      "rePresentingIsFree": true,
      "settlementKeyHeader": "X-PAYMENT",
      "ifYourClientTimesOut": [
        "Do NOT pay again. Your payment bought one delivery and it is held for 168 hours.",
        "POST the SAME payment header to https://sippar.network/api/sippar/sell/company-intel/collect to collect it. You will not be charged again.",
        "While the first call is still running, that returns 409 with a Retry-After; retry after it.",
        "A second payment for the same request inside the duplicate window is refused, NOT spent, so the money is still yours to present for something else."
      ],
      "collectableForSeconds": 604800,
      "settlementKeyHeaderMpp": "Authorization",
      "duplicatePaymentRefusedStatus": 409,
      "duplicatePaymentWindowSeconds": 900,
      "recommendedClientTimeoutSeconds": 300
    },
    "product": "company-intel",
    "success": false,
    "priceUSD": 0.15,
    "resource": {
      "url": "https://sippar.network/api/sippar/sell/company-intel",
      "tags": [
        "x402",
        "sippar",
        "company-intel"
      ],
      "mimeType": "application/json",
      "description": "Enrich a company by domain. Pass a company domain (e.g. \"stripe.com\") in the \"company\" field and get firmographic data (CompanyEnrich, sold by StableEnrich): industry, employee range, revenue range, country, founding year, technologies, NAICS codes and funding. One call, no account, pay from your own wallet. Firmographic facts only, no person-level data. A domain maps to a single company so there is no name-ambiguity. No domain? A LinkedIn company URL is the next-best input — it is a unique key and resolves reliably; a bare name is accepted but is best-effort. Every record carries the supplier's own \"dataUpdatedAt\" so you can see how fresh it is.",
      "serviceName": "Company Enrichment"
    },
    "termsUrl": "https://sippar.network/api/sippar/sell/terms",
    "extensions": {
      "bazaar": {
        "info": {
          "input": {
            "body": {
              "company": "stripe.com"
            },
            "type": "http",
            "method": "POST",
            "bodyType": "json"
          },
          "output": {
            "type": "json",
            "example": {
              "asOf": "2026-07-24T12:00:00.000Z",
              "note": "employees/revenue are range strings (e.g. \"5K-10K\", \"over-1b\"); domain lookups map to a single company (no name-ambiguity), but the returned domain can occasionally be a mis-indexed unrelated company — verify it matches your intent.",
              "input": "stripe.com",
              "company": {
                "name": "Stripe",
                "domain": "stripe.com",
                "country": "United States",
                "revenue": "over-1b",
                "industry": "Financial Services",
                "employees": "1K-5K",
                "founded_year": 2010
              },
              "logoUrl": "https://www.google.com/s2/favicons?domain=stripe.com&sz=128",
              "disclaimer": "Factual data only, accurate as of the stated timestamp. Not investment, legal, or business advice, and not a recommendation to transact.",
              "resolvedBy": "domain"
            }
          }
        },
        "schema": {
          "type": "object",
          "$schema": "https://json-schema.org/draft/2020-12/schema",
          "required": [
            "input"
          ],
          "properties": {
            "input": {
              "type": "object",
              "required": [
                "type",
                "method",
                "bodyType",
                "body"
              ],
              "properties": {
                "body": {
                  "required": [
                    "company"
                  ],
                  "properties": {
                    "company": {
                      "type": "string",
                      "description": "A company domain to enrich, e.g. \"stripe.com\" or \"sub.example.co.uk\". Pass the bare domain (no scheme, no path). Domain lookups map to exactly one company with no name-ambiguity. A LinkedIn company URL (https://www.linkedin.com/company/<slug>) also works and is the next-best input when you have no domain — it is a unique key, and in Sippar's 2026-08-14 testing it resolved correctly on both cases where a bare company name returned an unrelated company. A bare name is accepted but is best-effort and measurably unreliable on generic multi-word names."
                    }
                  }
                },
                "type": {
                  "type": "string",
                  "const": "http"
                },
                "method": {
                  "enum": [
                    "POST",
                    "PUT",
                    "PATCH"
                  ],
                  "type": "string"
                },
                "bodyType": {
                  "enum": [
                    "json",
                    "form-data",
                    "text"
                  ],
                  "type": "string"
                }
              },
              "additionalProperties": false
            },
            "output": {
              "type": "object",
              "required": [
                "type"
              ],
              "properties": {
                "type": {
                  "type": "string"
                },
                "example": {
                  "type": "object",
                  "required": [
                    "input",
                    "resolvedBy",
                    "asOf"
                  ],
                  "properties": {
                    "asOf": {
                      "type": "string",
                      "format": "date-time"
                    },
                    "input": {
                      "type": "string"
                    },
                    "company": {
                      "type": "object",
                      "properties": {
                        "name": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "domain": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "country": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "revenue": {
                          "type": [
                            "string",
                            "null"
                          ],
                          "description": "Range string, e.g. \"over-1b\"."
                        },
                        "industry": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "employees": {
                          "type": [
                            "string",
                            "null"
                          ],
                          "description": "Range string, e.g. \"1-10\", \"1K-5K\"."
                        },
                        "founded_year": {
                          "type": [
                            "number",
                            "null"
                          ]
                        }
                      },
                      "description": "CompanyEnrich org-enrich fields (best-effort, point-in-time). Any field may be null when the upstream has no value."
                    },
                    "logoUrl": {
                      "type": "string",
                      "description": "Free, keyless favicon URL for the resolved domain (Google s2/favicons). Present only when resolvedBy is \"domain\" — omitted for name/linkedinUrl-resolved records, which have no reliable domain to key it off."
                    },
                    "disclaimer": {
                      "type": "string"
                    },
                    "resolvedBy": {
                      "enum": [
                        "domain"
                      ],
                      "type": "string",
                      "description": "Always \"domain\" for the documented input path."
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "x402Version": 2
  },
  {
    "error": "Payment Required",
    "rails": [
      {
        "how": "Pay the MPP challenge in the WWW-Authenticate header, retry with Authorization: Payment <credential>.",
        "rail": "tempo-mpp"
      },
      {
        "how": "Send 0.06 USDC on Base (chainId 8453) to 0x65C955A6d412162fb2e347780eEbdCb2b7Cdc316 — either broadcast it yourself and retry with X-PAYMENT: <txHash>, or sign the \"exact\"-scheme authorization in accepts[] (EIP-3009 transferWithAuthorization) and retry with X-PAYMENT: <base64 x402 v2 PaymentPayload>; we settle that through the CDP facilitator.",
        "rail": "base-x402",
        "paymentRequirements": {
          "asset": {
            "symbol": "USDC",
            "address": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
            "decimals": 6
          },
          "payTo": "0x65C955A6d412162fb2e347780eEbdCb2b7Cdc316",
          "amount": "60000",
          "chainId": 8453,
          "network": "base-mainnet",
          "description": "Property Solar & Roof Insights",
          "amountFormatted": "0.06 USDC"
        }
      },
      {
        "how": "Send 0.06 USDC (mint EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v) on Solana mainnet to DqUsFZHpYNdCXYXp5ioFamRrvb7RmJitcomqMTHSUoFC, retry with X-PAYMENT: <transaction signature>. Each signature is accepted once.",
        "rail": "solana-x402",
        "paymentRequirements": {
          "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
          "payTo": "DqUsFZHpYNdCXYXp5ioFamRrvb7RmJitcomqMTHSUoFC",
          "amount": "60000",
          "scheme": "exact",
          "network": "solana-mainnet",
          "maxTimeoutSeconds": 120
        }
      }
    ],
    "accepts": [
      {
        "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
        "extra": {
          "name": "USD Coin",
          "version": "2"
        },
        "payTo": "0x65C955A6d412162fb2e347780eEbdCb2b7Cdc316",
        "amount": "60000",
        "scheme": "exact",
        "network": "eip155:8453",
        "mimeType": "application/json",
        "resource": "https://sippar.network/api/sippar/sell/property-intel",
        "description": "Building-level solar/roof data for a lat/lng (StableEnrich → Google Solar API): roof segments, sunshine hours, panel capacity estimate. US-centric coverage; real-estate/solar/field-service SDR use case. Requires both \"latitude\" and \"longitude\" body fields.",
        "maxAmountRequired": "60000",
        "maxTimeoutSeconds": 300
      }
    ],
    "collect": {
      "collectUrl": "https://sippar.network/api/sippar/sell/property-intel/collect",
      "asyncHandle": {
        "how": "Send `Prefer: respond-async` (or `?async=1`, or `\"async\": true` in the body) with your payment. The response is an immediate 202 carrying the settlement key and this collect URL; the result is collected from there.",
        "recommended": false,
        "preferHeader": "respond-async",
        "acceptedStatus": 202
      },
      "collectMethod": "POST",
      "inFlightStatus": 409,
      "settlementKeyIs": "the exact value you sent in X-PAYMENT (tx hash, Solana signature, or signed x402 payload), or the MPP credential in Authorization",
      "rePresentingIsFree": true,
      "settlementKeyHeader": "X-PAYMENT",
      "ifYourClientTimesOut": [
        "Do NOT pay again. Your payment bought one delivery and it is held for 168 hours.",
        "POST the SAME payment header to https://sippar.network/api/sippar/sell/property-intel/collect to collect it. You will not be charged again.",
        "While the first call is still running, that returns 409 with a Retry-After; retry after it.",
        "A second payment for the same request inside the duplicate window is refused, NOT spent, so the money is still yours to present for something else."
      ],
      "collectableForSeconds": 604800,
      "settlementKeyHeaderMpp": "Authorization",
      "duplicatePaymentRefusedStatus": 409,
      "duplicatePaymentWindowSeconds": 900,
      "recommendedClientTimeoutSeconds": 300
    },
    "product": "property-intel",
    "success": false,
    "priceUSD": 0.06,
    "resource": {
      "url": "https://sippar.network/api/sippar/sell/property-intel",
      "tags": [
        "x402",
        "sippar",
        "property-intel"
      ],
      "mimeType": "application/json",
      "description": "Building-level solar/roof data for a lat/lng (StableEnrich → Google Solar API): roof segments, sunshine hours, panel capacity estimate. US-centric coverage; real-estate/solar/field-service SDR use case. Requires both \"latitude\" and \"longitude\" body fields.",
      "serviceName": "Property Solar & Roof Insights"
    },
    "termsUrl": "https://sippar.network/api/sippar/sell/terms",
    "extensions": {
      "bazaar": {
        "info": {
          "input": {
            "body": {
              "latitude": "37.4220",
              "longitude": "-122.0841"
            },
            "type": "http",
            "method": "POST",
            "bodyType": "json"
          },
          "output": {
            "type": "json",
            "example": {
              "asOf": "2026-08-17T16:48:00.000Z",
              "note": "Source: Google Solar API via stableenrich.dev. Coverage is US-centric and imagery-date-bound (see imageryDate/imageryProcessedDate in the response); a miss means the building is outside Solar API coverage, not that no building exists.",
              "insights": {
                "name": "buildings/ChIJyYMbTi23j4ARvoxruIulRJQ",
                "center": {
                  "latitude": 37.3861517,
                  "longitude": -122.0833905
                },
                "postalCode": "94041",
                "regionCode": "US",
                "boundingBox": {
                  "ne": {
                    "latitude": 37.3862929,
                    "longitude": -122.0832357
                  },
                  "sw": {
                    "latitude": 37.3860086,
                    "longitude": -122.0835272
                  }
                },
                "imageryDate": {
                  "day": 9,
                  "year": 2020,
                  "month": 11
                },
                "imageryQuality": "HIGH",
                "solarPotential": {
                  "solarPanels": [
                    {
                      "center": {
                        "latitude": 37.3862116,
                        "longitude": -122.0833019
                      },
                      "orientation": "LANDSCAPE",
                      "segmentIndex": 0,
                      "yearlyEnergyDcKwh": 689.13
                    }
                  ],
                  "buildingStats": {
                    "areaMeters2": 482.73575,
                    "groundAreaMeters2": 465.52,
                    "sunshineQuantiles": [
                      245.73091,
                      907.9734,
                      1110.7421,
                      1330.5519,
                      1478.0201,
                      1553.1654,
                      1601.7421,
                      1636.9102,
                      1667.839,
                      1699.8586,
                      1912.585
                    ]
                  },
                  "wholeRoofStats": {
                    "areaMeters2": 434.59006,
                    "groundAreaMeters2": 432.62,
                    "sunshineQuantiles": [
                      245.73091,
                      945.40955,
                      1160.0308,
                      1363.4121,
                      1494.4384,
                      1560.435,
                      1606.1453,
                      1639.7478,
                      1668.8038,
                      1699.4238,
                      1885.5632
                    ]
                  },
                  "panelWidthMeters": 1.045,
                  "roofSegmentStats": [
                    {
                      "stats": {
                        "areaMeters2": 403.65176,
                        "groundAreaMeters2": 403.65,
                        "sunshineQuantiles": [
                          245.73091,
                          986.788,
                          1239.0483,
                          1421.2289,
                          1520.8448,
                          1575.3965,
                          1613.7737,
                          1645.1171,
                          1671.4114,
                          1700.3599,
                          1860.1517
                        ]
                      },
                      "center": {
                        "latitude": 37.3861427,
                        "longitude": -122.0833861
                      },
                      "boundingBox": {
                        "ne": {
                          "latitude": 37.3862722,
                          "longitude": -122.0832394
                        },
                        "sw": {
                          "latitude": 37.3860086,
                          "longitude": -122.0835272
                        }
                      },
                      "pitchDegrees": 0.16922827,
                      "azimuthDegrees": 0,
                      "planeHeightAtCenterMeters": 34.04298
                    }
                  ],
                  "financialAnalyses": [
                    {
                      "monthlyBill": {
                        "units": "20",
                        "currencyCode": "USD"
                      },
                      "panelConfigIndex": -1,
                      "averageKwhPerMonth": 50.126743
                    }
                  ],
                  "panelHeightMeters": 1.879,
                  "solarPanelConfigs": [
                    {
                      "panelsCount": 4,
                      "yearlyEnergyDcKwh": 2742.1433,
                      "roofSegmentSummaries": [
                        {
                          "panelsCount": 4,
                          "pitchDegrees": 0.16922827,
                          "segmentIndex": 0,
                          "azimuthDegrees": 0,
                          "yearlyEnergyDcKwh": 2742.1433
                        }
                      ]
                    }
                  ],
                  "panelCapacityWatts": 400,
                  "panelLifetimeYears": 20,
                  "maxArrayAreaMeters2": 306.31454,
                  "maxArrayPanelsCount": 156,
                  "maxSunshineHoursPerYear": 1715.5634,
                  "carbonOffsetFactorKgPerMwh": 428.9201
                },
                "statisticalArea": "06085509600",
                "administrativeArea": "CA",
                "imageryProcessedDate": {
                  "day": 29,
                  "year": 2026,
                  "month": 1
                }
              },
              "latitude": "37.3861",
              "longitude": "-122.0839",
              "disclaimer": "Factual data only, accurate as of the stated timestamp. Not investment, legal, or business advice, and not a recommendation to transact."
            }
          }
        },
        "schema": {
          "type": "object",
          "$schema": "https://json-schema.org/draft/2020-12/schema",
          "required": [
            "input"
          ],
          "properties": {
            "input": {
              "type": "object",
              "required": [
                "type",
                "method",
                "bodyType",
                "body"
              ],
              "properties": {
                "body": {
                  "required": [
                    "latitude",
                    "longitude"
                  ],
                  "properties": {
                    "latitude": {
                      "type": [
                        "string",
                        "number"
                      ],
                      "pattern": "^-?\\d{1,2}(\\.\\d+)?$",
                      "description": "Building latitude in decimal degrees (WGS84), -90 to 90. A JSON number is accepted too — the value is stringified before validation, so plain decimal notation only (no exponent form, no leading \"+\")."
                    },
                    "longitude": {
                      "type": [
                        "string",
                        "number"
                      ],
                      "pattern": "^-?\\d{1,3}(\\.\\d+)?$",
                      "description": "Building longitude in decimal degrees (WGS84), -180 to 180. REQUIRED: this endpoint is keyed on a coordinate pair, not a street address, and a call without it is rejected with a 400 before any payment is taken."
                    }
                  }
                },
                "type": {
                  "type": "string",
                  "const": "http"
                },
                "method": {
                  "enum": [
                    "POST",
                    "PUT",
                    "PATCH"
                  ],
                  "type": "string"
                },
                "bodyType": {
                  "enum": [
                    "json",
                    "form-data",
                    "text"
                  ],
                  "type": "string"
                }
              },
              "additionalProperties": false
            },
            "output": {
              "type": "object",
              "required": [
                "type"
              ],
              "properties": {
                "type": {
                  "type": "string"
                },
                "example": {
                  "type": "object",
                  "required": [
                    "latitude",
                    "longitude",
                    "asOf"
                  ],
                  "properties": {
                    "asOf": {
                      "type": "string",
                      "format": "date-time",
                      "description": "When Sippar served the call, NOT when the imagery was captured — that is insights.imageryDate."
                    },
                    "note": {
                      "type": "string",
                      "description": "Coverage caveat in words: US-centric, imagery-date-bound, and a miss means the building is outside Solar API coverage rather than nonexistent."
                    },
                    "insights": {
                      "type": "object",
                      "description": "The Google Solar API buildingInsights payload for the closest building, passed through with no envelope of its own: name, center, boundingBox, imageryDate, imageryProcessedDate, imageryQuality, postalCode, administrativeArea, statisticalArea, regionCode and solarPotential. EXPECT A LARGE BODY — solarPotential.solarPanels lists every panel, solarPanelConfigs every layout and financialAnalyses every monthly-bill scenario, so one small 5-segment building measured 93KB (156 panels, 127 configs, 23 analyses). The example truncates each of those arrays to a single element; nothing else is trimmed or renamed. Read imageryDate before trusting the roof geometry: in the measured response the imagery was from 2020 even though it was processed in 2026, so this is imagery-bound data, not a live reading."
                    },
                    "latitude": {
                      "type": "string",
                      "description": "The coordinate you sent, echoed back as validated."
                    },
                    "longitude": {
                      "type": "string"
                    },
                    "disclaimer": {
                      "type": "string"
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "x402Version": 2
  },
  {
    "error": "Payment Required",
    "rails": [
      {
        "how": "Pay the MPP challenge in the WWW-Authenticate header, retry with Authorization: Payment <credential>.",
        "rail": "tempo-mpp"
      },
      {
        "how": "Send 0.05 USDC on Base (chainId 8453) to 0x65C955A6d412162fb2e347780eEbdCb2b7Cdc316 — either broadcast it yourself and retry with X-PAYMENT: <txHash>, or sign the \"exact\"-scheme authorization in accepts[] (EIP-3009 transferWithAuthorization) and retry with X-PAYMENT: <base64 x402 v2 PaymentPayload>; we settle that through the CDP facilitator.",
        "rail": "base-x402",
        "paymentRequirements": {
          "asset": {
            "symbol": "USDC",
            "address": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
            "decimals": 6
          },
          "payTo": "0x65C955A6d412162fb2e347780eEbdCb2b7Cdc316",
          "amount": "50000",
          "chainId": 8453,
          "network": "base-mainnet",
          "description": "Web Content Extraction",
          "amountFormatted": "0.05 USDC"
        }
      },
      {
        "how": "Send 0.05 USDC (mint EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v) on Solana mainnet to DqUsFZHpYNdCXYXp5ioFamRrvb7RmJitcomqMTHSUoFC, retry with X-PAYMENT: <transaction signature>. Each signature is accepted once.",
        "rail": "solana-x402",
        "paymentRequirements": {
          "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
          "payTo": "DqUsFZHpYNdCXYXp5ioFamRrvb7RmJitcomqMTHSUoFC",
          "amount": "50000",
          "scheme": "exact",
          "network": "solana-mainnet",
          "maxTimeoutSeconds": 120
        }
      }
    ],
    "accepts": [
      {
        "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
        "extra": {
          "name": "USD Coin",
          "version": "2"
        },
        "payTo": "0x65C955A6d412162fb2e347780eEbdCb2b7Cdc316",
        "amount": "50000",
        "scheme": "exact",
        "network": "eip155:8453",
        "mimeType": "application/json",
        "resource": "https://sippar.network/api/sippar/sell/web-content",
        "description": "Clean extracted content for one URL (StableEnrich → Exa): pull a target company's site, press page, or about page for enrichment context. One URL per call.",
        "maxAmountRequired": "50000",
        "maxTimeoutSeconds": 300
      }
    ],
    "collect": {
      "collectUrl": "https://sippar.network/api/sippar/sell/web-content/collect",
      "asyncHandle": {
        "how": "Send `Prefer: respond-async` (or `?async=1`, or `\"async\": true` in the body) with your payment. The response is an immediate 202 carrying the settlement key and this collect URL; the result is collected from there.",
        "recommended": false,
        "preferHeader": "respond-async",
        "acceptedStatus": 202
      },
      "collectMethod": "POST",
      "inFlightStatus": 409,
      "settlementKeyIs": "the exact value you sent in X-PAYMENT (tx hash, Solana signature, or signed x402 payload), or the MPP credential in Authorization",
      "rePresentingIsFree": true,
      "settlementKeyHeader": "X-PAYMENT",
      "ifYourClientTimesOut": [
        "Do NOT pay again. Your payment bought one delivery and it is held for 168 hours.",
        "POST the SAME payment header to https://sippar.network/api/sippar/sell/web-content/collect to collect it. You will not be charged again.",
        "While the first call is still running, that returns 409 with a Retry-After; retry after it.",
        "A second payment for the same request inside the duplicate window is refused, NOT spent, so the money is still yours to present for something else."
      ],
      "collectableForSeconds": 604800,
      "settlementKeyHeaderMpp": "Authorization",
      "duplicatePaymentRefusedStatus": 409,
      "duplicatePaymentWindowSeconds": 900,
      "recommendedClientTimeoutSeconds": 300
    },
    "product": "web-content",
    "success": false,
    "priceUSD": 0.05,
    "resource": {
      "url": "https://sippar.network/api/sippar/sell/web-content",
      "tags": [
        "x402",
        "sippar",
        "web-content"
      ],
      "mimeType": "application/json",
      "description": "Clean extracted content for one URL (StableEnrich → Exa): pull a target company's site, press page, or about page for enrichment context. One URL per call.",
      "serviceName": "Web Content Extraction"
    },
    "termsUrl": "https://sippar.network/api/sippar/sell/terms",
    "extensions": {
      "bazaar": {
        "info": {
          "input": {
            "body": {
              "url": "https://stripe.com/about"
            },
            "type": "http",
            "method": "POST",
            "bodyType": "json"
          },
          "output": {
            "type": "json",
            "example": {
              "url": "https://stripe.com/about",
              "asOf": "2026-08-17T16:47:42.000Z",
              "content": {
                "results": [
                  {
                    "id": "https://example.com",
                    "url": "https://example.com",
                    "text": "Example Domain\n\n# Example Domain\n\nThis domain is for use in documentation examples without needing permission…",
                    "title": "Example Domain",
                    "author": null,
                    "favicon": "data:,"
                  }
                ],
                "statuses": [
                  {
                    "id": "https://example.com",
                    "source": "cached",
                    "status": "success"
                  }
                ],
                "requestId": "4e031258b50d71aaf3f54611672a4e43"
              },
              "disclaimer": "Factual data only, accurate as of the stated timestamp. Not investment, legal, or business advice, and not a recommendation to transact."
            }
          }
        },
        "schema": {
          "type": "object",
          "$schema": "https://json-schema.org/draft/2020-12/schema",
          "required": [
            "input"
          ],
          "properties": {
            "input": {
              "type": "object",
              "required": [
                "type",
                "method",
                "bodyType",
                "body"
              ],
              "properties": {
                "body": {
                  "required": [
                    "url"
                  ],
                  "properties": {
                    "url": {
                      "type": "string",
                      "format": "uri",
                      "description": "One absolute http(s) URL to extract, e.g. \"https://stripe.com/about\". Exactly one per call: the upstream accepts a batch of up to 100, but this product is priced and capped for a single URL, so a second URL is a second call. Anything that is not a parseable http or https URL is rejected with a 400 before payment."
                    }
                  }
                },
                "type": {
                  "type": "string",
                  "const": "http"
                },
                "method": {
                  "enum": [
                    "POST",
                    "PUT",
                    "PATCH"
                  ],
                  "type": "string"
                },
                "bodyType": {
                  "enum": [
                    "json",
                    "form-data",
                    "text"
                  ],
                  "type": "string"
                }
              },
              "additionalProperties": false
            },
            "output": {
              "type": "object",
              "required": [
                "type"
              ],
              "properties": {
                "type": {
                  "type": "string"
                },
                "example": {
                  "type": "object",
                  "required": [
                    "url",
                    "asOf"
                  ],
                  "properties": {
                    "url": {
                      "type": "string",
                      "description": "The URL you sent, trimmed, echoed back."
                    },
                    "asOf": {
                      "type": "string",
                      "format": "date-time",
                      "description": "When Sippar served the call. Extraction is point-in-time — the page can change the minute after."
                    },
                    "content": {
                      "type": "object",
                      "description": "Exa's /contents payload for that one URL: `results` (one entry, carrying id, url, title, text and favicon, plus author, publishedDate, image, summary, highlights, extras or subpages when Exa has them — absent rather than null when it does not), `statuses` (the per-URL outcome, `success` or `error` with an error tag such as CRAWL_TIMEOUT or UNSUPPORTED_URL, and `source` telling you whether the page was served from Exa's cache or crawled live) and `requestId`. Exa's own cost and timing fields are removed before you see them. Read `statuses` before `results`: a page Exa could not fetch comes back as an error status on a successful, paid call, not as a failure of the call."
                    },
                    "disclaimer": {
                      "type": "string"
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "x402Version": 2
  },
  {
    "error": "Payment Required",
    "rails": [
      {
        "how": "Pay the MPP challenge in the WWW-Authenticate header, retry with Authorization: Payment <credential>.",
        "rail": "tempo-mpp"
      },
      {
        "how": "Send 0.50 USDC on Base (chainId 8453) to 0x65C955A6d412162fb2e347780eEbdCb2b7Cdc316, retry with X-PAYMENT: <txHash>.",
        "rail": "base-x402",
        "paymentRequirements": {
          "asset": {
            "symbol": "USDC",
            "address": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
            "decimals": 6
          },
          "payTo": "0x65C955A6d412162fb2e347780eEbdCb2b7Cdc316",
          "amount": "500000",
          "chainId": 8453,
          "network": "base-mainnet",
          "description": "Social Listening",
          "amountFormatted": "0.50 USDC"
        }
      },
      {
        "how": "Send 0.50 USDC (mint EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v) on Solana mainnet to DqUsFZHpYNdCXYXp5ioFamRrvb7RmJitcomqMTHSUoFC, retry with X-PAYMENT: <transaction signature>. Each signature is accepted once.",
        "rail": "solana-x402",
        "paymentRequirements": {
          "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
          "payTo": "DqUsFZHpYNdCXYXp5ioFamRrvb7RmJitcomqMTHSUoFC",
          "amount": "500000",
          "scheme": "exact",
          "network": "solana-mainnet",
          "maxTimeoutSeconds": 120
        }
      }
    ],
    "accepts": [
      {
        "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
        "extra": {
          "name": "USD Coin",
          "version": "2"
        },
        "payTo": "0x65C955A6d412162fb2e347780eEbdCb2b7Cdc316",
        "amount": "500000",
        "scheme": "exact",
        "network": "eip155:8453",
        "mimeType": "application/json",
        "resource": "https://sippar.network/api/sippar/sell/social-search",
        "description": "What people are publicly saying about a topic, across Reddit, YouTube and LinkedIn in one call. Returns Sippar's own cited answer plus links to the posts, not the posts themselves. Follow the citations to read them at the source. No account, API key or contract on any platform. Coverage is best-effort and point-in-time; a platform with nothing to say is reported as such rather than dropped.",
        "maxAmountRequired": "500000",
        "maxTimeoutSeconds": 300
      }
    ],
    "collect": {
      "collectUrl": "https://sippar.network/api/sippar/sell/social-search/collect",
      "asyncHandle": {
        "how": "Send `Prefer: respond-async` (or `?async=1`, or `\"async\": true` in the body) with your payment. The response is an immediate 202 carrying the settlement key and this collect URL; the result is collected from there.",
        "recommended": true,
        "preferHeader": "respond-async",
        "acceptedStatus": 202
      },
      "collectMethod": "POST",
      "inFlightStatus": 409,
      "settlementKeyIs": "the exact value you sent in X-PAYMENT (tx hash, Solana signature, or signed x402 payload), or the MPP credential in Authorization",
      "rePresentingIsFree": true,
      "settlementKeyHeader": "X-PAYMENT",
      "ifYourClientTimesOut": [
        "Do NOT pay again. Your payment bought one delivery and it is held for 168 hours.",
        "POST the SAME payment header to https://sippar.network/api/sippar/sell/social-search/collect to collect it. You will not be charged again.",
        "While the first call is still running, that returns 409 with a Retry-After; retry after it.",
        "A second payment for the same request inside the duplicate window is refused, NOT spent, so the money is still yours to present for something else."
      ],
      "collectableForSeconds": 604800,
      "expectedLatencySeconds": {
        "max": 300,
        "typical": 70,
        "measuredOn": "2026-08-27"
      },
      "settlementKeyHeaderMpp": "Authorization",
      "duplicatePaymentRefusedStatus": 409,
      "duplicatePaymentWindowSeconds": 900,
      "recommendedClientTimeoutSeconds": 300
    },
    "product": "social-search",
    "success": false,
    "priceUSD": 0.5,
    "resource": {
      "url": "https://sippar.network/api/sippar/sell/social-search",
      "tags": [
        "x402",
        "sippar",
        "social-search"
      ],
      "mimeType": "application/json",
      "description": "What people are publicly saying about a topic, across Reddit, YouTube and LinkedIn in one call. Returns Sippar's own cited answer plus links to the posts, not the posts themselves. Follow the citations to read them at the source. No account, API key or contract on any platform. Coverage is best-effort and point-in-time; a platform with nothing to say is reported as such rather than dropped.",
      "serviceName": "Social Listening"
    },
    "termsUrl": "https://sippar.network/api/sippar/sell/terms",
    "extensions": {
      "bazaar": {
        "info": {
          "input": {
            "body": {
              "query": "what are people saying about Cursor"
            },
            "type": "http",
            "method": "POST",
            "bodyType": "json"
          },
          "output": {
            "type": "json",
            "example": {
              "query": "what are people saying about Cursor",
              "answer": "Reddit is where the product talk lives this week: usage caps [reddit:3] and who is actually making money with it [reddit:2]. YouTube argues the bigger AI pair-programming question [youtube:0].",
              "takeaway": "Pricing and usage caps dominate the current conversation.",
              "citations": [
                {
                  "tag": "[reddit:3]",
                  "url": "https://reddit.com/...",
                  "title": "Hit the usage cap again",
                  "platform": "reddit"
                }
              ],
              "platforms": [
                {
                  "ok": true,
                  "rows": 7,
                  "platform": "reddit"
                },
                {
                  "ok": true,
                  "rows": 50,
                  "platform": "youtube"
                },
                {
                  "ok": true,
                  "rows": 10,
                  "platform": "linkedin"
                }
              ],
              "relevance": {
                "total": 67,
                "onBrand": 64,
                "verdict": "clear"
              },
              "disclaimer": "Coverage is best-effort and point-in-time.",
              "provenance": "Rows retrieved from public posts via a scraping-based supplier."
            }
          }
        },
        "schema": {
          "type": "object",
          "$schema": "https://json-schema.org/draft/2020-12/schema",
          "required": [
            "input"
          ],
          "properties": {
            "input": {
              "type": "object",
              "required": [
                "type",
                "method",
                "bodyType",
                "body"
              ],
              "properties": {
                "body": {
                  "required": [
                    "query"
                  ],
                  "properties": {
                    "query": {
                      "type": "string",
                      "maxLength": 500,
                      "minLength": 3,
                      "description": "A brand, product or topic to search for. A brand name works best; a broad topic phrase returns rows that may be about something else, which the `relevance` block in the response reports rather than hides."
                    }
                  }
                },
                "type": {
                  "type": "string",
                  "const": "http"
                },
                "method": {
                  "enum": [
                    "POST",
                    "PUT",
                    "PATCH"
                  ],
                  "type": "string"
                },
                "bodyType": {
                  "enum": [
                    "json",
                    "form-data",
                    "text"
                  ],
                  "type": "string"
                }
              },
              "additionalProperties": false
            },
            "output": {
              "type": "object",
              "required": [
                "type"
              ],
              "properties": {
                "type": {
                  "type": "string"
                },
                "example": {
                  "type": "object",
                  "properties": {
                    "answer": {
                      "type": [
                        "string",
                        "null"
                      ],
                      "description": "The cited answer. NULL is a normal, successful outcome, not an error: it means the rows were retrieved and the citations are real, but no draft passed the citation and faithfulness checks, so none is offered. When answer is null, `answerUnavailable` explains it in words and the citations are still yours."
                    },
                    "citations": {
                      "type": "array",
                      "description": "One entry per cited row, with the tag used in `answer`, the platform, the title and the source URL."
                    },
                    "platforms": {
                      "type": "array",
                      "description": "Per-platform outcome and row count. A platform that returned nothing is reported with ok:false rather than omitted."
                    },
                    "relevance": {
                      "type": "object",
                      "description": "Whether the rows are about the subject named in `query`. `onBrand` of `total` rows matched; `otherMeaning` names the collision when the query is ambiguous. Read this before trusting the answer, since a caller cannot eyeball the rows."
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "x402Version": 2
  },
  {
    "error": "Payment Required",
    "rails": [
      {
        "how": "Pay the MPP challenge in the WWW-Authenticate header, retry with Authorization: Payment <credential>.",
        "rail": "tempo-mpp"
      },
      {
        "how": "Send 0.10 USDC on Base (chainId 8453) to 0x65C955A6d412162fb2e347780eEbdCb2b7Cdc316 — either broadcast it yourself and retry with X-PAYMENT: <txHash>, or sign the \"exact\"-scheme authorization in accepts[] (EIP-3009 transferWithAuthorization) and retry with X-PAYMENT: <base64 x402 v2 PaymentPayload>; we settle that through the CDP facilitator.",
        "rail": "base-x402",
        "paymentRequirements": {
          "asset": {
            "symbol": "USDC",
            "address": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
            "decimals": 6
          },
          "payTo": "0x65C955A6d412162fb2e347780eEbdCb2b7Cdc316",
          "amount": "100000",
          "chainId": 8453,
          "network": "base-mainnet",
          "description": "Token Market Data",
          "amountFormatted": "0.10 USDC"
        }
      },
      {
        "how": "Send 0.10 USDC (mint EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v) on Solana mainnet to DqUsFZHpYNdCXYXp5ioFamRrvb7RmJitcomqMTHSUoFC, retry with X-PAYMENT: <transaction signature>. Each signature is accepted once.",
        "rail": "solana-x402",
        "paymentRequirements": {
          "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
          "payTo": "DqUsFZHpYNdCXYXp5ioFamRrvb7RmJitcomqMTHSUoFC",
          "amount": "100000",
          "scheme": "exact",
          "network": "solana-mainnet",
          "maxTimeoutSeconds": 120
        }
      }
    ],
    "accepts": [
      {
        "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
        "extra": {
          "name": "USD Coin",
          "version": "2"
        },
        "payTo": "0x65C955A6d412162fb2e347780eEbdCb2b7Cdc316",
        "amount": "100000",
        "scheme": "exact",
        "network": "eip155:8453",
        "mimeType": "application/json",
        "resource": "https://sippar.network/api/sippar/sell/token-intel",
        "description": "Canonical token market data for a ticker: price, market cap, FDV, liquidity, 24h change + volume with buy/sell split and netflow, launch date, on-chain total supply (Nansen token-screener + on-chain reads; response includes the required \"Powered by Nansen API\" attribution). Optionally pin the exact contract address (body field \"address\") to skip ticker resolution — tickers are not unique. Neutral facts only — no ratings, no predictions, not investment advice.",
        "maxAmountRequired": "100000",
        "maxTimeoutSeconds": 300
      }
    ],
    "collect": {
      "collectUrl": "https://sippar.network/api/sippar/sell/token-intel/collect",
      "asyncHandle": {
        "how": "Send `Prefer: respond-async` (or `?async=1`, or `\"async\": true` in the body) with your payment. The response is an immediate 202 carrying the settlement key and this collect URL; the result is collected from there.",
        "recommended": false,
        "preferHeader": "respond-async",
        "acceptedStatus": 202
      },
      "collectMethod": "POST",
      "inFlightStatus": 409,
      "settlementKeyIs": "the exact value you sent in X-PAYMENT (tx hash, Solana signature, or signed x402 payload), or the MPP credential in Authorization",
      "rePresentingIsFree": true,
      "settlementKeyHeader": "X-PAYMENT",
      "ifYourClientTimesOut": [
        "Do NOT pay again. Your payment bought one delivery and it is held for 168 hours.",
        "POST the SAME payment header to https://sippar.network/api/sippar/sell/token-intel/collect to collect it. You will not be charged again.",
        "While the first call is still running, that returns 409 with a Retry-After; retry after it.",
        "A second payment for the same request inside the duplicate window is refused, NOT spent, so the money is still yours to present for something else."
      ],
      "collectableForSeconds": 604800,
      "settlementKeyHeaderMpp": "Authorization",
      "duplicatePaymentRefusedStatus": 409,
      "duplicatePaymentWindowSeconds": 900,
      "recommendedClientTimeoutSeconds": 300
    },
    "product": "token-intel",
    "success": false,
    "priceUSD": 0.1,
    "resource": {
      "url": "https://sippar.network/api/sippar/sell/token-intel",
      "tags": [
        "x402",
        "sippar",
        "token-intel"
      ],
      "mimeType": "application/json",
      "description": "Canonical token market data for a ticker: price, market cap, FDV, liquidity, 24h change + volume with buy/sell split and netflow, launch date, on-chain total supply (Nansen token-screener + on-chain reads; response includes the required \"Powered by Nansen API\" attribution). Optionally pin the exact contract address (body field \"address\") to skip ticker resolution — tickers are not unique. Neutral facts only — no ratings, no predictions, not investment advice.",
      "serviceName": "Token Market Data"
    },
    "termsUrl": "https://sippar.network/api/sippar/sell/terms",
    "extensions": {
      "bazaar": {
        "info": {
          "input": {
            "body": {
              "ticker": "BONK"
            },
            "type": "http",
            "method": "POST",
            "bodyType": "json"
          },
          "output": {
            "type": "json",
            "example": {
              "asOf": "2026-07-17T12:00:00.000Z",
              "found": true,
              "token": {
                "fdvUsd": 900000000,
                "symbol": "BONK",
                "address": "DezXAZ8z7PnrnRJjz3wXBoRgixCa6xjnB7YaB1pPB263",
                "network": "solana",
                "priceUsd": 0.0000123,
                "change24hPct": -2.4,
                "liquidityUsd": 5123456,
                "marketCapUsd": 812345678,
                "tokenAgeDays": 812,
                "volume24hUsd": 9876543,
                "netflowUsd24h": 323457,
                "deploymentDate": "2023-12-25",
                "buyVolume24hUsd": 5100000,
                "sellVolume24hUsd": 4776543,
                "onchainTotalSupply": "88888888888888"
              },
              "ticker": "BONK",
              "sources": {
                "marketData": {
                  "source": "nansen-token-screener",
                  "retrievedAt": "2026-07-17T12:00:00.000Z"
                },
                "onchainSupply": {
                  "source": "solana-rpc",
                  "retrievedAt": "2026-07-17T12:00:00.000Z"
                }
              },
              "disclaimer": "Factual market data only, accurate as of the stated timestamps. Not investment advice, not a valuation, not a recommendation to transact.",
              "resolution": "highest-mcap-above-floor",
              "attribution": {
                "url": "https://nansen.ai",
                "text": "Powered by Nansen API"
              }
            }
          }
        },
        "schema": {
          "type": "object",
          "$schema": "https://json-schema.org/draft/2020-12/schema",
          "required": [
            "input"
          ],
          "properties": {
            "input": {
              "type": "object",
              "required": [
                "type",
                "method",
                "bodyType",
                "body"
              ],
              "properties": {
                "body": {
                  "required": [
                    "ticker"
                  ],
                  "properties": {
                    "ticker": {
                      "type": "string",
                      "pattern": "^\\$?[A-Za-z][A-Za-z0-9]{1,9}$",
                      "description": "Token ticker symbol, e.g. BONK or $WIF"
                    },
                    "address": {
                      "type": "string",
                      "description": "Optional contract address pin (EVM 0x… or Solana base58 mint). When set, the response resolves to exactly this contract instead of the highest-market-cap match — recommended, since tickers are not unique."
                    }
                  }
                },
                "type": {
                  "type": "string",
                  "const": "http"
                },
                "method": {
                  "enum": [
                    "POST",
                    "PUT",
                    "PATCH"
                  ],
                  "type": "string"
                },
                "bodyType": {
                  "enum": [
                    "json",
                    "form-data",
                    "text"
                  ],
                  "type": "string"
                }
              },
              "additionalProperties": false
            },
            "output": {
              "type": "object",
              "required": [
                "type"
              ],
              "properties": {
                "type": {
                  "type": "string"
                },
                "example": {
                  "type": "object",
                  "required": [
                    "ticker",
                    "found",
                    "asOf"
                  ],
                  "properties": {
                    "asOf": {
                      "type": "string",
                      "format": "date-time"
                    },
                    "found": {
                      "type": "boolean"
                    },
                    "token": {
                      "type": "object",
                      "properties": {
                        "fdvUsd": {
                          "type": [
                            "number",
                            "null"
                          ]
                        },
                        "symbol": {
                          "type": "string"
                        },
                        "address": {
                          "type": "string"
                        },
                        "network": {
                          "type": "string"
                        },
                        "priceUsd": {
                          "type": [
                            "number",
                            "null"
                          ]
                        },
                        "change24hPct": {
                          "type": [
                            "number",
                            "null"
                          ]
                        },
                        "liquidityUsd": {
                          "type": [
                            "number",
                            "null"
                          ]
                        },
                        "marketCapUsd": {
                          "type": [
                            "number",
                            "null"
                          ]
                        },
                        "tokenAgeDays": {
                          "type": [
                            "number",
                            "null"
                          ]
                        },
                        "volume24hUsd": {
                          "type": [
                            "number",
                            "null"
                          ]
                        },
                        "netflowUsd24h": {
                          "type": [
                            "number",
                            "null"
                          ]
                        },
                        "deploymentDate": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "buyVolume24hUsd": {
                          "type": [
                            "number",
                            "null"
                          ]
                        },
                        "sellVolume24hUsd": {
                          "type": [
                            "number",
                            "null"
                          ]
                        },
                        "onchainTotalSupply": {
                          "type": [
                            "string",
                            "null"
                          ]
                        }
                      }
                    },
                    "ticker": {
                      "type": "string"
                    },
                    "disclaimer": {
                      "type": "string"
                    },
                    "resolution": {
                      "enum": [
                        "address-pinned",
                        "highest-mcap-above-floor"
                      ],
                      "type": "string",
                      "description": "How the token row was selected. Ticker-only lookups use a highest-market-cap-above-liquidity-floor heuristic (a dust filter, not identity verification — verify token.address); pass the optional \"address\" input to pin the exact contract."
                    },
                    "attribution": {
                      "type": "object",
                      "description": "Required \"Powered by Nansen API\" attribution — do not strip."
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "x402Version": 2
  }
]

OVER TIME

All charts use the 30d selector; each series spans only the dates it has data for. Every series is also served as JSON at /api/v1/services/sippar-token-market-data/price, /scores, /volume and /buyers. On-chain volume and distinct buyers are measured over the service's settlement address and are a conservative undercount (only settlements that reach a measured facilitator are counted). The on-chain series roll up hourly, so the latest day can be up to about an hour behind; distinct buyers are counted per payout address, so a service that settles to more than one address is an upper bound.

UPTIME
08-03 · uptime 91.1% · 1675ms avg08-04 · uptime 93.3% · 1576ms avg08-06 · uptime 91.1% · 1745ms avg08-07 · uptime 94.4% · 1078ms avg08-08 · uptime 90.0% · 1349ms avg08-09 · uptime 85.7% · 1247ms avg08-10 · uptime 88.8% · 1159ms avg08-12 · uptime 91.0% · 1037ms avg08-13 · uptime 85.6% · 2066ms avg08-14 · uptime 92.2% · 912ms avg08-17 · uptime 92.2% · 771ms avg08-25 · uptime 92.2% · 1025ms avg08-27 · uptime 92.2% · 927ms avg09-01 · uptime 93.5% · 318ms avg08-03 · uptime 91.1% · 1675ms avg08-04 · uptime 93.3% · 1576ms avg08-05 · uptime 95.6% · 1789ms avg08-06 · uptime 91.1% · 1745ms avg08-07 · uptime 94.4% · 1078ms avg08-08 · uptime 90.0% · 1349ms avg08-09 · uptime 85.7% · 1247ms avg08-10 · uptime 88.8% · 1159ms avg08-11 · uptime 96.7% · 1273ms avg08-12 · uptime 91.0% · 1037ms avg08-13 · uptime 85.6% · 2066ms avg08-14 · uptime 92.2% · 912ms avg08-15 · uptime 95.6% · 1215ms avg08-16 · uptime 100.0% · 716ms avg08-17 · uptime 92.2% · 771ms avg08-18 · uptime 96.7% · 1139ms avg08-19 · uptime 100.0% · 603ms avg08-20 · uptime 98.9% · 1270ms avg08-21 · uptime 96.6% · 618ms avg08-22 · uptime 98.9% · 1388ms avg08-23 · uptime 100.0% · 1170ms avg08-24 · uptime 95.5% · 863ms avg08-25 · uptime 92.2% · 1025ms avg08-26 · uptime 95.6% · 904ms avg08-27 · uptime 92.2% · 927ms avg08-28 · uptime 98.9% · 701ms avg08-29 · uptime 100.0% · 1168ms avg08-30 · uptime 95.5% · 1765ms avg08-31 · uptime 95.6% · 1729ms avg09-01 · uptime 93.5% · 318ms avg08-0309-01
30d UPTIME 94.5%
RESPONSE TIME
08-03 · 1675ms avg08-03 · 1675ms avg08-04 · 1576ms avg08-04 · 1576ms avg08-05 · 1789ms avg08-05 · 1789ms avg08-06 · 1745ms avg08-06 · 1745ms avg08-07 · 1078ms avg08-07 · 1078ms avg08-08 · 1349ms avg08-08 · 1349ms avg08-09 · 1247ms avg08-09 · 1247ms avg08-10 · 1159ms avg08-10 · 1159ms avg08-11 · 1273ms avg08-11 · 1273ms avg08-12 · 1037ms avg08-12 · 1037ms avg08-13 · 2066ms avg08-13 · 2066ms avg08-14 · 912ms avg08-14 · 912ms avg08-15 · 1215ms avg08-15 · 1215ms avg08-16 · 716ms avg08-16 · 716ms avg08-17 · 771ms avg08-17 · 771ms avg08-18 · 1139ms avg08-18 · 1139ms avg08-19 · 603ms avg08-19 · 603ms avg08-20 · 1270ms avg08-20 · 1270ms avg08-21 · 618ms avg08-21 · 618ms avg08-22 · 1388ms avg08-22 · 1388ms avg08-23 · 1170ms avg08-23 · 1170ms avg08-24 · 863ms avg08-24 · 863ms avg08-25 · 1025ms avg08-25 · 1025ms avg08-26 · 904ms avg08-26 · 904ms avg08-27 · 927ms avg08-27 · 927ms avg08-28 · 701ms avg08-28 · 701ms avg08-29 · 1168ms avg08-29 · 1168ms avg08-30 · 1765ms avg08-30 · 1765ms avg08-31 · 1729ms avg08-31 · 1729ms avg09-01 · 318ms avg09-01 · 318ms avg08-0309-01
AVG RESP 1185ms
PRICE (captured 402, USD)
08-02 · $0.1008-31 · $0.1009-01 · $0.10$0.1008-0209-01

Median across 5 endpoints. Use the selector to isolate one.

SUB-SCORES (uptime + x402 compliance)
08-02 uptime: 97.9% compliance: 93% checks08-03 uptime: 97.6% compliance: 93% checks08-04 uptime: 97.3% compliance: 93% checks08-05 uptime: 97.3% compliance: 93% checks08-06 uptime: 96.8% compliance: 93% checks08-07 uptime: 96.7% compliance: 93% checks08-08 uptime: 96.4% compliance: 93% checks08-09 uptime: 95.9% compliance: 93% checks08-10 uptime: 95.8% compliance: 93% checks08-11 uptime: 95.7% compliance: 93% checks08-12 uptime: 95.5% compliance: 93% checks08-13 uptime: 95.2% compliance: 93% checks08-14 uptime: 95.0% compliance: 93% checks08-15 uptime: 95.1% compliance: 93% checks08-16 uptime: 95.2% compliance: 93% checks08-17 uptime: 95.1% compliance: 93% checks08-18 uptime: 95.1% compliance: 93% checks08-19 uptime: 95.3% compliance: 93% checks08-20 uptime: 95.4% compliance: 93% checks08-21 uptime: 95.5% compliance: 93% checks08-22 uptime: 95.4% compliance: 93% checks08-23 uptime: 95.5% compliance: 93% checks08-24 uptime: 95.4% compliance: 93% checks08-25 uptime: 95.2% compliance: 93% checks08-26 uptime: 95.0% compliance: 93% checks08-27 uptime: 94.8% compliance: 93% checks08-28 uptime: 94.8% compliance: 93% checks08-29 uptime: 94.9% compliance: 93% checks08-30 uptime: 94.7% compliance: 93% checks08-31 uptime: 94.6% compliance: 93% checks09-01 uptime: 94.5% compliance: 100% checksuptimecompliance08-0209-01

checklist grew 11->14 on 2026-07-28; a step here is a metric change, not a regression

PILLARS OVER TIME (measured)

Measured site and economics pillars from the assessment history, so the latest value shown elsewhere on this page reads as a point on a trend rather than a permanent state.

VOLUME (on-chain settlement, USD)
building volume history (1 day so far)
DISTINCT BUYERS
building buyer history (1 day so far)

COMPLIANCE

14/14 checks pass · grade A

last 402 captured 2026-08-31 · last up 2026-09-01

  • 402 payload captured
  • accepts[] array present
  • payTo address recoverable
  • payTo at accepts[0].payTo (conformant shape)
  • payTo is a valid on-chain address
  • atomic price declared
  • atomic price in a sane range
  • asset (token) address declared
  • network resolves to CAIP-2
  • payment scheme declared
  • served over HTTPS
  • declares the current x402 version (2)
  • EIP-712 domain parameters present on every EVM entry
  • x402 v2 envelope delivered in the payment-required header

SITE PILLARS

  • homepage reachable
  • openapi doc
  • pricing page
  • llms.txt
  • robots.txt
  • terms page
recent checks (18) live · click to expand
TIME STATUS RESP CAUSE
● OK 133ms
● OK 195ms
● OK 222ms
● OK 316ms
● OK 290ms
● OK 311ms
● OK 339ms
● OK 169ms
○ DOWN 2000ms timeout: timeout after 10000ms
● OK 102ms
● OK 240ms
● OK 269ms
○ DOWN 2000ms timeout: timeout after 10000ms
● OK 237ms
● OK 215ms
○ DOWN 2000ms timeout: timeout after 10000ms
● OK 233ms
● OK 522ms

EMBED THIS BADGE

Show that Sippar Token Market Data is monitored on x402-list. Paste this on your site or README, it links back to this live listing.

Sippar Token Market Data listed on x402-list
status
Sippar Token Market Data uptime on x402-list
live uptime
// HTML
<a href="https://x402-list.com/services/sippar-token-market-data?utm_source=badge&utm_medium=referral&utm_campaign=embed">
  <img src="https://x402-list.com/badge/sippar-token-market-data.svg" alt="Sippar Token Market Data listed on x402-list" height="28">
</a>
// Markdown
[![Sippar Token Market Data on x402-list](https://x402-list.com/badge/sippar-token-market-data.svg)](https://x402-list.com/services/sippar-token-market-data?utm_source=badge&utm_medium=referral&utm_campaign=embed)
// HTML · live uptime variant
<a href="https://x402-list.com/services/sippar-token-market-data?utm_source=badge&utm_medium=referral&utm_campaign=embed">
  <img src="https://x402-list.com/badge/sippar-token-market-data.svg?data=uptime" alt="Sippar Token Market Data uptime on x402-list" height="28">
</a>

RUN THIS SERVICE?

Keep this listing accurate: propose changes to the name, description, website, category or add new endpoints to monitor. Ownership is verified with a domain proof and every change is reviewed manually; measured data stays read-only.

[ update this listing ]

Earn the verified tier: x402list pays a real call to this endpoint and, if it delivers, the service is delivery-verified. The fee covers the cost of the probe, not the badge; there is no refund if the call does not deliver. Agent and API only, no in-browser signing. See /api.

[ verify this service ($0.25) ]

To request delisting, email info@x402-list.com or update your listing at /services/sippar-token-market-data/update.