ep_pads_api
v1.1.0
Published
Clean JSON API for Etherpad: lists all pads with their creator and last-edited date. Build your own dashboard or site against it. For a ready-made HTML page on top of this install ep_pads_view; for the current logged-in user see ep_current_user.
Maintainers
Readme
ep_pads_api
A clean JSON API for Etherpad that answers something the built-in HTTP API cannot: which pads exist, who created each one, and when it was last edited.
It returns data only — no UI. Build your own dashboard, landing page or site against it.
Companion plugins (each does one thing):
- ep_pads_view — a ready-made HTML page on top of this API, if you don't want to write a frontend.
- ep_current_user — a
whoamiendpoint for the current logged-in user.
Endpoints
Default prefix is /pads-api (configurable, see below).
GET /pads-api/pads
{
"pads": [
{ "id": "Team-Notes", "lastEdited": "2026-06-15", "lastEditedTs": 1750000000000, "creator": "Ivan Forkaliuk" },
{ "id": "Sprint-Plan", "lastEdited": "2026-05-02", "lastEditedTs": 1746100000000, "creator": null }
]
}creatoris the author of the pad's first revision;nullfor anonymous.lastEditedis an ISO date (YYYY-MM-DD) for display;nullif unknown.lastEditedTsis the full last-edit timestamp in epoch milliseconds (for precise sorting);nullif unknown.
Why this exists (vs the built-in API)
Etherpad's official /api/1/... has no method for the creator (author of
revision 0) — only listAuthorsOfPad, which returns everyone who ever edited the
pad, with no way to tell who created it.
ep_pads_api runs inside Etherpad and reads this via the official managers
(PadManager, AuthorManager, DB), so you don't need direct database access
from your own app.
Configuration
All optional. In settings.json:
"ep_pads_api": {
"requireAuth": true,
"basePath": "/pads-api"
}| Option | Default | Meaning |
|---------------|--------------|----------------------------------------------------------------|
| requireAuth | true | Only logged-in users may call the endpoints. Set false to open them. |
| basePath | /pads-api | URL prefix for the endpoints. |
Requirements
- Etherpad (
ep_etherpad-lite) — no other plugin is required. - With the default
requireAuth: true, callers must be logged in, so you need an authentication method (e.g.ep_openid_connect); setrequireAuth: falseto leave the endpoints open.
Install
cd /path/to/etherpad
pnpm run plugins i ep_pads_apiNotes
listAllPads()scans all pads on each/padscall. For very large instances consider putting a short-lived cache in front (planned).- License: Apache-2.0.
