API

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.

Public API

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).

MethodPathAuthDescription
GET/api/v1/healthNoneHealth check
POST/api/v1/keys/requestNoneRequest an upload API key (queued for review; message required, 150+ chars)
POST/api/v1/session/verifyNoneVerify contributor email + API key (returns expires_at)
GET/api/v1/me/X-API-KeySigned-in profile (handle, role, masked keys + expiry)
PATCH/api/v1/me/X-API-KeyUpdate display handle
POST/api/v1/me/key/renew/X-API-KeyExtend the current API key expiry by the default TTL (must renew before expiry)
POST/api/v1/me/keys/{id}/renew/X-API-KeyExtend a key you own (masked id from GET /me); must renew before expiry
POST/api/v1/me/keys/X-API-KeyCreate an additional API key for your account (secret returned once; max 5)
POST/api/v1/partnership-requestNoneSubmit a partnership request (organization + description)
POST/api/v1/contributor-requestNoneSubmit a contributor interest request (name + description)
POST/api/v1/todo-suggest/NoneSuggest a community TODO (emails default admin)
POST/api/v1/upload/X-API-KeyUpload a reference photo or asset (multipart form)

Upload request

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.

API key expiry

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.

Partnership request

POST /api/v1/partnership-request accepts JSON {"email": "you@org.example", "organization": "Org Name", "description": "…"}. Public form: /partners/become/.

Contributor request

POST /api/v1/contributor-request accepts JSON {"email": "you@example.com", "name": "Ada Lovelace", "description": "…"}. Public form: /people/become/.

Suggest a TODO

POST /api/v1/todo-suggest accepts JSON {"email": "you@example.com", "title": "Task title", "detail": "…"}. Public form: /todo/suggest/.

Feeds

Atom feeds for NEWPALMYRA archives. Subscribe in your feed reader or poll for updates. Each collection page also links its own feed.

CollectionFormatURL
Site (all sections)Atom 1.0/atom.xml
NewsAtom 1.0/news/atom.xml
PressAtom 1.0/press/atom.xml
ModelsAtom 1.0/models/atom.xml
EventsAtom 1.0/events/atom.xml
CommunityAtom 1.0/community/atom.xml
ProgramsAtom 1.0/programs/atom.xml
PhotosAtom 1.0/photos/atom.xml
PeopleAtom 1.0/people/atom.xml
PartnersAtom 1.0/partners/atom.xml
TODOAtom 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.

Request an API Key