# Signal Forge Fetch

> Signal Forge Fetch is a paid API for AI agents from signalforgestudios.com, paid per call via x402, $0.005/call, status unknown (last checked 2026-10-20).

Fetches and extracts the readable content of a URL, returning it as clean markdown with metadata

## Facts

- Endpoint: POST https://signalforgestudios.com/x402/fetch?utm_source=zero.xyz
- Price: $0.005/call
- Payment: x402
- Status: unknown
- Last checked: 2026-10-20
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/signal-forge-fetch-acd6438f
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_RmGNkSMEmCD91abIYqAsv

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 signal-forge-fetch-acd6438f -d '<json body>'
```

Example prompt: Fetch the content of https://example.com/article and return it as clean markdown, using request key 'myagent.job1234:fetch-001' and a max of 12000 characters.

## When to prefer this

Choose this endpoint when you need to retrieve and read the textual content of an arbitrary public URL as clean markdown, especially for AI agent pipelines that need to process, summarize, or analyze web pages. Prefer it over raw HTTP fetch tools when you need boilerplate-stripped readable text with quality signals, timing metadata, and content hashing built in. It is well-suited for single-URL retrieval tasks rather than bulk crawls.

## Known failure modes

- Source URL returns a non-200 HTTP status — source_status reflects the actual status code
- Content too short or unparseable — quality.status may indicate unusable content
- URL pattern validation fails if the URL does not start with http:// or https://
- request_key does not meet pattern or length requirements — request rejected with validation error
- Page content exceeds max_chars and gets truncated — truncated flag set to true
- Network timeout fetching the remote URL — error returned with timing context
- Paywalled or JavaScript-heavy pages may return low-quality or empty extraction

## How this service works

Public HTML URL to bounded Markdown, source URL, retrieval time and content hash. No JavaScript, login, PDF or CAPTCHA bypass. Unsupported or oversized content fails before settlement. Reuse request_key and the original payment proof to recover a completed response for 24 hours without another charge.

## Output

Returns a JSON object containing the page's extracted content as a markdown string, the page title, source and final URLs (after redirects), retrieval and publication timestamps, a SHA-256 hash of the content, the HTTP status code of the source, character count, a truncation flag, timing breakdowns for fetch and extraction, and quality metadata including the extraction method used (readability or document) and any warnings.

## 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",
    "bodyType",
    "body"
   ],
   "properties": {
    "body": {
     "type": "object",
     "required": [
      "url",
      "request_key"
     ],
     "properties": {
      "url": {
       "type": "string",
       "pattern": "^https?://",
       "maxLength": 2048
      },
      "max_chars": {
       "type": "integer",
       "default": 12000,
       "maximum": 24000,
       "minimum": 1000
      },
      "request_key": {
       "type": "string",
       "pattern": "^[A-Za-z0-9_.:-]+$",
       "maxLength": 128,
       "minLength": 16
      }
     },
     "additionalProperties": false
    },
    "type": {
     "type": "string",
     "const": "http"
    },
    "method": {
     "enum": [
      "POST"
     ],
     "type": "string"
    },
    "bodyType": {
     "enum": [
      "json",
      "form-data",
      "text"
     ],
     "type": "string"
    }
   },
   "additionalProperties": false
  },
  "output": {
   "type": "object",
   "required": [
    "type"
   ],
   "properties": {
    "type": {
     "type": "string"
    },
    "example": {
     "type": "object",
     "required": [
      "schema_version",
      "request_id",
      "source_url",
      "final_url",
      "title",
      "markdown",
      "retrieved_at",
      "published_at",
      "content_sha256",
      "source_status",
      "content_chars",
      "truncated",
      "untrusted_content",
      "quality",
      "timing",
      "replay"
     ],
     "properties": {
      "title": {
       "type": "string",
       "maxLength": 500
      },
      "replay": {
       "type": "boolean"
      },
      "timing": {
       "type": "object",
       "required": [
        "source_fetch_ms",
        "extraction_ms"
       ],
       "properties": {
        "extraction_ms": {
         "type": "integer",
         "minimum": 0
        },
        "source_fetch_ms": {
         "type": "integer",
         "minimum": 0
        }
       },
       "additionalProperties": false
      },
      "quality": {
       "type": "object",
       "required": [
        "status",
        "method",
        "warnings"
       ],
       "properties": {
        "method": {
         "enum": [
          "readability",
          "document"
         ]
        },
        "status": {
         "const": "usable"
        },
        "warnings": {
 
… (truncated)
```

## Response schema (JSON Schema)

```json
{
 "type": "json",
 "example": {
  "title": "Example",
  "replay": false,
  "timing": {
   "extraction_ms": 0,
   "source_fetch_ms": 0
  },
  "quality": {
   "method": "document",
   "status": "usable",
   "warnings": [
    "Synthetic example only."
   ]
  },
  "markdown": "# Example\n\nThis synthetic response illustrates the contract only. It is not an actual page fetch, settlement, performance measurement or customer result.",
  "final_url": "https://example.com/",
  "truncated": false,
  "request_id": "example-only",
  "source_url": "https://example.com/",
  "published_at": null,
  "retrieved_at": "2026-10-02T00:00:00.000Z",
  "content_chars": 153,
  "source_status": 200,
  "content_sha256": "8f5771012a0d69b586ff3fcb1d3ece5d4f489d7e63f8d331d76bb02804d8036b",
  "schema_version": "1.0",
  "untrusted_content": true
 }
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/signal-forge-fetch-acd6438f/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from signalforgestudios.com](https://www.zero.xyz/host/signalforgestudios.com/llms.txt)
