API Documentation

Ephemeros offers API access to its growing record of repeat photography for research purposes: the photo series themselves, capture metadata (position, heading, tilt), weather data recorded at capture time, AI-generated content tags, and full-resolution dataset downloads per spot. Only approved, publicly visible content is ever exported.

Access requires an API key, which we issue to research projects on request — email us at hello@ephemeros.app with a short description of your project to request one. API access is governed by the Researcher Data Access Agreement (the researcher terms); the photos and metadata themselves are openly licensed CC BY 4.0.

Authentication

Send your key with every request in the X-Api-Key header. Keys are rate-limited per minute and may carry daily/monthly request quotas, an expiry date, and access restrictions (geographic areas, date ranges, data categories) agreed for your project. Call GET /api/export/v1/me at any time to see your key's exact scope, permissions, quota usage and expiry.

Formats and pagination

Responses are JSON by default. The list endpoints also accept format=csv and are paginated at 500 rows per page via the page parameter.

Endpoints

Endpoint Returns Parameters
GET /api/export/v1/spots Photo spots with location, type and photo counts viewport (sw_lat, sw_lng, ne_lat, ne_lng), spot_type_id / spot_type (slug), list_uuid, q, min_photo_count, created_from/created_to, format, page
GET /api/export/v1/photos Photos with capture metadata, weather and AI tags spot_uuid, viewport, captured_from/captured_to, spot_type_id / spot_type, ai_tag, ai_text, aligned, min_alignment_score, device_model, updated_after, variant=original|aligned|both, format, page
GET /api/export/v1/spots/{uuid}/timelapse The spot's timelapse video URL and generation time
GET /api/export/v1/spot-types Active spot types (id, slug, name) for use in filters
GET /api/export/v1/lists Public curated lists of spots, for corpus discovery page
GET /api/export/v1/me Your key's scope, permissions, quotas and usage, and expiry
GET /api/export/v1/dataset Queues a full-resolution ZIP of one spot's photo series; returns the export UUID spot_uuid (required), variant
GET /api/export/v1/dataset/{uuid} Status of a queued export, with a download URL once ready

Example

curl -H "X-Api-Key: eph_…" "https://ephemeros.app/api/export/v1/photos?captured_from=2026-01-01&format=csv"

Questions, an API key request, higher rate limits, or data needs not covered here? Email hello@ephemeros.app or get in touch via the contact form.