The Prometheux platform exposes a REST API that lets you drive every part of the platform from your own application — create projects, connect data, define and run concepts, read results, build knowledge graphs, schedule runs, and more. This page covers the conventions shared by all endpoints. Read it once, then jump into the per-resource references in the API Reference section.
Looking for the low-level Vadalog engine API (/evaluate, /config-info/set)? That is a separate, lower-level interface — see Vadalog Engine API. The platform API documented here is what external tools should integrate against.

Base URL

All endpoints are versioned under /api/v1. On Prometheux Cloud, each workspace is addressed by organization and username:
For a self-hosted instance, the base URL is your host plus the API prefix:
Throughout the API Reference, paths are written relative to the base URL — e.g. POST /ontologies/save means POST https://api.prometheux.ai/jarvispy/{org}/{user}/api/v1/ontologies/save.

Authentication

Every request must carry a bearer token:
Tokens are JarvisPy API keys (JWTs). See Authentication for how to obtain, list, and revoke them.

Cross-origin requests (CORS)

The API sends Access-Control-Allow-Origin: * and allows all standard methods (GET, POST, PUT, PATCH, DELETE, OPTIONS) and the Authorization, Content-Type, and X-Supabase-Token headers. This means a browser-based single-page app served from any origin can call the API directly — no proxy is required to get past CORS.
CORS does not protect your token. A token placed in browser code ships to every visitor and grants full account access. For a public app, keep the token server-side behind a small proxy (or serverless function) that adds the Authorization header, and have the browser call your proxy. See Bring your own frontend.

Response envelope

Every JSON response uses the same envelope:
Read your result from data. On errors, status is "error" (or "conflict"), message describes the problem, and data is null.
A few endpoints do not use this envelope: file downloads return the raw file, and streaming endpoints return NDJSON. These are called out explicitly on their pages.

Status codes

A typical error response:

Pagination

Endpoints that return tabular data (concept results, table previews) are paginated with a consistent set of parameters: Paginated responses include the page metadata alongside the rows:

Streaming responses

Some endpoints stream their output as NDJSON (newline-delimited JSON): the response body is a sequence of JSON objects, one per line, emitted as work progresses. Read the stream line by line and parse each line independently rather than waiting for the whole body. Endpoints that stream say so on their page.

Compute

Execution endpoints accept an optional compute object to target a specific backend (local engine, Databricks, or Snowflake). When omitted, your workspace default is used. Unless you manage multiple compute backends, you can leave it out.

API Reference