{"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"},{"rail":"celo-x402","network":"celo-mainnet","chainId":42220,"asset":"USDC","scheme":"transfer"},{"rail":"celo-x402-exact","network":"celo-mainnet","chainId":42220,"asset":"USD₮","address":"0x48065fbBE25f71C9282ddf5e1cD6D6A887483D5e","scheme":"exact"},{"rail":"celo-x402-exact","network":"celo-mainnet","chainId":42220,"asset":"USA₮","address":"0xD2ab3C9A02DBBAB236BfEC45D1d755DF4267F771","scheme":"exact"},{"rail":"celo-x402-exact","network":"celo-mainnet","chainId":42220,"asset":"USDC","address":"0xcebA9300f2b948710d2653dD7B07f33A8B32118C","scheme":"exact"}],"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":900,"inFlightStatus":409,"newPaymentIsAlwaysLive":true,"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 a settlementKey and this collect URL; collect the result there by POSTing the same payment header you paid with (PAYMENT-SIGNATURE, X-PAYMENT or Authorization), exactly as you sent it. settlementKey identifies the purchase; it is not always the header: on MPP it is the challenge id, and the credential you sent in Authorization is what collects (#6166).","preferHeader":"respond-async","acceptedStatus":202,"recommended":false},"ifYourClientTimesOut":["Do NOT pay again. Your payment bought one delivery and it is held for 15 minutes.","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 NEW payment is not refused: it buys a fresh live call and is charged. To get what you already paid for without paying again, re-present the SAME payment."]}},{"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"]}},"inputOptions":[{"field":"include","required":false,"description":"\"funding\" adds the company's Funding history (SEC Form D filings, GLEIF legal entity and parent company) to the same purchase, priced as the two products together. Leave it out for the profile alone.","enum":["funding"]}],"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":900,"inFlightStatus":409,"newPaymentIsAlwaysLive":true,"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 a settlementKey and this collect URL; collect the result there by POSTing the same payment header you paid with (PAYMENT-SIGNATURE, X-PAYMENT or Authorization), exactly as you sent it. settlementKey identifies the purchase; it is not always the header: on MPP it is the challenge id, and the credential you sent in Authorization is what collects (#6166).","preferHeader":"respond-async","acceptedStatus":202,"recommended":false},"ifYourClientTimesOut":["Do NOT pay again. Your payment bought one delivery and it is held for 15 minutes.","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 NEW payment is not refused: it buys a fresh live call and is charged. To get what you already paid for without paying again, re-present the SAME payment."]}},{"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, at the best imagery quality Google holds for the spot (imageryQuality in the response says HIGH, MEDIUM or LOW). Coverage follows Google's roof imagery, strongest in the US and Europe; 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":900,"inFlightStatus":409,"newPaymentIsAlwaysLive":true,"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 a settlementKey and this collect URL; collect the result there by POSTing the same payment header you paid with (PAYMENT-SIGNATURE, X-PAYMENT or Authorization), exactly as you sent it. settlementKey identifies the purchase; it is not always the header: on MPP it is the challenge id, and the credential you sent in Authorization is what collects (#6166).","preferHeader":"respond-async","acceptedStatus":202,"recommended":false},"ifYourClientTimesOut":["Do NOT pay again. Your payment bought one delivery and it is held for 15 minutes.","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 NEW payment is not refused: it buys a fresh live call and is charged. To get what you already paid for without paying again, re-present the SAME payment."]}},{"path":"/api/sippar/sell/web-content","url":"https://sippar.network/api/sippar/sell/web-content","method":"POST","description":"The text of one web page, as clean Markdown. One URL per call: pull a company's site, press page or about page for context. Read by an Apify Actor (Smart Page Fetcher, by Scott Helvick); a page it cannot read is read by Exa through StableEnrich instead, at the same price. The answer is ONE document, not a table of rows, and `provider` says which reader served it: from `apify`, `content.outputs.markdown` is the page text and `content.status` is `success`; from `exa`, `content.results[0].text` is the page text and `content.statuses` says whether the page was fetched (read it first: a page Exa could not reach comes back as an error status on a paid call). Read the text as prose, never as a table cell. Optional `include` adds, at the same price and from the same read, the page's tables, links, images, preview (its own title, description and preview picture) and headings, each under `content.outputs` (Apify reads only). Code blocks the Markdown leaves out (docs sites often put code in tabs) come back under `codeBlocks`, each with its `code`, `language` and the `tab` it sits under on the page, taken unchanged from the same read (Apify reads only).","amount":"5000","priceUSD":0.005,"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 read, e.g. \"https://stripe.com/about\". Exactly one per call: this product is priced for a single page, 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."},"include":{"type":"string","description":"Optional, comma-separated: tables, links, images, preview, headings. Same price; each lands under content.outputs (tables, links, media, og, headings) when the Apify reader serves the page."}},"required":["url"]}},"inputOptions":[{"field":"include","required":false,"description":"Optional, comma-separated: tables, links, images, preview, headings. Same price; each lands under content.outputs (tables, links, media, og, headings) when the Apify reader serves the page.","type":"string"}],"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":900,"inFlightStatus":409,"newPaymentIsAlwaysLive":true,"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 a settlementKey and this collect URL; collect the result there by POSTing the same payment header you paid with (PAYMENT-SIGNATURE, X-PAYMENT or Authorization), exactly as you sent it. settlementKey identifies the purchase; it is not always the header: on MPP it is the challenge id, and the credential you sent in Authorization is what collects (#6166).","preferHeader":"respond-async","acceptedStatus":202,"recommended":false},"ifYourClientTimesOut":["Do NOT pay again. Your payment bought one delivery and it is held for 15 minutes.","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 NEW payment is not refused: it buys a fresh live call and is charged. To get what you already paid for without paying again, re-present the SAME payment."]}},{"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":900,"inFlightStatus":409,"newPaymentIsAlwaysLive":true,"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 a settlementKey and this collect URL; collect the result there by POSTing the same payment header you paid with (PAYMENT-SIGNATURE, X-PAYMENT or Authorization), exactly as you sent it. settlementKey identifies the purchase; it is not always the header: on MPP it is the challenge id, and the credential you sent in Authorization is what collects (#6166).","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 15 minutes.","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 NEW payment is not refused: it buys a fresh live call and is charged. To get what you already paid for without paying again, re-present the SAME payment."]}}],"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":900,"inFlightStatus":409,"newPaymentIsAlwaysLive":true,"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 a settlementKey and this collect URL; collect the result there by POSTing the same payment header you paid with (PAYMENT-SIGNATURE, X-PAYMENT or Authorization), exactly as you sent it. settlementKey identifies the purchase; it is not always the header: on MPP it is the challenge id, and the credential you sent in Authorization is what collects (#6166).","preferHeader":"respond-async","acceptedStatus":202,"recommended":false},"ifYourClientTimesOut":["Do NOT pay again. Your payment bought one delivery and it is held for 15 minutes.","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 NEW payment is not refused: it buys a fresh live call and is charged. To get what you already paid for without paying again, re-present the SAME payment."]}},{"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"]}},"inputOptions":[{"field":"include","required":false,"description":"\"funding\" adds the company's Funding history (SEC Form D filings, GLEIF legal entity and parent company) to the same purchase, priced as the two products together. Leave it out for the profile alone.","enum":["funding"]}],"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":900,"inFlightStatus":409,"newPaymentIsAlwaysLive":true,"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 a settlementKey and this collect URL; collect the result there by POSTing the same payment header you paid with (PAYMENT-SIGNATURE, X-PAYMENT or Authorization), exactly as you sent it. settlementKey identifies the purchase; it is not always the header: on MPP it is the challenge id, and the credential you sent in Authorization is what collects (#6166).","preferHeader":"respond-async","acceptedStatus":202,"recommended":false},"ifYourClientTimesOut":["Do NOT pay again. Your payment bought one delivery and it is held for 15 minutes.","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 NEW payment is not refused: it buys a fresh live call and is charged. To get what you already paid for without paying again, re-present the SAME payment."]}},{"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, at the best imagery quality Google holds for the spot (imageryQuality in the response says HIGH, MEDIUM or LOW). Coverage follows Google's roof imagery, strongest in the US and Europe; 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":900,"inFlightStatus":409,"newPaymentIsAlwaysLive":true,"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 a settlementKey and this collect URL; collect the result there by POSTing the same payment header you paid with (PAYMENT-SIGNATURE, X-PAYMENT or Authorization), exactly as you sent it. settlementKey identifies the purchase; it is not always the header: on MPP it is the challenge id, and the credential you sent in Authorization is what collects (#6166).","preferHeader":"respond-async","acceptedStatus":202,"recommended":false},"ifYourClientTimesOut":["Do NOT pay again. Your payment bought one delivery and it is held for 15 minutes.","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 NEW payment is not refused: it buys a fresh live call and is charged. To get what you already paid for without paying again, re-present the SAME payment."]}},{"path":"/api/sippar/sell/web-content","url":"https://sippar.network/api/sippar/sell/web-content","method":"POST","description":"The text of one web page, as clean Markdown. One URL per call: pull a company's site, press page or about page for context. Read by an Apify Actor (Smart Page Fetcher, by Scott Helvick); a page it cannot read is read by Exa through StableEnrich instead, at the same price. The answer is ONE document, not a table of rows, and `provider` says which reader served it: from `apify`, `content.outputs.markdown` is the page text and `content.status` is `success`; from `exa`, `content.results[0].text` is the page text and `content.statuses` says whether the page was fetched (read it first: a page Exa could not reach comes back as an error status on a paid call). Read the text as prose, never as a table cell. Optional `include` adds, at the same price and from the same read, the page's tables, links, images, preview (its own title, description and preview picture) and headings, each under `content.outputs` (Apify reads only). Code blocks the Markdown leaves out (docs sites often put code in tabs) come back under `codeBlocks`, each with its `code`, `language` and the `tab` it sits under on the page, taken unchanged from the same read (Apify reads only).","amount":"5000","priceUSD":0.005,"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 read, e.g. \"https://stripe.com/about\". Exactly one per call: this product is priced for a single page, 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."},"include":{"type":"string","description":"Optional, comma-separated: tables, links, images, preview, headings. Same price; each lands under content.outputs (tables, links, media, og, headings) when the Apify reader serves the page."}},"required":["url"]}},"inputOptions":[{"field":"include","required":false,"description":"Optional, comma-separated: tables, links, images, preview, headings. Same price; each lands under content.outputs (tables, links, media, og, headings) when the Apify reader serves the page.","type":"string"}],"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":900,"inFlightStatus":409,"newPaymentIsAlwaysLive":true,"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 a settlementKey and this collect URL; collect the result there by POSTing the same payment header you paid with (PAYMENT-SIGNATURE, X-PAYMENT or Authorization), exactly as you sent it. settlementKey identifies the purchase; it is not always the header: on MPP it is the challenge id, and the credential you sent in Authorization is what collects (#6166).","preferHeader":"respond-async","acceptedStatus":202,"recommended":false},"ifYourClientTimesOut":["Do NOT pay again. Your payment bought one delivery and it is held for 15 minutes.","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 NEW payment is not refused: it buys a fresh live call and is charged. To get what you already paid for without paying again, re-present the SAME payment."]}},{"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":900,"inFlightStatus":409,"newPaymentIsAlwaysLive":true,"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 a settlementKey and this collect URL; collect the result there by POSTing the same payment header you paid with (PAYMENT-SIGNATURE, X-PAYMENT or Authorization), exactly as you sent it. settlementKey identifies the purchase; it is not always the header: on MPP it is the challenge id, and the credential you sent in Authorization is what collects (#6166).","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 15 minutes.","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 NEW payment is not refused: it buys a fresh live call and is charged. To get what you already paid for without paying again, re-present the SAME payment."]}}],"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."}]}