Skip to content
Mekler AIGet started

Mekler AI / CSV Validator

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
  }
}

API reference: input, output and error schemas →

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
  }
}

API reference: input, output and error schemas →

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.