Does your data endpoint actually “ask for payment correctly”? Paste the endpoint URL and check item-by-item: does it return 402 when unpaid? Is the payment-required header present? Is the network Base mainnet? Are the receiving address and amount correct? Can browsers read custom headers? Is the response fast enough? After checking, you get copy-paste-ready Node/Express code.
Send a request directly from your browser. If the target does not enable CORS, the browser will block it—use Method B below in that case.
Run the generated curl command below on your server, then paste its full output here—this method bypasses CORS restrictions and yields the most accurate result.
Auto-generated after filling in the endpoint URL.
Auto-generated after filling in the endpoint URL.
1 · The endpoint returning SSE is marked as "dead".Our own health checker uses a JSON-RPC client to probe the MCP endpoint; the remote side returns an SSE stream instead of JSON, causing parsing failure and marking the endpoint as dead. Later changed to:Check HTTP status codes onlyBoth 200 and 402 indicate the endpoint is alive.
2 · Browsers cannot read custom response headers.Under CORS, only simple response headers are readable,payment-required Must be written into Access-Control-Expose-HeadersOtherwise, the frontend receives null.
3 · Incorrect amount unit.USDC has 6 decimal places.maxAmountRequired Specify the smallest unit: 0.01 USDC = 10000. Written as 0.01 Actually charges only $0.00000001.
4 · Local proxy triggers false alerts.Always add site online status check. --noproxy '*'We previously misinterpreted the proxy’s 410 response as “the naked domain is down”, when it was actually 200.