Quick Start
Every task below is shown three ways — the web interface, the oi CLI, and the REST
API. They reach the same endpoints, so pick whichever suits you; nothing here depends
on choosing one over another.
Prerequisites
Section titled “Prerequisites”- An oikapi instance — for managed customers this is provisioned by our team; for self-hosted deployments this is provided by your administrator
- For the CLI tab, the
oiCLI installed — see Installation
Connect to your instance
Section titled “Connect to your instance”Open your instance URL in a browser and sign in. If you have not been sent an invitation yet, ask an administrator to send you one — see Users & Roles.
oi login https://your-instance.example.comRun oi whoami to verify your connection and see which principal your credential
authenticates as. Credentials are stored in your system keychain, so you only log in
once.
Authenticate with an API key or an OAuth2 token and send it as a bearer token:
Authorization: Bearer <token>See Authentication for issuing keys and tokens.
Create your first table
Section titled “Create your first table”- Go to Applications and open the application the table belongs to.
- Select the Tables tab.
- Choose Create Table, then give it a name and a display name.
- Open the new table and add fields —
titleas text,budgetas decimal.
Every table belongs to an application; there is no way to create one outside of an application. See Applications.
The CLI reads and inspects schema — oi table list and oi table describe — but it
does not create tables directly. Create them in the web interface, or define them as
part of an application you keep in version control:
oi init myapp # scaffold an app, tables includedoi validate myapp # check it before pushingoi push myapp # apply it to your instanceThis is the path to prefer when a schema change should be reviewable and repeatable across environments. See App Development.
POST /api/apps/system/tables{ "name": "projects", "display_name": "Projects"}Then add fields:
POST /api/apps/system/tables/projects/fields{ "name": "title", "type": "text", "required": true}POST /api/apps/system/tables/projects/fields{ "name": "budget", "type": "decimal", "config": {"precision": 10, "scale": 2}}Your table is now live. It has full REST endpoints for CRUD operations, filtering, pagination, and sorting — no additional setup required.
Create and query records
Section titled “Create and query records”Open the table from Applications → your app → Tables. Use New Record to add one, and the column headers to sort and filter the list.
# Create a recordoi record create system.projects '{"title": "Website Redesign", "budget": "25000.00"}'
# List recordsoi record list system.projects
# Fetch one by idoi record get system.projects <id>POST /api/apps/system/tables/projects/records{ "title": "Website Redesign", "budget": "25000.00"}GET /api/apps/system/tables/projects/recordsGET /api/apps/system/tables/projects/records?filter=gt(budget,10000)Install a core app
Section titled “Install a core app”Instead of building from scratch, you can install a pre-built app. Its tables, roles, and permissions are created for you.
Go to Marketplace, choose an application, and install it.
# Install from a source directoryoi app install ./crm
# ...or from a built package fileoi app install ./crm-1.0.0.oikapp
# Your CRM is now live with tables, roles, and permissionsoi record list crm.leadsUpload a .oikapp file as multipart form data, field package:
POST /api/applications/installTo check what an install would do without performing it, post the same multipart body
to POST /api/applications/check.
See Core Apps for the full list of available applications.
Next steps
Section titled “Next steps”- Field Types — All supported field types
- Business Rules — Add validation and automation
- API Reference — Complete API documentation
- Building Apps — Create custom applications