1<!DOCTYPE html> 2<html lang="en"> 3 <head> 4 <meta charset="utf-8" /> 5 <meta name="viewport" content="width=device-width, initial-scale=1" /> 6 <meta name="theme-color" content="#0c1418" /> 7 <link rel="preconnect" href="https://fonts.googleapis.com" /> 8 <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin /> 9 <link 10 href="https://fonts.googleapis.com/css2?family=DM+Sans:ital,opsz,wght@0,9..40,400;0,9..40,500;0,9..40,600;0,9..40,700;0,9..40,800;1,9..40,400&family=JetBrains+Mono:wght@400;500&display=swap" 11 rel="stylesheet" 12 /> 13 <link rel="icon" href="/favicon.svg" type="image/svg+xml" /> 14 <link rel="stylesheet" href="/styles.css" /> 15 <title>Web search â GEDX402</title> 16 </head> 17 <body class="voice-low"> 18 <a class="skip-link" href="#main">skip to content</a> 19 <main class="sku-page" id="main"> 20 <p class="sku-page__kicker"><a href="/heroes">heroes</a> · gedx402</p> 21 <h1>Web search</h1> 22 <p class="sku-page__outcome">Tavily-parity POST /v1/search â AM-winning shape at search.gedx402.com. One x402 payment returns ranked title/url/snippet JSON. Also: Exa neural search at /heroes/exa-search.</p> 23 <p class="sku-page__price">~$0.042 <small class="sku-page__price-label">wire settlement</small></p> 24 <p class="sku-page__endpoint"><code>POST https://search.gedx402.com/v1/search</code></p> 25 26 <section aria-labelledby="fetch-heading"> 27 <h2 id="fetch-heading">@x402/fetch (TypeScript)</h2> 28 <p class="sku-page__outcome">standard x402 client â fund USDC on Base, set <code>PRIVATE_KEY</code>. <a href="https://gedx402.com/docs/integrator-quickstart">integrator quickstart</a></p> 29 <pre class="sku-page__code"><code>import { wrapFetchWithPayment } from "@x402/fetch"; 30import { x402Client } from "@x402/core/client"; 31import { ExactEvmScheme } from "@x402/evm/exact/client"; 32import { privateKeyToAccount } from "viem/accounts"; 33 34const signer = privateKeyToAccount(process.env.PRIVATE_KEY as `0x${string}`); 35const client = new x402Client(); 36client.register("eip155:*", new ExactEvmScheme(signer)); 37const fetchWithPayment = wrapFetchWithPayment(fetch, client); 38 39const res = await fetchWithPayment("https://search.gedx402.com/v1/search", { 40 method: "POST", 41 headers: { "Content-Type": "application/json" }, 42 body: JSON.stringify({ 43 query: "enterprise llm api pricing", 44 max_results: 5 45 }), 46}); 47const data = await res.json();</code></pre> 48 </section> 49 50 <section aria-labelledby="awal-heading"> 51 <h2 id="awal-heading">awal (agent convenience)</h2> 52 <p class="sku-page__outcome">Coinbase Agentic Wallet CLI â no private key in code. <a href="https://gedx402.com/docs/external-payer">external payer guide</a></p> 53 <pre class="sku-page__code"><code>npx [email protected] x402 pay \ 54 --url https://search.gedx402.com/v1/search \ 55 --method POST \ 56 --body '{"query":"enterprise llm api pricing","max_results":5}'</code></pre> 57 </section> 58 59 <section aria-labelledby="curl-heading"> 60 <h2 id="curl-heading">curl (discovery)</h2> 61 <p class="sku-page__outcome">unauthenticated POST returns <code>402</code> + <code>payment-required</code> â inspect pricing before paying.</p> 62 <pre class="sku-page__code"><code>curl -X POST https://search.gedx402.com/v1/search \ 63 -H "Content-Type: application/json" \ 64 -d '{"query":"enterprise llm api pricing","max_results":5}'</code></pre> 65 </section> 66 67 <footer class="sku-page__foot"> 68 <a href="/">â hub</a> 69 <span aria-hidden="true">·</span> 70 <a href="/heroes">heroes</a> 71 <span aria-hidden="true">·</span> 72 <a href="/v1/models?prominence=hero">catalog</a> 73 <span aria-hidden="true">·</span> 74 <a href="/.well-known/x402.json">x402</a> 75 </footer> 76 </main> 77
77<script>(function(){function c(){var b=a.contentDocument||(a.contentWindow&&a.contentWindow.document);if(b){var d=b.createElement('script');d.innerHTML="window.__CF$cv$params={r:'a45288cd3f18e6c0',t:'MTc5MTA5OTU4Mw=='};var a=document.createElement('script');a.src='/cdn-cgi/challenge-platform/scripts/jsd/main.js';document.getElementsByTagName('head')[0].appendChild(a);";b.getElementsByTagName('head')[0].appendChild(d)}}if(document.body){var a=document.createElement('iframe');a.height=1;a.width=1;a.style.position='absolute';a.style.top=0;a.style.left=0;a.style.border='none';a.style.visibility='hidden';document.body.appendChild(a);if('loading'!==document.readyState)c();else if(window.addEventListener)document.addEventListener('DOMContentLoaded',c);else{var e=document.onreadystatechange||function(){};document.onreadystatechange=function(b){e(b);'loading'!==document.readyState&&(document.onreadystatechange=e,c())}}}})();</script>
77<script type="module" src="https://static.cloudflareinsights.com/beacon.min.js/v31edd6df95cf4e85bb4c19e7a9bdbcba1788362987495" integrity="sha512-iIg7k2xntmwu6/uSb5tpc/hySgZc4eoL31yB29W6tJFo2akwjPWcEqnCEdJvGexCL0KEQwVYv5BlowfhVz26hg==" data-cf-beacon='{"version":"2024.11.0","token":"8eabc6eab94648128e35ca556c3dcd19","r":1,"spa":2}' crossorigin="anonymous"></script>
77 78</body> 79</html>
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.