# Forest Factory API – Page Structured Changed

> Forest Factory API – Page Structured Changed is a paid API for AI agents from http--forest-gas-station-mainnet--lcjl27p8lmjs.code.run, paid per call via x402, $0.002/call, status unknown (last checked 2026-10-20).

Fetches a structured representation of a webpage and detects whether its content has materially changed since a previous snapshot, identified by a SHA-256 hash.

## Facts

- Endpoint: POST https://http--forest-gas-station-mainnet--lcjl27p8lmjs.code.run/page/structured-changed?utm_source=zero.xyz
- Price: $0.002/call
- Payment: x402
- Status: unknown
- Last checked: 2026-10-20
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/forest-factory-api-page-structured-changed-1a0381fb
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_cWeQJnIDo2Vpki0kpZd14

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 forest-factory-api-page-structured-changed-1a0381fb -d '<json body>'
```

Example prompt: Check if https://www.example.com/pricing has changed since my last snapshot — the previous hash was sha256:a3f1c2e4b5d6e7f8a9b0c1d2e3f4a5b6c7d8e9f0a1b2c3d4e5f6a7b8c9d0e1f2 — and tell me exactly which fields changed.

## When to prefer this

Use this endpoint when you need both structured content extraction AND change detection in a single call — particularly when you have a stored SHA-256 hash from a previous fetch and want to know exactly which fields changed. It is ideal for automated monitoring pipelines, compliance tracking, and competitive intelligence workflows where knowing *what* changed (not just *that* something changed) is important. Prefer this over generic diff tools when you need entity-level granularity and a machine-readable structured output.

## Known failure modes

- Invalid or unreachable URL returns an error with ok: false
- URL does not match ^https?:// pattern results in validation error
- previous_hash not matching sha256:[hex64] pattern returns validation error
- Payment not included or invalid returns HTTP 402 with x402 challenge
- Page behind authentication or bot protection may return incomplete or blocked content
- Very large pages may be truncated (truncated: true in response)
- DNS resolution failures or timeouts for the target URL cause error responses

## How this service works

Machine-readable contract for active Forest paid capabilities. Unsigned paid calls return HTTP 402 with a PAYMENT-REQUIRED x402 challenge.

## Output

Returns a JSON object indicating whether the page content has materially changed (changed: boolean), the new SHA-256 hash for future comparisons, the page title, canonical URL, a list of changed fields, entity counts by type, whether JavaScript was rendered, and metadata including cache status, provider name, check timestamp, and duration in milliseconds.

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "properties": {
  "url": {
   "type": "string",
   "pattern": "^https?://",
   "maxLength": 2048,
   "minLength": 1,
   "description": "Public HTTP(S) URL to inspect, resolve, or compare."
  },
  "previous_hash": {
   "type": "string",
   "pattern": "^sha256:[a-fA-F0-9]{64}$",
   "description": "Earlier result hash used to detect a material change."
  }
 }
}
```

## Response schema (JSON Schema)

```json
{
 "type": "json",
 "example": {
  "ok": true,
  "data": {
   "title": "example",
   "changed": false,
   "new_hash": "example",
   "truncated": false,
   "source_url": "example",
   "type_counts": [],
   "entity_count": 0,
   "canonical_url": "example",
   "previous_hash": "example",
   "changed_fields": [],
   "rendered_javascript": false
  },
  "meta": {
   "cache": "miss",
   "provider": "safe-http",
   "checked_at": "2026-01-01T00:00:00.000Z",
   "duration_ms": 0
  },
  "version": "1",
  "capability": "web.page-structured-changed"
 }
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/forest-factory-api-page-structured-changed-1a0381fb/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from http--forest-gas-station-mainnet--lcjl27p8lmjs.code.run](https://www.zero.xyz/host/http--forest-gas-station-mainnet--lcjl27p8lmjs.code.run/llms.txt)
