<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[x402serps]]></title><description><![CDATA[x402serps]]></description><link>https://x402serps.hashnode.dev</link><generator>RSS for Node</generator><lastBuildDate>Sat, 07 Nov 2026 10:11:59 GMT</lastBuildDate><atom:link href="https://x402serps.hashnode.dev/rss.xml" rel="self" type="application/rss+xml"/><language><![CDATA[en]]></language><ttl>60</ttl><item><title><![CDATA[A SerpAPI alternative for AI agents: pay per call, no subscription]]></title><description><![CDATA[Disclosure: I build x402serps. Wrap fetch with an x402 client (e.g. @x402/fetch) and drop the trial header. The endpoint answers 402 with a price; the…]]></description><link>https://x402serps.hashnode.dev/a-serpapi-alternative-for-ai-agents-pay-per-call-no-subscription</link><guid isPermaLink="true">https://x402serps.hashnode.dev/a-serpapi-alternative-for-ai-agents-pay-per-call-no-subscription</guid><dc:creator><![CDATA[x402serps]]></dc:creator><pubDate>Wed, 04 Nov 2026 14:34:09 GMT</pubDate><content:encoded><![CDATA[<p>Disclosure: I build x402serps.</p>
<h2>Try without a wallet (25-call trial)</h2>
<pre><code class="language-js">import { tool } from "ai"; import { z } from "zod";
export const webSearch = tool({
  description: "Search the web",
  parameters: z.object({ q: z.string() }),
  execute: async ({ q }) =&gt; (await fetch("https://x402serps.com/api/v1/search", {
    method: "POST", headers: { "content-type": "application/json", "X-Trial": "1" },
    body: JSON.stringify({ q }) })).json(),
});
</code></pre>
<h2>Production: pay per call</h2>
<p>Wrap fetch with an x402 client (e.g. <code>@x402/fetch</code>) and drop the trial header. The endpoint answers 402 with a price; the client signs $0.004 USDC and retries.</p>
<p>LangChain (Python) and AI SDK guides: <a href="https://x402serps.com/docs/langchain?utm_source=devto&amp;utm_medium=article&amp;utm_campaign=100sales">https://x402serps.com/docs/langchain?utm_source=devto&amp;utm_medium=article&amp;utm_campaign=100sales</a> and <a href="https://x402serps.com/docs/vercel-ai-sdk?utm_source=devto&amp;utm_medium=article&amp;utm_campaign=100sales">https://x402serps.com/docs/vercel-ai-sdk?utm_source=devto&amp;utm_medium=article&amp;utm_campaign=100sales</a></p>
]]></content:encoded></item><item><title><![CDATA[A web search tool for LangChain and the Vercel AI SDK, paid per call with x402]]></title><description><![CDATA[Disclosure: I build x402serps. Wrap fetch with an x402 client (e.g. @x402/fetch) and drop the trial header. The endpoint answers 402 with a price; the…]]></description><link>https://x402serps.hashnode.dev/a-web-search-tool-for-langchain-and-the-vercel-ai-sdk-paid-per-call-with-x402</link><guid isPermaLink="true">https://x402serps.hashnode.dev/a-web-search-tool-for-langchain-and-the-vercel-ai-sdk-paid-per-call-with-x402</guid><dc:creator><![CDATA[x402serps]]></dc:creator><pubDate>Wed, 04 Nov 2026 14:33:36 GMT</pubDate><content:encoded><![CDATA[<p>Disclosure: I build x402serps.</p>
<h2>Try without a wallet (25-call trial)</h2>
<pre><code class="language-js">import { tool } from "ai"; import { z } from "zod";
export const webSearch = tool({
  description: "Search the web",
  parameters: z.object({ q: z.string() }),
  execute: async ({ q }) =&gt; (await fetch("https://x402serps.com/api/v1/search", {
    method: "POST", headers: { "content-type": "application/json", "X-Trial": "1" },
    body: JSON.stringify({ q }) })).json(),
});
</code></pre>
<h2>Production: pay per call</h2>
<p>Wrap fetch with an x402 client (e.g. <code>@x402/fetch</code>) and drop the trial header. The endpoint answers 402 with a price; the client signs $0.004 USDC and retries.</p>
<p>LangChain (Python) and AI SDK guides: <a href="https://x402serps.com/docs/langchain?utm_source=devto&amp;utm_medium=article&amp;utm_campaign=100sales">https://x402serps.com/docs/langchain?utm_source=devto&amp;utm_medium=article&amp;utm_campaign=100sales</a> and <a href="https://x402serps.com/docs/vercel-ai-sdk?utm_source=devto&amp;utm_medium=article&amp;utm_campaign=100sales">https://x402serps.com/docs/vercel-ai-sdk?utm_source=devto&amp;utm_medium=article&amp;utm_campaign=100sales</a></p>
]]></content:encoded></item><item><title><![CDATA[Add free web search to Claude Code and Cursor via MCP in 60 seconds]]></title><description><![CDATA[Disclosure: I build x402serps. Your coding agent can search the web with one URL and no API key. x402serps gives every MCP client 20 free searches or page…]]></description><link>https://x402serps.hashnode.dev/add-free-web-search-to-claude-code-and-cursor-via-mcp-in-60-seconds</link><guid isPermaLink="true">https://x402serps.hashnode.dev/add-free-web-search-to-claude-code-and-cursor-via-mcp-in-60-seconds</guid><dc:creator><![CDATA[x402serps]]></dc:creator><pubDate>Wed, 04 Nov 2026 14:32:38 GMT</pubDate><content:encoded><![CDATA[<p>Disclosure: I build x402serps.</p>
<p>Your coding agent can search the web with one URL and no API key. x402serps gives every MCP client 20 free searches or page extracts a day.</p>
<h2>Claude Code</h2>
<pre><code>claude mcp add --transport http x402serps https://x402serps.com/api/mcp
</code></pre>
<h2>Cursor (~/.cursor/mcp.json)</h2>
<pre><code class="language-json">{"mcpServers":{"x402serps":{"url":"https://x402serps.com/api/mcp"}}}
</code></pre>
<p>Ask: "search the web for the latest MCP spec changes". The agent calls <code>web_search</code>; <code>extract</code> pulls clean page text.</p>
<h2>After 20 calls</h2>
<p>The agent gets a clear message on how to pay: $0.004 per search, $0.003 per extract, in USDC over x402 (Base or Solana), or card credits. Results come from a third-party search provider.</p>
<p>Guide: <a href="https://x402serps.com/free-search-mcp?utm_source=devto&amp;utm_medium=article&amp;utm_campaign=100sales">https://x402serps.com/free-search-mcp?utm_source=devto&amp;utm_medium=article&amp;utm_campaign=100sales</a></p>
]]></content:encoded></item><item><title><![CDATA[Pay-per-call web search for AI agents with x402 and MCP]]></title><description><![CDATA[From an HTTP 402 to search results in about 20 lines of code]]></description><link>https://x402serps.hashnode.dev/pay-per-call-web-search-for-ai-agents-with-x402-and-mcp</link><guid isPermaLink="true">https://x402serps.hashnode.dev/pay-per-call-web-search-for-ai-agents-with-x402-and-mcp</guid><category><![CDATA[mcp]]></category><category><![CDATA[x402]]></category><category><![CDATA[ai agents]]></category><category><![CDATA[Web3]]></category><category><![CDATA[api]]></category><dc:creator><![CDATA[x402serps]]></dc:creator><pubDate>Tue, 03 Nov 2026 21:36:07 GMT</pubDate><content:encoded><![CDATA[<p>Every x402serps endpoint is a normal JSON POST. Send it without payment and you get <strong>HTTP 402</strong> back with payment requirements (price, network, payTo). An x402 client signs a USDC payment, puts it in the <code>X-PAYMENT</code> header and retries. No API key is needed with x402. If you'd rather pay by card, optional prepaid credit keys are available too (see step 5).</p>
<h2>1. Look at the 402</h2>
<pre><code class="language-bash">curl -i -X POST https://x402serps.com/api/v1/search \
  -H "content-type: application/json" -d '{"q":"x402 protocol","num":5}'
