Using the web app
The playground runs real, paid requests from your browser wallet. The dashboard shows what you have run and paid for.
Connect a wallet
Click Connect wallet. Any browser wallet works: MetaMask, Rabby, Brave, OKX, Coinbase Wallet, or any other extension (they're detected automatically). On mobile, open the site in your wallet app's built-in browser. If your wallet is on a different chain, the playground offers to switch to Whitechain Sepolia (1874) and adds it if missing.
Fund it with test USDT
The playground shows your USDT balance next to the price of the selected endpoint. See getting test funds. You do not need WBT.
Pick an API and fill the form
Choose Search, Fetch, Agent, Agent (SSE), Research, Datasets or Browser. Each form starts with working defaults, so you can run it right away.
- The main fields are always visible. Everything else the endpoint accepts is under Advanced options, which opens automatically when one of those fields is set. Each field maps one-to-one to the API reference.
- Empty fields are left out of the request.
- Lists (URLs, CSS selectors, domains) take one entry per line or comma-separated values.
- JSON fields (agent
output_schema, datasetspec) must be valid JSON. - The form is checked against the same schema the server uses before your wallet is asked to sign. You never sign for a request that would be rejected.
- The Cost row updates live. For Research it depends on
mode, and for Datasets ontarget_rows.
| Tab | What happens after you pay |
|---|---|
| Search, Fetch, Browser | The JSON response appears straight away. |
| Agent | Waits up to 280 s for the run, then shows result. Not charged if the run fails. |
| Agent (SSE) | Streams each step. A Live browser panel shows the agent's browser in real time. |
| Research | Shows the run ID, then (with Follow progress ticked) streams plan_updated, source_fetched… and renders the final report. You can switch to the raw JSON. |
| Datasets | Shows the planned columns, streams row events as they land, then loads the rows. |
Set a spend cap
Spend cap / payment is passed to spendControls.allowedAssets[].maxAmountPerPayment. The client refuses to sign anything above it, even if a server asks.
Run with x402
Your wallet shows an EIP-712 signature request for a TransferWithAuthorization to the service's pay-to address. It's a signature only, not a transaction. Approve it, and the Payment flow panel shows each step:
GET/POST …returnsHTTP 402, with the decodedPAYMENT-REQUIREDavailable- Requesting EIP-3009 signature
- Authorization signed (no gas)
- Paid retry with
PAYMENT-SIGNATUREreturnsHTTP 200 - Settled on-chain, linked to the explorer
Dashboard
Each run is stored in your browser, together with the PAYMENT-RESPONSE receipt. When the deployment has a database (DATABASE_URL), the server-side log is merged in, so runs made from scripts with the same wallet show up too. Click a row to see its input and output.