← BrowseData

Data Query API — 6 public datasets, x402 USDC

by Matchbook Labs · $0.01 / call

About this service

Pay-per-call query API over six datasets, same data as the free Data Vault catalog, full rows. HUD Fair Market Rents FY2026 (51,895 ZIP rows + 3,229 county rows), NFL games 1999-2026 with closing odds (7,548), Airbnb listings summary for 6 US cities, Superteam Earn bounty snapshot (28, full text), Solana earning-rail research (25). Tools: list_datasets() for the catalog, sample_dataset(slug) for 22 free rows, query_<dataset>(where, limit, offset) for full filtered queries. Filter examples: state=TX, fmr_2br>1500, season=2025. Direct x402 rail: GET /query/<slug> = $0.01 per call in USDC on Base, settled to a non-custodial wallet; free samples at /sample/<slug>; catalog at /datasets. Read-only, no key needed. Licenses: US gov public domain, CC BY 4.0.

datasetshudnflairbnbx402

Tools included — 18

Reported by this server's own tools/list, refreshed automatically.

query_earn_bountiesquery_hud_fmr_2026query_hud_fmr_county_2026query_nfl_gamesquery_airbnb_six_citiesquery_solana_researchlist_datasetssample_datasetlist_listingsget_listingsearch_listingsstatslist_topicsget_topicsearch_topicssearch_bountiesget_bountyrecent_bounties

Add to your agent

This listing is paid, so it is not a server your client connects to — the seller's endpoint stays private and the call is settled through the FiatDock gateway. Install FiatDock once, then invoke this listing by id.

1. Paste this into your MCP client config (Claude Desktop, Cursor, Windsurf, Gemini CLI). Click the block to select all, then copy.

{
  "mcpServers": {
    "fiatdock": {
      "command": "npx",
      "args": [
        "-y",
        "fiatdock-mcp"
      ],
      "env": {
        "AGENT_PRIVATE_KEY": "0x..."
      }
    }
  }
}

Replace 0x... with the private key of a Base wallet that actually holds USDC — that key is what signs the payment. Leave the placeholder in and nothing crashes, but the call below returns a 402 price quote instead of buying.

2. Then have your agent call:

call_service({ id: "svc_7ef6ef5c-3161-41d7-84cb-56ff083f08d5", args: { … } })

Listing id: svc_7ef6ef5c-3161-41d7-84cb-56ff083f08d5 · networks: base · paid per call via x402 (100% to the seller — FiatDock takes 0% of this listing's calls right now, and the buyer makes a single x402 payment)
Not sure what args to send? get_service({ id: "svc_7ef6ef5c-3161-41d7-84cb-56ff083f08d5", includeSchemas: true }) returns the argument names and types — free, and it is the only way to get them.

Call it from code (any x402 client)

No FiatDock package needed: POST https://fiatdock.com/s/svc_7ef6ef5c-3161-41d7-84cb-56ff083f08d5 with the tool's arguments as a JSON body. An unpaid request answers 402 with the exact price; a standard x402 client signs it and resends. Node, with the official x402 packages:

// npm i @x402/fetch @x402/evm viem
import { wrapFetchWithPaymentFromConfig } from "@x402/fetch";
import { ExactEvmScheme } from "@x402/evm";
import { privateKeyToAccount } from "viem/accounts";

const pay = wrapFetchWithPaymentFromConfig(fetch, {
  schemes: [{ network: "eip155:*", client: new ExactEvmScheme(privateKeyToAccount(process.env.AGENT_PRIVATE_KEY)) }],
});
const r = await pay("https://fiatdock.com/s/svc_7ef6ef5c-3161-41d7-84cb-56ff083f08d5", {
  method: "POST",
  headers: { "content-type": "application/json" },
  body: JSON.stringify({ /* the tool's arguments */ }),
});
console.log(r.status, await r.text());

Argument names and types: GET https://fiatdock.com/v1/marketplace/services/svc_7ef6ef5c-3161-41d7-84cb-56ff083f08d5?include=schemas (free). The wallet pays USDC on Base; You are charged only if the seller actually answers: settlement happens AFTER delivery, never before. A call that returns no answer costs you nothing — but an answer you merely dislike is still a delivered call, and is paid.

Reviews — none yet

Only buyers who completed a paid call can review — verified purchases only.