{
  "services": [
    {
      "id": "agents-allium-so",
      "name": "Allium",
      "description": "Onchain prices, balances, transactions, PnL, SQL explorer",
      "domain": "agents.allium.so",
      "provider": "agents.allium.so",
      "providerUrl": "https://agents.allium.so",
      "category": "Data",
      "networks": [
        "Base",
        "eip155:137",
        "solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp",
        "eip155:196"
      ],
      "enriched": true,
      "endpoints": [
        {
          "url": "https://agents.allium.so/api/v1/developer/wallet/balances/history",
          "description": "API request: /api/v1/developer/wallet/balances/history Guide: Historical wallet balances over a time range. First-party Allium x402 (no API key). POST endpoints take JSON; many take an addresses[] array of {chain, token_address|address}. Base/Solana USDC. Usage notes: First-party Allium x402 (no API key). POST endpoints take JSON; many take an addresses[] array of {chain, token_address|address}. Base/Solana USDC.; Body is an OBJECT: { addresses:[{chain,address}], start_timestamp, end_timestamp }.",
          "pricing": {
            "amount": "0.01",
            "currency": "USDC",
            "network": "eip155:8453",
            "scheme": "exact",
            "maxAmount": "",
            "minAmount": ""
          },
          "method": "POST",
          "providerName": "",
          "parameters": [
            {
              "group": "body",
              "name": "addresses",
              "type": "array",
              "description": "",
              "example": [],
              "enumValues": [],
              "default": null,
              "required": false
            },
            {
              "group": "body",
              "name": "end_timestamp",
              "type": "string",
              "description": "",
              "example": "2025-06-17T00:00:00Z",
              "enumValues": [],
              "default": null,
              "required": false
            },
            {
              "group": "body",
              "name": "start_timestamp",
              "type": "string",
              "description": "",
              "example": "2025-06-01T00:00:00Z",
              "enumValues": [],
              "default": null,
              "required": false
            }
          ],
          "serviceName": "Allium",
          "tags": [
            "blockchain",
            "data",
            "analytics",
            "sql"
          ],
          "quality": {
            "l30DaysTotalCalls": "4",
            "l30DaysUniquePayers": "1"
          }
        },
        {
          "url": "https://agents.allium.so/api/v1/explorer/queries/run-async",
          "description": "API request: /api/v1/explorer/queries/run-async Guide: Run an arbitrary SQL query against Allium's multichain blockchain data warehouse (Explorer). Async 3-step flow: submit SQL, poll free status, then pay to fetch result rows. Supports crosschain tables (e.g. crosschain.metrics.overview, ethereum.blocks, etc.). STEP 1 (paid $0.01): POST /api/v1/explorer/queries/run-async… Usage notes: Async 3-step flow. run-async ONLY submits and returns {run_id} — it does NOT return rows.; Body shape is {\"parameters\":{\"sql\":\"...\"}} — SQL goes inside parameters.sql, NOT at top level.; Status endpoint GET /query-runs/{run_id}/status is FREE/unprotected and returns a BARE JSON STRING. Terminal success value is \"success\" (NOT \"succeeded\" as prio… (+4 more)",
          "pricing": {
            "amount": "0.01",
            "currency": "USDC",
            "network": "eip155:8453",
            "scheme": "exact",
            "maxAmount": "",
            "minAmount": ""
          },
          "method": "POST",
          "providerName": "",
          "parameters": [
            {
              "group": "body",
              "name": "parameters",
              "type": "object",
              "description": "",
              "example": null,
              "enumValues": [],
              "default": null,
              "required": false
            }
          ],
          "serviceName": "Allium",
          "tags": [
            "blockchain",
            "data",
            "analytics",
            "sql"
          ],
          "quality": {
            "l30DaysTotalCalls": "8",
            "l30DaysUniquePayers": "2"
          }
        }
      ],
      "integrationType": "1P",
      "isNew": false,
      "priceSummary": {
        "minAmount": "0.01",
        "maxAmount": "0.01",
        "avgCostPerTransaction": "0.01",
        "avgCostBasis": "exact",
        "currency": "USDC"
      },
      "serviceName": "Allium",
      "tags": [
        "blockchain",
        "data",
        "analytics",
        "sql"
      ],
      "iconUrl": "https://res.cloudinary.com/bdb-prod/image/upload/c_fill,ar_1:1,w_256,h_256,f_auto,q_auto/v1780076808/bazaar-icons/ad9235ea90f021ae.png"
    },
    {
      "id": "tripadvisor-x402-paysponge-com",
      "name": "tripadvisor.x402.paysponge.com",
      "description": "",
      "domain": "tripadvisor.x402.paysponge.com",
      "provider": "tripadvisor.x402.paysponge.com",
      "providerUrl": "",
      "category": "",
      "networks": [
        "eip155:8453",
        "solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp"
      ],
      "enriched": false,
      "endpoints": [
        {
          "url": "https://tripadvisor.x402.paysponge.com/api/v1/location/nearby_search",
          "description": "Service: Tripadvisor (https://tripadvisor.x402.paysponge.com/api/v1/location/nearby_search) Guide: Find Tripadvisor locations near a lat/long. Served via Sponge's x402 gateway (*.x402.paysponge.com) — a single x402 payment proxies the upstream provider. No API key. Base or Solana USDC. Usage notes: Served via Sponge's x402 gateway (*.x402.paysponge.com) — a single x402 payment proxies the upstream provider. No API key. Base or Solana USDC.",
          "pricing": {
            "amount": "0.01",
            "currency": "USDC",
            "network": "eip155:8453",
            "scheme": "exact",
            "maxAmount": "",
            "minAmount": ""
          },
          "method": "GET",
          "providerName": "",
          "parameters": [],
          "serviceName": "Tripadvisor",
          "tags": [
            "travel",
            "reviews",
            "locations",
            "hospitality"
          ],
          "quality": null
        }
      ],
      "integrationType": "",
      "isNew": false,
      "priceSummary": {
        "minAmount": "0.01",
        "maxAmount": "0.01",
        "avgCostPerTransaction": "0.01",
        "avgCostBasis": "exact",
        "currency": "USDC"
      },
      "serviceName": "Tripadvisor",
      "tags": [
        "travel",
        "reviews",
        "locations",
        "hospitality"
      ],
      "iconUrl": "https://res.cloudinary.com/bdb-prod/image/upload/c_fill,ar_1:1,w_256,h_256,f_auto,q_auto/v1780076813/bazaar-icons/e4d969b10bdd1e56.png"
    },
    {
      "id": "stableenrich-dev",
      "name": "stableenrich.dev",
      "description": "",
      "domain": "stableenrich.dev",
      "provider": "stableenrich.dev",
      "providerUrl": "",
      "category": "",
      "networks": [
        "eip155:8453",
        "solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp"
      ],
      "enriched": false,
      "endpoints": [
        {
          "url": "https://stableenrich.dev/api/google-maps/solar/building-insights",
          "description": "Google Solar API - Closest building roof insights including imageryDate Guide: Google Solar API closest-building roof insights for a lat/lng: roof segments, sunshine hours, solar panel capacity estimates, carbon offset factor, and imagery capture date. Use as a cheap probe to confirm Solar coverage and read imageryDate before fetching data-layers. GET https://stableenrich.dev/api/google-maps/sola… Usage notes: Query params only (latitude -90..90, longitude -180..180, requiredQuality LOW|MEDIUM|HIGH default HIGH). No body.; HIGH quality may 404/empty for locations without high-quality Google Solar coverage; drop to MEDIUM/LOW or pick a covered urban location (tested Googleplex 37.4…; Response is very large (~470KB) because solarPanelConfigs[] and roofSegmentStats[] enumerate every panel arrangement; expect heavy payloads. (+1 more)",
          "pricing": {
            "amount": "0.02",
            "currency": "USDC",
            "network": "eip155:8453",
            "scheme": "exact",
            "maxAmount": "",
            "minAmount": ""
          },
          "method": "GET",
          "providerName": "",
          "parameters": [],
          "serviceName": "StableEnrich",
          "tags": [
            "Google Maps"
          ],
          "quality": {
            "l30DaysTotalCalls": "77",
            "l30DaysUniquePayers": "2"
          }
        }
      ],
      "integrationType": "",
      "isNew": false,
      "priceSummary": {
        "minAmount": "0.02",
        "maxAmount": "0.02",
        "avgCostPerTransaction": "0.02",
        "avgCostBasis": "exact",
        "currency": "USDC"
      },
      "serviceName": "StableEnrich",
      "tags": [
        "Google Maps"
      ],
      "iconUrl": ""
    },
    {
      "id": "stableflare-dev",
      "name": "stableflare.dev",
      "description": "",
      "domain": "stableflare.dev",
      "provider": "stableflare.dev",
      "providerUrl": "",
      "category": "",
      "networks": [
        "eip155:8453"
      ],
      "enriched": false,
      "endpoints": [
        {
          "url": "https://stableflare.dev/api/browser/screenshot",
          "description": "Capture a screenshot of any URL or HTML. Returns a PNG or JPEG image. Supports full-page, element selection, custom viewport. Guide: Send POST to https://stableflare.dev/api/browser/screenshot with a JSON body containing at minimum {\"url\":\"<page to capture>\"}; payment is handled via x402 (USDC on Base, ~$0.05/call). Optionally set screenshotOptions.type to \"png\" or \"jpeg\", screenshotOptions.fullPage:true for the whole page, or viewport/waitForSelect… Usage notes: Returns JSON (not a raw image): the image is base64 in body.data and the MIME type is in body.content_type. Decode body.data from base64 to get the PNG/JPEG byt…; Either url OR html may be provided; url renders a live page, html renders supplied markup.; Rich Puppeteer-style options available: fullPage/clip via screenshotOptions, viewport, waitForSelector, gotoOptions.waitUntil, selector (element screenshot), co…",
          "pricing": {
            "amount": "0.05",
            "currency": "USDC",
            "network": "eip155:8453",
            "scheme": "exact",
            "maxAmount": "",
            "minAmount": ""
          },
          "method": "POST",
          "providerName": "",
          "parameters": [],
          "serviceName": "Cloudflare API",
          "tags": [
            "Browser"
          ],
          "quality": {
            "l30DaysTotalCalls": "35",
            "l30DaysUniquePayers": "5"
          }
        }
      ],
      "integrationType": "",
      "isNew": false,
      "priceSummary": {
        "minAmount": "0.05",
        "maxAmount": "0.05",
        "avgCostPerTransaction": "0.05",
        "avgCostBasis": "exact",
        "currency": "USDC"
      },
      "serviceName": "Cloudflare API",
      "tags": [
        "Browser"
      ],
      "iconUrl": ""
    },
    {
      "id": "stablefinance-dev",
      "name": "stablefinance.dev",
      "description": "",
      "domain": "stablefinance.dev",
      "provider": "stablefinance.dev",
      "providerUrl": "",
      "category": "",
      "networks": [
        "eip155:8453",
        "solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp"
      ],
      "enriched": false,
      "endpoints": [
        {
          "url": "https://stablefinance.dev/api/prices/snapshot",
          "description": "Real-time single-ticker price quote. Invalid or unsupported tickers return upstream 400/404; check /api/company/facts/tickers or endpoint-specific /tickers lists before batching. Guide: Real-time single-ticker price quote (latest price, day change). Finest granularity available (no realtime tick data). GET https://stablefinance.dev/api/prices/snapshot?ticker=AAPL (x402, no body). ticker is required query param. Output: snapshot.{ticker,price,day_change,day_change_percent,time,time_milliseconds} Usage notes: Single object under body.snapshot, not a list.; US equities only; no crypto/FX/options/international.; ticker required.",
          "pricing": {
            "amount": "0.02",
            "currency": "USDC",
            "network": "eip155:8453",
            "scheme": "exact",
            "maxAmount": "",
            "minAmount": ""
          },
          "method": "GET",
          "providerName": "",
          "parameters": [
            {
              "group": "query",
              "name": "ticker",
              "type": "string",
              "description": "",
              "example": "AAPL",
              "enumValues": [],
              "default": null,
              "required": false
            }
          ],
          "serviceName": "StableFinance",
          "tags": [
            "Prices"
          ],
          "quality": {
            "l30DaysTotalCalls": "2",
            "l30DaysUniquePayers": "2"
          }
        }
      ],
      "integrationType": "",
      "isNew": false,
      "priceSummary": {
        "minAmount": "0.02",
        "maxAmount": "0.02",
        "avgCostPerTransaction": "0.02",
        "avgCostBasis": "exact",
        "currency": "USDC"
      },
      "serviceName": "StableFinance",
      "tags": [
        "Prices"
      ],
      "iconUrl": ""
    },
    {
      "id": "stabletravel-dev",
      "name": "stabletravel.dev",
      "description": "",
      "domain": "stabletravel.dev",
      "provider": "stabletravel.dev",
      "providerUrl": "",
      "category": "",
      "networks": [
        "solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp",
        "eip155:8453"
      ],
      "enriched": false,
      "endpoints": [
        {
          "url": "https://stabletravel.dev/api/seats-aero/routes",
          "description": "List airline flight route pairs covered by a Seats.aero mileage program source. These are origin/destination airport pairs, not API routes. Guide: List the airline origin->destination airport pairs covered by a Seats.aero mileage program source. Used to discover what routes a program tracks before sweeping availability. These are flight route pairs, not API routes and not live award seats. GET https://stabletravel.dev/api/seats-aero/routes?source=united (x402, no… Usage notes: REQUIRES ?source= (e.g. source=united). Bare /routes is not useful — always pass source.; Response is a bare top-level array (NOT wrapped in {data,...}, unlike /search and /availability) and has NO pagination — expect a very large payload (~1.6MB / ~…; Each element is a route-coverage record (O&D pair + distance + region), NOT live award availability and NOT the Y/W/J/F seat columns. Use /search or /availabili… (+1 more)",
          "pricing": {
            "amount": "0.01",
            "currency": "USDC",
            "network": "eip155:8453",
            "scheme": "exact",
            "maxAmount": "",
            "minAmount": ""
          },
          "method": "GET",
          "providerName": "",
          "parameters": [
            {
              "group": "query",
              "name": "source",
              "type": "string",
              "description": "",
              "example": "united",
              "enumValues": [],
              "default": null,
              "required": false
            }
          ],
          "serviceName": "StableTravel",
          "tags": [
            "Seats Aero"
          ],
          "quality": {
            "l30DaysTotalCalls": "1",
            "l30DaysUniquePayers": "1"
          }
        }
      ],
      "integrationType": "",
      "isNew": false,
      "priceSummary": {
        "minAmount": "0.01",
        "maxAmount": "0.01",
        "avgCostPerTransaction": "0.01",
        "avgCostBasis": "exact",
        "currency": "USDC"
      },
      "serviceName": "StableTravel",
      "tags": [
        "Seats Aero"
      ],
      "iconUrl": ""
    },
    {
      "id": "api-paysponge-com",
      "name": "api.paysponge.com",
      "description": "",
      "domain": "api.paysponge.com",
      "provider": "api.paysponge.com",
      "providerUrl": "",
      "category": "",
      "networks": [
        "solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp",
        "eip155:8453"
      ],
      "enriched": false,
      "endpoints": [
        {
          "url": "https://api.paysponge.com/x402/purchase/svc_d5zgtpg00dvssgj28/embeddings",
          "description": "Service: OpenRouter API (https://api.paysponge.com/embeddings) Guide: POST a JSON body {\"model\":\"text-embedding-3-small\",\"input\":\"<your text>\"} to the URL; payment is x402 USDC (~$0.01, Base or Solana), no API key needed. The 'model' field is mandatory even though the registry schema lists no fields — omitting it returns a 400 and still costs you a call. Read the embedding vector from bo… Usage notes: inputSchema in the registry is EMPTY but the endpoint REQUIRES a 'model' string field — sending only {input} returns HTTP 400 with a zod error: 'expected string…; Use 'model':'text-embedding-3-small' (OpenAI model name) — accepted and produces a valid embedding.; 'input' holds the text to embed (string). (+1 more)",
          "pricing": {
            "amount": "0.01",
            "currency": "USDC",
            "network": "eip155:8453",
            "scheme": "exact",
            "maxAmount": "",
            "minAmount": ""
          },
          "method": "POST",
          "providerName": "",
          "parameters": [],
          "serviceName": "",
          "tags": [],
          "quality": null
        },
        {
          "url": "https://api.paysponge.com/x402/purchase/svc_d5zgtpg00dvssgj28/chat/completions",
          "description": "Service: OpenRouter API (https://api.paysponge.com/chat/completions) Guide: Send a POST to the URL with an OpenAI-style JSON body that MUST include `model` (use an OpenRouter model id like 'gpt-4o-mini'), `messages`, and a low `max_tokens` (e.g. 50-200) — omitting model 400s after charging, and a high/default max_tokens triggers an upstream OpenRouter credit 402. Each call costs $0.01 USDC pai… Usage notes: inputSchema is empty but the body is NOT optional: you MUST send a `model` field or it 402-charges then returns 400 {error:'No models provided'}.; Backend is an OpenRouter proxy. Use OpenRouter-style model names (e.g. 'gpt-4o-mini', returned as 'openai/gpt-4o-mini').; CRITICAL: you MUST set a low `max_tokens` (e.g. 50-200). With the default (16384) OpenRouter rejects with a 402 'requires more credits, or fewer max_tokens' err… (+2 more)",
          "pricing": {
            "amount": "0.01",
            "currency": "USDC",
            "network": "eip155:8453",
            "scheme": "exact",
            "maxAmount": "",
            "minAmount": ""
          },
          "method": "POST",
          "providerName": "",
          "parameters": [],
          "serviceName": "",
          "tags": [],
          "quality": null
        }
      ],
      "integrationType": "",
      "isNew": false,
      "priceSummary": {
        "minAmount": "0.01",
        "maxAmount": "0.01",
        "avgCostPerTransaction": "0.01",
        "avgCostBasis": "exact",
        "currency": "USDC"
      },
      "serviceName": "",
      "tags": [],
      "iconUrl": ""
    },
    {
      "id": "x402-orth-sh",
      "name": "x402.orth.sh",
      "description": "",
      "domain": "x402.orth.sh",
      "provider": "x402.orth.sh",
      "providerUrl": "",
      "category": "",
      "networks": [
        "eip155:8453",
        "solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp"
      ],
      "enriched": false,
      "endpoints": [
        {
          "url": "https://x402.orth.sh/andi/v1/search",
          "description": "Fast, high-quality search API with intelligent ranking, instant answers, and result enrichment. Guide: Call GET https://x402.orth.sh/andi/v1/search with at least the required q query param (the search query), e.g. ?q=react%20hooks%20tutorial&limit=10. Payment is handled via x402 (USDC on Base, ~$0.01/call, no API key). Read web results from body.results[] (each has title, link, desc, snippet, source); related media is i… Usage notes: q is the required query param (NOT 'query'); pass it in the URL query string since this is GET; Results split across separate arrays: body.results (web), body.social, body.videos, body.images — not a single flat list; body.answer is frequently empty even though service is described as conversational/answer-style; rely on body.results[] (+1 more)",
          "pricing": {
            "amount": "0.01",
            "currency": "USDC",
            "network": "eip155:8453",
            "scheme": "exact",
            "maxAmount": "",
            "minAmount": ""
          },
          "method": "GET",
          "providerName": "",
          "parameters": [
            {
              "group": "query",
              "name": "country",
              "type": "string",
              "description": "",
              "example": "US",
              "enumValues": [],
              "default": null,
              "required": false
            },
            {
              "group": "query",
              "name": "dateRange",
              "type": "string",
              "description": "",
              "example": "24h",
              "enumValues": [],
              "default": null,
              "required": false
            },
            {
              "group": "query",
              "name": "depth",
              "type": "string",
              "description": "",
              "example": "fast",
              "enumValues": [],
              "default": null,
              "required": false
            },
            {
              "group": "query",
              "name": "extracts",
              "type": "string",
              "description": "",
              "example": "false",
              "enumValues": [],
              "default": null,
              "required": false
            },
            {
              "group": "query",
              "name": "format",
              "type": "string",
              "description": "",
              "example": "json",
              "enumValues": [],
              "default": null,
              "required": false
            },
            {
              "group": "query",
              "name": "intent",
              "type": "string",
              "description": "",
              "example": "FallbackSearchIntent",
              "enumValues": [],
              "default": null,
              "required": false
            },
            {
              "group": "query",
              "name": "language",
              "type": "string",
              "description": "",
              "example": "en",
              "enumValues": [],
              "default": null,
              "required": false
            },
            {
              "group": "query",
              "name": "limit",
              "type": "string",
              "description": "",
              "example": "10",
              "enumValues": [],
              "default": null,
              "required": false
            },
            {
              "group": "query",
              "name": "metadata",
              "type": "string",
              "description": "",
              "example": "basic",
              "enumValues": [],
              "default": null,
              "required": false
            },
            {
              "group": "query",
              "name": "noCache ",
              "type": "string",
              "description": "",
              "example": "false",
              "enumValues": [],
              "default": null,
              "required": false
            },
            {
              "group": "query",
              "name": "parseOperators",
              "type": "string",
              "description": "",
              "example": "true",
              "enumValues": [],
              "default": null,
              "required": false
            },
            {
              "group": "query",
              "name": "q",
              "type": "string",
              "description": "",
              "example": "react hooks tutorial",
              "enumValues": [],
              "default": null,
              "required": false
            },
            {
              "group": "query",
              "name": "safe",
              "type": "string",
              "description": "",
              "example": "false",
              "enumValues": [],
              "default": null,
              "required": false
            },
            {
              "group": "query",
              "name": "units",
              "type": "string",
              "description": "",
              "example": "metric",
              "enumValues": [],
              "default": null,
              "required": false
            }
          ],
          "serviceName": "",
          "tags": [],
          "quality": null
        }
      ],
      "integrationType": "",
      "isNew": false,
      "priceSummary": {
        "minAmount": "0.01",
        "maxAmount": "0.01",
        "avgCostPerTransaction": "0.01",
        "avgCostBasis": "exact",
        "currency": "USDC"
      },
      "serviceName": "",
      "tags": [],
      "iconUrl": ""
    }
  ],
  "total": 8,
  "limit": 10,
  "offset": 0
}