# Broken Link Observations — String Normalisation + Numeric Row Ordering

> Broken Link Observations — String Normalisation + Numeric Row Ordering 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-03).

Normalises string fields and applies numeric row ordering to broken link observation records (checked_links, broken_links) for up to 200 rows, producing 2 analytical reports.

## Facts

- Endpoint: POST https://market.datapackvibe.com/x402/assistant-ib26-web-17-025?utm_source=zero.xyz
- Price: $0.01/call
- Payment: x402
- Status: unknown
- Last checked: 2026-11-03
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/broken-link-observations-string-normalisation-numeric-row-ordering-b2333071
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_HNCX5pa1Oq3deaVtXBv5C

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 broken-link-observations-string-normalisation-numeric-row-ordering-b2333071 -d '<json body>'
```

Example prompt: I have 4 rows of broken link data for two site groups — group-a had 3 broken out of 15 checked on 2026-10-03, and group-b had 4 broken out of 30 checked on 2026-10-04 — can you normalize the strings and order the rows by checked_links, giving me 2 reports?

## When to prefer this

Choose this endpoint when you have raw broken link observation data that needs string normalisation and numeric ordering as a preprocessing or reporting step, particularly when working with up to 200 rows across multiple site groups and dates. It is ideal for lightweight, offline analytical cleaning without any external API calls, predictions, or live lookups. Prefer it over heavier analytics pipelines when you only need these two specific transformations bundled together at low cost.

## Known failure modes

- Empty or missing rows array returns an error
- More than 200 rows submitted exceeds the maxItems limit and is rejected
- Invalid date format (not YYYY-MM-DD) fails schema validation
- Non-numeric values for checked_links or broken_links outside allowed range cause rejection
- Missing required fields (row_id, site_group, date) cause row-level validation failure
- Invalid field enum value (not checked_links or broken_links) returns a schema error

## How this service works

Broken link observations — String normalisation + Numeric row ordering: String normalisation + Numeric row ordering for supplied broken link observations records (checked_links, broken_links). 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

Two structured analytical reports derived from the supplied broken link observation rows: one normalising string fields (e.g. site_group names) and one ordering rows numerically by the selected field (checked_links or broken_links). No external lookups or predictions are made; all analysis is performed on the supplied data only.

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "properties": {
  "rows": {
   "type": "array",
   "items": {
    "type": "object",
    "required": [
     "row_id",
     "site_group",
     "date",
     "checked_links",
     "broken_links"
    ],
    "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
     },
     "broken_links": {
      "type": [
       "number",
       "null"
      ],
      "maximum": 1000000000000,
      "minimum": -1000000000000
     },
     "checked_links": {
      "type": [
       "number",
       "null"
      ],
      "maximum": 1000000000000,
      "minimum": -1000000000000
     }
    },
    "additionalProperties": false
   },
   "default": [
    {
     "date": "2026-10-01",
     "row_id": "row-1",
     "site_group": "group-a",
     "broken_links": 1,
     "checked_links": 10
    },
    {
     "date": "2026-10-02",
     "row_id": "row-2",
     "site_group": "group-b",
     "broken_links": 2,
     "checked_links": 20
    },
    {
     "date": "2026-10-03",
     "row_id": "row-3",
     "site_group": "group-a",
     "broken_links": 3,
     "checked_links": 15
    },
    {
     "date": "2026-10-04",
     "row_id": "row-4",
     "site_group": "group-b",
     "broken_links": 4,
     "checked_links": 30
    }
   ],
   "maxItems": 200,
   "minItems": 1
  },
  "field": {
   "enum": [
    "checked_links",
    "broken_links"
   ],
   "type": "string",
   "default": "checked_links"
  }
 }
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/broken-link-observations-string-normalisation-numeric-row-ordering-b2333071/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)
