# 402utils CSV Profiler

> 402utils CSV Profiler is a paid API for AI agents from 402utils.com, paid per call via x402, $0.003/call, status unknown (last checked 2026-10-12).

Profiles a CSV file to return per-column statistics, inferred types, null/unique counts, and data-quality issues before processing

## Facts

- Endpoint: POST https://402utils.com/v1/csv-profile?utm_source=zero.xyz
- Price: $0.003/call
- Payment: x402
- Status: unknown
- Last checked: 2026-10-12
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/402utils-csv-profiler-5eaf76da
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_PeQTtIxLs9JBQGLQmQE3O

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 402utils-csv-profiler-5eaf76da -d '<json body>'
```

Example prompt: Before I load this CSV into the database, can you profile it for me? Here's the public URL: https://data.example.com/customers.csv — use a comma delimiter and treat the first row as a header, then tell me the column types, any nulls, and any data-quality problems.

## When to prefer this

Use this endpoint when you need to understand the structure, types, and quality of a CSV before ingesting, transforming, or storing it. It is ideal as a pre-processing step in ETL pipelines, data validation workflows, or whenever you want to detect issues like malformed rows or duplicate headers without writing custom parsing code. Prefer this over manual inspection or general-purpose code execution when you want fast, structured column-level statistics with no setup.

## Known failure modes

- File exceeds 10 MB limit — returns an error indicating size constraint
- Inaccessible or private URL — returns a fetch/network error
- Unparseable file (not valid CSV) — returns a parsing error
- Unrecognized delimiter causes column misalignment — returns garbled or single-column profile
- Timeout fetching remote URL — returns a timeout error

## How this service works

Profile a CSV before processing it: send the bytes directly or a JSON body with a public {url}. Returns per-column name, inferred type (string/int/float/bool/date/mixed), null and unique counts, min/max and samples, plus row count, detected delimiter and data-quality issues (malformed rows, inconsistent widths, duplicate headers). Query: delimiter (, ; tab |), header=false if row one is data. Max 10 MB.

## Output

Returns a JSON object with per-column metadata (name, inferred type, null count, unique count, min, max, sample values), overall row count, detected delimiter, and a list of data-quality issues such as malformed rows, inconsistent column widths, and duplicate headers.

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "properties": {
  "url": {
   "type": "string",
   "format": "uri",
   "description": "Public http(s) URL of a CSV (alternative to sending bytes)."
  }
 }
}
```

## Response schema (JSON Schema)

```json
{
 "type": "json",
 "example": {
  "issues": [
   {
    "rows": [
     17
    ],
    "type": "inconsistent_columns",
    "count": 1,
    "message": "1 row(s) do not have the header's 2 column(s)"
   }
  ],
  "columns": [
   {
    "max": "2026-07-01",
    "min": "2026-06-01",
    "name": "date",
    "samples": [
     "2026-06-01"
    ],
    "nullCount": 0,
    "uniqueCount": 31,
    "inferredType": "date"
   },
   {
    "max": 1999.99,
    "min": -420.5,
    "name": "amount",
    "samples": [
     "19.99"
    ],
    "nullCount": 2,
    "uniqueCount": 118,
    "inferredType": "float"
   }
  ],
  "rowCount": 120,
  "delimiter": ","
 }
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/402utils-csv-profiler-5eaf76da/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from 402utils.com](https://www.zero.xyz/host/402utils.com/llms.txt)
