77trust / 100

Accept Compile

by csv-validator.mekler.ai in Documents & files

x402 APIPassing, checked 3 h ago

Validate a fixed JSON CSV column specification before assigning extraction or checking deliveries. Send typed column settings in requirements; returns the validated spec for /v1/accept/csv. Rejects unknown fields and unsupported settings. This checks the specification itself, not CSV data. No custom expressions, cross-column rules or prose-to-rule conversion. Schemas/examples attached; full contract: /openapi.json.

POST https://csv-validator.mekler.ai/v1/accept/compile

Last 30 days

All checks passedSome failedAll failedNot checked
Uptime
100%
Response time
516 ms typical, 676 ms slowest 5%
Last check
3 h ago
Next check
any minute now

How to call it

# bash or zsh: see the payment challenge (nothing is charged)
curl -g -i -X POST 'https://csv-validator.mekler.ai/v1/accept/compile' \
  -H 'content-type: application/json' \
  --data-raw '{"requirements":{"columns":[{"name":"id","required":true,"type":"string","unique":true},{"max":"100","min":"0","name":"amount","required":true,"type":"decimal"}],"min_rows":1}}'
import { wrapFetchWithPayment } from "@x402/fetch";
import { x402Client } from "@x402/core/client";
import { ExactEvmScheme } from "@x402/evm/exact/client";
import { privateKeyToAccount } from "viem/accounts";

const client = new x402Client().register(
  "eip155:8453",
  new ExactEvmScheme(privateKeyToAccount(process.env.AGENT_KEY)),
);
const pay = wrapFetchWithPayment(fetch, client);

// Not sure it's safe to pay? Preflight it first for $0.005:
// GET https://toolvet.app/api/v1/check?url=https%3A%2F%2Fcsv-validator.mekler.ai%2Fv1%2Faccept%2Fcompile
const res = await pay("https://csv-validator.mekler.ai/v1/accept/compile", {
  method: "POST",
  headers: { "content-type": "application/json" },
  body: "{\"requirements\":{\"columns\":[{\"name\":\"id\",\"required\":true,\"type\":\"string\",\"unique\":true},{\"max\":\"100\",\"min\":\"0\",\"name\":\"amount\",\"required\":true,\"type\":\"decimal\"}],\"min_rows\":1}}",
});
console.log(await res.json());

Example input

{
  "requirements": {
    "columns": [
      {
        "name": "id",
        "required": true,
        "type": "string",
        "unique": true
      },
      {
        "max": "100",
        "min": "0",
        "name": "amount",
        "required": true,
        "type": "decimal"
      }
    ],
    "min_rows": 1
  }
}

Example output

{
  "boundary": "Typed requirements only; no natural-language interpretation.",
  "schema_version": 1,
  "spec": {
    "columns": [
      {
        "name": "id",
        "required": true,
        "type": "string",
        "unique": true
      },
      {
        "max": "100",
        "min": "0",
        "name": "amount",
        "required": true,
        "type": "decimal"
      }
    ],
    "min_rows": 1
  },
  "unsupported": []
}

Security scan

  • Payment address changed recently in payment
    Payment address changed from 9mMDrHabSf73MPn1ANdANSmsNw2wKiqE7JZ7eD6EUSRc to 0xF6c6E2e530bb311c14a49C1a07C720fc232c07c5

Recent checks

WhenResultHTTPTimePrice
3 h agoPassed402581 ms$0.05
7 h agoPassed402435 ms$0.05
11 h agoPassed402585 ms$0.05
15 h agoPassed402455 ms$0.05
19 h agoPassed402477 ms$0.05
22 h agoPassed402516 ms$0.05
26 h agoPassed402676 ms$0.05
30 h agoPassed402497 ms$0.05
33 h agoPassed402432 ms$0.05
37 h agoPassed402753 ms$0.05
40 h agoPassed402542 ms$0.05
44 h agoPassed402534 ms$0.05
2 days agoPassed402595 ms$0.05
2 days agoPassed402433 ms$0.05
2 days agoPassed402433 ms$0.05

History

11 Oct 2026Payment address changed from 9mMDrHabSf73MPn1ANdANSmsNw2wKiqE7JZ7eD6EUSRc to 0xF6c6E2e530bb311c14a49C1a07C720fc232c07c5