Turn any CSV, JSON, or Excel file into a live REST API with filtering, sorting, and full-text search. One command. No backend code.
curl -F file=@data.csv api.liteio.dev/upload
Drop a CSV, JSON, TSV, JSON Lines, or Excel file. Schema detected automatically — column types, nullability, and constraints inferred from the data.
Filter by any field with operators. Sort ascending or descending. Paginate with offset or page numbers. Full-text search across all text columns.
Get a permanent URL. Share with your team, embed in dashboards, or give it to your AI agent. Public datasets need no authentication.
Upload any supported file and get back a dataset ID with a live API URL. Schema is detected automatically — integers, numbers, booleans, dates, and text. The response includes ready-to-use example queries.
Every dataset gets a full query API out of the box. Filter with field-level operators, sort by any column, paginate results, and run full-text search across all text fields.
- for descending?q=keyword across all text columnsEvery dataset exposes its detected schema and column statistics. Know your data's shape, types, ranges, and distributions without writing a single query.
?format=csv or ?format=jsonlConnect to Claude or ChatGPT via MCP. Your AI agent can list datasets, explore schemas, and query data with filters — all from the conversation. Upload a spreadsheet, ask questions in English.
?category=electronics&price:lt=100&sort=-ratingComma-separated values. Header row detected automatically. The most common format for exports from spreadsheets, databases, and analytics tools.
Array of objects or {"data":[...]} wrapper. Keys become column names. Nested objects flattened with dot notation.
Tab-separated values. Same as CSV but tab-delimited. Common in bioinformatics, linguistics, and data exports from some databases.
One JSON object per line. The streaming-friendly format used by OpenAI, Hugging Face, and modern data pipelines.
First sheet, first row as headers. Upload the spreadsheet your team already has — no manual export step needed.
Query results exportable as CSV or JSON Lines. Apply filters and sort first, then download the subset you need.
?field=value
Exact match
?field:gt=100
Greater than
?field:gte=100
Greater than or equal
?field:lt=50
Less than
?field:lte=50
Less than or equal
?field:ne=books
Not equal
?field:like=wire%
Pattern match
?field:in=a,b,c
In set
?field:null=true
Is null
?sort=-price,name
Multi-field sort
?q=keyword
Full-text search
?limit=25&page=2
Pagination
Upload a file and start querying in seconds. No signup required for public datasets.
text/csvHeader row, comma delimitertext/tab-separated-valuesHeader row, tab delimiterapplication/jsonArray of objects or { "data": [...] }application/x-ndjsonOne JSON object per lineapplication/vnd.openxmlformats...First sheet, header rowintegerAll values match /^-?\d+$/numberAll values match /^-?\d+\.?\d*$/booleanValues in {true, false, 1, 0, yes, no}dateISO 8601 datedatetimeISO 8601 datetimetextDefault fallbackX-Schema header (JSON mapping column → type).
## Query API
All endpoints live under /d/{dataset_id}.
### List Rows
GET/d/{id}List rows (default limit 25)GET/d/{id}?limit=50&offset=100Offset paginationGET/d/{id}?page=3&limit=25Page-based paginationGET/d/{id}/{row}Get single row by number?category=electronicsEquals:gt?price:gt=100Greater than:gte?price:gte=100Greater than or equal:lt?price:lt=50Less than:lte?price:lte=50Less than or equal:ne?category:ne=booksNot equal:like?name:like=wire%Pattern match:in?category:in=books,electronicsIn set:null?rating:null=trueIs null- for descending. Comma-separated for multi-field.
### Full-Text Search
GET/d/{id}/schemaColumn names, types, nullabilityGET/d/{id}/statsMin, max, avg, unique counts, top valuesdata_listList uploaded datasetsdata_queryQuery with filters, sort, searchdata_schemaGet schema and column statsdata_uploadUpload data from conversation contexthttps://api.liteio.dev/mcp
ChatGPT: Settings > Connected apps > Add by URL > https://api.liteio.dev/mcp
Claude Desktop (claude_desktop_config.json):