# Public Procurement String Normalisation and Exact Row Deduplication

> Public Procurement String Normalisation and 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-10-22).

Normalises strings and removes exact duplicate rows from up to 200 public procurement records containing contract amount and bid count fields, returning 2 analytical reports.

## Facts

- Endpoint: POST https://market.datapackvibe.com/x402/assistant-ib26-economics-17-020?utm_source=zero.xyz
- Price: $0.01/call
- Payment: x402
- Status: unknown
- Last checked: 2026-10-22
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/public-procurement-string-normalisation-and-exact-row-deduplication-d936c0c3
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_KPuLs0NMJzoz12V7C4CvX

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 public-procurement-string-normalisation-and-exact-row-deduplication-d936c0c3 -d '<json body>'
```

Example prompt: Can you clean up these 50 procurement records — normalise the region and date strings and flag any exact duplicate rows? The records include row IDs, dates like 2026-10-01, regions like 'North-West', contract amounts, and bid counts.

## When to prefer this

Choose this endpoint when you have up to 200 public procurement records with contract_amount and bid_count fields and need both string normalisation and exact duplicate row detection in a single low-cost call. It is purpose-built for procurement data quality workflows and returns two independent reports from shared local analytical engines without any live lookups or external calls, making it suitable for deterministic, repeatable data cleaning pipelines.

## Known failure modes

- More than 200 rows submitted — request rejected due to row limit
- Missing required fields (row_id, region, date, contract_amount, bid_count) cause validation errors
- Date field not matching YYYY-MM-DD pattern causes schema rejection
- contract_amount or bid_count outside allowed numeric range causes rejection
- Empty rows array rejected due to minItems:1 constraint

## How this service works

Public procurement — String normalisation + Exact row deduplication: String normalisation + Exact row deduplication for supplied public procurement records (contract_amount, bid_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

Two analytical reports: one covering string normalisation outcomes (standardised field values for region, date, and other text fields) and one covering exact row deduplication results (identified duplicate row IDs and deduplicated dataset summary), applied to the submitted procurement records.

## Request schema (JSON Schema)

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

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/public-procurement-string-normalisation-and-exact-row-deduplication-d936c0c3/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)
