CSV is how data arrives when it arrives from somewhere else: an export from a legacy system, a data dump from a supplier, a one-off extract someone pulled for a project. It is portable and universally readable, and completely useless to any application that wants to query it without loading the whole thing first.
Dataloom takes the upload and gives you an API. The header row becomes your field names, the rows become records, and you get REST endpoints with interactive documentation, API keys, filtering, sorting and pagination — without provisioning a database or writing an import script.
This is the shortest path in the product from having data to having something callable. It suits reference data that changes rarely — postal codes, product catalogues, price lists, lookup tables — and it is a fast way to prototype against a real dataset before deciding where it should permanently live.
Uploading a CSV file
Upload the file and Dataloom parses it, using the first row as column headers and everything below as records. There is no connection string, no firewall rule and no credential to manage, so this is normally the quickest data source to get working end to end.
Give your columns clear headers before uploading. They become the field names in your API responses and the parameters your filters use, and they are what an AI assistant reads when working out how to query the data. "OrderDate" is worth more than "col_3" to everything downstream.
Because a CSV is a snapshot rather than a live connection, the API reflects the file as uploaded. When the underlying data changes, upload the newer file. If you need results that always track a changing system, connect that system directly instead — a database or a spreadsheet stays live.
What you get with CSV
- No connection details, firewall rules or credentials required
- Header row becomes the field names
- Filtering, sorting and pagination over the uploaded rows
- Interactive documentation and API keys, same as any other source
- Ideal for reference data, lookup tables and prototyping
- Re-upload to refresh the dataset
An example endpoint
Look up postal codes in a province.
GET /reference/postalcodes
?filter={"Province":"KwaZulu-Natal","Code":{"gte":"4000"}}
&sort=Code&order=asc
&page=1&pageSize=25
X-API-Key: your_api_key{
"data": [
{ "Code": "4001", "Suburb": "Durban Central",
"City": "Durban", "Province": "KwaZulu-Natal" },
{ "Code": "4051", "Suburb": "Berea",
"City": "Durban", "Province": "KwaZulu-Natal" }
],
"meta": { "page": 1, "pageSize": 25, "totalCount": 312,
"totalPages": 13, "hasNextPage": true }
}Filtering, sorting and pagination work the same way on every endpoint, whatever the source. See the no-code API builder for how endpoints are put together.
Connect Claude to CSV
An uploaded CSV becomes an MCP tool the same way every other endpoint does, which is often the quickest way to make a dataset genuinely useful to an AI assistant. Rather than pasting thousands of rows into a conversation and hoping they fit in context, the assistant queries only the rows it needs.
That difference matters on anything of size. A lookup table with tens of thousands of rows cannot sensibly be pasted anywhere, but it answers a filtered question instantly — and the assistant reads the real values rather than a truncated sample.
The usual boundaries apply: only published endpoints are visible, the connection is authorised with OAuth 2.1, and you can revoke any individual assistant from your workspace at any time.
// mcp-config.json
{
"mcpServers": {
"dataloom": {
"url": "https://mcp.dataloom.cloud/w/your-workspace",
"transport": "http"
}
}
}Read more about the hosted MCP server, or follow the step-by-step setup guide.
CSV questions, answered
How do I update the data after uploading?
Upload the newer file. A CSV is a point-in-time snapshot rather than a live connection, so the API serves what was uploaded until you replace it.
Where do the field names come from?
The first row of the file. Clear headers are worth getting right, because they become your API field names and the parameters filters are built against.
Should I use CSV or connect a database?
Use CSV for reference data that rarely changes, or to prototype quickly. If the data changes in a system that Dataloom can connect to, connect that system so results stay live.
Can I query it without downloading the whole file?
Yes — that is the point. Endpoints support filtering, sorting and pagination, so callers and AI assistants fetch only the rows they actually need.