---
title: "MERCURY Cited Metadata"
method: GET
path: "/buy/metadata"
tags: ["cited-metadata", "metadata", "json-ld", "schema-org", "open-graph", "twitter-card", "seo", "social-card", "structured-data", "verifiable-data-record", "provenance", "attestation", "keyless", "agent-native", "data-feed"]
---

# MERCURY Cited Metadata

`GET /buy/metadata`

## Request

- Base URL: `https://network.mercury-hq.com`
- URL: `https://network.mercury-hq.com/buy/metadata`
- Auth: none declared
- TypeScript: <https://skmtc.dev/mercury-hq/apis/mercury-x402-storefront/docs/buy/metadata/get.ts> (a function with typed inputs; its response is checked against the schema)

URL → one typed, SIGNED metadata record (JSON-LD + OpenGraph + Twitter-card + standard <meta> + canonical + title), by source. Deterministic, keyless, no LLM — the social-card/SEO/schema.org record an agent can PROVE.

## Query parameters

- `url` string, required: the page to read metadata from (http/https)

## Response `200`

Delivered after the x402 payment settles on Base mainnet.

- object
  - `ok` boolean, required: true on success; false on an honest failure (you are NOT charged for ok:false)
  - `url` string, required: final URL after redirects
  - `status` integer: upstream HTTP status
  - `fetchedAt` string: ISO-8601 time the page was read
  - `data` object: the typed metadata record, by source
    - `title` string, nullable: <title> text
    - `canonical` string, nullable: <link rel=canonical> href
    - `openGraph` object: all og:* / article:* / product:* meta, keyed by FULL property name (e.g. 'og:title')
    - `twitter` object: all twitter:* card meta
    - `standard` object: standard head meta (description, author, robots, viewport, charset, keywords, …)
    - `jsonLd` object[]: every parsed JSON-LD block (@graph flattened)
    - `counts` object: how many signals of each class were found
      - `jsonLd` integer
      - `openGraph` integer
      - `twitter` integer
      - `standard` integer
  - `text` string: the canonical signed string: JSON.stringify(data, sortedKeys). The attestation signs THIS.
  - `error` string: present only when ok:false
  - `attestation` object: EIP-191 provenance receipt over sha256(text)+url+status+time, verifiable OFFLINE by anyone (key pinned at /.well-known/mercury-attestation). Proves THIS metadata record is exactly what MERCURY parsed from THIS url at THIS time — the wedge a free metadata API cannot emit.

## Other responses

- `402`: Payment Required — retry with an x402-signed payment (e.g. x402-fetch). Terms are in the challenge body (x402 v1).

---

[API](https://skmtc.dev/mercury-hq/apis/mercury-x402-storefront.md) - [All operations](https://skmtc.dev/mercury-hq/apis/mercury-x402-storefront/llms.txt) - [OpenAPI document](https://skmtc.dev/mercury-hq/apis/mercury-x402-storefront/revisions/211aa7db24ae?raw)
