Exercises reference
Search the exercise catalogue for the exercise ids that log_workout and replace_workout take.
The DailyGoal API is not available on the Free plan. It works with a paid plan or during a free trial. See plans.
All operations require Pro or a trial. GET and DELETE take query parameters; other methods take a JSON body. The input table also includes any MCP-only idempotency_key argument; REST sends it as a header. See retrying creates. Example ids are synthetic; find your own with the search and list operations.
Operations
search_exercises: Search exercises
search_exercises
GET https://api.dailygoal.fit/v1/exercises
MCP tool search_exercises · Read-only · DailyGoal data only
Search the exercise catalogue by name or category and return exercise ids to use in log_workout and replace_workout. Give query, category or both. It returns no logged workouts; use list_workouts for those.
Input
| Field | Type | Description |
|---|---|---|
| queryoptional | string | Words in the exercise name, for example 'bench press'. |
| categoryoptional | "strength" | "cardio" | "flexibility" | "bodyweight" | |
| limitoptional | integer | Defaults to 20. |
Full input schema, including bounds and nested alternatives (MCP)
{
"type": "object",
"properties": {
"query": {
"type": "string",
"pattern": "\\S",
"description": "Words in the exercise name, for example 'bench press'."
},
"category": {
"type": "string",
"enum": [
"strength",
"cardio",
"flexibility",
"bodyweight"
]
},
"limit": {
"type": "integer",
"minimum": 1,
"maximum": 50,
"description": "Defaults to 20."
}
},
"additionalProperties": true
}Output
| Field | Type | Description |
|---|---|---|
| exercises | object[] | |
| exercises[].id | string | Exercise id to pass as exerciseId to log_workout or replace_workout. |
| exercises[].name | string | |
| exercises[].category | "strength" | "cardio" | "flexibility" | "bodyweight" | |
| exercises[].trackingType | string | What a set records, for example weight_reps, reps, distance_duration, duration or hold. |
| exercises[].muscleGroups | string[] | |
| exercises[].equipmentoptional | string |
Full output schema
{
"type": "object",
"properties": {
"exercises": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Exercise id to pass as exerciseId to log_workout or replace_workout."
},
"name": {
"type": "string"
},
"category": {
"type": "string",
"enum": [
"strength",
"cardio",
"flexibility",
"bodyweight"
]
},
"trackingType": {
"type": "string",
"description": "What a set records, for example weight_reps, reps, distance_duration, duration or hold."
},
"muscleGroups": {
"type": "array",
"items": {
"type": "string"
}
},
"equipment": {
"type": "string"
}
},
"required": [
"id",
"name",
"category",
"trackingType",
"muscleGroups"
],
"additionalProperties": true
}
}
},
"required": [
"exercises"
],
"additionalProperties": true
}Example request
curl "https://api.dailygoal.fit/v1/exercises?query=bench+press&category=strength&limit=2" \
-H "Authorization: Bearer $DAILYGOAL_API_TOKEN"{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "search_exercises",
"arguments": {
"query": "bench press",
"category": "strength",
"limit": 2
}
}
}Example response
Synthetic data. REST returns this object as the body; MCP returns it as structuredContent.
{
"exercises": [
{
"id": "jx71q4w7e0r3t6y9u2i5o8p1a4s7d0f3",
"name": "Barbell Bench Press",
"category": "strength",
"trackingType": "weight_reps",
"muscleGroups": [
"chest",
"triceps",
"shoulders"
],
"equipment": "barbell"
},
{
"id": "jx72w5e8r1t4y7u0i3o6p9a2s5d8f1g4",
"name": "Dumbbell Bench Press",
"category": "strength",
"trackingType": "weight_reps",
"muscleGroups": [
"chest",
"triceps",
"shoulders"
],
"equipment": "dumbbell"
}
]
}Errors
unauthorized(401)origin_not_allowed(403)misdirected_request(421)subscription_required(403)rate_limited(429)validation_failed(400)internal_error(500)