Tell me what changed on this page since my last check (deterministic, no LLM)
Tell me what changed on this page since my last check (deterministic, no LLM)
10000 (raw units)
price
1
calls / 30d
1
unique payers
2026-09-16
updated
Provider
api.agentsouk.dev · discovered, not yet claimed by its owner
Payment (x402 accepts[])
[
{
"scheme": "exact",
"network": "eip155:8453",
"payTo": "0xA0a2494006B72109137630bC026434a809731c07",
"asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
"amount": "10000",
"maxTimeoutSeconds": 900
}
]Output schema
{
"bazaar": {
"info": {
"input": {
"body": {
"ignore": [
"\"generated_at\": \"*\""
],
"label": "competitor pricing",
"selector": "Price:",
"url": "https://example.com/pricing"
},
"bodyType": "json",
"method": "POST",
"type": "http"
},
"output": {
"example": {
"changed": true,
"checked_at": "2026-09-16T10:00:00.000Z",
"checks": 14,
"clipped": false,
"content_chars": 21,
"content_empty": false,
"content_kind": "html",
"diff": {
"added": [
"Price: 49 USD / month"
],
"removed": [
"Price: 39 USD / month"
],
"reordered": false,
"truncated": false
},
"error": null,
"fetch_ok": true,
"final_url": "https://example.com/pricing",
"first_check": false,
"hash": "82b3b492701ab51d18916f30e3e9402b3ce39785961d4c38bb421f4d5f863ab1",
"http_status": 200,
"label": "competitor pricing",
"last_change_at": "2026-09-16T10:00:00.000Z",
"previous_checked_at": "2026-09-16T09:00:00.000Z",
"previous_hash": "1a2b3c4d5e6f7a8b9c0d1e2f3a4b5c6d7e8f9a0b1c2d3e4f5a6b7c8d9e0f1a2b",
"selector_matched": 1,
"snippet": "Price: 49 USD / month",
"url": "https://example.com/pricing"
},
"type": "json"
}
},
"schema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"input": {
"additionalProperties": false,
"properties": {
"body": {
"additionalProperties": false,
"properties": {
"ignore": {
"description": "Glob patterns removed before comparing (* = any run of characters on a line), e.g. \"\\\"generated_at\\\": \\\"*\\\"\"",
"items": {
"maxLength": 200,
"type": "string"
},
"maxItems": 5,
"type": "array"
},
"label": {
"description": "Your own name for this watch; echoed back, not part of its identity",
"maxLength": 120,
"type": "string"
},
"reset": {
"default": false,
"description": "Forget the stored snapshot for this target and start a fresh baseline",
"type": "boolean"
},
"selector": {
"description": "Keep only lines containing this text, e.g. \"Price:\" - watch one number instead of a whole page",
"maxLength": 200,
"type": "string"
},
"url": {
"description": "Public http(s) URL to watch",
"format": "uri",
"maxLength": 2048,
"type": "string"
}
},
"required": [
"url"
],
"type": "object"
},
"bodyType": {
"enum": [
"json"
],
"type": "string"
},
"method": {
"enum": [
"POST"
],
"type": "string"
},
"type": {
"const": "http",
"type": "string"
}
},
"required": [
"type",
"method",
"bodyType",
"body"
],
"type": "object"
},
"output": {
"properties": {
"example": {
"properties": {
"changed": {
"description": "false on the first check of a target and whenever the target could not be read",
"type": "boolean"
},
"checked_at": {
"format": "date-time",
"type": "string"
},
"checks": {
"description": "how often you have checked this target",
"type": "integer"
},
"clipped": {
"description": "the page was longer than the 8,000 characters the diff can show; the hash still covers all of it",
"type": "boolean"
},
"content_chars": {
"type": "integer"
},
"content_empty": {
"description": "nothing was left to compare - a maintenance page, or a selector that missed. The baseline is kept rather than replaced by emptiness",
"type": "boolean"
},
"content_kind": {
"description": "how the body is normalised; frozen at the first check of a target",
"enum": [
"html",
"json",
"text",
null
],
"type": [
"string",
"null"
]
},
"diff": {
"description": "null when nothing changed or nothing could be read",
"properties": {
"added": {
"items": {
"type": "string"
},
"type": "array"
},
"removed": {
"items": {
"type": "string"
},
"type": "array"
},
"reordered": {
"description": "the same lines in a different order or multiplicity: changed, but nothing to list",
"type": "boolean"
},
"truncated": {
"type": "boolean"
}
},
"type": [
"object",
"null"
]
},
"error": {
"description": "why the target could not be read",
"type": [
"string",
"null"
]
},
"fetch_ok": {
"description": "false when the target could not be read; the stored snapshot is then left as it was",
"type": "boolean"
},
"final_url": {
"type": [
"string",
"null"
]
},
"first_check": {
"type": "boolean"
},
"hash": {
"description": "sha256 of the whole normalised content, including what the diff had to leave out",
"type": [
"string",
"null"
]
},
"http_status": {
"type": [
"integer",
"null"
]
},
"label": {
"type": [
"string",
"null"
]
},
"last_change_at": {
"description": "when this target last differed, as far as your own checks have seen",
"format": "date-time",
"type": [
"string",
"null"
]
},
"previous_checked_at": {
"format": "date-time",
"type": [
"string",
"null"
]
},
"previous_hash": {
"type": [
"string",
"null"
]
},
"selector_matched": {
"description": "lines your selector kept; 0 means the watch is comparing nothing",
"type": [
"integer",
"null"
]
},
"snippet": {
"type": "string"
},
"url": {
"type": "string"
}
},
"required": [
"changed",
"first_check",
"fetch_ok"
],
"type": "object"
},
"type": {
"type": "string"
}
},
"required": [
"type"
],
"type": "object"
}
},
"required": [
"input"
],
"type": "object"
}
}
}Use it
curl
curl "https://api.agentsouk.dev/v1/x402/lst_01M2NXY883W33X7KJCZMJ811A0" # -> 402 Payment Required, accepts[] lists how to pay # retry with a PAYMENT-SIGNATURE (or PAYMENT header) once paid
JavaScript
const res = await fetch("https://api.agentsouk.dev/v1/x402/lst_01M2NXY883W33X7KJCZMJ811A0");
if (res.status === 402) {
const { accepts } = await res.json();
// pay one of accepts[] via an x402 client, then retry with the payment header
}Python
import httpx
res = httpx.get("https://api.agentsouk.dev/v1/x402/lst_01M2NXY883W33X7KJCZMJ811A0")
if res.status_code == 402:
accepts = res.json()["accepts"]
# pay one of accepts[] via an x402 client, then retry with the payment headerMachine-readable
Everything on this page is also available as clean JSON at /resources/7879.json, and this resource appears in /discovery/resources and /discovery/search.