# Hermes Clean & Normalize – JSON/CSV Data Quality

> Hermes Clean & Normalize – JSON/CSV Data Quality is a paid API for AI agents from hermes-counterparty-api.onrender.com, paid per call via x402, $0.02/call, status unknown (last checked 2026-09-15).

Cleans and normalizes JSON or CSV records by trimming strings, converting blanks to nulls, and deduplicating rows, returning a cleaned dataset with transformation statistics.

## Facts

- Endpoint: POST https://hermes-counterparty-api.onrender.com/v1/clean-normalize
- Price: $0.02/call
- Payment: x402
- Status: unknown
- Last checked: 2026-09-15
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/hermes-clean-normalize-json-csv-data-quality-942e2810
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_r1maqo6Rcr0ebT-lL7PIY

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 hermes-clean-normalize-json-csv-data-quality-942e2810 -d '<json body>'
```

Example prompt: Take these JSON records and clean them up — trim any whitespace from strings, convert blank fields to null, and remove duplicates: [{"id":1,"name":" Alice "},{"id":1,"name":" Alice "},{"id":2,"name":""}].

## When to prefer this

Choose this endpoint when you need deterministic, auditable data-quality transformations (deduplication, string trimming, blank-to-null conversion) on JSON record arrays or raw CSV strings and want a transformation summary report alongside cleaned data. Prefer it over generic ETL tools when you need micropayment-per-call pricing with no subscription, or when working in an agent pipeline that already handles x402 payments.

## Known failure modes

- Missing required 'input' field returns a validation error
- Supplying both JSON and CSV body formats in a single request may cause oneOf schema conflict
- Invalid CSV string (malformed) may result in parse error
- Network or server unavailability on Render free-tier host may cause timeouts
- Insufficient USDC balance or failed x402 payment returns 402 Payment Required

## How this service works

Agent utilities for company research, package maintenance intelligence, dependency vulnerability checks, counterparty availability, SEC company snapshots, OFAC sanctions screening, and deterministic JSON/CSV data-quality work. Company domain intelligence includes a free preview before the paid enrichment call.

## Output

Returns a JSON object containing the cleaned records array, the cleaned and original record counts, number of duplicate rows removed, counts of specific transformations applied (blanks converted to null, strings trimmed, duplicates removed), a schema fingerprint (SHA-256 hash), and the schema version.

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "$schema": "https://json-schema.org/draft/2020-12/schema",
 "required": [
  "input"
 ],
 "properties": {
  "input": {
   "type": "object",
   "required": [
    "type",
    "method",
    "bodyType",
    "body"
   ],
   "properties": {
    "body": {
     "oneOf": [
      {
       "type": "object",
       "required": [
        "format",
        "records"
       ],
       "properties": {
        "format": {
         "type": "string",
         "const": "json"
        },
        "options": {
         "type": "object",
         "properties": {
          "deduplicate": {
           "type": "boolean"
          },
          "trim_strings": {
           "type": "boolean"
          },
          "blank_to_null": {
           "type": "boolean"
          }
         }
        },
        "records": {
         "type": "array",
         "items": {
          "type": "object"
         }
        }
       }
      },
      {
       "type": "object",
       "required": [
        "format",
        "data"
       ],
       "properties": {
        "data": {
         "type": "string"
        },
        "format": {
         "type": "string",
         "const": "csv"
        },
        "options": {
         "type": "object",
         "properties": {
          "deduplicate": {
           "type": "boolean"
          },
          "trim_strings": {
           "type": "boolean"
          },
          "blank_to_null": {
           "type": "boolean"
          }
         }
        }
       }
      }
     ]
    },
    "type": {
     "type": "string",
     "const": "http"
    },
    "method": {
     "enum": [
      "POST"
     ],
     "type": "string"
    },
    "bodyType": {
     "enum": [
      "json",
      "form-data",
      "text"
     ],
     "type": "string"
    }
   },
   "additionalProperties": false
  },
  "output": {
   "type": "object",
   "required": [
    "type"
   ],
   "properties": {
    "type": {
     "type": "string"
    },
    "example": {
     "type": "object"
    }
   }
  }
 }
}
```

## Response schema (JSON Schema)

```json
{
 "type": "json",
 "example": {
  "records": [
   {
    "id": 1,
    "name": "Alice"
   }
  ],
  "schema_version": "1.0",
  "transformations": {
   "blanks_to_null": 0,
   "trimmed_strings": 1,
   "duplicates_removed": 1
  },
  "schema_fingerprint": "sha256:example",
  "cleaned_record_count": 1,
  "original_record_count": 2,
  "removed_duplicate_rows": 1
 }
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/hermes-clean-normalize-json-csv-data-quality-942e2810/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from hermes-counterparty-api.onrender.com](https://www.zero.xyz/host/hermes-counterparty-api.onrender.com/llms.txt)
