# Page Change Observations — String Normalisation + Duplicate Key Report

> Page Change Observations — String Normalisation + Duplicate Key Report is a paid API for AI agents from market.datapackvibe.com, paid per call via x402, $0.01/call, status unknown (last checked 2026-11-04).

Runs string normalisation and duplicate key detection on up to 200 page change observation records (changed_blocks, total_blocks) and returns two independent analytical reports.

## Facts

- Endpoint: POST https://market.datapackvibe.com/x402/assistant-ib26-web-12-021?utm_source=zero.xyz
- Price: $0.01/call
- Payment: x402
- Status: unknown
- Last checked: 2026-11-04
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/page-change-observations-string-normalisation-duplicate-key-report-7bb9870e
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_8AA3E7V0E1peHmthyoRoR

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 page-change-observations-string-normalisation-duplicate-key-report-7bb9870e -d '<json body>'
```

Example prompt: Can you run a string normalisation and duplicate key check on my page change observation records? Here are up to 50 rows with fields like row_id, site_group, date, changed_blocks, and total_blocks — I need both reports back.

## When to prefer this

Choose this endpoint when you need both string normalisation and duplicate key detection on page change observation data (changed_blocks, total_blocks) in a single low-cost call. It is ideal for pre-processing web monitoring exports before ingestion into analytical pipelines, and works entirely on supplied data without any external API calls or live lookups. Best suited for datasets of up to 200 rows where both data quality reports are needed together.

## Known failure modes

- Empty rows array returns a validation error — minItems is 1
- More than 200 rows submitted triggers a maxItems rejection
- Missing required fields (row_id, site_group, date, changed_blocks, total_blocks) on any row causes schema validation failure
- Date values not matching YYYY-MM-DD pattern are rejected
- Numeric values outside ±1,000,000,000,000 range fail schema validation
- Payment not included or insufficient USDC causes x402 payment-required rejection

## How this service works

Page change observations — String normalisation + Duplicate key report: String normalisation + Duplicate key report for supplied page change observations records (changed_blocks, total_blocks). Up to 200 rows; 2 independent reports using shared local analytical engines. No live lookup, prediction, professional assessment or external action. 0.01 USDC includes 2 supplied-data reports for up to 200 rows.

## Output

Returns two independent reports: (1) a string normalisation report highlighting normalised or irregular string values across the dataset fields, and (2) a duplicate key report identifying rows with repeated or conflicting row_id or key combinations — all processed locally with no external lookups, covering up to 200 input rows.

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "properties": {
  "rows": {
   "type": "array",
   "items": {
    "type": "object",
    "required": [
     "row_id",
     "site_group",
     "date",
     "changed_blocks",
     "total_blocks"
    ],
    "properties": {
     "date": {
      "type": "string",
      "default": "",
      "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
      "maxLength": 10
     },
     "row_id": {
      "type": "string",
      "default": "",
      "maxLength": 80,
      "minLength": 1
     },
     "site_group": {
      "type": "string",
      "default": "",
      "maxLength": 80
     },
     "total_blocks": {
      "type": [
       "number",
       "null"
      ],
      "maximum": 1000000000000,
      "minimum": -1000000000000
     },
     "changed_blocks": {
      "type": [
       "number",
       "null"
      ],
      "maximum": 1000000000000,
      "minimum": -1000000000000
     }
    },
    "additionalProperties": false
   },
   "default": [
    {
     "date": "2026-10-01",
     "row_id": "row-1",
     "site_group": "group-a",
     "total_blocks": 1,
     "changed_blocks": 10
    },
    {
     "date": "2026-10-02",
     "row_id": "row-2",
     "site_group": "group-b",
     "total_blocks": 2,
     "changed_blocks": 20
    },
    {
     "date": "2026-10-03",
     "row_id": "row-3",
     "site_group": "group-a",
     "total_blocks": 3,
     "changed_blocks": 15
    },
    {
     "date": "2026-10-04",
     "row_id": "row-4",
     "site_group": "group-b",
     "total_blocks": 4,
     "changed_blocks": 30
    }
   ],
   "maxItems": 200,
   "minItems": 1
  }
 }
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/page-change-observations-string-normalisation-duplicate-key-report-7bb9870e/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from market.datapackvibe.com](https://www.zero.xyz/host/market.datapackvibe.com/llms.txt)
