Skip to content

API reference

This reference is generated from packages/contracts, the package every other part of Novaterra depends on. The API validates against these schemas, the web client is typed by them, and this page is built from them — so if the code changes and the docs do not, the build says so.

Today the contract covers 129 entities, 309 REST routes and 21 realtime events.

Where to go

EntitiesEvery schema, with its fields, constraints and defaults.
REST routesThe full HTTP surface, grouped by area.
WebSocket eventsWhat the server pushes, and what a client may send.

Using the contracts directly

If you are writing against Novaterra from inside this repository, import the schemas rather than retyping them:

import { Being, Signal, routes } from '@novaterra/contracts';
const response = await fetch(`${API}${routes.beings.list.split(' ')[1]}`, {
credentials: 'include',
});
const beings = Being.array().parse(await response.json());

Every route in the catalogue is a "METHOD /path" string, so the method and the path can never disagree between client and server.

Do not edit these pages. They are rewritten by apps/docs/scripts/gen-api.ts on every build. To change the reference, change the contract.