# Soil Moisture Observations — String Normalisation + Duplicate Key Report

> Soil Moisture 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-10-23).

Runs two offline analytical reports on supplied soil moisture observation records: string normalisation and duplicate key detection, for up to 200 rows.

## Facts

- Endpoint: POST https://market.datapackvibe.com/x402/assistant-ib26-weather-08-021?utm_source=zero.xyz
- Price: $0.01/call
- Payment: x402
- Status: unknown
- Last checked: 2026-10-23
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/soil-moisture-observations-string-normalisation-duplicate-key-report-820b65b6
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_Kki_Q8VojEqmmHr36is9k

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 soil-moisture-observations-string-normalisation-duplicate-key-report-820b65b6 -d '<json body>'
```

Example prompt: Can you run a string normalisation and duplicate key check on my soil moisture observations? Here are 4 records: row-1 on 2026-10-01, station group-a, moisture 10%, depth 1cm; row-2 on 2026-10-02, group-b, 20%, 2cm; row-3 on 2026-10-03, group-a, 15%, 3cm; row-4 on 2026-10-04, group-b, 30%, 4cm.

## When to prefer this

Choose this endpoint when you need fast, offline data quality analysis specifically on soil moisture observation records with moisture_percent and depth_cm fields, and you want both string normalisation and duplicate key detection in a single low-cost call. Ideal for pre-ingestion auditing, ETL validation pipelines, or preparing sensor data for downstream analysis without needing live lookups or predictions.

## Known failure modes

- Submitting more than 200 rows returns an error or truncates input
- Missing required fields (row_id, station_group, date, moisture_percent, depth_cm) cause validation rejection
- Invalid date format (not YYYY-MM-DD) triggers schema error
- Empty rows array rejected (minItems: 1)
- Numeric fields outside supported range may cause processing errors

## How this service works

Soil moisture observations — String normalisation + Duplicate key report: String normalisation + Duplicate key report for supplied soil moisture observations records (moisture_percent, depth_cm). 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 returned together: (1) a string normalisation report highlighting inconsistent or non-standard string values in fields like station_group and date across the submitted rows, and (2) a duplicate key report identifying any rows sharing the same key combinations (e.g. row_id or station_group + date). No external data is fetched; all analysis is performed locally on the submitted records.

## Request schema (JSON Schema)

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

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/soil-moisture-observations-string-normalisation-duplicate-key-report-820b65b6/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)
