{"name":"PostHealth Personal Health API","version":"v1","baseUrl":"https://api.posthealth.dev/api/v1","authentication":"Authorization: Bearer <personal-api-key>","readOnlyData":false,"sourceDataReadOnly":true,"resources":{"profile":"GET /api/v1/profile","healthResource":"GET /api/v1/health-resources?resource=pairedDevices","backfill":"GET|POST /api/v1/backfill","dataTypes":"GET /api/v1/data-types","dataPoints":"GET /api/v1/data-points?type=steps&start=...&end=...","daily":"GET /api/v1/daily?days=30&types=steps,sleep,weight&page=1&per_page=100","exportJobs":"POST|GET /api/export/jobs and GET|DELETE /api/export/jobs/{id}","dailySummary":"GET /api/v1/daily-summary?date=YYYY-MM-DD&types=activity,heart,sleep,body,metabolic,workouts","glucose":"GET /api/v1/glucose?days=30&selected_date=YYYY-MM-DD","glucoseReadings":"GET /api/v1/glucose/readings?start=...&end=...&page=1&per_page=200","ask":"POST /api/v1/ask","context":"GET /api/v1/context?days=30","summary":"GET /api/v1/summary?days=30","controlCenter":"GET /api/v1/control-center?days=30","dataQuality":"GET /api/v1/data-quality?days=30","connection":"GET /api/v1/connection","timeline":"GET /api/v1/timeline?start=...&end=...","sleep":"GET /api/v1/sleep?days=30","recovery":"GET /api/v1/recovery?days=30","body":"GET /api/v1/body?days=90","compare":"GET /api/v1/compare?days=30&types=steps,weight","workouts":"GET /api/v1/workouts?days=30","nutrition":"GET /api/v1/nutrition?days=30","correlation":"GET /api/v1/correlation?x=steps&y=sleep","workoutLogs":"GET|POST /api/v1/workout-logs","workoutLog":"GET|PATCH|DELETE /api/v1/workout-logs/{id}","workoutImport":"POST /api/v1/workout-logs/import","workoutMedia":"POST|GET|DELETE /api/v1/workout-media/{id}","unifiedWorkouts":"GET /api/v1/workouts/unified","muscleGroups":"GET /api/v1/training/muscle-groups/usage","trainingAnalytics":"GET /api/v1/training/analytics?days=90","exerciseReview":"GET|PATCH /api/v1/training/exercises/review/{exercise_key}","sync":"GET|POST /api/v1/sync","publicProfile":"GET|PUT /api/public-profile (signed-in session)","publicProfileView":"GET /{slug} (opt-in public Fitbit view)","dashboardTrainingLog":"GET|POST /api/training-logs (signed-in session)","usage":"GET /api/usage"},"conventions":{"defaultSource":"FITBIT","defaultSourceBoundary":"FITBIT plus GOOGLE_HEALTH_ROLLUP; use source=all for other cached platforms","cursorPagination":true,"pagePagination":"page/per_page accepted on list resources; per_page max 200","metadata":"include=metadata (type-specific source metadata; raw payloads remain separate)","rawPayloads":"include=raw","processing":"daily summaries are deterministic and labeled with their aggregation rule","writes":"workout-log writes require an API key with workout:write; Google Health writes remain explicit app-session operations","rateLimit":"120 requests per minute per API key"}}