Appearance
admin
34 endpoints at a glance
| Method | Path | Summary |
|---|---|---|
GET | /admin/db-stats | Admin Db Stats |
GET | /admin/locations/cities/datasets | List Datasets |
GET | /admin/locations/cities/imports | List Imports |
GET | /admin/locations/cities/imports/{import_id} | Get Import |
POST | /admin/locations/cities/imports/run | Submit Import |
GET | /admin/locations/cities/stats | Cities Stats |
GET | /admin/locations/cities/status | Cities Status |
GET | /admin/locations/languages/imports | List Language Imports |
GET | /admin/locations/languages/imports/{import_id} | Get Language Import |
POST | /admin/locations/languages/imports/run | Run Language Import |
GET | /admin/locations/languages/stats | Languages Stats |
GET | /admin/locations/languages/status | Languages Status |
GET | /admin/mail/global-blocklist | List Global Blocklist |
POST | /admin/mail/global-blocklist | Add Global Blocklist |
DELETE | /admin/mail/global-blocklist/{entry_id} | Remove Global Blocklist |
GET | /admin/mail/keywords | List Keywords |
POST | /admin/mail/keywords | Add Keyword |
DELETE | /admin/mail/keywords/{keyword_id} | Remove Keyword |
PATCH | /admin/mail/keywords/{keyword_id} | Patch Keyword |
GET | /admin/mail/nrd/imports | List Nrd Imports |
POST | /admin/mail/nrd/imports/run | Run Nrd Import |
GET | /admin/mail/nrd/stats | Nrd Stats |
GET | /admin/mail/nrd/status | Nrd Status |
GET | /admin/mail/stalwart/allowed-ips | Stalwart Allowed Ips |
GET | /admin/mail/stalwart/blocked-ips | Stalwart Blocked Ips |
DELETE | /admin/mail/stalwart/blocked-ips/{ip} | Stalwart Unblock Ip |
GET | /admin/mail/stalwart/health | Stalwart Health |
GET | /admin/mail/stalwart/queue | Stalwart Queue |
DELETE | /admin/mail/stalwart/queue/{message_id} | Stalwart Queue Cancel |
GET | /admin/mail/stalwart/queue/{message_id} | Stalwart Queue Message |
POST | /admin/mail/stalwart/queue/{message_id}/retry | Stalwart Queue Retry |
POST | /admin/reminders/run | Admin Run Reminders |
GET | /admin/task-history | Admin Task History |
GET | /admin/task-history/{task_id} | Admin Task History Detail |
admin
Admin Db Stats
GET
/admin/db-stats
Return the admin dashboard payload.
stale_days controls the threshold for the stale-users list
(default 14). Recomputed on every request — no caching.
Parameters
Header Parameters
authorization
Query Parameters
stale_days
Type
integer
Default
14Responses
Successful Response
application/json
JSON "additionalProperties": "string"
{
}
Admin Run Reminders
POST
/admin/reminders/run
Run the due-date reminder scan once, now (all users).
The daily cron only runs on the scheduler-owning instance (production);
this button makes the feature testable on develop and lets an admin
force a pass after changing data. Idempotent — the per-item dedupe
markers mean a manual run never double-notifies.
Parameters
Header Parameters
authorization
Responses
Successful Response
application/json
JSON "additionalProperties": "string"
{
}
Admin Task History
GET
/admin/task-history
List recent task runs, newest-first, with optional filters.
Always returns names (every distinct task name seen) and
counts_by_status so the SPA can render its filter dropdown and
status badges in one request.
Parameters
Header Parameters
authorization
Query Parameters
page
Type
integer
Default
1limit
Type
integer
Default
50name
status
Responses
Successful Response
application/json
JSON "additionalProperties": "string"
{
}
Admin Task History Detail
List Datasets
Cities Status
Cities Stats
List Imports
Get Import
Submit Import
POST
/admin/locations/cities/imports/run
Queue a cities import. Returns immediately with worker state.
Parameters
Header Parameters
authorization
Request Body
application/json
JSON "dataset": "string", "skip_if_unchanged": false
{
}
Responses
Successful Response
application/json
JSON "additionalProperties": "string"
{
}
Languages Status
Languages Stats
List Language Imports
Get Language Import
Run Language Import
POST
/admin/locations/languages/imports/run
Download the SIL tables + upsert (admin only). Runs the blocking work
off the event loop and returns the resulting import-audit row.
Parameters
Header Parameters
authorization
Responses
Successful Response
application/json
JSON "additionalProperties": "string"
{
}
List Keywords
Add Keyword
Remove Keyword
Patch Keyword
List Global Blocklist
Add Global Blocklist
Remove Global Blocklist
Nrd Status
Nrd Stats
List Nrd Imports
Run Nrd Import
POST
/admin/mail/nrd/imports/run
Import the Whoisds NRD list — a specific date, else the daily default.
Runs the blocking download/upsert off the event loop.
Parameters
Header Parameters
authorization
Request Body
application/json
JSON "date": "string"
{
}
Responses
Successful Response
application/json
JSON "additionalProperties": "string"
{
}
Stalwart Health
Stalwart Queue
Stalwart Queue Message
Stalwart Queue Cancel
Stalwart Blocked Ips
Stalwart Allowed Ips
Stalwart Queue Retry
Stalwart Unblock Ip
DELETE
/admin/mail/stalwart/blocked-ips/{ip}
Remove one banned IP from Stalwart's config.
Returns a caveat the UI must show: the delete clears the persistent
ban, but a live in-memory ban may survive until a Stalwart reload/restart
(learned during the 502 incident). The durable fix is the allowlist, not
repeated unblocks.
Parameters
Header Parameters
authorization
Path Parameters
ip*
Type
Requiredstring
Responses
Successful Response
application/json
JSON "additionalProperties": "string"
{
}