{
  "name": "AI Fitness API (aifitnessapi.com)",
  "apiVersion": "v1",
  "self": "https://aifitnessapi.com/api/v1",
  "description": "Read-only JSON over the datasets aifitnessapi.com publishes: every response is a static file built from the CC BY 4.0 downloads at /datasets, and carries its source page, licence and verification date. No key, no writes, no user data.",
  "source": "https://aifitnessapi.com/datasets",
  "docs": "https://aifitnessapi.com/developers",
  "openapi": "https://aifitnessapi.com/api/v1/openapi.json",
  "license": "CC-BY-4.0",
  "licenseUrl": "https://creativecommons.org/licenses/by/4.0/",
  "attribution": "aifitnessapi.com",
  "verified": {
    "date": "2026-07-23",
    "meaning": "The oldest verified date across the collections. Each collection, and each item, states its own and what it means."
  },
  "rules": [
    "Answers come only from verified data: every value is copied from a published dataset row, and each row links the page carrying its sourced claim.",
    "null means the source does not state it or it could not be verified. It never means zero, and it is never a guess.",
    "Collections are served whole; the largest is a few hundred rows, so there is no pagination.",
    "Item ids are case-sensitive and come from the data itself (an identifier, a class name, a row's anchor on its page, a change's date and title, or two fields joined by a dot), so an id lasts as long as its row; an unknown id returns HTTP 404."
  ],
  "mcp": {
    "url": "https://aifitnessapi.com/mcp",
    "transport": "streamable-http",
    "tools": [
      {
        "name": "healthkit_type",
        "description": "Look up any Apple HealthKit identifier across all four families: HKQuantityTypeIdentifier (numeric samples), HKCategoryTypeIdentifier (enum-valued samples such as sleep analysis), HKCharacteristicTypeIdentifier (read-only user facts) and HKWorkoutActivityType. Returns the Swift case and Objective-C constant, what it measures, the platform versions, and the family-specific detail that matters: for quantity types whether it is CUMULATIVE (sum with .cumulativeSum) or DISCRETE (average with .discreteAverage), and for category types the HKCategoryValue enum that decodes the sample. Use this before writing any HKStatisticsQuery — picking the wrong aggregation returns a plausible wrong number rather than an error. Accepts a case name like 'stepCount' or 'sleepAnalysis', an Objective-C constant, or a search term like 'energy'."
      },
      {
        "name": "health_data_cross_platform",
        "description": "Map a health metric between Apple HealthKit and Android Health Connect. Returns the type identifier on each platform plus the cross-platform gotcha where one exists — for example Apple stores HRV as SDNN while Health Connect stores RMSSD, which are different calculations and must not be normalised into a single field. Use this when building anything that must work on both platforms."
      },
      {
        "name": "fitness_api_changes",
        "description": "Dated deprecations, turndowns and term changes across the fitness-API ecosystem (Fitbit, Google Fit, Oura, Garmin and others). Each entry is graded: 'confirmed' means a vendor's own words are quoted on the source page, 'reported' means the claim could not be confirmed on an official page. Date precision is preserved exactly as sourced — '2026-09' means a reported month, not a specific day."
      },
      {
        "name": "fitness_api_glossary",
        "description": "Define a term from the fitness and health API domain — SDNN, RMSSD, pose estimation, aggregator, on-device store and similar. Returns the definition and the canonical page explaining it."
      }
    ]
  },
  "collections": [
    {
      "title": "API directory",
      "url": "https://aifitnessapi.com/api/v1/apis",
      "itemUrl": "https://aifitnessapi.com/api/v1/apis/{id}",
      "key": "id",
      "count": 24,
      "dataset": "fitness-apis-2026",
      "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."
      }
    },
    {
      "title": "HealthKit type identifiers",
      "url": "https://aifitnessapi.com/api/v1/healthkit/types",
      "itemUrl": "https://aifitnessapi.com/api/v1/healthkit/types/{identifier}",
      "key": "identifier",
      "count": 241,
      "dataset": "healthkit-type-identifiers-2026",
      "source": "https://aifitnessapi.com/healthkit-identifiers",
      "verified": {
        "date": "2026-10-02",
        "meaning": "The date the generator read Apple's HealthKit documentation JSON (https://developer.apple.com/documentation/healthkit) for every row: the dataset's sourceReadOn."
      }
    },
    {
      "title": "HealthKit metadata keys",
      "url": "https://aifitnessapi.com/api/v1/healthkit/metadata-keys",
      "itemUrl": "https://aifitnessapi.com/api/v1/healthkit/metadata-keys/{swiftName}",
      "key": "swiftName",
      "count": 67,
      "dataset": "healthkit-metadata-keys-2026",
      "source": "https://aifitnessapi.com/healthkit-metadata-keys",
      "verified": {
        "date": "2026-10-04",
        "meaning": "The date the generator read Apple's Metadata Keys documentation JSON (https://developer.apple.com/documentation/healthkit/metadata-keys) for every row: the dataset's sourceReadOn."
      }
    },
    {
      "title": "Health Connect record types",
      "url": "https://aifitnessapi.com/api/v1/health-connect/records",
      "itemUrl": "https://aifitnessapi.com/api/v1/health-connect/records/{className}",
      "key": "className",
      "count": 42,
      "dataset": "health-connect-records-2026",
      "source": "https://aifitnessapi.com/health-connect",
      "verified": {
        "date": "2026-10-03",
        "meaning": "The date the generator read Google's Health Connect data-types table and Jetpack reference (https://developer.android.com/health-and-fitness/health-connect/data-types) for every row: the dataset's sourceReadOn."
      }
    },
    {
      "title": "Health Connect permission strings",
      "url": "https://aifitnessapi.com/api/v1/health-connect/permissions",
      "itemUrl": "https://aifitnessapi.com/api/v1/health-connect/permissions/{constant}",
      "key": "constant",
      "count": 219,
      "dataset": "health-connect-permissions-2026",
      "source": "https://aifitnessapi.com/health-connect/permissions",
      "verified": {
        "date": "2026-10-03",
        "meaning": "The date the generator read Android's HealthPermissions reference (https://developer.android.com/reference/android/health/connect/HealthPermissions) for every row: the dataset's sourceReadOn."
      }
    },
    {
      "title": "Wear OS Health Services data types",
      "url": "https://aifitnessapi.com/api/v1/wear-os/data-types",
      "itemUrl": "https://aifitnessapi.com/api/v1/wear-os/data-types/{name}",
      "key": "name",
      "count": 65,
      "dataset": "wear-os-health-services-data-types-2026",
      "source": "https://aifitnessapi.com/wear-os-data-types",
      "verified": {
        "date": "2026-10-04",
        "meaning": "The date the generator read Google's Jetpack DataType reference and Health Services permissions guide (https://developer.android.com/reference/kotlin/androidx/health/services/client/data/DataType) for every row: the dataset's sourceReadOn."
      }
    },
    {
      "title": "HealthKit to Health Connect type matrix",
      "url": "https://aifitnessapi.com/api/v1/matrix",
      "itemUrl": "https://aifitnessapi.com/api/v1/matrix/{id}",
      "key": "id",
      "count": 10,
      "dataset": "health-data-type-matrix-2026",
      "source": "https://aifitnessapi.com/matrix",
      "verified": {
        "date": "2026-07-26",
        "meaning": "The review date of https://aifitnessapi.com/matrix, the page that carries these rows and their sources."
      }
    },
    {
      "title": "Dated ecosystem changes",
      "url": "https://aifitnessapi.com/api/v1/changes",
      "itemUrl": "https://aifitnessapi.com/api/v1/changes/{id}",
      "key": "id",
      "count": 19,
      "dataset": "fitness-api-changes-2026",
      "source": "https://aifitnessapi.com/changes",
      "verified": {
        "date": "2026-07-31",
        "meaning": "The oldest verifiedOn among the rows: every entry was last checked against its source page on or after this date. Each row carries its own verifiedOn."
      }
    },
    {
      "title": "Fitness and health API glossary",
      "url": "https://aifitnessapi.com/api/v1/glossary",
      "itemUrl": "https://aifitnessapi.com/api/v1/glossary/{slug}",
      "key": "slug",
      "count": 45,
      "dataset": "fitness-api-glossary-2026",
      "source": "https://aifitnessapi.com/glossary",
      "verified": {
        "date": "2026-07-31",
        "meaning": "The review date of https://aifitnessapi.com/glossary, the page that publishes these definitions."
      }
    },
    {
      "title": "Google Health API data types",
      "url": "https://aifitnessapi.com/api/v1/google-health-api/data-types",
      "itemUrl": "https://aifitnessapi.com/api/v1/google-health-api/data-types/{dataType}",
      "key": "dataType",
      "count": 44,
      "dataset": "google-health-api-data-types-2026",
      "source": "https://aifitnessapi.com/google-health-api",
      "verified": {
        "date": "2026-10-17",
        "meaning": "The date the generator read Google's Google Health API data-types table and the v4 discovery document (https://developers.google.com/health/data-types) for every row: the dataset's sourceReadOn."
      }
    },
    {
      "title": "Bluetooth fitness GATT characteristic fields",
      "url": "https://aifitnessapi.com/api/v1/bluetooth/gatt-fields",
      "itemUrl": "https://aifitnessapi.com/api/v1/bluetooth/gatt-fields/{id}",
      "key": "id",
      "count": 378,
      "dataset": "bluetooth-fitness-gatt-2026",
      "source": "https://aifitnessapi.com/bluetooth-fitness",
      "verified": {
        "date": "2026-10-17",
        "meaning": "The date the generator read the Bluetooth SIG's public repository (https://bitbucket.org/bluetooth-SIG/public) for every row: the dataset's sourceReadOn."
      }
    },
    {
      "title": "Health and fitness MCP servers",
      "url": "https://aifitnessapi.com/api/v1/mcp-servers",
      "itemUrl": "https://aifitnessapi.com/api/v1/mcp-servers/{id}",
      "key": "id",
      "count": 176,
      "dataset": "health-mcp-servers-2026",
      "source": "https://aifitnessapi.com/health-mcp-servers",
      "verified": {
        "date": "2026-10-17",
        "meaning": "The date the generator read the official MCP Registry listing (https://registry.modelcontextprotocol.io/v0.1/servers) for every row: the dataset's sourceReadOn."
      }
    },
    {
      "title": "Pose-estimation keypoint maps",
      "url": "https://aifitnessapi.com/api/v1/pose/keypoints",
      "itemUrl": "https://aifitnessapi.com/api/v1/pose/keypoints/{id}",
      "key": "id",
      "count": 321,
      "dataset": "pose-keypoint-maps-2026",
      "source": "https://aifitnessapi.com/pose-keypoints",
      "verified": {
        "date": "2026-10-17",
        "meaning": "The date the generator read each scheme's own source file or documentation page (19 sources, listed in the dataset's isBasedOn) for every row: the dataset's sourceReadOn."
      }
    }
  ]
}