# HTML Meta Tag & SEO Signals Extractor

> HTML Meta Tag & SEO Signals Extractor is a paid API for AI agents from markup-tools.x402tookit.com, paid per call via x402, $0.02/call, status unknown (last checked 2026-11-02).

Parses supplied HTML to extract and audit meta tags including title, description, canonical, robots, Open Graph, Twitter Card, and JSON-LD, and reports any missing or incomplete SEO fields.

## Facts

- Endpoint: GET https://markup-tools.x402tookit.com/html-meta?utm_source=zero.xyz
- Price: $0.02/call
- Payment: x402
- Status: unknown
- Last checked: 2026-11-02
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/html-meta-tag-seo-signals-extractor-2bb88c68
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_S2QhTFXcXQr3J-WTgpQZA

Status and success rate cover calls made through Zero and Zero's own probes. Third-party monitors may report differently.

## How to call it through Zero

Zero handles the 402 payment challenge and records the run. With the Zero CLI installed (`npm i -g @zeroxyz/cli`):

```sh
zero fetch --capability html-meta-tag-seo-signals-extractor-2bb88c68
```

Example prompt: Can you extract the SEO meta tags from this HTML — I need to see the title, description, canonical URL, Open Graph fields, Twitter Card, and any JSON-LD types, plus a list of what's missing: <html><head><title>My Page</title><meta name='description' content='Hello world'></head></html>

## When to prefer this

Choose this endpoint when you need to programmatically audit the SEO and social-sharing metadata baked into a raw HTML document — especially when you want a structured gap report (the 'missing' array) rather than just a dump of tag values. It is ideal for pre-publish content checks, scraper pipelines validating harvested pages, or any workflow that needs to inventory JSON-LD schema types without writing custom parsers. Prefer alternatives if you need to fetch the URL yourself (this endpoint requires you to supply the HTML) or if you need full content extraction rather than head-level metadata.

## Known failure modes

- HTML exceeds 20,000 characters — returns HTTP 400
- Missing required 'html' query parameter — returns 400 validation error
- Malformed or non-HTML input may produce empty or null fields with notes
- Payment not included or invalid — returns HTTP 402 Payment Required
- Relative URLs in canonical/image not resolved if 'base' parameter is omitted

## How this service works

Read title, description, canonical, robots, Open Graph, Twitter card and JSON-LD types from supplied HTML and list gaps.

## Output

Returns a structured object containing: title, meta description, canonical URL, robots directives, Open Graph fields (title, image), Twitter Card type, JSON-LD block (count, types, parse error count), alternate links, theme color, charset, author, article metadata, language, icons, and an array of 'missing' fields — plus a verdict, summary, notes, and optional degraded/disclaimer flags indicating SEO completeness.

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "$schema": "https://json-schema.org/draft/2020-12/schema",
 "required": [
  "input"
 ],
 "properties": {
  "input": {
   "type": "object",
   "required": [
    "type",
    "method"
   ],
   "properties": {
    "type": {
     "type": "string",
     "const": "http"
    },
    "method": {
     "enum": [
      "GET"
     ],
     "type": "string"
    },
    "queryParams": {
     "type": "object",
     "required": [
      "html"
     ],
     "properties": {
      "base": {
       "type": "string",
       "description": "Optional absolute http(s) URL to resolve relative canonical and image URLs"
      },
      "html": {
       "type": "string",
       "description": "HTML document (head is enough), up to 20000 characters (longer is refused with 400)"
      }
     }
    }
   },
   "additionalProperties": false
  },
  "output": {
   "type": "object",
   "required": [
    "type"
   ],
   "properties": {
    "type": {
     "type": "string"
    },
    "example": {
     "type": "object",
     "properties": {
      "asOf": {
       "type": [
        "null",
        "string"
       ]
      },
      "lang": {
       "type": [
        "null",
        "string"
       ]
      },
      "icons": {
       "type": [
        "array",
        "null"
       ]
      },
      "notes": {
       "type": [
        "array",
        "null"
       ]
      },
      "title": {
       "type": [
        "null",
        "string"
       ]
      },
      "author": {},
      "jsonLd": {
       "type": [
        "null",
        "object"
       ],
       "properties": {
        "count": {
         "type": [
          "null",
          "number"
         ]
        },
        "types": {
         "type": [
          "array",
          "null"
         ]
        },
        "parseErrors": {
         "type": [
          "null",
          "number"
         ]
        }
       }
      },
      "robots": {},
      "source": {
       "type": [
        "null",
        "string"
       ]
      },
      "article": {
       "type": [
        "null",
        "object"
       ],
       "properties": {}
      },
      "charset": {},
      "missing": {
       "type": [
        "array",
        "null"
       ]
      },
      "reasons": {
       "type": [
        "array",
        "null"
       ]
      },
      "summary": {
       "type": [
        "null",
        "string"
       ]
      },
      "twitter": {
       "type": [
        "null",
        "object"
       ],
       "properties": {
        "car
… (truncated)
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/html-meta-tag-seo-signals-extractor-2bb88c68/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from markup-tools.x402tookit.com](https://www.zero.xyz/host/markup-tools.x402tookit.com/llms.txt)
