Help Center

Read and write records with the REST API

Every table in your app has REST endpoints for listing, reading, creating, updating and deleting its records. This article shows each request. You need an API key with the Records scopes. See Create an API key.

All paths are under https://unstack.us/api/v1. Replace customers with your table's slug. To see your tables and their slugs, call GET /custom.

List records

```bash

curl "https://unstack.us/api/v1/custom/customers?limit=10" \

-H "X-API-Key: usk_your_api_key"

```

```json

{

"data": [

{

"name": "Blue Wave Pools",

"email": "office@example.com",

"status": "active",

"id": "0b6f1c0e-...",

"created_at": "2026-10-13T08:30:00.000Z",

"updated_at": "2026-10-13T08:30:00.000Z",

"row_number": 48

}

],

"pagination": { "total": 47, "limit": 10, "offset": 0 }

}

```

A record is a flat object: your fields, plus id, created_at, updated_at and row_number.

Filter, sort and page

```bash

curl "https://unstack.us/api/v1/custom/customers?status=active&sort=created_at&order=desc&limit=50&offset=100" \

-H "X-API-Key: usk_your_api_key"

```

To read a whole table, keep increasing offset by limit until you have fetched total records.

Get one record

```bash

curl "https://unstack.us/api/v1/custom/customers/RECORD_ID" \

-H "X-API-Key: usk_your_api_key"

```

The response is { "data": { ... } }. An id that does not exist returns 404.

Create a record

Send the fields as a JSON object. The response has status 201 and the new record.

```bash

curl -X POST "https://unstack.us/api/v1/custom/customers" \

-H "X-API-Key: usk_your_api_key" \

-H "Content-Type: application/json" \

-d '{"name": "Blue Wave Pools", "email": "office@example.com", "status": "active"}'

```

Update a record

PATCH changes only the fields you send. The other fields keep their values.

```bash

curl -X PATCH "https://unstack.us/api/v1/custom/customers/RECORD_ID" \

-H "X-API-Key: usk_your_api_key" \

-H "Content-Type: application/json" \

-d '{"status": "inactive"}'

```

You cannot change id or created_at. They are ignored if you send them.

Delete a record

```bash

curl -X DELETE "https://unstack.us/api/v1/custom/customers/RECORD_ID" \

-H "X-API-Key: usk_your_api_key"

```

A successful delete returns status 204 with no body.

Things to know

For limits and error codes, see API rate limits and errors.