Detect bounded changes across one static page surface using one HTML fetch plus
Detect bounded changes across one static page surface using one HTML fetch plus at most one robots.txt fetch. Forest hashes HTTP identity, page metadata, normalized JSON-LD, downloadable links, form schema and robots context without storing snapshots, rendering JavaScript or submitting anything. Base mainnet USDC
Answeringour last check, 2026-10-10
1 of 1checks answered this week
923 msmedian answer time
$0.004listed price per call
$0.004price it asked us
Paid test badge: not yet. The checks above are free: we call the tool without paying and read the payment request it sends back. The Verified badge needs paid calls whose answers match the promised output, and nobody can buy a badge.
Endpoint
POST https://http--forest-gas-station-mainnet--lcjl27p8lmjs.code.run/site/changed-since
| Category | Code and developer |
|---|---|
| Provider host | http--forest-gas-station-mainnet--lcjl27p8lmjs.code.run |
| Networks | eip155:8453 |
| Payment schemes | exact |
| Self-reported calls, 30 days | 2 from 2 payers (the provider's figure, not ours) |
Our checks, last 30 days
| Day | Result | HTTP | Asked | Time |
|---|---|---|---|---|
| 2026-10-10 | valid payment request | 402 | $0.004 | 923 ms |
Example input (from the provider)
{
"body": {
"url": "https://http--forest-gas-station-mainnet--lcjl27p8lmjs.code.run/fixtures/page",
"user_agent": "ForestBot/1.0"
},
"bodyType": "json",
"method": "POST",
"type": "http"
}
Promised output schema (from the provider)
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"input": {
"additionalProperties": false,
"properties": {
"body": {
"additionalProperties": false,
"properties": {
"previous_dimensions": {
"additionalProperties": false,
"description": "Public previous dimensions value used to scope this lookup.",
"properties": {
"downloads": {
"description": "Earlier result hash used to detect a material change.",
"pattern": "^sha256:[a-fA-F0-9]{64}$",
"type": "string"
},
"forms": {
"description": "Earlier result hash used to detect a material change.",
"pattern": "^sha256:[a-fA-F0-9]{64}$",
"type": "string"
},
"http": {
"description": "Earlier result hash used to detect a material change.",
"pattern": "^sha256:[a-fA-F0-9]{64}$",
"type": "string"
},
"page": {
"description": "Earlier result hash used to detect a material change.",
"pattern": "^sha256:[a-fA-F0-9]{64}$",
"type": "string"
},
"robots": {
"description": "Earlier result hash used to detect a material change.",
"pattern": "^sha256:[a-fA-F0-9]{64}$",
"type": "string"
},
"structured": {
"description": "Earlier result hash used to detect a material change.",
"pattern": "^sha256:[a-fA-F0-9]{64}$",
"type": "string"
}
},
"required": [
"http",
"page",
"structured",
"downloads",
"forms",
"robots"
],
"type": "object"
},
"previous_hash": {
"description": "Earlier result hash used to detect a material change.",
"pattern": "^sha256:[a-fA-F0-9]{64}$",
"type": "string"
},
"url": {
"description": "Public HTTP(S) URL to inspect, resolve, or compare.",
"maxLength": 2048,
"minLength": 1,
"pattern": "^https?://",
"type": "string"
},
"user_agent": {
"description": "Public user agent value used to scope this lookup.",
"maxLength": 128,
"minLength": 1,
"type": "string"
}
},
"required": [
"url"
],
"type": "object"
},
"bodyType": {
"enum": [
"json",
"form-data",
"text"
],
"type": "string"
},
"method": {
"enum": [
"POST"
],
"type": "string"
},
"type": {
"const": "http",
"type": "string"
}
},
"required": [
"type",
"method",
"bodyType",
"body"
],
"type": "object"
},
"output": {
"properties": {
"example": {
"type": "object"
},
"type": {
"type": "string"
}
},
"required": [
"type"
],
"type": "object"
}
},
"required": [
"input"
],
"type": "object"
}