Skip to content
GET /v1/random

Random exercise(s) by filter

Try it live

10 free calls per day — no sign-up, no API key. Goes through the oanor gateway.

Custom headers (optional)
api.oanor.com/exercises-api

It works. Grab an API key and use it in your project.

Get an API key

Code snippets

curl "https://api.oanor.com/exercises-api/v1/random" \
  -H "x-oanor-key: oanor_test_..."
await fetch("https://api.oanor.com/exercises-api/v1/random", {
  headers: { "x-oanor-key": "oanor_test_..." }
});
$ch = curl_init("https://api.oanor.com/exercises-api/v1/random");
curl_setopt($ch, CURLOPT_HTTPHEADER, ["x-oanor-key: oanor_test_..."]);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$out = curl_exec($ch);
import requests
requests.get(
    "https://api.oanor.com/exercises-api/v1/random",
    headers={"x-oanor-key": "oanor_test_..."}
)

Example response

A real response from this endpoint, captured by the latest health check.

{
    "data": {
        "count": 1,
        "filters": {
            "q": null,
            "force": null,
            "level": null,
            "muscle": null,
            "category": null,
            "mechanic": null,
            "equipment": null
        },
        "results": [
            {
                "id": "Dynamic_Chest_Stretch",
                "name": "Dynamic Chest Stretch",
                "force": "pull",
                "level": "beginner",
                "images": [
                    "https://raw.githubusercontent.com/yuhonas/free-exercise-db/main/exercises/Dynamic_Chest_Stretch/0.jpg",
                    "https://raw.githubusercontent.com/yuhonas/free-exercise-db/main/exercises/Dynamic_Chest_Stretch/1.jpg"
                ],
                "category": "stretching",
                "mechanic": null,
                "equipment": null,
                "instructions": [
                    "Stand with your hands together, arms extended directly in front of you. This will be your starting position.",
                    "Keeping your arms straight, quickly move your arms back as far as possible and back in again, similar to an exaggerated clapping motion. Repeat 5-10 times, increasing speed as you do so."
                ],
                "primaryMuscles": [
                    "chest"
                ],
                "secondaryMuscles": [
                    "middle back"
                ]
            }
        ]
    },
    "meta": {
        "timestamp": "2026-05-31T02:39:56.531Z",
        "request_id": "c4cc3cd0-9981-4f3b-b799-92477f3fb5f4"
    },
    "status": "ok",
    "message": "Random exercise retrieved",
    "success": true
}