finicast

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.

MethodPathPurpose
GET/v1/healthversion, uptime, open databases
GET/POST/v1/databaseslist / create {name, owner?}
DELETE/v1/databases/{db}drop after a backup (owner)
GET/POST/DELETE/v1/databases/{db}/grantsroles owner | editor | viewer | token
POST/v1/databases/{db}/open | close | save | recomputeexplicit lifecycle
GET/v1/databases/{db}/statsengine stats
GET/POST/v1/users, /v1/users/{user}/tokenssuperuser / 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.

MethodPathPurpose
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}/pivotSET_PIVOT (pvalueBehavior), SET_PERIODS_DIM_ID, display dim, calc type
POST…/tables/{t}/make-pivotMAKE_PIVOT, CREATE_TABLE_FROM_DIM
GET POST PATCH DELETE…/tables/{t}/dims, …/dims/{d}, …/dims/{d}/moveCREATE_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-valuesGET_UNIQUE_VALUES
GET POST PATCH DELETE…/tables/{t}/records, …/records/many, …/records/{id}, …/records/{id}/moveCREATE_RECORD(S), CREATE_MANY, UPDATE_RECORD, REMOVE_RECORD(S), MOVE_RECORD; POST …/sort
PUT DELETE…/tables/{t}/cellsSET_VALUE(S), UNSET_VALUE, COPY_DOWN/RIGHT, SET_DIM_VALUES…
POST…/tables/{t}/cells/explainexplain one cell: method, formula, read set
POST…/tables/{t}/recomputeRECALCULATE_TABLE
GET POST PATCH DELETE…/tables/{t}/methods, …/methods/{idx}, …/methods/{idx}/moveCREATE/UPDATE/MOVE/REMOVE_METHOD
GET POST PATCH DELETE…/tables/{t}/cond-objs, …/{idx}, …/{idx}/moveCREATE/UPDATE/MOVE/REMOVE_COND_OBJ
GET POST DELETE…/tables/{t}/indexesCREATE_INDEXES, REMOVE_INDEXES (hints)
GET POST PATCH DELETE…/tables/{t}/views, …/views/{v}saved views
POST…/tables/{t}/renderrender one table: tabular | pivot | groupedPivot | uniqueValues | recordIds
POST/rendermulti-table render envelope
POST/formulas/parsediagnostics and read set without saving
POST/GET/import/csv, /import/xlsx, /import/script, /export/csv, /export/xlsx, /export/scriptimport and export; script = replayable command list
POST/commandsbatch of commands, applied atomically
GET (SSE)/eventschange feed: change, structure, progress

See also the agent guide and the function catalog.