API reference

Public, read-focused API for OneMoreDay. Every request is scoped to the authenticated user; the API never returns another user's data or platform content libraries. The mobile app is the source of truth for writes; this surface is designed for reading your own progress (profile/HP, goals, workouts, territory, badges, challenges, summaries). Per-user API keys and a hosted MCP server are rolling out — see https://onemoreday.fit/developers.

Base URL: https://onemoreday-api.onrender.com/api
Auth: Authorization: Bearer <token> (Supabase session JWT). Per-user API keys are planned.
Machine contract: /openapi.json

This reference is generated from the same OpenAPI document served at /openapi.json. Every endpoint is scoped to the authenticated user and never returns other users' data.

Example request

curl -H "Authorization: Bearer $OMD_TOKEN" \
  https://onemoreday-api.onrender.com/api/auth/me

health

MethodPathSummaryAuth
GET/healthzHealth checkPublic

auth

MethodPathSummaryAuth
GET/auth/meGet the current user's profileBearer
POST/auth/loginLog in with email and passwordPublic

profile

MethodPathSummaryAuth
GET/profile/weekly-summaryGet the current user's weekly summaryBearer

goals

MethodPathSummaryAuth
GET/goalsList the current user's goalsBearer
GET/goals/{id}Get a single goal by idBearer
GET/goals/xp-historyGet the current user's XP history from goal completionsBearer

game

MethodPathSummaryAuth
GET/game/stateGet the current avatar game state (HP, level, coins, etc.)Bearer

territory

MethodPathSummaryAuth
GET/territory/meGet the current user's captured territory as GeoJSONBearer
GET/territory/mapGet territories within a bounding box as GeoJSONBearer
GET/territory/leaderboardGet the territory leaderboard with the caller's rankBearer
GET/territory/statsGet the current user's territory statisticsBearer
GET/territory/runs/historyGet the current user's paginated run historyBearer

badges

MethodPathSummaryAuth
GET/badges/meGet the current user's earned badgesBearer
GET/badges/allGet all available badgesBearer

waitlist

MethodPathSummaryAuth
POST/waitlistJoin the waitlistPublic