Programmatic access to NEWPALMYRA and feeds of our content. Request an API key if you need to contribute photos or assets through the upload endpoint.
JSON REST API at /api/v1/ for health checks, upload keys, photo submissions, partnership requests, and session helpers. Paths use a trailing slash (e.g. /api/v1/health/). Day-to-day admin lives at /admin (API key required).
| Method | Path | Auth | Description |
|---|---|---|---|
GET | /api/v1/health | None | Health check |
POST | /api/v1/keys/request | None | Request an upload API key (queued for review; message required, 150+ chars) |
POST | /api/v1/session/verify | None | Verify contributor email + API key (returns expires_at) |
GET | /api/v1/me/ | X-API-Key | Signed-in profile (handle, role, masked keys + expiry) |
PATCH | /api/v1/me/ | X-API-Key | Update display handle |
POST | /api/v1/me/key/renew/ | X-API-Key | Extend the current API key expiry by the default TTL (must renew before expiry) |
POST | /api/v1/me/keys/{id}/renew/ | X-API-Key | Extend a key you own (masked id from GET /me); must renew before expiry |
POST | /api/v1/me/keys/ | X-API-Key | Create an additional API key for your account (secret returned once; max 5) |
POST | /api/v1/partnership-request | None | Submit a partnership request (organization + description) |
POST | /api/v1/contributor-request | None | Submit a contributor interest request (name + description) |
POST | /api/v1/todo-suggest/ | None | Suggest a community TODO (emails default admin) |
POST | /api/v1/upload/ | X-API-Key | Upload a reference photo or asset (multipart form) |
Request a key at Request API Key, then use POST /api/v1/upload with multipart/form-data fields file, title, description, and optional monument. Include header X-API-Key: YOUR_KEY. Submissions are stored under CC0.
Keys expire after 365 days by default (override with API_KEY_TTL_DAYS). Expired keys cannot authenticate. Before expiry, renew with POST /api/v1/me/key/renew/ or POST /api/v1/me/keys/{id}/renew/ (header X-API-Key) to extend the same secret. Create another key with POST /api/v1/me/keys/ (secret returned once; max 5 per account). Contributors manage keys on /profile/. Admins can Renew or Reissue from /admin → API keys.
POST /api/v1/partnership-request accepts JSON {"email": "you@org.example", "organization": "Org Name", "description": "…"}. Public form: /partners/become/.
POST /api/v1/contributor-request accepts JSON {"email": "you@example.com", "name": "Ada Lovelace", "description": "…"}. Public form: /people/become/.
POST /api/v1/todo-suggest accepts JSON {"email": "you@example.com", "title": "Task title", "detail": "…"}. Public form: /todo/suggest/.
Atom feeds for NEWPALMYRA archives. Subscribe in your feed reader or poll for updates. Each collection page also links its own feed.
| Collection | Format | URL |
|---|---|---|
| Site (all sections) | Atom 1.0 | /atom.xml |
| News | Atom 1.0 | /news/atom.xml |
| Press | Atom 1.0 | /press/atom.xml |
| Models | Atom 1.0 | /models/atom.xml |
| Events | Atom 1.0 | /events/atom.xml |
| Community | Atom 1.0 | /community/atom.xml |
| Programs | Atom 1.0 | /programs/atom.xml |
| Photos | Atom 1.0 | /photos/atom.xml |
| People | Atom 1.0 | /people/atom.xml |
| Partners | Atom 1.0 | /partners/atom.xml |
| TODO | Atom 1.0 | /todo/atom.xml |
Press articles are published under /posts/ (legacy URLs) and listed at /press/. The press feed is at /press/atom.xml. Photo and TODO feeds are built from archive data at build time.