ToolAssay

Use Check for a changed/unchanged signal and optional compact text diff

Use Check for a changed/unchanged signal and optional compact text diff. Exactly one URL or existing watch ID; URL plus rules can create a watch, whereas watch_id reuses saved rules and forbids overrides. Use Smart Diff for structured changes. On-demand only; x402 $0.005 USDC on Base, including cache hits.

Answeringour last check, 2026-10-31
2 of 2checks answered this week
911 msmedian answer time
$0.005listed price per call
$0.005price 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://api.fresh402.com/v1/check

CategoryEverything else
Provider hostapi.fresh402.com
Networkseip155:8453
Payment schemesexact
Self-reported calls, 30 days1 from 1 payers (the provider's figure, not ours)

Our checks, last 30 days

DayResultHTTPAskedTime
2026-10-31 valid payment request 402$0.005 952 ms
2026-10-29 valid payment request 402$0.005 871 ms

Example input (from the provider)

{
  "body": {
    "include_diff": true,
    "url": "https://example.com/"
  },
  "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": {
          "$schema": "https://json-schema.org/draft/2020-12/schema",
          "description": "Paid Check input: exactly one of url or watch_id is required. Content rules are allowed only on the url path; watch_id always reuses saved rules. Optional previous_hash overrides the reference hash; max_age_seconds controls cache reuse and include_diff controls text-diff output.",
          "examples": [
            {
              "include_diff": true,
              "max_age_seconds": 0,
              "selector": "main",
              "url": "https://example.com/docs"
            }
          ],
          "oneOf": [
            {
              "required": [
                "url"
              ]
            },
            {
              "required": [
                "watch_id"
              ]
            }
          ],
          "properties": {
            "html_attributes": {
              "description": "Optional HTML-only watch rule: up to4 of href,title,alt,aria-label; default[] retains existing text-only normalization. Distinct names are sorted; nonempty rules create a separate version1 watch/baseline. Records bounded meaningful attributes within the saved selector or filtered page, including same-text link destination changes. Cannot be supplied with watch_id, even[]. Unsafe hrefs are hashed, never fetched. Limits:200 elements,2048 characters/value,32768 evidence bytes; excess fails, never clips silently.",
              "items": {
                "description": "One explicitly observed HTML attribute: href (a/area only),title,alt or aria-label. No class/style/event attributes; links are inert evidence and never fetched.",
                "enum": [
                  "alt",
                  "aria-label",
                  "href",
                  "title"
                ],
                "type": "string"
              },
              "maxItems": 4,
              "type": "array"
            },
            "ignore_json_paths": {
              "description": "Optional JSON-only exclusions, up to 20 paths of 1-256 characters starting with '/'; '~0'/'~1' escapes and '*' segments are supported. Example: ['/updated_at']. Accepted only with url; default []. With watch_id, omit entirely (including []): saved paths are reused.",
              "items": {
                "description": "JSON Pointer-style path, 1-256 characters, starting with '/'. Decode '~0' as '~' and '~1' as '/'; '*' matches all object keys or array elements. Example: '/items/*/updated_at'.",
                "maxLength": 256,
                "minLength": 1,
                "pattern": "^\\/",
                "type": "string"
              },
              "maxItems": 20,
              "type": "array"
            },
            "ignore_selectors": {
              "description": "Optional HTML-only exclusion array, up to 20 supported CSS selectors of 1-256 characters each, e.g. ['.timestamp']. Accepted only with url; default []. With watch_id, omit the field entirely (including []): saved exclusions are reused.",
              "items": {
                "description": "HTML element(s) to remove before normalization: a supported CSS selector, 1-256 characters, e.g. '.timestamp' or 'nav'.",
                "maxLength": 256,
                "minLength": 1,
                "type": "string"
              },
              "maxItems": 20,
              "type": "array"
            },
            "include_diff": {
              "description": "Optional boolean; runtime default: true. Request a compact deterministic text diff when content changed and compatible prior text is retained. False omits the diff; true cannot recover unavailable old content and does not enable Smart Diff's structural analysis.",
              "type": "boolean"
            },
            "max_age_seconds": {
              "description": "Optional integer cache age in seconds, 0-86400; runtime default: 0. A positive value permits reuse of a sufficiently recent watch result without fetching. Zero contacts the source (conditional HTTP may return 304). Cached Checks still require payment; this does not schedule background polling.",
              "maximum": 86400,
              "minimum": 0,
              "type": "integer"
            },
            "previous_hash": {
              "description": "Optional previous Fresh402 content hash: exactly 64 hexadecimal characters, case-insensitive. Overrides comparison with the watch's current stored hash. Omit to use that stored hash; a new URL watch without a prior hash returns changed:null. Hash comparison does not require retained old text, but a text diff does; a hash cannot reconstruct missing content.",
              "pattern": "^[a-fA-F0-9]{64}$",
              "type": "string"
            },
            "selector": {
              "description": "Optional HTML CSS scope, 1-256 characters, e.g. 'main'; accepted only with url. Omit for the page after built-in noise removal. No match returns 422; not supported for JSON/plain text. With watch_id, omit this field: the saved selector is reused.",
              "maxLength": 256,
              "minLength": 1,
              "type": "string"
            },
            "url": {
              "description": "Supply exactly one of url or watch_id. URL must be absolute public HTTPS on port 443, at most 4096 characters, with no credentials/private targets, e.g. 'https://example.com/docs'. Fresh402's own service URLs, including its discovery /openapi.json, cannot be targets; choose an external public document. With url, optional content rules identify the watch; an existing watch is reused or a new one is created by this paid Check. Separate registration is not required. No JavaScript rendering.",
              "format": "uri",
              "maxLength": 4096,
              "pattern": "^[Hh][Tt][Tt][Pp][Ss]://",
   

This page as JSON