DOCUMENTATION · V0.1.0
One engine. Three ways to use it.
Use the browser workspace, REST API, or MCP server. Custom files require a paid key. Fixed examples and demo reports are free. CSV contents and reports are never persisted by this service.
Connect an MCP client
Transport: stateless Streamable HTTP. Server URL:
https://import-check-production.up.railway.app/mcp
Connect anonymously to discover tools and run view_csv_demo {}. For your own files, buy a pack and configure the header Authorization: Bearer YOUR_API_KEY. Use a client that supports custom headers; OAuth-only clients cannot use paid operations in v0.1.
{
"mcpServers": {
"import-check": {
"type": "http",
"url": "https://import-check-production.up.railway.app/mcp",
"headers": {"Authorization": "Bearer YOUR_API_KEY"}
}
}
}This is a generic client configuration example; the enclosing settings format depends on your client. Store your key in the client's secret settings and keep it out of source control.
First prompt: “Run Import Check's free demo. Explain which rows fail and why.” Paid prompt: “Validate this CSV against these explicit column rules. Report problems before making changes.”
| Tool | Use | Credit |
|---|---|---|
| get_csv_example | Complete fixed CSV and schema to copy | Free |
| view_csv_demo | Run fixed sample through the live engine | Free |
| get_csv_usage | Remaining allowance; requires key | Free |
| validate_csv | Check supplied CSV and schema | 1 |
| clean_csv | Explicit changes, returned CSV, output validation | 1 |
REST quick start
GET /v1/example returns a complete request body. Save it as input.json, then:
curl https://import-check-production.up.railway.app/v1/validate \ -H "Authorization: Bearer $IMPORT_CHECK_KEY" \ -H "Content-Type: application/json" \ -H "Idempotency-Key: customer-import-0001" \ --data-binary @input.json
POST /v1/clean adds a cleanup object. GET /v1/usage returns your balance. GET /v1/demo runs the fixed free sample. The full machine-readable contract is at /openapi.json.
Schema and format rules
{
"csv_text": "id,amount,joined\nA1,12.50,2026-09-01\n",
"delimiter": ",",
"schema": {
"columns": [
{"name":"id", "type":"string", "required":true, "unique":true},
{"name":"amount", "type":"decimal", "minimum":"0", "maximum":"9999"},
{"name":"joined", "type":"date"}
],
"allow_extra_columns": false
}
}- Headers match exactly and are case-sensitive. Duplicate or empty headers are rejected. A UTF-8 BOM is accepted.
- Every schema column must exist.
required:falseallows empty cells, not absent headers. Whitespace is not silently trimmed. unique:truecompares exact non-empty strings.01and1differ. Uniqueness is only within this file.- Types: string, integer, decimal, boolean, date, email. Integers and decimals use ASCII digits, optional sign, and a decimal dot; no grouping or exponents. Boolean values are exactly
trueorfalse. Dates are valid calendar dates inYYYY-MM-DD. - Email checks are basic syntax checks; no mailbox existence, deliverability or exhaustive RFC validation.
choicesis an exact string allowlist. Numeric minimum/maximum are inclusive decimal strings.max_lengthlimits characters.- Extra columns are errors unless allowed; extra columns are still preserved and checked for formula markers.
- Empty physical lines are skipped. Findings use 1-based data record numbers, excluding the header. Multiline quoted cells do not change record numbering.
- All issue counts are returned, with at most 200 detailed findings.
issues_truncatedmakes truncation explicit. A valid report may still contain warnings.
Explicit cleanup
"cleanup": {
"rename": {"Email Address":"email"},
"changes": [{"column":"Email Address", "action":"trim"}],
"spreadsheet_safe": false
}Allowed actions: trim, lowercase, uppercase, decimal_comma. They run in listed order on original header names. Renames are simultaneous, and the schema describes the renamed output. Decimal-comma conversion changes 12,50 into 12.50; it leaves grouping or ambiguous formats untouched. No rows are removed and no formulas are evaluated.
spreadsheet_safe:true prefixes formula-like data cells and headers with an apostrophe. Header escaping changes the output header name, which must match the supplied output schema. This changes the cell value and may cause numeric validation failures for negative numbers. The returned report validates the actual transformed values. This option is designed for spreadsheet export; review it before importing into another system. The service warns about formula-like cells even when escaping is disabled.
Limits, billing and retries
Maximum input: 1,000,000 UTF-8 bytes, 10,000 records, 100 columns, 250,000 cells, 10,000 characters per cell. HTTP JSON body limit: 2 MB. Delimiters: comma, semicolon, tab or pipe. Split larger files; v0.1 has no background jobs or file storage.
€9 buys 100 operations valid for 90 days from settled payment. Each completed validation or cleanup report costs one operation, including valid:false. Malformed CSV, invalid schemas, and service failures do not return a paid report. The free demo cannot process custom data. Refunds and disputes revoke access; retrieving a key never refills it.
For REST retries use Idempotency-Key; for MCP use request_id. Allowed format: 8–128 ASCII letters, digits, underscores, dots, colons or hyphens. Identical input, operation and request ID consume only once for that purchase. Reusing an ID for changed input is rejected. Without an ID every completed call consumes an operation. Generate a new ID when updating inputs or after an engine version change.
REST errors: 401 invalid/inactive key, 402 exhausted pack, 409 conflicting retry, 422 invalid input, 429 rate limit, 503 unavailable. MCP business errors are tool errors with actionable messages. Retry temporary failures with the same ID. JSON-RPC batches are not supported.
Data boundaries
The service never downloads URLs, executes formulas, writes to a destination database or sends data to an LLM. It validates only the supplied rules, not accounting correctness, identity, or compatibility with an external importer. Treat cell content and headers as untrusted data in your agent's workflow.
Contact Orvel for activation or key recovery. Keep your payment receipt; never email CSV contents or your API key.