</code></pre>
<p>The <code>payment-required</code> header lists both Base (<code>eip155:8453</code>) and Solana USDC options, each for 4000 units ($0.004).</p>
<h2>2. Try it free</h2>
<pre><code class="language-bash">curl -X POST https://x402serps.com/api/v1/search -H "content-type: application/json" \
  -H "X-Trial: 1" -d '{"q":"x402"}'
</code></pre>
<p>Send <code>X-Trial: 1</code> for 25 free calls, with no wallet or key.</p>
<h2>3. Pay with x402 from Node</h2>
<pre><code class="language-js">import { wrapFetchWithPayment } from "x402-fetch";
import { privateKeyToAccount } from "viem/accounts";

const account = privateKeyToAccount(process.env.AGENT_KEY); // a low-balance agent wallet
const pay = wrapFetchWithPayment(fetch, account);

const r = await pay("https://x402serps.com/api/v1/search", {
  method: "POST",
  headers: { "content-type": "application/json" },
  body: JSON.stringify({ q: "best MCP servers 2026", num: 10, freshness: "week" }),
});
const { results } = await r.json();
console.log(results.map(x =&gt; `${x.position}. ${x.title} ${x.url}`).join("\n"));
</code></pre>
<p>Use a dedicated wallet with a small balance and a spending cap.</p>
<h2>4. Or use it over MCP</h2>
<p>Add the remote server <code>https://x402serps.com/api/mcp</code> (streamable HTTP; MCP Registry name <code>com.x402serps/search</code>). Tools include <code>web_search</code>, <code>news_search</code>, <code>extract</code>, <code>places_search</code> and <code>deep_research</code>.</p>
<h2>5. No wallet? Use an optional card key</h2>
<p>Buy a prepaid credit pack by card at <a href="https://x402serps.com/pricing?utm_campaign=100sales#credits">https://x402serps.com/pricing?utm_campaign=100sales#credits</a>. You get an <code>xs_...</code> key; send it as <code>Authorization: Bearer xs_...</code>. 1 credit = $0.001, so a search is 4 credits and an extract is 3. x402 payments still work without any key.</p>
<h2>Pricing (as of 3 Nov 2026)</h2>
<p>Search is $0.004 per 10 results and extract is $0.003 per URL. Results come from a third-party search provider. Failed calls are not charged.</p>
<p>Docs: <a href="https://x402serps.com/docs?utm_source=hashnode&amp;utm_campaign=100sales">https://x402serps.com/docs?utm_source=hashnode&amp;utm_campaign=100sales</a></p>
]]></content:encoded></item></channel></rss>