Ship an API before your coffee's cold

Paste data.
Get a fancy API.

Turn a spreadsheet, CSV, or JSON blob into a live, queryable REST API in minutes — with an MCP endpoint AI agents can read and write to.

Live demo API

GET /api/hello-tony/quotes/random · refreshes every 6s

Try the query syntax

/api/hello-tony/quotes?
curl
curl "https://your-host/api/hello-tony/quotes?limit=3&sort=-id"
Response appears here

How it works

01

Paste

Drop in a CSV, TSV, spreadsheet copy-paste, or a declarative YAML/JSON spec.

02

Generate

Fancy infers your column types, builds a schema, and ingests every row.

03

Serve

A live REST API — plus an MCP endpoint — is ready before your coffee's cold.

Built for shipping fast

🔎

Real query syntax

Filters, operators (_gt, _contains, _in…), sort, pagination, and free-text search — out of the box.

🤖

MCP writes for agents

Every API doubles as an MCP server. Point an agent at it with a bearer token and let it read & write.

🏠

Self-host anywhere

One SQLite file, one Next.js app. No managed backend, no vendor lock-in.

Open source (AGPL-3.0)

Fully open source and self-hostable. If Fancy saves you a backend, a star on GitHub goes a long way.

See it in action

From a pasted table to a live, queryable API — the whole flow, screenshot by screenshot.

Fancy admin dashboard listing APIs with record and request counters
Dashboard
The new-API form with a pasted table ready to submit
Create an API
Success panel showing a freshly generated API's live endpoints
Instant success
The query playground building a filtered request and showing the JSON response
Query playground

How to install

One SQLite file, one Next.js app. Running in under a minute, self-hosted or on your own PaaS.

bash
cp .env.example .env
make up
# open http://localhost:3000

Builds the image, starts the stack, and seeds a demo API on first boot.

Your data wants to be an API.

Sign in to the dashboard and create your first one — it takes less time than this sentence took to read.

Open the dashboard →