Skip to main content

REST APIs for existing SQL databases

A REST API for the database you already have

Connect a PostgreSQL, MySQL, SQL Server, Oracle (Preview) or Db2 (Preview) database. RestWard generates a REST API for it: endpoints for every table, API keys, rate limits and an OpenAPI document. You write no backend code.

For teams that need an API on an existing database and do not want to write and host CRUD services.

30-day free trial. No credit card needed.

Oracle - Preview: drivers verified; dashboard verification in progress.

With the RestWard CLI (dotnet tool install -g restward), or in the dashboard:

bash
$ restward connect orders-db
Connected: 12 tables, 47 columns
Endpoints live:
  GET  /api/public/customers
  GET  /api/public/customers/{id}
  POST /api/public/customers
  ...
Docs: /openapi.json
Key:  rw_9f2cK1…  (stored SHA-256-hashed)

How it works: three steps

Connect your database

Enter the connection details of your database. RestWard reads the schema and generates CRUD endpoints for every table in the schemas you include. The database password is stored encrypted.

db.example.com:5432/orders

Connected - 12 tables

Configure access

Create API keys with a role (read-only, read-write or admin) and a requests-per-minute limit. Switch individual endpoints off, or give an endpoint its own limit.

Admin read, write, delete
ReadOnly read
rw_9f2cK1… 300 req/min

Call your API

Give the API's URL and a key to the people or services that need it. Each API serves its OpenAPI document at /openapi.json. Responses carry rate-limit headers when a limit applies, and organization admins can view system activity in the dashboard.

curl https://<your-api-url>/api/public/customers \ -H "X-API-Key: rw_9f2cK1…"

Endpoints for every table in your schemas

When you connect a database, RestWard creates the endpoints and the OpenAPI document. Tables become endpoints and columns become fields. RestWard creates endpoints for every table in the schemas you include. You can switch off the endpoints you do not want.

RestWard runs the API for you. You do not deploy or host anything.

Create a free account
Endpoints
GET /api/public/customerslive
GET /api/public/customers/{id}live
POST /api/public/customerslive
PATCH /api/public/orders/{id}live

Decide who can read and who can write

Each API key has one role. Read-only keys can list and read, read-write keys can also create and update, and admin keys can also delete. Your connections, keys and APIs belong to your organization. No other RestWard customer can see or call them.

Access control features →
Roles
Adminread, write, delete
ReadWriteread, create, update
ReadOnlyread

Keys and rate limits from the first request

RestWard stores only a SHA-256 hash of each key. The key itself is shown once, when you create it. Each key has its own requests-per-minute limit. RestWard can share the count through Redis, so the limit holds across more than one instance. Rotate or revoke a key at any time. Callers can also authenticate with a JWT from your identity provider or with a client certificate (mTLS).

API key features →See an example →
API keys
rw_9f2cK1…300 req/min
rw_41abQ7…60 req/min
rw_7c10Zp…revoked
hashSHA-256

OpenAPI documentation generated from your schema

Each API serves an OpenAPI document at /openapi.json and a version with examples at /openapi-enhanced.json. Both are built from the same schema as the endpoints, so they describe what the API serves.

Read the docs
/openapi.json
paths24
schemas12
securitySchemesapiKey
generated fromdatabase schema

Security features in every API

Roles

Each key is read-only, read-write or admin.

Hashed API keys

RestWard stores only a SHA-256 hash of each key. The key itself is shown once, when you create it.

Organization isolation

Your connections, keys and APIs belong to your organization. No other RestWard customer can see or call them.

Encrypted database password

The password of your connection is stored encrypted.

Parameterized queries

Every generated query passes values as parameters.

Create a REST API for your database

Sign up, connect a database, and call your first endpoint.

Reconnecting to server...

Please wait while we restore your connection

Connection lost

Retrying in seconds...

Unable to reconnect

The server connection has been lost.
You may need to log in again.

Session Paused

The server has temporarily paused your session.

Session Expired

Your session could not be resumed.
Please reload the page to continue.