{"x402Version":1,"name":"Sippar","baseUrl":"https://sippar.network","description":"A payment relay for the agent economy. Pay for priced HTTP services across many chains from one threshold-derived wallet, with an on-chain receipt for every payment. The resources below are Sippar's own paid endpoints; the marketplace endpoint lists everything Sippar can pay on your behalf.","contact":"elad@sippar.network","documentation":"https://sippar.network/llms.txt","openapi":"https://sippar.network/openapi.json","terms":"https://sippar.network/api/sippar/sell/terms","accepts":[{"rail":"base-x402","network":"base-mainnet","chainId":8453,"asset":"USDC","scheme":"exact"},{"rail":"solana-x402","network":"solana-mainnet","asset":"USDC","scheme":"exact"},{"rail":"tempo-mpp","network":"tempo","asset":"USDC.e","scheme":"mpp"}],"resources":[{"path":"/api/sippar/sell/token-intel","url":"https://sippar.network/api/sippar/sell/token-intel","method":"POST","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.","amount":"100000","priceUSD":0.1,"currency":"USDC","input":{"field":"ticker","example":"BONK","in":"body","body":{"ticker":"BONK"},"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","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."}},"required":["ticker"]}},"collect":{"settlementKeyHeader":"PAYMENT-SIGNATURE","settlementKeyHeaderV1":"X-PAYMENT","settlementKeyHeaderMpp":"Authorization","settlementKeyIs":"the exact value you sent in PAYMENT-SIGNATURE (x402 v2) or X-PAYMENT (x402 v1) — a tx hash, a Solana signature, or a signed x402 payload — or the MPP credential in Authorization","rePresentingIsFree":true,"collectUrl":"https://sippar.network/api/sippar/sell/token-intel/collect","collectMethod":"POST","collectableForSeconds":604800,"inFlightStatus":409,"duplicatePaymentRefusedStatus":409,"duplicatePaymentWindowSeconds":900,"recommendedClientTimeoutSeconds":300,"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.","preferHeader":"respond-async","acceptedStatus":202,"recommended":false},"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 (PAYMENT-SIGNATURE, X-PAYMENT or Authorization — whichever you paid with). 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."]}},{"path":"/api/sippar/sell/company-intel","url":"https://sippar.network/api/sippar/sell/company-intel","method":"POST","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.","amount":"150000","priceUSD":0.15,"currency":"USDC","input":{"field":"company","example":"stripe.com","in":"body","body":{"company":"stripe.com"},"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","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."}},"required":["company"]}},"collect":{"settlementKeyHeader":"PAYMENT-SIGNATURE","settlementKeyHeaderV1":"X-PAYMENT","settlementKeyHeaderMpp":"Authorization","settlementKeyIs":"the exact value you sent in PAYMENT-SIGNATURE (x402 v2) or X-PAYMENT (x402 v1) — a tx hash, a Solana signature, or a signed x402 payload — or the MPP credential in Authorization","rePresentingIsFree":true,"collectUrl":"https://sippar.network/api/sippar/sell/company-intel/collect","collectMethod":"POST","collectableForSeconds":604800,"inFlightStatus":409,"duplicatePaymentRefusedStatus":409,"duplicatePaymentWindowSeconds":900,"recommendedClientTimeoutSeconds":300,"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.","preferHeader":"respond-async","acceptedStatus":202,"recommended":false},"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 (PAYMENT-SIGNATURE, X-PAYMENT or Authorization — whichever you paid with). 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."]}},{"path":"/api/sippar/sell/property-intel","url":"https://sippar.network/api/sippar/sell/property-intel","method":"POST","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.","amount":"60000","priceUSD":0.06,"currency":"USDC","input":{"field":"latitude","example":"37.4220","in":"body","body":{"latitude":"37.4220","longitude":"-122.0841"},"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","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."}},"required":["latitude","longitude"]}},"collect":{"settlementKeyHeader":"PAYMENT-SIGNATURE","settlementKeyHeaderV1":"X-PAYMENT","settlementKeyHeaderMpp":"Authorization","settlementKeyIs":"the exact value you sent in PAYMENT-SIGNATURE (x402 v2) or X-PAYMENT (x402 v1) — a tx hash, a Solana signature, or a signed x402 payload — or the MPP credential in Authorization","rePresentingIsFree":true,"collectUrl":"https://sippar.network/api/sippar/sell/property-intel/collect","collectMethod":"POST","collectableForSeconds":604800,"inFlightStatus":409,"duplicatePaymentRefusedStatus":409,"duplicatePaymentWindowSeconds":900,"recommendedClientTimeoutSeconds":300,"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.","preferHeader":"respond-async","acceptedStatus":202,"recommended":false},"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 (PAYMENT-SIGNATURE, X-PAYMENT or Authorization — whichever you paid with). 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."]}},{"path":"/api/sippar/sell/web-content","url":"https://sippar.network/api/sippar/sell/web-content","method":"POST","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. The answer is ONE document, not a table of rows: `content.results[0].text` is the full extracted article body and is meant to be read as prose, `content.statuses` says whether the page was fetched at all (read it first — a page Exa could not reach comes back as an error status on a successful, paid call), and `favicon` is frequently a bare `data:` URI rather than a link worth following.","amount":"50000","priceUSD":0.05,"currency":"USDC","input":{"field":"url","example":"https://stripe.com/about","in":"body","body":{"url":"https://stripe.com/about"},"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","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."}},"required":["url"]}},"collect":{"settlementKeyHeader":"PAYMENT-SIGNATURE","settlementKeyHeaderV1":"X-PAYMENT","settlementKeyHeaderMpp":"Authorization","settlementKeyIs":"the exact value you sent in PAYMENT-SIGNATURE (x402 v2) or X-PAYMENT (x402 v1) — a tx hash, a Solana signature, or a signed x402 payload — or the MPP credential in Authorization","rePresentingIsFree":true,"collectUrl":"https://sippar.network/api/sippar/sell/web-content/collect","collectMethod":"POST","collectableForSeconds":604800,"inFlightStatus":409,"duplicatePaymentRefusedStatus":409,"duplicatePaymentWindowSeconds":900,"recommendedClientTimeoutSeconds":300,"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.","preferHeader":"respond-async","acceptedStatus":202,"recommended":false},"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 (PAYMENT-SIGNATURE, X-PAYMENT or Authorization — whichever you paid with). 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."]}},{"path":"/api/sippar/sell/social-search","url":"https://sippar.network/api/sippar/sell/social-search","method":"POST","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. Optionally narrow the run with \"platforms\" and \"window\"; both are optional, neither changes the price, and every platform reports the time window it actually searched. 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.","amount":"500000","priceUSD":0.5,"currency":"USDC","input":{"field":"query","example":"what are developers saying about paying per API call instead of subscriptions","in":"body","body":{"query":"what are developers saying about paying per API call instead of subscriptions"},"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"query":{"type":"string","minLength":3,"maxLength":500,"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."},"platforms":{"type":"array","items":{"type":"string","enum":["reddit","youtube","linkedin"]},"description":"Optional. Which platforms to search, as an array or a comma-separated string. Omit to search all of them, which is the default and costs the same. THE PRICE IS THE PRODUCT'S, NOT THE SUM OF THE LEGS: narrowing to one platform does not cost less, it buys a narrower answer for the same amount. Narrowing also makes an empty run more likely, and an empty run is charged. Platforms: reddit, youtube, linkedin."},"window":{"type":"string","enum":["day","week","month","year","all"],"description":"Optional. How far back to search. Omit and each platform keeps the window it has always used, which is NOT an all-time sweep: Reddit is pinned to the last month and the other platforms take their supplier's own default. Every platform reports the window it actually searched in its `window` block, including when it could not honour the one you asked for. Two suppliers publish no all-time option, so `all` is reported as not honoured on those legs rather than silently ignored."}},"required":["query"]}},"inputOptions":[{"field":"platforms","required":false,"type":"array","items":{"type":"string","enum":["reddit","youtube","linkedin"]},"description":"Optional. Which platforms to search, as an array or a comma-separated string. Omit to search all of them, which is the default and costs the same. THE PRICE IS THE PRODUCT'S, NOT THE SUM OF THE LEGS: narrowing to one platform does not cost less, it buys a narrower answer for the same amount. Narrowing also makes an empty run more likely, and an empty run is charged. Platforms: reddit, youtube, linkedin."},{"field":"window","required":false,"type":"string","enum":["day","week","month","year","all"],"description":"Optional. How far back to search. Omit and each platform keeps the window it has always used, which is NOT an all-time sweep: Reddit is pinned to the last month and the other platforms take their supplier's own default. Every platform reports the window it actually searched in its `window` block, including when it could not honour the one you asked for. Two suppliers publish no all-time option, so `all` is reported as not honoured on those legs rather than silently ignored."}],"collect":{"settlementKeyHeader":"PAYMENT-SIGNATURE","settlementKeyHeaderV1":"X-PAYMENT","settlementKeyHeaderMpp":"Authorization","settlementKeyIs":"the exact value you sent in PAYMENT-SIGNATURE (x402 v2) or X-PAYMENT (x402 v1) — a tx hash, a Solana signature, or a signed x402 payload — or the MPP credential in Authorization","rePresentingIsFree":true,"collectUrl":"https://sippar.network/api/sippar/sell/social-search/collect","collectMethod":"POST","collectableForSeconds":604800,"inFlightStatus":409,"duplicatePaymentRefusedStatus":409,"duplicatePaymentWindowSeconds":900,"recommendedClientTimeoutSeconds":300,"expectedLatencySeconds":{"typical":70,"max":300,"measuredOn":"2026-08-27"},"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.","preferHeader":"respond-async","acceptedStatus":202,"recommended":true},"preferredEndpoint":{"url":"https://sippar.network/api/sippar/sell/social-search","method":"POST","supportsAsyncHandle":true,"supportsCollectVerb":true,"recoverableByRePresentingPayment":true,"why":"This product runs long enough that the two escapes above matter, and this is the only door where both work. `Prefer: respond-async` and the collect URL are not plumbed through the MCP doors below.","avoid":[{"url":"https://sippar.network/mcp/tools/pay/buy","body":{"productId":"social-search","input":{"query":"what are developers saying about paying per API call instead of subscriptions"}},"clientAbortsAfterSeconds":130,"supportsAsyncHandle":false,"supportsCollectVerb":false,"recoverableByRePresentingPayment":true,"recoveryCaveat":"Only once the run has finished. While it is still running the sell route answers 409 with your settlement key and this contract in it, but that body carries no error code, so this hop renders it as another HTTP 502 and drops both. Wait out `expectedLatencySeconds.max` before reading a second 502 as a failure.","why":"The hop aborts at its own ceiling, below this product's declared maximum latency. Past that you are charged and answered HTTP 502 with no settlement key in the answer. Your result is NOT lost: re-present the same payment credential, either here once the run has finished or at the collect URL above at any time, and you are served it free.","issue":"https://github.com/Nuru-AI/sippar/issues/2311"},{"url":"https://sippar.network/mcp/protocol/pay","tool":"buy_product","clientAbortsAfterSeconds":130,"supportsAsyncHandle":false,"supportsCollectVerb":false,"recoverableByRePresentingPayment":true,"recoveryCaveat":"Same as the hop above: re-presenting works once the run has finished, and reads as another failure while it is still going.","answersReal402":false,"why":"Same abort as the hop above, and JSON-RPC has no status code to spend, so an unpaid call answers 200 with `data.paymentRequired` rather than a 402 an x402 client pays automatically.","issue":"https://github.com/Nuru-AI/sippar/issues/2311"}]},"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 (PAYMENT-SIGNATURE, X-PAYMENT or Authorization — whichever you paid with). 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."]}}],"endpoints":[{"path":"/api/sippar/sell/token-intel","url":"https://sippar.network/api/sippar/sell/token-intel","method":"POST","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.","amount":"100000","priceUSD":0.1,"currency":"USDC","input":{"field":"ticker","example":"BONK","in":"body","body":{"ticker":"BONK"},"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","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."}},"required":["ticker"]}},"collect":{"settlementKeyHeader":"PAYMENT-SIGNATURE","settlementKeyHeaderV1":"X-PAYMENT","settlementKeyHeaderMpp":"Authorization","settlementKeyIs":"the exact value you sent in PAYMENT-SIGNATURE (x402 v2) or X-PAYMENT (x402 v1) — a tx hash, a Solana signature, or a signed x402 payload — or the MPP credential in Authorization","rePresentingIsFree":true,"collectUrl":"https://sippar.network/api/sippar/sell/token-intel/collect","collectMethod":"POST","collectableForSeconds":604800,"inFlightStatus":409,"duplicatePaymentRefusedStatus":409,"duplicatePaymentWindowSeconds":900,"recommendedClientTimeoutSeconds":300,"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.","preferHeader":"respond-async","acceptedStatus":202,"recommended":false},"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 (PAYMENT-SIGNATURE, X-PAYMENT or Authorization — whichever you paid with). 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."]}},{"path":"/api/sippar/sell/company-intel","url":"https://sippar.network/api/sippar/sell/company-intel","method":"POST","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.","amount":"150000","priceUSD":0.15,"currency":"USDC","input":{"field":"company","example":"stripe.com","in":"body","body":{"company":"stripe.com"},"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","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."}},"required":["company"]}},"collect":{"settlementKeyHeader":"PAYMENT-SIGNATURE","settlementKeyHeaderV1":"X-PAYMENT","settlementKeyHeaderMpp":"Authorization","settlementKeyIs":"the exact value you sent in PAYMENT-SIGNATURE (x402 v2) or X-PAYMENT (x402 v1) — a tx hash, a Solana signature, or a signed x402 payload — or the MPP credential in Authorization","rePresentingIsFree":true,"collectUrl":"https://sippar.network/api/sippar/sell/company-intel/collect","collectMethod":"POST","collectableForSeconds":604800,"inFlightStatus":409,"duplicatePaymentRefusedStatus":409,"duplicatePaymentWindowSeconds":900,"recommendedClientTimeoutSeconds":300,"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.","preferHeader":"respond-async","acceptedStatus":202,"recommended":false},"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 (PAYMENT-SIGNATURE, X-PAYMENT or Authorization — whichever you paid with). 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."]}},{"path":"/api/sippar/sell/property-intel","url":"https://sippar.network/api/sippar/sell/property-intel","method":"POST","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.","amount":"60000","priceUSD":0.06,"currency":"USDC","input":{"field":"latitude","example":"37.4220","in":"body","body":{"latitude":"37.4220","longitude":"-122.0841"},"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","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."}},"required":["latitude","longitude"]}},"collect":{"settlementKeyHeader":"PAYMENT-SIGNATURE","settlementKeyHeaderV1":"X-PAYMENT","settlementKeyHeaderMpp":"Authorization","settlementKeyIs":"the exact value you sent in PAYMENT-SIGNATURE (x402 v2) or X-PAYMENT (x402 v1) — a tx hash, a Solana signature, or a signed x402 payload — or the MPP credential in Authorization","rePresentingIsFree":true,"collectUrl":"https://sippar.network/api/sippar/sell/property-intel/collect","collectMethod":"POST","collectableForSeconds":604800,"inFlightStatus":409,"duplicatePaymentRefusedStatus":409,"duplicatePaymentWindowSeconds":900,"recommendedClientTimeoutSeconds":300,"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.","preferHeader":"respond-async","acceptedStatus":202,"recommended":false},"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 (PAYMENT-SIGNATURE, X-PAYMENT or Authorization — whichever you paid with). 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."]}},{"path":"/api/sippar/sell/web-content","url":"https://sippar.network/api/sippar/sell/web-content","method":"POST","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. The answer is ONE document, not a table of rows: `content.results[0].text` is the full extracted article body and is meant to be read as prose, `content.statuses` says whether the page was fetched at all (read it first — a page Exa could not reach comes back as an error status on a successful, paid call), and `favicon` is frequently a bare `data:` URI rather than a link worth following.","amount":"50000","priceUSD":0.05,"currency":"USDC","input":{"field":"url","example":"https://stripe.com/about","in":"body","body":{"url":"https://stripe.com/about"},"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","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."}},"required":["url"]}},"collect":{"settlementKeyHeader":"PAYMENT-SIGNATURE","settlementKeyHeaderV1":"X-PAYMENT","settlementKeyHeaderMpp":"Authorization","settlementKeyIs":"the exact value you sent in PAYMENT-SIGNATURE (x402 v2) or X-PAYMENT (x402 v1) — a tx hash, a Solana signature, or a signed x402 payload — or the MPP credential in Authorization","rePresentingIsFree":true,"collectUrl":"https://sippar.network/api/sippar/sell/web-content/collect","collectMethod":"POST","collectableForSeconds":604800,"inFlightStatus":409,"duplicatePaymentRefusedStatus":409,"duplicatePaymentWindowSeconds":900,"recommendedClientTimeoutSeconds":300,"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.","preferHeader":"respond-async","acceptedStatus":202,"recommended":false},"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 (PAYMENT-SIGNATURE, X-PAYMENT or Authorization — whichever you paid with). 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."]}},{"path":"/api/sippar/sell/social-search","url":"https://sippar.network/api/sippar/sell/social-search","method":"POST","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. Optionally narrow the run with \"platforms\" and \"window\"; both are optional, neither changes the price, and every platform reports the time window it actually searched. 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.","amount":"500000","priceUSD":0.5,"currency":"USDC","input":{"field":"query","example":"what are developers saying about paying per API call instead of subscriptions","in":"body","body":{"query":"what are developers saying about paying per API call instead of subscriptions"},"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"query":{"type":"string","minLength":3,"maxLength":500,"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."},"platforms":{"type":"array","items":{"type":"string","enum":["reddit","youtube","linkedin"]},"description":"Optional. Which platforms to search, as an array or a comma-separated string. Omit to search all of them, which is the default and costs the same. THE PRICE IS THE PRODUCT'S, NOT THE SUM OF THE LEGS: narrowing to one platform does not cost less, it buys a narrower answer for the same amount. Narrowing also makes an empty run more likely, and an empty run is charged. Platforms: reddit, youtube, linkedin."},"window":{"type":"string","enum":["day","week","month","year","all"],"description":"Optional. How far back to search. Omit and each platform keeps the window it has always used, which is NOT an all-time sweep: Reddit is pinned to the last month and the other platforms take their supplier's own default. Every platform reports the window it actually searched in its `window` block, including when it could not honour the one you asked for. Two suppliers publish no all-time option, so `all` is reported as not honoured on those legs rather than silently ignored."}},"required":["query"]}},"inputOptions":[{"field":"platforms","required":false,"type":"array","items":{"type":"string","enum":["reddit","youtube","linkedin"]},"description":"Optional. Which platforms to search, as an array or a comma-separated string. Omit to search all of them, which is the default and costs the same. THE PRICE IS THE PRODUCT'S, NOT THE SUM OF THE LEGS: narrowing to one platform does not cost less, it buys a narrower answer for the same amount. Narrowing also makes an empty run more likely, and an empty run is charged. Platforms: reddit, youtube, linkedin."},{"field":"window","required":false,"type":"string","enum":["day","week","month","year","all"],"description":"Optional. How far back to search. Omit and each platform keeps the window it has always used, which is NOT an all-time sweep: Reddit is pinned to the last month and the other platforms take their supplier's own default. Every platform reports the window it actually searched in its `window` block, including when it could not honour the one you asked for. Two suppliers publish no all-time option, so `all` is reported as not honoured on those legs rather than silently ignored."}],"collect":{"settlementKeyHeader":"PAYMENT-SIGNATURE","settlementKeyHeaderV1":"X-PAYMENT","settlementKeyHeaderMpp":"Authorization","settlementKeyIs":"the exact value you sent in PAYMENT-SIGNATURE (x402 v2) or X-PAYMENT (x402 v1) — a tx hash, a Solana signature, or a signed x402 payload — or the MPP credential in Authorization","rePresentingIsFree":true,"collectUrl":"https://sippar.network/api/sippar/sell/social-search/collect","collectMethod":"POST","collectableForSeconds":604800,"inFlightStatus":409,"duplicatePaymentRefusedStatus":409,"duplicatePaymentWindowSeconds":900,"recommendedClientTimeoutSeconds":300,"expectedLatencySeconds":{"typical":70,"max":300,"measuredOn":"2026-08-27"},"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.","preferHeader":"respond-async","acceptedStatus":202,"recommended":true},"preferredEndpoint":{"url":"https://sippar.network/api/sippar/sell/social-search","method":"POST","supportsAsyncHandle":true,"supportsCollectVerb":true,"recoverableByRePresentingPayment":true,"why":"This product runs long enough that the two escapes above matter, and this is the only door where both work. `Prefer: respond-async` and the collect URL are not plumbed through the MCP doors below.","avoid":[{"url":"https://sippar.network/mcp/tools/pay/buy","body":{"productId":"social-search","input":{"query":"what are developers saying about paying per API call instead of subscriptions"}},"clientAbortsAfterSeconds":130,"supportsAsyncHandle":false,"supportsCollectVerb":false,"recoverableByRePresentingPayment":true,"recoveryCaveat":"Only once the run has finished. While it is still running the sell route answers 409 with your settlement key and this contract in it, but that body carries no error code, so this hop renders it as another HTTP 502 and drops both. Wait out `expectedLatencySeconds.max` before reading a second 502 as a failure.","why":"The hop aborts at its own ceiling, below this product's declared maximum latency. Past that you are charged and answered HTTP 502 with no settlement key in the answer. Your result is NOT lost: re-present the same payment credential, either here once the run has finished or at the collect URL above at any time, and you are served it free.","issue":"https://github.com/Nuru-AI/sippar/issues/2311"},{"url":"https://sippar.network/mcp/protocol/pay","tool":"buy_product","clientAbortsAfterSeconds":130,"supportsAsyncHandle":false,"supportsCollectVerb":false,"recoverableByRePresentingPayment":true,"recoveryCaveat":"Same as the hop above: re-presenting works once the run has finished, and reads as another failure while it is still going.","answersReal402":false,"why":"Same abort as the hop above, and JSON-RPC has no status code to spend, so an unpaid call answers 200 with `data.paymentRequired` rather than a 402 an x402 client pays automatically.","issue":"https://github.com/Nuru-AI/sippar/issues/2311"}]},"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 (PAYMENT-SIGNATURE, X-PAYMENT or Authorization — whichever you paid with). 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."]}}],"related":{"marketplace":"https://sippar.network/api/sippar/marketplace","attestedMarketplace":"https://sippar.network/api/sippar/marketplace/attested","publicPayEndpoint":"https://sippar.network/mcp/tools/pay/pay","buyEndpoint":"https://sippar.network/mcp/tools/pay/buy","mcpProtocol":"https://sippar.network/mcp/protocol/pay","mcp":"https://sippar.network/mcp","buyEndpointLimits":{"appliesTo":["buyEndpoint","mcpProtocol"],"clientAbortsAfterSeconds":130,"supportsAsyncHandle":false,"supportsCollectVerb":false,"recoverableByRePresentingPayment":true,"recoveryCaveat":"Only once the run has finished. While it is still running the sell route answers 409 carrying the settlement key, but that body has no error code, so the hop renders it as another HTTP 502 and drops it.","preferResourceUrlWhen":"collect.asyncHandle.recommended","issue":"https://github.com/Nuru-AI/sippar/issues/2311"}},"skills":[{"name":"sippar-social-data","url":"https://sippar.network/skills/sippar-social-data/SKILL.md","covers":["social-search"],"description":"Buying social listening per call: the request shape, the latency and collect contract, what the answer does and does not contain, and how to read a thin result honestly. Also says plainly that sippar.network/social/ is a human page an agent should not drive."}]}