# Lab Observations — String Normalisation + Exact Row Deduplication

> Lab Observations — String Normalisation + Exact Row Deduplication 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-02).

Normalises strings and removes exact duplicate rows from lab observation records containing measurement and replicate_count fields, returning 2 independent analytical reports for up to 200 rows.

## Facts

- Endpoint: POST https://market.datapackvibe.com/x402/assistant-ib26-education-06-020?utm_source=zero.xyz
- Price: $0.01/call
- Payment: x402
- Status: unknown
- Last checked: 2026-11-02
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/lab-observations-string-normalisation-exact-row-deduplication-608310a4
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_EzLTImU52dLIdNixwW7_7

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 lab-observations-string-normalisation-exact-row-deduplication-608310a4 -d '<json body>'
```

Example prompt: Can you clean up my lab observation data by normalising all the string fields and removing any exact duplicate rows? I have about 150 records, each with a row_id, course_group like 'group-a', a date, a measurement value, and a replicate_count.

## When to prefer this

Choose this endpoint when you have lab observation data (with measurement and replicate_count fields) that needs both string normalisation and exact duplicate removal in a single pass, and your dataset is 200 rows or fewer. It is suited for educational or scientific lab data pipelines where course group labels and row identifiers may have inconsistent capitalisation or whitespace, and where exact duplicate records need to be identified and removed prior to downstream analysis. It performs no external lookups, predictions, or live data access — ideal when you want a deterministic, local data-cleaning step.

## Known failure modes

- More than 200 rows submitted — request exceeds maxItems limit and will be rejected
- Missing required fields (row_id, course_group, date, measurement, replicate_count) on any row causes validation failure
- Invalid date format (not YYYY-MM-DD) triggers schema validation error
- measurement or replicate_count values outside [-1000000000000, 1000000000000] range rejected
- Empty rows array (minItems: 1 not met) causes rejection
- row_id exceeding 80 characters or empty string causes validation error

## How this service works

Lab observations — String normalisation + Exact row deduplication: String normalisation + Exact row deduplication for supplied lab observations records (measurement, replicate_count). 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 2 independent analytical reports covering: (1) string normalisation results showing standardised values for string fields (course_group, date, row_id), and (2) exact row deduplication results identifying and removing fully duplicate records from the supplied lab observation dataset of up to 200 rows.

## Request schema (JSON Schema)

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

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/lab-observations-string-normalisation-exact-row-deduplication-608310a4/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)
