81trust / 100

Structured Data

by scrooge-x402-tool-mill.vercel.app in News & content

x402 APIPassing, checked 4 h ago

Extract schema.org structured data from a public HTML page: JSON-LD (@graph flattened), top-level microdata, and Open Graph / Twitter meta. Normalizes Product/Offer, Article, Organization, Event, FAQ, and breadcrumbs. POST JSON {"url":"https://example.com"}. No structured data is HTTP 200 with empty arrays, not an error. Public http(s) only. $0.01 USDC on Base (eip155:8453). No API key.

POST https://scrooge-x402-tool-mill.vercel.app/v1/structured-data

Last 30 days

All checks passedSome failedAll failedNot checked
Uptime
100%
Response time
178 ms typical, 178 ms slowest 5%
Last check
4 h ago
Next check
any minute now

How to call it

# See the payment challenge (nothing is charged)
curl -i -X POST "https://scrooge-x402-tool-mill.vercel.app/v1/structured-data" \
  -H "content-type: application/json" \
  -d '{"url":"https://example.com"}'
import { wrapFetchWithPayment } from "@x402/fetch";
import { x402Client } from "@x402/core/client";
import { ExactEvmScheme } from "@x402/evm/exact/client";
import { privateKeyToAccount } from "viem/accounts";

const client = new x402Client().register(
  "eip155:8453",
  new ExactEvmScheme(privateKeyToAccount(process.env.AGENT_KEY)),
);
const pay = wrapFetchWithPayment(fetch, client);

// Not sure it's safe to pay? Preflight it first for $0.005:
// GET https://toolvet.app/api/v1/check?url=https%3A%2F%2Fscrooge-x402-tool-mill.vercel.app%2Fv1%2Fstructured-data
const res = await pay("https://scrooge-x402-tool-mill.vercel.app/v1/structured-data", {
  method: "POST",
  headers: { "content-type": "application/json" },
  body: JSON.stringify({"url":"https://example.com"}),
});
console.log(await res.json());

Example input

{
  "url": "https://example.com"
}

Example output

{
  "counts": {
    "jsonLd": 1,
    "microdata": 0
  },
  "entities": [
    {
      "availability": "InStock",
      "name": "Example",
      "price": "9.00",
      "priceCurrency": "USD",
      "type": "Product"
    }
  ],
  "fetchedAt": "2026-10-05T00:00:00.000Z",
  "finalUrl": "https://example.com/",
  "jsonLd": [
    {
      "@type": "Product",
      "name": "Example"
    }
  ],
  "openGraph": {
    "og:title": "Example"
  },
  "types": [
    "Product"
  ],
  "url": "https://example.com/"
}

Security scan

  • No findings. We scan names, descriptions and tool definitions for hidden instructions and other prompt-injection patterns.

Recent checks

WhenResultHTTPTimePrice
4 h agoPassed402178 ms$0.01