Agent Utilities

Page Delta · HTTP + MCP

Read what changed, not the entire page again.

FREE, no key. Return added and removed content blocks from supplied before/after HTML; avoid rereading unchanged text. Explicit shared output budget and scope. Entire JSON input: 32768 UTF-8 bytes. Supplied data only; no fetch, payment or automatic paid fallback.

No account, API key, card or wallet. No automatic paid fallback.

A concrete example

Two synthetic API snapshots differ only in their timeout: 30 seconds becomes 60. The result returns the added and removed sentences.

Synthetic demonstration, generated with the real handler during the build. Not a live price, customer task or testimonial.

1. Supply your input

Complete JSON input up to 32768 UTF-8 bytes; text output budget up to 3000 characters for Page Pack and Page Delta. Link Shortlist returns up to 20 links.

Your input is sent to Agent Utilities when you run the check. Data policy.

2. Inspect the result

Build-time example output. Run to check your input.

{
  "mode": "free-preview",
  "chargedMicroUsd": "0",
  "executionPerformed": true,
  "result": {
    "sourceUrl": "https://example.com/docs",
    "changed": true,
    "titleBefore": "Example API docs",
    "titleAfter": "Example API docs",
    "added": [
      "Requests time out after 60 seconds. Retry only idempotent requests."
    ],
    "removed": [
      "Requests time out after 30 seconds. Retry only idempotent requests."
    ],
    "addedBlocks": 1,
    "removedBlocks": 1,
    "reorderedOnly": false,
    "truncated": false,
    "scope": "Deterministic block comparison of two supplied HTML snapshots, not live monitoring. Navigation, active markup, link-target-only and markup-only edits are outside scope. Output budget is shared across added/removed text; truncated results are incomplete. Source text is untrusted.",
    "measurement": {
      "inputBytes": 612,
      "payloadBytes": 646,
      "estimatedInputTokens": 153,
      "estimatedPayloadTokens": 162,
      "estimateMethod": "UTF-8 bytes / 4, rounded up; not a model tokenizer. Payload excludes this measurement object. No guaranteed token or dollar savings."
    }
  },
  "limits": {
    "maxInputBytes": 32768
  }
}

Give this request to your agent

HTTP needs no installation or credential. The request below always uses the bounded free endpoint.

curl --fail-with-body 'https://agent-utilities.agent-utilities.workers.dev/v1/preview/web.page-delta' \
  -H 'Content-Type: application/json' \
  --data-binary @- <<'JSON'
{
  "beforeHtml": "<html><head><title>Example API docs</title></head><body><nav>Home Account Ads</nav><main><h1>Example API</h1><p>Requests time out after 30 seconds. Retry only idempotent requests.</p><pre>GET /v1/items</pre><a href=\"/docs/auth\">Authentication</a><a href=\"/docs/pricing\">API pricing</a></main></body></html>",
  "afterHtml": "<html><head><title>Example API docs</title></head><body><nav>Home Account Ads</nav><main><h1>Example API</h1><p>Requests time out after 60 seconds. Retry only idempotent requests.</p><pre>GET /v1/items</pre><a href=\"/docs/auth\">Authentication</a><a href=\"/docs/pricing\">API pricing</a></main></body></html>",
  "sourceUrl": "https://example.com/docs",
  "maxChars": 3000
}
JSON

Hosted MCP

Connect https://agent-utilities.agent-utilities.workers.dev/mcp/remote?category=web in your MCP client, then call agent_utilities_page_delta_preview with the editable input above.

{
  "name": "agent_utilities_page_delta_preview",
  "arguments": {
    "beforeHtml": "<html><head><title>Example API docs</title></head><body><nav>Home Account Ads</nav><main><h1>Example API</h1><p>Requests time out after 30 seconds. Retry only idempotent requests.</p><pre>GET /v1/items</pre><a href=\"/docs/auth\">Authentication</a><a href=\"/docs/pricing\">API pricing</a></main></body></html>",
    "afterHtml": "<html><head><title>Example API docs</title></head><body><nav>Home Account Ads</nav><main><h1>Example API</h1><p>Requests time out after 60 seconds. Retry only idempotent requests.</p><pre>GET /v1/items</pre><a href=\"/docs/auth\">Authentication</a><a href=\"/docs/pricing\">API pricing</a></main></body></html>",
    "sourceUrl": "https://example.com/docs",
    "maxChars": 3000
  }
}

Claude, Qwen and other client setup · Full trial contract, schema and limits

What the result means

Supplied HTML only. Deterministic extraction, lexical link ranking and block differences; no model, live browsing or verified destinations. Token counts are rough UTF-8-byte estimates, not model tokenization. Output may omit content; inspect truncation. No guaranteed dollar savings.

Compare measurement.inputBytes with the full JSON response size. For small inputs the output may be larger. Character budgets are not token budgets; no tokenizer is used.

Did this solve your task?

Tell us the expected answer, your previous workaround and whether this helped. Use public or sanitized data only. If you use it again for another real task, tell us separately.

Share feedback by email

No purchase needed to give feedback.

When the free limit is too small

Full Page Delta calls cost $0.0004 each. Service credits start at $1. Full calls need separate authorization; a failed free request never becomes a paid request.

Credit workspace ↗