DailyGoal API
Scripts, dashboards and AI agents can read and change your own DailyGoal data. The REST API and the remote MCP server are built from one definition, so they offer the same operations with the same inputs, outputs and errors.
The DailyGoal API is not available on the Free plan. It works with a paid plan or during a free trial. See plans.
Endpoints
- REST base URL:
https://api.dailygoal.fit/v1 - MCP server:
https://api.dailygoal.fit/v1/mcp, stateless streamable HTTP with JSON responses - OpenAPI 3.1 spec: https://api.dailygoal.fit/v1/openapi.json
- Agent-readable guide: https://api.dailygoal.fit/v1/llms.txt
Your first request
Create an API token in your DailyGoal settings, then ask for your context. Every agent should make this call first: it returns today's Activity Day, your timezone and your preferred units, so writes land on the right day in the right units.
curl "https://api.dailygoal.fit/v1/me" \
-H "Authorization: Bearer $DAILYGOAL_API_TOKEN"Operations available today
The reference lists all 47 operations in the shipped catalogue.
get_context(GET /v1/me): Get contextget_profile_settings(GET /v1/profile): Get profile settingsupdate_profile_settings(PATCH /v1/profile): Update profile settingslist_body_metrics(GET /v1/body-metrics): List body metricsset_body_metrics(PUT /v1/body-metrics): Set body metricsdelete_body_metric(DELETE /v1/body-metrics): Delete body metriclist_water(GET /v1/water): List waterset_water(PUT /v1/water): Set waterdelete_water(DELETE /v1/water): Delete watersearch_foods(GET /v1/foods): Search foodslist_food_entries(GET /v1/food-entries): List food entrieslog_food_entry(POST /v1/food-entries): Log food entryupdate_food_entry(PATCH /v1/food-entries): Update food entrydelete_food_entry(DELETE /v1/food-entries): Delete food entryget_daily_nutrition(GET /v1/nutrition): Get daily nutritionsave_custom_food(POST /v1/custom-foods): Save custom fooddelete_custom_food(DELETE /v1/custom-foods): Delete custom foodlist_favorite_foods(GET /v1/favorite-foods): List favourite foodsset_favorite_food(PUT /v1/favorite-foods): Set favourite foodlist_recent_foods(GET /v1/recent-foods): List recent foodsget_saved_meal(GET /v1/saved-meals): Get saved mealsave_saved_meal(POST /v1/saved-meals): Save saved mealdelete_saved_meal(DELETE /v1/saved-meals): Delete saved mealsearch_exercises(GET /v1/exercises): Search exerciseslist_workouts(GET /v1/workouts): List workoutsget_workout(GET /v1/workouts/detail): Get workoutlog_workout(POST /v1/workouts): Log workoutreplace_workout(PUT /v1/workouts): Replace workoutdelete_workout(DELETE /v1/workouts): Delete workoutlist_workout_templates(GET /v1/workout-templates): List workout templatesget_workout_template(GET /v1/workout-templates/detail): Get workout templatesave_workout_template(POST /v1/workout-templates): Save workout templatedelete_workout_template(DELETE /v1/workout-templates): Delete workout templatelist_workout_presets(GET /v1/workout-presets): List workout presetslist_gym_profiles(GET /v1/gym-profiles): List gym profilessave_gym_profile(POST /v1/gym-profiles): Save gym profileset_default_gym_profile(PUT /v1/gym-profiles/default): Set default gym profiledelete_gym_profile(DELETE /v1/gym-profiles): Delete gym profilelist_goals(GET /v1/goal-templates): List goalssave_goal(POST /v1/goal-templates): Save goaldelete_goal(DELETE /v1/goal-templates): Delete goalget_daily_goals(GET /v1/daily-goals): Get daily goalsset_goal_progress(PUT /v1/daily-goals): Set goal progressget_streak(GET /v1/progress/streak): Get streaklist_badges(GET /v1/progress/badges): List badgesget_strength_progress(GET /v1/progress/strength): Get strength progressget_recent_focus(GET /v1/progress/recent-focus): Get recent focus
Guides
- MCP quickstart: connect an MCP client with OAuth or an API token, with each client's verification status.
- Authentication: API tokens, connected apps, paid access and rate limits.
- Errors: every error code and what to do next.
MCP behavior and annotations
DailyGoal exposes tools only, with no MCP resources, prompts or widgets. Send a single JSON-RPC message per POST. The server returns JSON, uses no session id and offers no event stream; GET and DELETE on the MCP URL return 405. Every protocol request needs a valid credential. Paid access and request limits apply to tool calls.
Each tool's readOnlyHint says whether it leaves domain data unchanged. destructiveHint marks operations that may delete or overwrite data, including save tools that can replace an existing item. openWorldHint: false means the tool operates on DailyGoal data rather than arbitrary outside systems. These hints describe behavior; they do not grant permission or replace your client's confirmation controls.
Versioning
/v1 only takes additive changes. A breaking change ships as /v2, announced on this page at least six months before /v1 changes. For MCP, renaming a tool or adding a required input counts as a breaking change.
Your data and your terms
A program you connect acts on your account and receives the data it asks for. The Privacy Policy explains what connected programs receive, and the Terms of Use cover your responsibility for tokens and apps you set up.