# Air Quality Observations — Record Quality Audit + String Normalisation + Keyed Dataset Comparison

> Air Quality Observations — Record Quality Audit + String Normalisation + Keyed Dataset Comparison is a paid API for AI agents from market.datapackvibe.com, paid per call via x402, $0.01/call, status unknown (last checked 2026-10-24).

Runs three local analytical reports on supplied air quality observation records: a record quality audit, string normalisation, and keyed dataset comparison — up to 200 rows, no external lookups.

## Facts

- Endpoint: POST https://market.datapackvibe.com/x402/assistant-ib26-weather-10-207?utm_source=zero.xyz
- Price: $0.01/call
- Payment: x402
- Status: unknown
- Last checked: 2026-10-24
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/air-quality-observations-record-quality-audit-string-normalisation-71535c05
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap__zz_2jpy-xtABmx_G8EJj

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 air-quality-observations-record-quality-audit-string-normalisation-71535c05 -d '<json body>'
```

Example prompt: Can you audit the quality of these air quality observation records, normalise the station group strings, and compare them against this second dataset? I have up to 50 rows with fields like row_id, station_group, date, concentration, and observation_count in each dataset.

## When to prefer this

Choose this endpoint when you need three analytical reports — quality audit, string normalisation, and keyed comparison — on air quality observation data (concentration and observation_count fields) in a single cheap call. Prefer it over generic data validation tools when your data specifically involves air quality monitoring records with station_group labels and you want all three reports bundled for $0.01. Not suitable for live sensor data lookup, forecasting, or professional environmental assessments.

## Known failure modes

- Exceeding 200 rows returns a validation error
- Missing required fields (row_id, station_group, date, concentration, observation_count) cause row-level errors
- Invalid date format (not YYYY-MM-DD) fails pattern validation
- Rows in 'other' dataset without matching row_ids in 'rows' may show as unmatched in comparison report
- Payment of 0.01 USDC not received results in 402 payment required response

## How this service works

Air quality observations — Record quality audit + String normalisation + Keyed dataset comparison: Record quality audit + String normalisation + Keyed dataset comparison for supplied air quality observations records (concentration, observation_count). Up to 200 rows; 3 independent reports using shared local analytical engines. No live lookup, prediction, professional assessment or external action. 0.01 USDC includes 3 supplied-data reports for up to 200 rows.

## Output

Three independent reports: (1) a record quality audit identifying issues such as nulls, out-of-range values, or malformed fields across the supplied rows; (2) a string normalisation report showing cleaned and standardised versions of text fields like station_group; (3) a keyed dataset comparison report identifying differences between the primary and secondary datasets matched by row_id. All processing is local with no external lookups.

## Request schema (JSON Schema)

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

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/air-quality-observations-record-quality-audit-string-normalisation-71535c05/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)
