# Zinin M2M Hub – Structured Web Extractor

> Zinin M2M Hub – Structured Web Extractor is a paid API for AI agents from api.timzinin.com, paid per call via x402, $0.01/call, status unknown (last checked 2026-10-22).

Fetches a URL and returns structured data including title, links, headings, emails, prices, JSON-LD, and a plain-text summary

## Facts

- Endpoint: POST https://api.timzinin.com/api/structured-extract?utm_source=zero.xyz
- Price: $0.01/call
- Payment: x402
- Status: unknown
- Last checked: 2026-10-22
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/zinin-m2m-hub-structured-web-extractor-ca567582
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_m3gTplKrFkmIJpruR2Hba

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 zinin-m2m-hub-structured-web-extractor-ca567582 -d '<json body>'
```

Example prompt: Can you fetch https://www.example.com/products/widget and pull out the page title, all links, any prices listed, and a summary of the content?

## When to prefer this

Choose this endpoint when you need structured, multi-field extraction from a single URL in one call — especially when you want links, emails, prices, headings, and JSON-LD all at once without chaining multiple tools. It is well-suited for lightweight page audits, lead enrichment from known URLs, or content summarization at $0.01 per call. Prefer it over full-browser crawlers when JavaScript rendering is not strictly required.

## Known failure modes

- URL not reachable — found: false, httpStatus may be 4xx or 5xx
- Timeout — page takes too long to load, run_ms may be high
- Empty content — page exists but has no parseable structure, most fields return empty arrays
- Paywalled or bot-blocked pages — may return limited or no content
- Invalid URL format — request rejected before fetching
- Payment not settled — call fails if x402 payment header is missing or invalid

## How this service works

Pay-per-call data & tool APIs

## Output

A JSON response containing: meta object (run_ms, settled flag, item_count), and a results array where each item includes the URL, found status, HTTP status code, page title, site name, canonical URL, description, image URL, a flat list of links, headings, emails, prices, JSON-LD blocks, and a plain-text summary string. All fields are per-URL.

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "properties": {
  "urls": {
   "type": "array",
   "maxItems": 100
  },
  "fields": {
   "type": "array",
   "maxItems": 10
  },
  "maxConcurrency": {
   "type": "integer",
   "maximum": 30,
   "minimum": 1
  }
 }
}
```

## Response schema (JSON Schema)

```json
{
 "type": "json",
 "example": {
  "meta": {
   "run_ms": 1200,
   "settled": true,
   "item_count": 1
  },
  "results": [
   {
    "url": "https://www.iana.org/help/example-domains",
    "found": true,
    "image": null,
    "links": [
     "https://www.iana.org/",
     "https://www.iana.org/domains",
     "https://www.iana.org/protocols",
     "https://www.iana.org/numbers",
     "https://www.iana.org/about",
     "…"
    ],
    "title": "Example Domains",
    "emails": [],
    "jsonLd": [],
    "prices": [],
    "summary": "https://www.iana.org/help/example-domains — title: 'Example Domains', 0 JSON-LD blocks, 26 links, 0 emails.",
    "headings": [
     "Example Domains",
     "Further Reading"
    ],
    "siteName": null,
    "canonical": null,
    "checkedAt": "2026-07-26T13:28:42.587Z",
    "httpStatus": 200,
    "description": null
   }
  ]
 }
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/zinin-m2m-hub-structured-web-extractor-ca567582/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from api.timzinin.com](https://www.zero.xyz/host/api.timzinin.com/llms.txt)
