Service details
CSV Validator
Find problems against the column rules you supply. Your assistant calls the service and brings the result back into your task.
Validate supplied CSV against fixed typed column rules
0.05 USDC per accepted request
3 free results per wallet. Signature required; no funding needed. Shared wallets share the allowance.
First time? Give your AI a prepared trial task →
Know its boundaries.
- Custom expressions or executable predicates
- Cross-column arithmetic or conditional rules
- Cross-file joins or referential integrity
- Natural-language requirements
- Truth verification, data repair or URL retrieval
Data handling
Inputs/results are processed in memory and not retained or logged. Bounded operational telemetry and payment records are retained; no caller content is sent to a model or fetched from URLs.
Input example and exact contract
{
"csv": "id,amount\na,12.50\na,-2.00\n",
"spec": {
"columns": [
{
"name": "id",
"type": "string",
"required": true,
"unique": true
},
{
"name": "amount",
"type": "decimal",
"required": true,
"min": "0",
"max": "100"
}
],
"min_rows": 1
}
}Example output
{
"schema_version": 1,
"verdict": "fail",
"rows_checked": 2,
"failure_count": 2,
"failures": [
{
"code": "unique",
"row": 2,
"column": "id"
},
{
"code": "min",
"row": 2,
"column": "amount"
}
],
"failures_truncated": false,
"receipt_sha256": "32265ae46050fa0067b9adb0df085a5cf3d9fa3d47d91e9ea2f61135a382d8ac",
"boundary": "Only supplied explicit criteria checked; no certification of truth or subjective quality."
}Prepared validation result
{
"schema_version": 1,
"verdict": "fail",
"rows_checked": 3,
"failure_count": 1,
"failures": [
{
"code": "min",
"row": 2,
"column": "quantity"
}
],
"failures_truncated": false,
"receipt_sha256": "c2a356a75938b60ca9dbaf3d26ef53d93d8998aa36cb3749eb6d9debb2b16422",
"boundary": "Only supplied explicit criteria checked; no certification of truth or subjective quality."
}Calling, result interpretation and recovery
Calling
- Content type
application/json
- Csv
POST /v1/data/csv/validate-data with {csv: string, spec: object}.
- Compile
POST /v1/data/csv/validate-column-spec with {requirements: object}, using the identical column-spec grammar.
- Spec
columns is required; each entry requires name and type. Other supported fields are required, unique, enum, min, max. File options are min_rows, max_rows, allow_extra_columns. Unknown properties are rejected.
Interpret the result
- Verdict
pass means all evaluated built-in constraints passed; fail means at least one violation. Neither establishes factual accuracy.
- Failures
First 50 violations as code, row and column. Null locations denote a file/header-level issue. Cell values are not returned.
- Failure count
Total counted violations, which can exceed failures length. Check failures_truncated.
- Receipt sha256
Hash of the canonical request, not a signature or proof of truth. Payment receipt is a separate header.
- Compiler
schema_version, validated spec, unsupported=[], boundary. Unsupported settings instead return HTTP 400.
Limits
- Request bytes
262144
- Data records
2000
- Columns
50
- Reported failures
50
- Result bytes
16384
- Semantics
Numeric uniqueness compares values numerically. Other uniqueness uses literal strings. Empty optional cells are skipped.
enum compares the original nonempty cell string, even for numeric columns.
Row numbers are one-based data records excluding the header. Quoted newlines remain part of one record.
Malformed CSV, invalid/duplicate headers or unsupported specs return 400, not a fail verdict.
Payment and recovery
- Price
0.05 native USDC per accepted request
- Network
Solana mainnet or Base mainnet
- Protocol
x402 v2 exact
- Quote
Send the valid intended JSON body without PAYMENT-SIGNATURE. The 402 PAYMENT-REQUIRED header is base64 JSON containing accepted payment requirements and discovery metadata. It is not a service result. A bodyless or empty-object unsigned POST returns a nonpayable preflight 402 for discovery; submit the intended valid JSON to obtain a payable quote. Never sign the preflight offer.
- Authorization
Choose one accepts entry with a standard x402 v2 client. Check native USDC, network, recipient, amount and intended input before signing. Solana uses an SVM transaction; Base uses an EOA EIP-3009 authorization (USD Coin version 2). Send the proof with identical JSON input. No API key, token approval, bridge or Solana wallet is needed for Base. Never automatically fall back to another network.
- Retry
On 202, timeout or an ambiguous failure, retry the identical body and original proof. Do not sign or pay again. Retry-After is 5 seconds for 202.
- Finality
A finalized response independently checks chain success and the exact transfer. On Base, a 200 marked provisional arrives once the exact transfer is in a canonical block; finality is then confirmed independently and later retries return finalized. A 202 remains pending. After 15 minutes of uncertainty, a provisional 200 may carry X-Mekler-Purchase-Id without PAYMENT-RESPONSE; it does not prove settlement. Retry the identical proof and input, including after quote expiry, rather than paying again.
- Expiry
Ongoing service under recurring monthly authority. Budget warnings do not stop service. Short-lived quotes and recovery retention still expire.
- Networks
solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp
eip155:8453
- Assets
- Solana:5eykt4usfv8p8njdtrepy1vzqkqzkvdp
EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v
- Eip155:8453
0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913
- Fees
CDP sponsors the payment transaction gas on both networks. The service price is the same on either network; wallet funding or exchange fees are separate.
- Request binding
The server authenticates the complete quote and input and atomically binds the first accepted authorization to them. Standard Base EIP-3009 signs the money terms and nonce, not HTTP content. Keep signatures private; do not reuse an authorization for another quote, operation or body.
Validate a supplied JSON CSV column specification
0.05 USDC per accepted request
3 free results per wallet. Signature required; no funding needed. Shared wallets share the allowance.
First time? Give your AI a prepared trial task →
Know its boundaries.
- Custom expressions or executable predicates
- Cross-column arithmetic or conditional rules
- Cross-file joins or referential integrity
- Natural-language requirements
- Truth verification, data repair or URL retrieval
Data handling
Inputs/results are processed in memory and not retained or logged. Bounded operational telemetry and payment records are retained; no caller content is sent to a model or fetched from URLs.
Input example and exact contract
{
"requirements": {
"columns": [
{
"name": "id",
"type": "string",
"required": true,
"unique": true
},
{
"name": "amount",
"type": "decimal",
"required": true,
"min": "0",
"max": "100"
}
],
"min_rows": 1
}
}Example output
{
"schema_version": 1,
"spec": {
"columns": [
{
"name": "id",
"type": "string",
"required": true,
"unique": true
},
{
"name": "amount",
"type": "decimal",
"required": true,
"min": "0",
"max": "100"
}
],
"min_rows": 1
},
"unsupported": [],
"boundary": "Typed requirements only; no natural-language interpretation."
}Calling, result interpretation and recovery
Calling
- Content type
application/json
- Csv
POST /v1/data/csv/validate-data with {csv: string, spec: object}.
- Compile
POST /v1/data/csv/validate-column-spec with {requirements: object}, using the identical column-spec grammar.
- Spec
columns is required; each entry requires name and type. Other supported fields are required, unique, enum, min, max. File options are min_rows, max_rows, allow_extra_columns. Unknown properties are rejected.
Interpret the result
- Verdict
pass means all evaluated built-in constraints passed; fail means at least one violation. Neither establishes factual accuracy.
- Failures
First 50 violations as code, row and column. Null locations denote a file/header-level issue. Cell values are not returned.
- Failure count
Total counted violations, which can exceed failures length. Check failures_truncated.
- Receipt sha256
Hash of the canonical request, not a signature or proof of truth. Payment receipt is a separate header.
- Compiler
schema_version, validated spec, unsupported=[], boundary. Unsupported settings instead return HTTP 400.
Limits
- Request bytes
262144
- Data records
2000
- Columns
50
- Reported failures
50
- Result bytes
16384
- Semantics
Numeric uniqueness compares values numerically. Other uniqueness uses literal strings. Empty optional cells are skipped.
enum compares the original nonempty cell string, even for numeric columns.
Row numbers are one-based data records excluding the header. Quoted newlines remain part of one record.
Malformed CSV, invalid/duplicate headers or unsupported specs return 400, not a fail verdict.
Payment and recovery
- Price
0.05 native USDC per accepted request
- Network
Solana mainnet or Base mainnet
- Protocol
x402 v2 exact
- Quote
Send the valid intended JSON body without PAYMENT-SIGNATURE. The 402 PAYMENT-REQUIRED header is base64 JSON containing accepted payment requirements and discovery metadata. It is not a service result. A bodyless or empty-object unsigned POST returns a nonpayable preflight 402 for discovery; submit the intended valid JSON to obtain a payable quote. Never sign the preflight offer.
- Authorization
Choose one accepts entry with a standard x402 v2 client. Check native USDC, network, recipient, amount and intended input before signing. Solana uses an SVM transaction; Base uses an EOA EIP-3009 authorization (USD Coin version 2). Send the proof with identical JSON input. No API key, token approval, bridge or Solana wallet is needed for Base. Never automatically fall back to another network.
- Retry
On 202, timeout or an ambiguous failure, retry the identical body and original proof. Do not sign or pay again. Retry-After is 5 seconds for 202.
- Finality
A finalized response independently checks chain success and the exact transfer. On Base, a 200 marked provisional arrives once the exact transfer is in a canonical block; finality is then confirmed independently and later retries return finalized. A 202 remains pending. After 15 minutes of uncertainty, a provisional 200 may carry X-Mekler-Purchase-Id without PAYMENT-RESPONSE; it does not prove settlement. Retry the identical proof and input, including after quote expiry, rather than paying again.
- Expiry
Ongoing service under recurring monthly authority. Budget warnings do not stop service. Short-lived quotes and recovery retention still expire.
- Networks
solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp
eip155:8453
- Assets
- Solana:5eykt4usfv8p8njdtrepy1vzqkqzkvdp
EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v
- Eip155:8453
0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913
- Fees
CDP sponsors the payment transaction gas on both networks. The service price is the same on either network; wallet funding or exchange fees are separate.
- Request binding
The server authenticates the complete quote and input and atomically binds the first accepted authorization to them. Standard Base EIP-3009 signs the money terms and nonce, not HTTP content. Keep signatures private; do not reuse an authorization for another quote, operation or body.