{
"schemaVersion": "market.v1",
"whatChanged": "web_social_scraping_automation rolling 30-day calls decreased by 1068 between observed snapshots.",
"whyItMatters": "The category may be losing attention or experiencing rolling-window churn; avoid expanding supply without checking resource-level drivers.",
"recommendedAction": "Check whether the decline is broad, concentrated, or caused by the rolling window before allocating more effort.",
"confidence": 0.78,
"evidence": {
"category": "web_social_scraping_automation",
"previousL30Calls": 55754,
"currentL30Calls": 54686,
"delta": -1068,
"baselineRefreshId": 181,
"currentRefreshId": 182
},
"unknowns": [
"Bazaar exposes per-resource 30-day calls and unique payers; it does not prove unique companies or durable profitability."
],
"nextCursor": "2026-08-29T19: 23: 05.940Z"
}
{
"schemaVersion": "market.v1",
"whatChanged": "web_social_scraping_automation rolling 30-day calls decreased by 1068 between observed snapshots.",
"whyItMatters": "The category may be losing attention or experiencing rolling-window churn; avoid expanding supply without checking resource-level drivers.",
"recommendedAction": "Check whether the decline is broad, concentrated, or caused by the rolling window before allocating more effort.",
"confidence": 0.78,
"evidence": {
"category": "web_social_scraping_automation",
"previousL30Calls": 55754,
"currentL30Calls": 54686,
"delta": -1068,
"baselineRefreshId": 181,
"currentRefreshId": 182
},
"unknowns": [
"Bazaar exposes per-resource 30-day calls and unique payers; it does not prove unique companies or durable profitability."
],
"nextCursor": "2026-08-29T19: 23: 05.940Z"
}
{
"schemaVersion": "market.v1",
"whatChanged": "web_social_scraping_automation rolling 30-day calls decreased by 1068 between observed snapshots.",
"whyItMatters": "The category may be losing attention or experiencing rolling-window churn; avoid expanding supply without checking resource-level drivers.",
"recommendedAction": "Check whether the decline is broad, concentrated, or caused by the rolling window before allocating more effort.",
"confidence": 0.78,
"evidence": {
"category": "web_social_scraping_automation",
"previousL30Calls": 55754,
"currentL30Calls": 54686,
"delta": -1068,
"baselineRefreshId": 181,
"currentRefreshId": 182
},
"unknowns": [
"Bazaar exposes per-resource 30-day calls and unique payers; it does not prove unique companies or durable profitability."
],
"nextCursor": "2026-08-29T19: 23: 05.940Z"
}
02BUYER JOURNEY
Pay only when the decision gets harder.
Every response is deterministic for its snapshot or cursor, with freshness, confidence, evidence references, and explicit unknowns.
{
"schemaVersion": "market.v1",
"whatChanged": "web_social_scraping_automation rolling 30-day calls decreased by 1068 between observed snapshots.",
"whyItMatters": "The category may be losing attention or experiencing rolling-window churn; avoid expanding supply without checking resource-level drivers.",
"recommendedAction": "Check whether the decline is broad, concentrated, or caused by the rolling window before allocating more effort.",
"confidence": 0.78,
"evidence": {
"category": "web_social_scraping_automation",
"previousL30Calls": 55754,
"currentL30Calls": 54686,
"delta": -1068,
"baselineRefreshId": 181,
"currentRefreshId": 182
},
"unknowns": [
"Bazaar exposes per-resource 30-day calls and unique payers; it does not prove unique companies or durable profitability."
],
"nextCursor": "2026-08-29T19: 23: 05.940Z"
}
{
"schemaVersion": "market.v1",
"whatChanged": "web_social_scraping_automation rolling 30-day calls decreased by 1068 between observed snapshots.",
"whyItMatters": "The category may be losing attention or experiencing rolling-window churn; avoid expanding supply without checking resource-level drivers.",
"recommendedAction": "Check whether the decline is broad, concentrated, or caused by the rolling window before allocating more effort.",
"confidence": 0.78,
"evidence": {
"category": "web_social_scraping_automation",
"previousL30Calls": 55754,
"currentL30Calls": 54686,
"delta": -1068,
"baselineRefreshId": 181,
"currentRefreshId": 182
},
"unknowns": [
"Bazaar exposes per-resource 30-day calls and unique payers; it does not prove unique companies or durable profitability."
],
"nextCursor": "2026-08-29T19: 23: 05.940Z"
}
{
"schemaVersion": "market.v1",
"whatChanged": "web_social_scraping_automation rolling 30-day calls decreased by 1068 between observed snapshots.",
"whyItMatters": "The category may be losing attention or experiencing rolling-window churn; avoid expanding supply without checking resource-level drivers.",
"recommendedAction": "Check whether the decline is broad, concentrated, or caused by the rolling window before allocating more effort.",
"confidence": 0.78,
"evidence": {
"category": "web_social_scraping_automation",
"previousL30Calls": 55754,
"currentL30Calls": 54686,
"delta": -1068,
"baselineRefreshId": 181,
"currentRefreshId": 182
},
"unknowns": [
"Bazaar exposes per-resource 30-day calls and unique payers; it does not prove unique companies or durable profitability."
],
"nextCursor": "2026-08-29T19: 23: 05.940Z"
}
05Competitor deep dive/v1/market/competitors?query=data$0.03+
Buy to inspect comparable endpoints, demand, pricing, and concentration for a specific query.
Free calls return data. Paid calls stop at the real 402 challenge—no wallet, signature, or charge is requested here.
FREE
402 DEMO
RESPONSEREADY
{
"ready": true,
"instruction": "Choose a free endpoint or inspect a paid 402 challenge."
}
04FIRST PAID CALL
Make one safe, recoverable paid request.
Start with the parameter-free $0.01 snapshot. The pinned x402 v2 client requests the route, signs only the returned Base-mainnet requirement, and retries once. Never paste a funded key into this page or commit it to source control.
01Request and inspect the 402
02Sign the exact returned requirement
03Verify delivery and payment response
INSTALL — PINNED TO THE SERVER'S X402 V2 RELEASE
npm i @x402/fetch@2.18.0 @x402/evm@2.18.0 viem
FIRST-CALL.MJS — BASE MAINNET / EXACT USDC
import { wrapFetchWithPaymentFromConfig } from "@x402/fetch";
import { ExactEvmScheme } from "@x402/evm";
import { privateKeyToAccount } from "viem/accounts";
const privateKey = process.env.EVM_PRIVATE_KEY;
if (!privateKey?.startsWith("0x")) throw new Error("Set EVM_PRIVATE_KEY");
const account = privateKeyToAccount(privateKey);
const paidFetch = wrapFetchWithPaymentFromConfig(fetch, {
schemes: [{
network: "eip155:8453",
client: new ExactEvmScheme(account),
}],
});
const response = await paidFetch(
"https://srv1334799.hstgr.cloud/v1/x402/demand/snapshot?source=landing_first_call",
);
if (!response.ok) {
throw new Error(response.status + ": " + await response.text());
}
console.log(JSON.stringify({
paymentResponse: response.headers.get("payment-response"),
body: await response.json(),
}, null, 2));
SatsSignal is for x402 builders with a live product decision: check status for material movement, inspect changes when something moved, then use the brief to decide whether to build, reprice, reposition, monitor, or retire. We are working closely with 3–5 builders during this test; partners get direct interpretation of the evidence and influence over the contract, with no subscription or lock-in.