{
  "apiVersion": "v1",
  "self": "https://aifitnessapi.com/api/v1/apis",
  "title": "API directory",
  "description": "One row per product in the directory at /apis: how the vendor bills developers, what each end user must own or pay for, and what approval gates a launch, each quoted from the linked source page. No prices, by design.",
  "source": "https://aifitnessapi.com/apis",
  "verified": {
    "date": "2026-07-23",
    "meaning": "Each row's facts are quoted from its source page; this is the oldest of those pages' last-verified dates. Every row carries its own as sourceLastVerified."
  },
  "license": "CC-BY-4.0",
  "licenseUrl": "https://creativecommons.org/licenses/by/4.0/",
  "attribution": "aifitnessapi.com",
  "citeAs": "AIFitnessAPI, \"State of Fitness APIs 2026,\" version 2026.1, aifitnessapi.com, https://aifitnessapi.com/datasets/fitness-apis-2026.json",
  "dataset": {
    "slug": "fitness-apis-2026",
    "name": "State of Fitness APIs 2026",
    "version": "2026.1",
    "json": "https://aifitnessapi.com/datasets/fitness-apis-2026.json",
    "csv": "https://aifitnessapi.com/datasets/fitness-apis-2026.csv"
  },
  "methodology": "Every field verified against vendor primary sources (developer docs, public repos, registries) by aifitnessapi.com during 2026 and published with per-item provenance on the linked pages. Fields that could not be verified are null — never guessed. No dollar figures by design: prices are volatile; structures are stable.",
  "key": "id",
  "itemUrl": "https://aifitnessapi.com/api/v1/apis/{id}",
  "count": 24,
  "excluded": [
    {
      "id": "llm-apis",
      "reason": "A category, not a product: it stands for whichever LLM vendor you use, so the directory gives it no page. It stays in the dataset download."
    }
  ],
  "fields": {
    "id": "Product id, also the slug of the product's directory page (/apis/<id>)",
    "label": "The product as the directory names it",
    "category": "Directory category: wearable-direct, aggregator, platform-store, nutrition, exercise-content, motion-sdk or pose-model",
    "devCost": "How the vendor bills developers: free | free-tier-then-paid | usage-based | contact-sales",
    "userSideCost": "What each end user must own or pay for before data flows (null = none documented)",
    "approvalGate": "Review/approval gating launch (null = none documented)",
    "source": "aifitnessapi.com page carrying the verified claims",
    "page": "The product's page in the aifitnessapi.com directory",
    "sourceLastVerified": "When the source page was last verified; null where the source is not a dated page"
  },
  "items": [
    {
      "id": "fitbit",
      "label": "Fitbit Web API (Google)",
      "category": "wearable-direct",
      "devCost": "free",
      "userSideCost": "Each user must own a Fitbit device and account.",
      "approvalGate": "Developer app registration; access to other users' intraday data is case-by-case (verify).",
      "source": "https://aifitnessapi.com/pricing/fitbit-api-pricing",
      "page": "https://aifitnessapi.com/apis/fitbit",
      "sourceLastVerified": "2026-07-23"
    },
    {
      "id": "garmin",
      "label": "Garmin Health / Activity API",
      "category": "wearable-direct",
      "devCost": "free",
      "userSideCost": "Users sync their own Garmin devices; if you want to offer Garmin wearables, Garmin asks you to contact it through its inquiry form when you request the program.",
      "approvalGate": "Garmin Connect Developer Program approval, as Starter or Enterprise Access; Garmin's pages state no review time.",
      "source": "https://aifitnessapi.com/pricing/garmin-api-pricing",
      "page": "https://aifitnessapi.com/apis/garmin",
      "sourceLastVerified": "2026-10-22"
    },
    {
      "id": "oura",
      "label": "Oura Cloud API",
      "category": "wearable-direct",
      "devCost": "free",
      "userSideCost": "Each user needs an Oura Ring and an active Oura Membership; the API returns 403 when a user's subscription has expired.",
      "approvalGate": "A new API application is limited to 10 users until Oura approves it, with no limit once approved.",
      "source": "https://aifitnessapi.com/pricing/oura-api-pricing",
      "page": "https://aifitnessapi.com/apis/oura",
      "sourceLastVerified": "2026-10-17"
    },
    {
      "id": "whoop",
      "label": "WHOOP Developer Platform",
      "category": "wearable-direct",
      "devCost": "free",
      "userSideCost": "Users authorize your app with their own WHOOP accounts, so they are WHOOP members already.",
      "approvalGate": "New apps start on a Sandbox tier of 10 members and move up through reviewed tiers of 100, 1,000, 5,000 and unlimited; developers need a WHOOP membership to build.",
      "source": "https://aifitnessapi.com/pricing/whoop-api-pricing",
      "page": "https://aifitnessapi.com/apis/whoop",
      "sourceLastVerified": "2026-10-17"
    },
    {
      "id": "strava",
      "label": "Strava API",
      "category": "wearable-direct",
      "devCost": "free",
      "userSideCost": "A Strava account whose data your app reads, authorized by the athlete; Standard Tier apps may require specified end users to hold an active Strava subscription.",
      "approvalGate": "A Strava subscription is a prerequisite for creating an app, which starts in single-player mode; a self-service upgrade raises its athlete capacity to 10, and connecting more than 10 needs Strava's review.",
      "source": "https://aifitnessapi.com/pricing/strava-api-pricing",
      "page": "https://aifitnessapi.com/apis/strava",
      "sourceLastVerified": "2026-10-17"
    },
    {
      "id": "polar",
      "label": "Polar Open AccessLink",
      "category": "wearable-direct",
      "devCost": "free",
      "userSideCost": "Each user needs a Polar Flow account and must accept all of Polar's mandatory consents; without them, user endpoints return 403.",
      "approvalGate": null,
      "source": "https://aifitnessapi.com/integrate/polar-api",
      "page": "https://aifitnessapi.com/apis/polar",
      "sourceLastVerified": "2026-10-17"
    },
    {
      "id": "healthkit",
      "label": "Apple HealthKit",
      "category": "platform-store",
      "devCost": "free",
      "userSideCost": null,
      "approvalGate": "App Store review checks that your health usage-description strings match what you actually do.",
      "source": "https://aifitnessapi.com/fitness-apis/apple-healthkit-vs-google-health-connect",
      "page": "https://aifitnessapi.com/apis/healthkit",
      "sourceLastVerified": "2026-10-02"
    },
    {
      "id": "health-connect",
      "label": "Google Health Connect",
      "category": "platform-store",
      "devCost": "free",
      "userSideCost": null,
      "approvalGate": "Play Console health-data declaration and review before you can publish.",
      "source": "https://aifitnessapi.com/fitness-apis/apple-healthkit-vs-google-health-connect",
      "page": "https://aifitnessapi.com/apis/health-connect",
      "sourceLastVerified": "2026-10-02"
    },
    {
      "id": "terra",
      "label": "Terra",
      "category": "aggregator",
      "devCost": "usage-based",
      "userSideCost": null,
      "approvalGate": "Some providers need a special setup process first; Terra's docs name WHOOP, Dexcom, Huawei, Strava and Virtuagym.",
      "source": "https://aifitnessapi.com/fitness-apis/terra-vs-vital",
      "page": "https://aifitnessapi.com/apis/terra",
      "sourceLastVerified": "2026-10-17"
    },
    {
      "id": "junction",
      "label": "Junction (formerly Vital)",
      "category": "aggregator",
      "devCost": "usage-based",
      "userSideCost": null,
      "approvalGate": null,
      "source": "https://aifitnessapi.com/fitness-apis/terra-vs-vital",
      "page": "https://aifitnessapi.com/apis/junction",
      "sourceLastVerified": "2026-10-17"
    },
    {
      "id": "rook",
      "label": "Rook",
      "category": "aggregator",
      "devCost": "usage-based",
      "userSideCost": null,
      "approvalGate": "Dexcom, Samsung Health, Strava and WHOOP need your own developer accounts, which Rook says can take several weeks.",
      "source": "https://aifitnessapi.com/pricing/health-data-aggregator-pricing",
      "page": "https://aifitnessapi.com/apis/rook",
      "sourceLastVerified": "2026-10-17"
    },
    {
      "id": "spike",
      "label": "Spike",
      "category": "aggregator",
      "devCost": "usage-based",
      "userSideCost": null,
      "approvalGate": "Sales-assisted onboarding: every plan is bought through a demo call, with a dedicated implementation engineer from sandbox.",
      "source": "https://aifitnessapi.com/fitness-apis/health-data-aggregator-apis",
      "page": "https://aifitnessapi.com/apis/spike",
      "sourceLastVerified": "2026-10-17"
    },
    {
      "id": "nutritionix",
      "label": "Nutritionix",
      "category": "nutrition",
      "devCost": "free-tier-then-paid",
      "userSideCost": null,
      "approvalGate": "Higher tiers are gated through a Syndigo sales contact rather than a self-serve checkout.",
      "source": "https://aifitnessapi.com/pricing/nutrition-api-pricing",
      "page": "https://aifitnessapi.com/apis/nutritionix",
      "sourceLastVerified": "2026-07-23"
    },
    {
      "id": "edamam",
      "label": "Edamam",
      "category": "nutrition",
      "devCost": "free-tier-then-paid",
      "userSideCost": null,
      "approvalGate": null,
      "source": "https://aifitnessapi.com/pricing/nutrition-api-pricing",
      "page": "https://aifitnessapi.com/apis/edamam",
      "sourceLastVerified": "2026-07-23"
    },
    {
      "id": "usda-fdc",
      "label": "USDA FoodData Central",
      "category": "nutrition",
      "devCost": "free",
      "userSideCost": null,
      "approvalGate": null,
      "source": "https://aifitnessapi.com/pricing/nutrition-api-pricing",
      "page": "https://aifitnessapi.com/apis/usda-fdc",
      "sourceLastVerified": "2026-07-23"
    },
    {
      "id": "open-food-facts",
      "label": "Open Food Facts",
      "category": "nutrition",
      "devCost": "free",
      "userSideCost": null,
      "approvalGate": null,
      "source": "https://aifitnessapi.com/pricing/nutrition-api-pricing",
      "page": "https://aifitnessapi.com/apis/open-food-facts",
      "sourceLastVerified": "2026-07-23"
    },
    {
      "id": "exercisedb",
      "label": "ExerciseDB (AscendAPI)",
      "category": "exercise-content",
      "devCost": "free-tier-then-paid",
      "userSideCost": null,
      "approvalGate": null,
      "source": "https://aifitnessapi.com/pricing/exercise-database-api-pricing",
      "page": "https://aifitnessapi.com/apis/exercisedb",
      "sourceLastVerified": "2026-10-22"
    },
    {
      "id": "wger",
      "label": "wger (self-hosted)",
      "category": "exercise-content",
      "devCost": "free",
      "userSideCost": null,
      "approvalGate": null,
      "source": "https://aifitnessapi.com/compare/exercisedb-vs-wger",
      "page": "https://aifitnessapi.com/apis/wger",
      "sourceLastVerified": "2026-10-22"
    },
    {
      "id": "kinestex",
      "label": "KinesteX",
      "category": "motion-sdk",
      "devCost": "contact-sales",
      "userSideCost": null,
      "approvalGate": "Access runs through a contact form and an issued API key — no self-serve signup.",
      "source": "https://aifitnessapi.com/compare/kinestex-vs-sency",
      "page": "https://aifitnessapi.com/apis/kinestex",
      "sourceLastVerified": "2026-10-18"
    },
    {
      "id": "sency",
      "label": "Sency (SMKit)",
      "category": "motion-sdk",
      "devCost": "usage-based",
      "userSideCost": null,
      "approvalGate": "Sign-up runs through a contact form that leads to a call, and Sency's Terms of Use put commercial or production use under a separate paid service agreement.",
      "source": "https://aifitnessapi.com/fitness-apis/ai-workout-tracking-apis",
      "page": "https://aifitnessapi.com/apis/sency",
      "sourceLastVerified": "2026-10-18"
    },
    {
      "id": "quickpose",
      "label": "QuickPose",
      "category": "motion-sdk",
      "devCost": "free-tier-then-paid",
      "userSideCost": null,
      "approvalGate": null,
      "source": "https://aifitnessapi.com/fitness-apis/ai-workout-tracking-apis",
      "page": "https://aifitnessapi.com/apis/quickpose",
      "sourceLastVerified": "2026-10-18"
    },
    {
      "id": "mediapipe",
      "label": "MediaPipe Pose Landmarker (BlazePose)",
      "category": "pose-model",
      "devCost": "free",
      "userSideCost": null,
      "approvalGate": null,
      "source": "https://aifitnessapi.com/compare/kinestex-vs-mediapipe",
      "page": "https://aifitnessapi.com/apis/mediapipe",
      "sourceLastVerified": "2026-10-18"
    },
    {
      "id": "movenet",
      "label": "TensorFlow MoveNet",
      "category": "pose-model",
      "devCost": "free",
      "userSideCost": null,
      "approvalGate": null,
      "source": "https://aifitnessapi.com/motion/pose-estimation-model-licenses",
      "page": "https://aifitnessapi.com/apis/movenet",
      "sourceLastVerified": "2026-10-12"
    },
    {
      "id": "apple-vision",
      "label": "Apple Vision body pose",
      "category": "pose-model",
      "devCost": "free",
      "userSideCost": null,
      "approvalGate": null,
      "source": "https://aifitnessapi.com/fitness-apis/ai-workout-tracking-apis",
      "page": "https://aifitnessapi.com/apis/apple-vision",
      "sourceLastVerified": "2026-10-18"
    }
  ]
}