Guide

Everything you need to use Hi-Api.

Hi-Api turns your own data into secure REST endpoints — no backend to build. This guide walks you from creating an account to calling your live API from any app, script, or service.

How it works

Hi-Api is built on four simple ideas. Understand these and the rest of the app falls into place.

1

Schemas

Define the shape of your data — fields, their types, and rules like required or unique. A Note schema might have title, body, and done.

2

Entries

The records stored for a schema. Add and edit them by hand in the dashboard, or let your app create them through the API.

3

Endpoints

Publish a schema as a REST URL. Choose which HTTP methods are allowed and which fields can be read or written.

4

Request tokens

The keys your apps use to call an endpoint. Scope each token to specific endpoints with read and/or write access, and revoke it anytime.

In short: a schema holds entries, an endpoint exposes that schema over HTTP, and a request token lets your apps call it.

Getting started

Follow these steps in the dashboard to go from zero to a working API.

  1. 1

    Create your account & verify your email

    Sign up with your email and a password. We'll send a verification link — open it to confirm your address. Email verification is required before you can create request tokens or call the API.

  2. 2

    Define a schema

    Go to the Schemas tab and create a schema (for example, Note). Add fields and pick a type for each — string, number, boolean, date, or enum. Mark a field required to make it mandatory, or unique to prevent duplicate values.

  3. 3

    Add data (optional)

    Open the Entries tab to browse and edit the records in any schema. You can add entries by hand or import a JSON file. You can also skip this and let your app create data through the API instead.

  4. 4

    Publish an endpoint

    In the Endpoints tab, create an endpoint from your schema and give it a URL slug (such as notes). Enable the HTTP methods you want, then choose which fields are readable (returned by GET) and writable (accepted when creating or updating records).

  5. 5

    Create a request token

    In the Request Tokens tab, mint a token and choose which endpoints it can reach and whether it has read and/or write access. Copy the token when it's shown — you can also reveal it again later, or revoke it whenever you like.

  6. 6

    Call your API

    Send requests to your endpoint's URL with the token in the Authorization header. The next section shows exactly how.

Calling your API

Every endpoint lives under a predictable base URL. You'll find the exact URL for each endpoint — with a copy button — on its card in the Endpoints tab.

Base URL

https://d24cgaurqj8x4p.cloudfront.net/api/dx/<your-endpoint>

Authentication

Send your request token as a bearer token on every request. Requests without a valid token are rejected.

Authorization: Bearer mapi_YOUR_TOKEN

Available methods

A method only works if it's enabled on the endpoint and granted to your token.

MethodPathWhat it does
GET/api/dx/:endpointList records — supports filters and pagination.
POST/api/dx/:endpointCreate a new record.
GET/api/dx/:endpoint/:idFetch a single record by its id.
PUT/api/dx/:endpoint/:idReplace a record (all writable fields).
PATCH/api/dx/:endpoint/:idUpdate only the fields you send.
DELETE/api/dx/:endpoint/:idDelete a record by its id.
PUT/api/dx/:endpointReplace many records in one request.
PATCH/api/dx/:endpointUpdate many records in one request.

Example requests

Assuming an endpoint with the slug notes. Replace mapi_YOUR_TOKEN with your token and RECORD_ID with a record's id.

Create a record

curl -X POST https://d24cgaurqj8x4p.cloudfront.net/api/dx/notes \
  -H "Authorization: Bearer mapi_YOUR_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"title":"Buy milk","done":false}'

List records

curl "https://d24cgaurqj8x4p.cloudfront.net/api/dx/notes?done=false&limit=25" \
  -H "Authorization: Bearer mapi_YOUR_TOKEN"

Fetch one record

curl https://d24cgaurqj8x4p.cloudfront.net/api/dx/notes/RECORD_ID \
  -H "Authorization: Bearer mapi_YOUR_TOKEN"

Update a record

curl -X PATCH https://d24cgaurqj8x4p.cloudfront.net/api/dx/notes/RECORD_ID \
  -H "Authorization: Bearer mapi_YOUR_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"done":true}'

Delete a record

curl -X DELETE https://d24cgaurqj8x4p.cloudfront.net/api/dx/notes/RECORD_ID \
  -H "Authorization: Bearer mapi_YOUR_TOKEN"

What a response looks like

Records come back with their id, your data, and timestamps. List responses also include a pagination summary.

{
  "records": [
    {
      "id": "665f1c9a2b...",
      "data": { "title": "Buy milk", "done": false },
      "createdAt": "2026-07-05T10:00:00.000Z",
      "updatedAt": "2026-07-05T10:00:00.000Z"
    }
  ],
  "pagination": { "total": 1, "limit": 25, "skip": 0 }
}

Filtering & pagination

When you list records with GET /api/dx/:endpoint, you can narrow and page through the results with query parameters.

  • ?field=value — filter by any readable field. Combine several to match all of them, e.g. ?done=false&title=Buy%20milk.
  • ?limit= — how many records to return. Default 50, between 1 and 200.
  • ?skip= — how many records to skip, for paging. Default 0. To get the second page of 25, use ?limit=25&skip=25.

Records are returned newest first. The pagination.total in the response tells you how many records match your filter, so you know when you've reached the end.

Rate limits & plans

Limits apply to your whole account and are shared across all of your tokens — minting more tokens doesn't raise your throughput. Every API response includes headers so you can track where you stand:

  • X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset — your per-minute budget and when it resets.
  • X-Quota-Limit, X-Quota-Remaining — your monthly request allowance.

Go over either and requests return 429 until the window resets. Your limits depend on your plan:

PlanSchemasEndpointsTokensReq / minReq / month
HobbyFree3316010,000
Pro$/moUnlimitedUnlimited106001,000,000
Enterprise$/moUnlimitedUnlimitedUnlimited6,000Unlimited

Switch plans anytime under Account → Billing.

Your account & team

Profile

Update your name and email under Account → Profile. Changing your email requires your current password and a fresh verification of the new address.

Security

Change your password anytime under Account → Security. Forgot it? Use the “Forgot password?” link on the sign-in page to get a reset link by email.

Billing

Compare plans and switch under Account → Billing. Your plan sets your schema, endpoint, token, and request limits.

Team

Invite people by email under Account → Team and assign each a role — Owner, Admin, or Member. Teammates share the same schemas, endpoints, tokens, and limits, so you can manage one API together.

Response codes

Every API call returns a standard HTTP status. Here's what each one means and how to resolve it.

200 / 201Success. The record was returned, created, or updated.
400Your data didn't pass validation — a wrong type, a missing required field, a duplicate unique value, or malformed JSON.
401The token is missing, invalid, or has been revoked. Check the Authorization header.
403The token can't reach this endpoint, or it's missing the read/write permission this request needs.
404The endpoint or record doesn't exist.
405That method isn't enabled on the endpoint. Turn it on in the Endpoints tab.
429You've hit your plan's per-minute rate limit or monthly request quota.

Ready to build?

Head to your dashboard to create a schema, publish an endpoint, and mint your first token.

Get started free