{"uid":"cap_5_sPEA2vkCo6Jmkt48yAc","slug":"mekler-ai-csv-column-spec-validator-0ae05238","name":"Mekler AI CSV Column Spec Validator","description":"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/data/csv/validate-data. 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.","url":"https://api.mekler.ai/v1/data/csv/validate-column-spec?utm_source=zero.xyz","method":"POST","headers":{},"bodySchema":{"type":"object","properties":{"requirements":{"type":"object","required":["columns"],"properties":{"columns":{"type":"array","items":{"type":"object","required":["name","type"],"properties":{"max":{"oneOf":[{"type":"number"},{"type":"string"}],"description":"Inclusive numeric bound; allowed only for integer or decimal columns."},"min":{"oneOf":[{"type":"number"},{"type":"string"}],"description":"Inclusive numeric bound; allowed only for integer or decimal columns."},"enum":{"type":"array","items":{"type":"string","maxLength":1000},"maxItems":100,"minItems":1,"description":"Exact allowed cell strings, compared without trimming or normalization."},"name":{"type":"string","maxLength":100,"minLength":1},"type":{"enum":["string","integer","decimal","boolean","date"],"type":"string","description":"string: literal text; integer: base-10, no plus sign or leading zeros; decimal: plain decimal, no exponent; boolean: lowercase true/false; date: valid YYYY-MM-DD."},"unique":{"type":"boolean","default":false,"description":"Reject repeated nonempty values within this column; numeric values compare numerically."},"required":{"type":"boolean","default":false,"description":"Reject empty cells. Whitespace is not trimmed."}},"additionalProperties":false},"maxItems":50,"minItems":1,"description":"Fixed built-in checks. Every named column must exist, even when required is false."},"max_rows":{"type":"integer","default":2000,"maximum":2000,"minimum":0},"min_rows":{"type":"integer","default":0,"maximum":2000,"minimum":0},"allow_extra_columns":{"type":"boolean","default":false,"description":"If false, reject CSV headers not named in columns."}},"additionalProperties":false}}},"responseSchema":{"type":"json","example":{"spec":{"columns":[{"name":"id","type":"string","unique":true,"required":true},{"max":"100","min":"0","name":"amount","type":"decimal","required":true}],"min_rows":1},"boundary":"Typed requirements only; no natural-language interpretation.","unsupported":[],"schema_version":1}},"example":null,"exampleRequest":null,"tags":["x402"],"displayCostAmount":"0.05","displayCostAsset":"USDC","priceDynamic":false,"priceHint":null,"priceStatus":"priced","priceSource":"probe","requiresHandshake":false,"reviewCount":0,"rating":{"score":"0.00","successRate":"0.00","reviews":0,"stars":null,"state":"unrated"},"availabilityStatus":"unknown","priceObserved":null,"sessionDeposit":null,"pricing":{"kind":"static","summary":"$0.05/call","primary":{"kind":"static","protocol":"x402","network":"base","amountUsd":"0.05","per":"call","confidence":"exact"},"accepted":[{"kind":"static","protocol":"x402","network":"base","amountUsd":"0.05","per":"call","confidence":"exact"}]},"paymentMethods":[{"uid":"pm_wwIN1779x162HPXDDLwfQ","protocol":"x402","methodType":"crypto","chain":"base","mode":"charge","costAmount":"0.05","costPer":"request","priority":0,"asset":"EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v","unit":"request","depositMicros":null,"planRef":null}],"brandName":null,"brandSlug":null,"brandBaseUrl":null,"brandDocsUrl":null,"whatItDoes":"Validates a JSON column specification (types, constraints, row bounds) before using it with the CSV data validation endpoint","exampleAgentPrompt":"Before I run CSV data validation, can you check whether this column spec is valid: columns named 'id' (string, required, unique) and 'amount' (decimal, required, min 0, max 100), at least 1 row, no extra columns allowed?","exampleUseCases":[{"title":"Pre-flight spec check for ETL pipeline","prompt":"I'm about to set up an ETL import and want to make sure my column spec is valid before wiring it up — columns are 'user_id' (string, required, unique), 'email' (string, required), and 'score' (integer, min 0, max 100, required). Can you validate that spec?"},{"title":"Validating enum constraints on a status column","prompt":"Can you check if this column spec is acceptable: one column called 'status' of type string with allowed values 'active', 'inactive', 'pending', and it must be required. I want to make sure the enum list is valid before I assign it to my CSV extractor."},{"title":"Confirming row bounds and optional columns spec","prompt":"I want to validate a column spec that has a 'date' column of type date and a 'revenue' column of type decimal with min 0, and I want to allow up to 500 rows minimum and 2000 rows maximum with extra columns allowed. Please check if that spec is valid."}],"resultDescription":"Returns the validated column specification including the columns array with all field definitions, schema_version, a boundary statement clarifying typed-only constraints, and an unsupported list of any unrecognized fields that were rejected.","failureModes":["Unknown or unsupported column field names cause rejection with indication of which fields are invalid","Unsupported column types (anything other than string, integer, decimal, boolean, date) are rejected","min/max bounds specified on non-numeric columns (e.g. string or boolean) are rejected","enum lists exceeding 100 items or with items over 1000 characters are rejected","More than 50 columns in a single spec triggers rejection","max_rows or min_rows outside 0-2000 range causes rejection","Missing required 'columns' array or missing 'name'/'type' on individual columns causes rejection","Natural language or prose-based rule descriptions are not supported and will be rejected"],"whenToPreferThis":"Use this endpoint when you need to verify a column specification before submitting it to the /v1/data/csv/validate-data endpoint, or any time you want to catch schema configuration errors early in an automated pipeline. Prefer this over directly submitting to the data validator when you want to confirm that column types, constraints, and row bounds are correctly structured without incurring the cost or complexity of running against real CSV data.","instructions":null,"reviewSummary":null,"reviewSummaryHighlights":null,"reviewSummaryConcerns":null,"reviewSummaryGeneratedAt":null,"activationCount":0,"lastUsedAt":null,"lastSuccessfullyRanAt":null,"lastHealthCheckAt":"2026-10-10T06:33:54.439Z","isFirstParty":false,"canonicalSlug":"mekler-ai-csv-column-spec-validator-0ae05238"}