Skip to content
Docs / API reference / Requests and proposals
Your account
API reference

Requests and proposals

The two public forms of the Hub, callable without an account, and the status calls that go with them.

A request or a report

POST /api/requests

FieldRule
name2 to 120 characters
emailan address
kindmodule, track, tool, service, report, contribute, other; unknown becomes other
text10 to 4000 characters
orgup to 200, optional
modulea module slug, for report and contribute
websiteleave empty; a filled field is treated as spam and answered 202 without effect
curl -X POST https://entrosana.app/api/requests -H "Content-Type: application/json" \
  -d '{"name": "…", "email": "…", "kind": "report", "module": "values-and-community", "text": "The worksheet link on page 2 is dead."}'

Answers 202 with {"ok": true, "id": n}. Requests for a module, track, tool or service go to [email protected]; reports and contribution offers go to [email protected] with a link to the module. The sender gets a short confirmation without the text. Requests are kept 180 days.

A proposal

POST /api/contributions

FieldRule
name2 to 120 characters; the work is published under it
emailan address
title3 to 160
areasocial, nature-based, technical, other
summary1 to 4000
trailthe record trail as Markdown, up to 12000, optional
records and chainthe record trail as data, verified before publication, optional
filesup to 10 entries {"label", "url"}, label up to 120, url up to 500
attributionkeep or remove: whether the module keeps your name if you erase your account
websiteleave empty

Signed in with the same address, the proposal is confirmed at once and the team is notified. Without a session it is received, a confirmation link goes to the address, and it counts once opened; unopened, it is deleted after seven days. Five proposals an hour per address and per origin.

{"ok": true, "id": 12, "status": "received", "status_url": "https://entrosana.app/contribute/status?id=12"}

Status and withdrawal

CallWhoWhat it does
GET /api/contributions/<id>the submitter or the teamthe proposal with its state, decisions and reasons
DELETE /api/contributions/<id>the submitter or the ownerdeletes an unpublished proposal
PATCH /api/contributions/<id> with {"status": "withdrawn", "reason": "…"}the submitterwithdraws it while open
PATCH /api/contributions/<id> with {"attribution": "keep"}the submitter, fresh tokensets the attribution

The status page under /contribute/status?id=<id> shows the same without a token, through the link from the mail.

Last updated 2026-09-11