FastCRUD
PostgreSQL · MySQL · SQL Server · Oracle · MongoDB

Instant API for
PostgreSQL database

Connect your database, get your access key, and start querying via REST or GraphQL — with filtering, joins, pagination, and full CRUD. No backend code required.

Coming Soon
How it works →
fast-crud · terminal
# 1. Authenticate
POST /authenticate/crud/:accessKeyID
{ "access_token": "Bearer ey..." }

# 2. Query rows
GET /crud/users?filter=age.gt.18&limit=10
[{ "id": 1, "name": "Alice", ... }]

# 3. GraphQL join
POST /graphql
{ join(from:"orders", joins:[{table:"users",
    on:"orders.user_id.eq.users.id"}]) }

What it does

The things you'd normally spend a day wiring up are already handled.

Five databases

PostgreSQL, MySQL, SQL Server, Oracle, and MongoDB. Point it at any of them — the same REST and GraphQL API works across all five.

No boilerplate

Connect your database, get a working API. No schema files, no resolvers, nothing to configure. Schema is introspected automatically.

REST & GraphQL

Both endpoints are always available. Use REST when it's simpler, GraphQL when you need joins or precise field selection. One token works for both.

Hard to misuse

All queries are parameterized with the correct syntax for each database. Column names are validated against the introspected schema before any query runs.

Per-project isolation

Every project gets its own database connection, access keys, and token space. One project can't touch another's data.

Joins without SQL

INNER, LEFT, and RIGHT joins via a single GraphQL field for SQL databases. Specify the tables, the ON condition, and the columns — the query is built for you.

Up and running in three steps

No infrastructure to manage. No resolvers to write. Just connect and query.

01

Add your connection

POST your database credentials — PostgreSQL, MySQL, SQL Server, Oracle, or MongoDB. The API introspects your schema and caches it automatically.

02

Get your access key

Exchange your access key ID for a short-lived Bearer token. Use it on every REST or GraphQL request.

03

Start querying

Filter, paginate, insert, update, delete, and join — all through a consistent API with no backend code on your end.

Two APIs, one connection

Use REST for simplicity or GraphQL for flexibility — both are always available.

REST API
HTTP
# Query with filter & pagination
GET /crud/users?filter=age.gt.18%20AND%20status.eq.active&limit=20
Authorization: Bearer <token>

# Insert a new row
POST /crud/orders
Content-Type: application/json

{ "user_id": "42", "total": "99.99", "status": "pending" }

# Update with a filter
PUT /crud/orders?filter=id.eq.7
{ "status": "shipped" }

# Delete
DELETE /crud/users?filter=status.eq.inactive
GraphQL
POST /graphql
# Fetch rows
{
  users(filter: "age.gt.18", limit: 20) {
    id  name  email  created_at
  }
}

# JOIN orders → users
{
  join(
    from: "orders"
    joins: [{ table: "users", on: "orders.user_id.eq.users.id" }]
    columns: ["orders.id", "orders.total", "users.name"]
    filter: "orders.total.gt.50"
  )
}

# Insert mutation
mutation {
  insertOrders(rows: [{ user_id: "42", total: "99.99" }]) {
    rowsInserted
  }
}

Simple, usage-based pricing

One request = one API call. No per-table fees, no seat licenses. Upgrade when you need more.

Free

$0

forever

  • 50k requests / month
  • All 5 database types
  • REST + GraphQL
  • 1 project
  • Requests blocked at limit
Coming Soon
Most popular

Starter

$19

per month

  • 2M requests / month
  • All 5 database types
  • REST + GraphQL + Joins
  • Up to 10 projects
  • $0.20 per extra 10k requests
Coming Soon

Pro

$99

per month

  • 20M requests / month
  • All 5 database types
  • REST + GraphQL + Joins
  • Unlimited projects
  • $0.20 per extra 10k requests
Coming Soon

1 request = 1 HTTP call to your API, regardless of rows returned.  Overage is billed at the end of the month.

Ready to start querying?

Read the full API reference to learn about authentication, filter syntax, GraphQL mutations, and table joins.

Coming Soon