Skip to content
Docs / API reference / API overview
Your account
API reference

API overview

The Hub's API sits under https://entrosana.app/api/. Everything the pages do, they do through it, so everything you see in the Hub you can also do from a script.

Conventions

  • JSON in, JSON out. Send Content-Type: application/json; answers are JSON with a status code. The one exception is a file upload, which sends the bytes as the body.
  • Errors carry the status code and a body {"error": "…"} with the reason in plain words. See Errors and limits.
  • Public reads need no token. Account calls send Authorization: Bearer <token>, see Authentication.
  • Times are ISO 8601 in UTC, for example 2026-09-11T14:02:10.421Z.
  • Identifiers are integers for accounts, proposals, services, files and journal entries; modules are addressed by their slug, for example values-and-community.
  • No versioning yet. The API changes with the Hub; the changelog lists what changed and when.

A first call

curl https://entrosana.app/api/healthz
{"ok": true, "db": "ok", "migrations": 20}

The resources

PageCovers
Authenticationsign-in links, tokens, devices, fresh tokens
Accounts and profiles/api/me, public profiles, journal, applications, invitations, export, erasure
Modules and pointsyour modules, editing, contributors, points, search, catalogue meta
Services and hookschecks, heartbeats, rotation
Filesupload, list, share, delete
Requests and proposalsthe public forms
Team endpointsqueue, decisions, members
Errors and limitsstatus codes and rate limits

Public, no token

CallReturns
GET /api/healthz{"ok": true, "db": "ok", "migrations": n}; 503 with "db": "fail" when the database does not answer
GET /api/modules/metacontributors and points per module, keyed by slug
GET /api/pointspoint counts per module and, signed in, your own points
GET /api/search?q=…people, public journal entries and published modules
GET /api/profiles/<id>, GET /api/profiles/slug/<name>a public profile
GET /api/avatars/<id>a profile picture
GET /api/files/<account>/<file>/<name>a public file
GET /api/audit/verifythe check of the record chain
GET, POST /api/hooks/<key>a heartbeat
POST /api/requestsa request or a report
POST /api/contributionsa proposal
POST /api/verify/requesta sign-in or confirmation link

Last updated 2026-09-11