← Marketplace

Fly

Fly is an x402-native service at https://scrapecheck.fly.dev, indexed from the x402 Bazaar (Coinbase's public discovery directory). It charges callers itself in USDC on Base and is paid directly at its own wallet; Monex Protocol passes your request and payment headers through untouched. 6 endpoints listed.

Base

Offers

OfferEndpointPrice
Verify
Checks whether a value you did not fetch yourself is actually on the page it came from. Independently re-fetches the source and returns a signed pass/fail/unverifiable verdict. A claim is never certified unless the re-fetched page contains it, and anything unconfirmed is unverifiable, never pass. Server-rendered pages only. $0.01 per check. First 100 checks per client are free: resend this exact r
/m/bz-scrapecheck-fly-dev/verify0.01 USDC
Verify Hash
Checksum tier (deterministic, no LLM): verifies the exact bytes served at a public URL hash to a claimed sha256, by independent double re-fetch. Use it to confirm a download or artifact matches its published checksum. Bodies up to 3 MB; dynamic pages return unverifiable, never a guess. sha256 only. First 100 checks per client are free: resend with header X-Use-Free-Allowance: yes and no payment to
/m/bz-scrapecheck-fly-dev/verify-hash0.002 USDC
Verify Json
JSON tier (deterministic, no LLM): verifies a claimed value lives at a named JSON path in a public endpoint's response, by independent double re-fetch. Use it for machine-readable API responses; for HTML pages use /verify. Claim keys are paths (data.items[0].price). Type-strict; volatile values return unverifiable, never a guess. Public HTTPS JSON only. First 100 checks per client are free: resend
/m/bz-scrapecheck-fly-dev/verify-json0.002 USDC
Verify Presence
PRESENCE tier (deterministic, no LLM): confirms the claimed value appears on the live page — it does NOT confirm the value is the right answer to the question. Positive verdict is "present", never "pass"; check_type web_field_presence_v1. For full verification use /verify. First 100 checks per client are free: resend with header X-Use-Free-Allowance: yes and no payment to use them.
/m/bz-scrapecheck-fly-dev/verify-presence0.002 USDC
Verify Redirect
Redirect tier (deterministic, no LLM): verifies where a public URL actually leads: final URL (byte-exact), first response status, and hop count of the HTTP chain, walked twice with per-hop SSRF checks. Use it to confirm a link or a moved page points where it claims. Loops and unstable chains return unverifiable, never a guess. First 100 checks per client are free: resend with header X-Use-Free-All
/m/bz-scrapecheck-fly-dev/verify-redirect0.002 USDC
Verify Xml
XML tier (deterministic, no LLM): verifies a claimed value lives at a named path in a public XML document, by independent double re-fetch. Use it for feeds and sitemaps; for JSON use /verify-json, for HTML use /verify. Paths address elements and @attributes (urlset.url[0].loc). String-exact; ambiguous or volatile values return unverifiable, never a guess. First 100 checks per client are free: rese
/m/bz-scrapecheck-fly-dev/verify-xml0.002 USDC

Machine-readable: openapi.json with x-payment-info offers.

Try it live

Run the full MPP flow from your browser: catch the 402, sign the payment with your wallet, and watch it settle on-chain.

This merchant settles over the mppx rail; pay it from an agent with the snippet below.

Pay with an agent

Any MPP or x402-compatible client works. With mppx, payment is automatic:

import { Mppx, evm } from 'mppx/client'
import { privateKeyToAccount } from 'viem/accounts'

const mppx = Mppx.create({
  methods: [evm({
    account: privateKeyToAccount(process.env.KEY),
    currencies: [evm.assets.base.USDC],
  })],
})

const res = await mppx.fetch('https://api.meshgateway.co/m/bz-scrapecheck-fly-dev/verify')
// 402 challenge signed and settled automatically; response includes Payment-Receipt

Or inspect the challenge yourself:

curl -i https://api.meshgateway.co/m/bz-scrapecheck-fly-dev/verify
# HTTP/1.1 402 Payment Required
# WWW-Authenticate: Payment id="…", method="evm", intent="charge", …