5-minute start
Make your first authenticated request in any stack. Snippets below switch language; replace you, your-project, and your-resource with your own.
curl -X POST https://endpointos.dev/api/public/you/your-project/your-resource \
-H "Authorization: Bearer sapi_live_..." \
-H "Content-Type: application/json" \
-d '{"title":"Add dark mode"}'Start here
Pick the line that describes you. Each path is ordered, so following it top to bottom gets you to a working API without reading the rest of this page.
Put an API in front of data I already have
Your data lives in BigQuery, Postgres, Supabase, Firestore, or behind an API you already run.
- Pick your data source: Each source has its own guide: what to grant, what it can and cannot do, and what to check when it fails.
- Create a project: A project is the unit of API ownership. Everything else hangs off it.
- Connect the source and let it detect your schema: Enter credentials, pick a table from your own data, and the fields are read from real rows.
- Issue an API key: Nothing is reachable until a key exists. Keys are shown once and stored hashed.
- Check what your source supports: Filtering, sorting, search and paging differ per source. Your resource docs state which apply.
- Hand the docs to whoever is integrating: Every project gets generated docs, an OpenAPI document, and a versioned contract.
Start from nothing and build an API
You have no database yet, or a CSV, or a stream of JSON you want to keep.
- Create a project and a resource: Define the fields you want. EndpointOS stores the records for you.
- Get data in: Write through the API, import a CSV, or post JSON and let the schema be inferred.
- Issue an API key: Scope it to the resources it should reach, and rotate it without downtime.
- Understand your limits: Monthly request caps, per-key rate limits, and storage, so nothing surprises you.
- Add consumers when you have more than one caller: A named consumer gets its own keys, its own quota, and its own usage view.
Integrate against an API built on EndpointOS
Someone gave you a base URL and a key. You are writing the client.
- Read that project's generated docs: Every project publishes its own docs and OpenAPI, including exactly which query controls its data source honours.
- Authenticate: One header. The same key shape for every endpoint.
- Filter, sort and page: Supported controls vary by data source. An unsupported one is a clear 400, never a silently ignored parameter.
- Handle errors: Stable error codes, so you branch on error.code rather than on a message. The full table is in the project's own generated docs.
- Know the rate limits: Per key and per minute, with the reset time in the response.
Everything below is reference material, organised by topic. It is here to be looked up, not read front to back.
Reference
One page per topic, so you can link to the one you mean. Each is written to be looked up rather than read in order.
Something missing?
These docs cover the product as it stands today. New surfaces ship regularly; see the /changelog for what's new. If you can't find what you're looking for, email support@baseframelabs.com and we'll either point you at the right page or add one.