REST API reference
The FiniDB daemon publishes its API as OpenAPI 3.1 at /v1/openapi.json, generated from its route schemas. finicast.com mirrors it at /docs/api/openapi.json and will embed the rendered reference on this page. Hosted, every model route below is reachable at https://finicast.com/db/<project>/… with Authorization: Bearer <project-token>; the daemon itself serves them under /v1/db/{db}/….
Field names are the legacy camelCase names (modelId, tableId, dimId, vdimIds…). Errors are { error: { code, message, hint? } }.
Server and databases
Administrative routes; finicast.com calls these on your behalf when you create a project.
| Method | Path | Purpose |
|---|---|---|
GET | /v1/health | version, uptime, open databases |
GET/POST | /v1/databases | list / create {name, owner?} |
DELETE | /v1/databases/{db} | drop after a backup (owner) |
GET/POST/DELETE | /v1/databases/{db}/grants | roles owner | editor | viewer | token |
POST | /v1/databases/{db}/open | close | save | recompute | explicit lifecycle |
GET | /v1/databases/{db}/stats | engine stats |
GET/POST | /v1/users, /v1/users/{user}/tokens | superuser / self |
Model resources
All under /db/<project> (hosted) or /v1/db/{db} (daemon). Each mutating request is a command from the legacy catalogue; batches via /commands are all-or-nothing.
| Method | Path | Purpose |
|---|---|---|
GET POST PATCH DELETE | /models, /models/{m} | CREATE_MODEL, UPDATE_MODEL, REMOVE_MODEL… |
GET POST PATCH DELETE | /models/{m}/tables, …/tables/{t} | CREATE_TABLE, UPDATE_TABLE, REMOVE_TABLE, DUP_TABLE… |
PUT | …/tables/{t}/pivot | SET_PIVOT (pvalueBehavior), SET_PERIODS_DIM_ID, display dim, calc type |
POST | …/tables/{t}/make-pivot | MAKE_PIVOT, CREATE_TABLE_FROM_DIM |
GET POST PATCH DELETE | …/tables/{t}/dims, …/dims/{d}, …/dims/{d}/move | CREATE_DIM(_AT), UPDATE_DIM, REMOVE_DIM, MOVE_DIM_*… |
POST PATCH | …/tables/{t}/linked-pdims, …/linked-pdims/{d} | CREATE/UPDATE_DIM_LINKED_TO_PDIM (the Frame mechanism) |
GET | …/tables/{t}/dims/{d}/unique-values | GET_UNIQUE_VALUES |
GET POST PATCH DELETE | …/tables/{t}/records, …/records/many, …/records/{id}, …/records/{id}/move | CREATE_RECORD(S), CREATE_MANY, UPDATE_RECORD, REMOVE_RECORD(S), MOVE_RECORD; POST …/sort |
PUT DELETE | …/tables/{t}/cells | SET_VALUE(S), UNSET_VALUE, COPY_DOWN/RIGHT, SET_DIM_VALUES… |
POST | …/tables/{t}/cells/explain | explain one cell: method, formula, read set |
POST | …/tables/{t}/recompute | RECALCULATE_TABLE |
GET POST PATCH DELETE | …/tables/{t}/methods, …/methods/{idx}, …/methods/{idx}/move | CREATE/UPDATE/MOVE/REMOVE_METHOD |
GET POST PATCH DELETE | …/tables/{t}/cond-objs, …/{idx}, …/{idx}/move | CREATE/UPDATE/MOVE/REMOVE_COND_OBJ |
GET POST DELETE | …/tables/{t}/indexes | CREATE_INDEXES, REMOVE_INDEXES (hints) |
GET POST PATCH DELETE | …/tables/{t}/views, …/views/{v} | saved views |
POST | …/tables/{t}/render | render one table: tabular | pivot | groupedPivot | uniqueValues | recordIds |
POST | /render | multi-table render envelope |
POST | /formulas/parse | diagnostics and read set without saving |
POST/GET | /import/csv, /import/xlsx, /import/script, /export/csv, /export/xlsx, /export/script | import and export; script = replayable command list |
POST | /commands | batch of commands, applied atomically |
GET (SSE) | /events | change feed: change, structure, progress |
See also the agent guide and the function catalog.