The Problem
I kept running into the same friction: I had data in a spreadsheet and needed a quick API to power a prototype, internal tool, or static site. Every time, the options were the same — spin up a database, write a schema, build CRUD endpoints, deploy it somewhere. For a quick prototype, that's way too much overhead.
So I built CSV API — upload a CSV, confirm your columns, and instantly get a fully functional REST API.
How It Works
The process is deliberately simple:
- Upload a CSV or Excel file. The system automatically detects column names and infers data types (integer, float, boolean, date, string).
- Confirm the schema. Review the detected types, optionally rename columns, and hit confirm.
- Query. Your API is live with filtering, sorting, pagination, and even natural language queries.
Natural Language Queries
One of the features I'm most proud of is the natural language query support. Instead of crafting filter parameters manually, you can ask questions in plain English like 'Which rows have a status of active?' and the system translates that into the appropriate filters. This makes it incredibly accessible for non-technical users.
Built With Rails and Hotwire
The service runs on Ruby on Rails with Hotwire for the dashboard experience. Stimulus controllers handle the interactive elements like inline row editing, column type confirmation, and live API previews. The whole thing feels snappy without shipping a JavaScript bundle.
The Business Model
CSV API offers a generous free tier (3 datasets, 500 rows, 100 requests/hour) with paid tiers scaling up from $9/month for the Starter plan to $79/month for Scale with unlimited datasets and 200K+ rows. This portfolio site actually uses CSV API to store and serve its project data — dogfooding at its finest.
Try It
Head to csv-api.com, upload a CSV, and have a working API in under a minute. No credit card required.