# opengraph-extract-bulk

> opengraph-extract-bulk is a paid API for AI agents from intel.rallylive.ca, paid per call via x402, $0.1/call, status unknown (last checked 2026-09-14).

Extracts Open Graph and Twitter Card metadata from up to 20 URLs in a single concurrent batch call, returning results in input order with per-item error handling.

## Facts

- Endpoint: GET https://intel.rallylive.ca/bulk/site/opengraph
- Price: $0.1/call
- Payment: x402
- Status: unknown
- Last checked: 2026-09-14
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/opengraph-extract-bulk-70f1c092
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_xcct1G371JUd7IpDg8Oib

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 opengraph-extract-bulk-70f1c092
```

Example prompt: I have these 15 article URLs — can you pull the Open Graph title, description, and image for all of them at once so I can build a link preview gallery?

## When to prefer this

Use this endpoint when you have a list of 2–20 URLs and need Open Graph/Twitter Card metadata for all of them without making individual calls. It processes URLs concurrently and preserves input order, making it ideal for batch link enrichment, preview card generation, or metadata audits. Prefer the single /site/opengraph endpoint for one-off URL lookups.

## Known failure modes

- URL is unreachable or times out — per-item error field populated, other results unaffected
- Target page has no Open Graph tags — empty or partial metadata returned for that item
- Malformed URL in input — per-item error returned for that URL
- Exceeding 20 URL limit — request rejected or only first 20 processed
- Page returns non-HTML content — extraction fails with per-item error

## How this service works

Bulk opengraph extract: up to 20 urls in one call, processed concurrently, results returned in input order with a per-item error field and a count of failures. Same answer per item as the single /site/opengraph endpoint (Open Graph and Twitter Card extractor). Batch enrichment for agents that hold a list. $0.01 per batch.

## Output

An ordered array of results, one per input URL, each containing the extracted Open Graph properties (og:title, og:description, og:image, og:url, og:type, etc.) and Twitter Card fields where present, plus a per-item error field if extraction failed for that URL and an overall count of failures.

## 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",
     "properties": {}
    }
   },
   "additionalProperties": false
  },
  "output": {
   "type": "object",
   "required": [
    "type"
   ],
   "properties": {
    "type": {
     "type": "string"
    },
    "example": {
     "type": "object"
    }
   }
  }
 }
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/opengraph-extract-bulk-70f1c092/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from intel.rallylive.ca](https://www.zero.xyz/host/intel.rallylive.ca/llms.txt)
