{
  "name": "Fitness & Health API Glossary 2026",
  "version": "2026.1",
  "publisher": "AIFitnessAPI (aifitnessapi.com)",
  "license": "CC BY 4.0",
  "methodology": "The controlled vocabulary behind https://aifitnessapi.com/glossary, published as data. Each term has exactly one canonical explanation on this site — the href column — and one stable fragment id, so a machine reader can cite the definition it used rather than the top of a long page. The definitions are the site's own editorial definitions written against the vendor documentation cited on the linked pages, not quotations from a standards body. Groups are our sections, not an industry taxonomy.",
  "generatedFrom": "src/data/glossary.ts (generated by scripts/build-datasets.mjs)",
  "fields": {
    "term": "The term as it appears in the glossary",
    "definition": "The site's definition of the term",
    "group": "Glossary section the term belongs to",
    "href": "The canonical aifitnessapi.com page explaining this term",
    "anchor": "Stable fragment on /glossary, computed by termId() in the source module",
    "id": "Absolute, citable URL of the term entry (the JSON-LD DefinedTerm @id)"
  },
  "stats": {
    "totalItems": 33,
    "totalGroups": 6,
    "byGroup": {
      "Health data & metrics": 8,
      "Platforms & providers": 5,
      "Integration & auth": 5,
      "AI motion & camera": 5,
      "Architecture & data quality": 6,
      "Compliance & AI": 4
    }
  },
  "items": [
    {
      "term": "HRV (heart rate variability)",
      "definition": "Beat-to-beat variation in heart rhythm, used as a recovery signal — but not one number: Apple stores SDNN while Health Connect stores RMSSD, and the two are not interconvertible.",
      "group": "Health data & metrics",
      "href": "https://aifitnessapi.com/learn/what-is-hrv",
      "anchor": "#term-hrv",
      "id": "https://aifitnessapi.com/glossary#term-hrv"
    },
    {
      "term": "SDNN",
      "definition": "The HRV statistic Apple HealthKit stores — the standard deviation of intervals between normal heartbeats. Do not mix it with RMSSD in one column.",
      "group": "Health data & metrics",
      "href": "https://aifitnessapi.com/matrix",
      "anchor": "#term-sdnn",
      "id": "https://aifitnessapi.com/glossary#term-sdnn"
    },
    {
      "term": "RMSSD",
      "definition": "The HRV statistic Health Connect stores — the root mean square of successive interval differences. A different measure from SDNN, not a unit conversion away.",
      "group": "Health data & metrics",
      "href": "https://aifitnessapi.com/data/hrv-api",
      "anchor": "#term-rmssd",
      "id": "https://aifitnessapi.com/glossary#term-rmssd"
    },
    {
      "term": "VO2 max",
      "definition": "An estimate of aerobic capacity. On consumer devices it is modeled from heart rate and pace, not measured — treat it as a trend, not a lab value.",
      "group": "Health data & metrics",
      "href": "https://aifitnessapi.com/learn/what-is-vo2-max",
      "anchor": "#term-vo2-max",
      "id": "https://aifitnessapi.com/glossary#term-vo2-max"
    },
    {
      "term": "SpO2 (blood oxygen)",
      "definition": "Peripheral oxygen saturation from an optical sensor. A data type existing does not mean data will be there — it needs a device that measures it.",
      "group": "Health data & metrics",
      "href": "https://aifitnessapi.com/data/blood-oxygen-api",
      "anchor": "#term-spo2",
      "id": "https://aifitnessapi.com/glossary#term-spo2"
    },
    {
      "term": "Sleep stages",
      "definition": "Light, deep, REM and awake segments a device infers from movement and heart rate. Definitions and boundaries differ by vendor, so they do not compare one-to-one.",
      "group": "Health data & metrics",
      "href": "https://aifitnessapi.com/learn/what-are-sleep-stages",
      "anchor": "#term-sleep-stages",
      "id": "https://aifitnessapi.com/glossary#term-sleep-stages"
    },
    {
      "term": "Active vs total calories",
      "definition": "Active calories are the burn above rest; total adds basal metabolic rate. Providers disagree on which they report, which is a normalization trap.",
      "group": "Health data & metrics",
      "href": "https://aifitnessapi.com/learn/how-fitness-apps-estimate-calories",
      "anchor": "#term-active-vs-total-calories",
      "id": "https://aifitnessapi.com/glossary#term-active-vs-total-calories"
    },
    {
      "term": "Measured vs estimated",
      "definition": "Some metrics are sensed (steps, heart rate); others are modeled (VO2 max, calories, some sleep). Storing the distinction keeps you from presenting a guess as a reading.",
      "group": "Health data & metrics",
      "href": "https://aifitnessapi.com/data",
      "anchor": "#term-measured-vs-estimated",
      "id": "https://aifitnessapi.com/glossary#term-measured-vs-estimated"
    },
    {
      "term": "HealthKit",
      "definition": "Apple's on-device health store. Not a cloud API — there is no server endpoint; your app reads it locally with permission and syncs itself.",
      "group": "Platforms & providers",
      "href": "https://aifitnessapi.com/integrate/healthkit",
      "anchor": "#term-healthkit",
      "id": "https://aifitnessapi.com/glossary#term-healthkit"
    },
    {
      "term": "Health Connect",
      "definition": "Android's on-device health store — Google's counterpart to HealthKit. Also local-only, and it deduplicates only Activity and Sleep, via its aggregate API.",
      "group": "Platforms & providers",
      "href": "https://aifitnessapi.com/integrate/google-health-connect",
      "anchor": "#term-health-connect",
      "id": "https://aifitnessapi.com/glossary#term-health-connect"
    },
    {
      "term": "Health-data aggregator",
      "definition": "A third party (Terra, Rook, and others) that normalizes many wearable and health sources behind one API — often the right buy instead of building integrations yourself.",
      "group": "Platforms & providers",
      "href": "https://aifitnessapi.com/learn/what-is-a-health-data-aggregator",
      "anchor": "#term-health-data-aggregator",
      "id": "https://aifitnessapi.com/glossary#term-health-data-aggregator"
    },
    {
      "term": "Exercise database API",
      "definition": "A catalogue of exercises with metadata and media. Watch the licensing — some open options are AGPL copyleft, which matters for closed-source apps.",
      "group": "Platforms & providers",
      "href": "https://aifitnessapi.com/fitness-apis/exercise-database-apis",
      "anchor": "#term-exercise-database-api",
      "id": "https://aifitnessapi.com/glossary#term-exercise-database-api"
    },
    {
      "term": "Fitness API",
      "definition": "Any API a developer uses to get fitness or health data or content — wearables, aggregators, exercise or nutrition catalogues, or AI motion tracking. Choose by job.",
      "group": "Platforms & providers",
      "href": "https://aifitnessapi.com/learn/what-is-a-fitness-api",
      "anchor": "#term-fitness-api",
      "id": "https://aifitnessapi.com/glossary#term-fitness-api"
    },
    {
      "term": "OAuth (for health data)",
      "definition": "The delegated-access handshake that lets a user grant your app read access to their provider account without sharing a password. The token lifecycle is where it breaks in production.",
      "group": "Integration & auth",
      "href": "https://aifitnessapi.com/learn/what-is-oauth-for-health-data",
      "anchor": "#term-oauth",
      "id": "https://aifitnessapi.com/glossary#term-oauth"
    },
    {
      "term": "Webhook",
      "definition": "A provider-initiated callback telling you something changed. Most fitness webhooks are thin change-pointers, so the handler's job is usually to enqueue a fetch, not to trust the payload.",
      "group": "Integration & auth",
      "href": "https://aifitnessapi.com/learn/what-are-webhooks",
      "anchor": "#term-webhook",
      "id": "https://aifitnessapi.com/glossary#term-webhook"
    },
    {
      "term": "401 vs 403",
      "definition": "A 401 means your token is bad, missing, expired or revoked; a 403 means the token is valid but lacks the scope. They point at different fixes.",
      "group": "Integration & auth",
      "href": "https://aifitnessapi.com/fix/fitness-api-401-unauthorized",
      "anchor": "#term-401-vs-403",
      "id": "https://aifitnessapi.com/glossary#term-401-vs-403"
    },
    {
      "term": "Rate limit / 429",
      "definition": "A provider capping your request volume. 429 is defined in RFC 6585, where the Retry-After header is optional — so design to back off even when it is absent.",
      "group": "Integration & auth",
      "href": "https://aifitnessapi.com/fix/fitbit-api-429-rate-limit",
      "anchor": "#term-rate-limit-429",
      "id": "https://aifitnessapi.com/glossary#term-rate-limit-429"
    },
    {
      "term": "Refresh token rotation",
      "definition": "When a provider issues a new refresh token on every refresh. Lose the new one and the user is disconnected permanently — a case worth testing explicitly.",
      "group": "Integration & auth",
      "href": "https://aifitnessapi.com/fix/refresh-token-not-working",
      "anchor": "#term-refresh-token-rotation",
      "id": "https://aifitnessapi.com/glossary#term-refresh-token-rotation"
    },
    {
      "term": "Pose estimation",
      "definition": "Finding body keypoints in each camera frame. A normal RGB phone camera is enough for 2D and even monocular 3D — no depth sensor required.",
      "group": "AI motion & camera",
      "href": "https://aifitnessapi.com/learn/what-is-pose-estimation",
      "anchor": "#term-pose-estimation",
      "id": "https://aifitnessapi.com/glossary#term-pose-estimation"
    },
    {
      "term": "2D vs 3D pose",
      "definition": "2D gives pixel coordinates; monocular 3D adds an estimated depth that is less reliable for occluded and out-of-plane joints. Say which you need.",
      "group": "AI motion & camera",
      "href": "https://aifitnessapi.com/motion/2d-vs-3d-pose-estimation",
      "anchor": "#term-2d-vs-3d-pose",
      "id": "https://aifitnessapi.com/glossary#term-2d-vs-3d-pose"
    },
    {
      "term": "Rep counting",
      "definition": "Turning a keypoint stream into a count — a classification problem, tested with precision and recall against a labelled corpus, not a demo of ten push-ups.",
      "group": "AI motion & camera",
      "href": "https://aifitnessapi.com/motion/how-rep-counting-works",
      "anchor": "#term-rep-counting",
      "id": "https://aifitnessapi.com/glossary#term-rep-counting"
    },
    {
      "term": "Form feedback",
      "definition": "Comparing joint angles and range of motion to a target. A coaching aid, not medical or physical-therapy advice — a distinction worth stating in the product.",
      "group": "AI motion & camera",
      "href": "https://aifitnessapi.com/motion/how-form-feedback-works",
      "anchor": "#term-form-feedback",
      "id": "https://aifitnessapi.com/glossary#term-form-feedback"
    },
    {
      "term": "On-device vs cloud inference",
      "definition": "Running the model on the phone (low latency, private, no per-frame cost) versus in the cloud (heavier models, consistent, but latency and streaming-video privacy weight).",
      "group": "AI motion & camera",
      "href": "https://aifitnessapi.com/motion/on-device-vs-cloud-pose-estimation",
      "anchor": "#term-on-device-vs-cloud-inference",
      "id": "https://aifitnessapi.com/glossary#term-on-device-vs-cloud-inference"
    },
    {
      "term": "Deduplication",
      "definition": "Resolving the same activity written by several apps or devices. Neither platform does it for raw reads the way people assume — it is a resolution layer you design.",
      "group": "Architecture & data quality",
      "href": "https://aifitnessapi.com/architecture/deduplicate-health-data",
      "anchor": "#term-deduplication",
      "id": "https://aifitnessapi.com/glossary#term-deduplication"
    },
    {
      "term": "Day boundary problem",
      "definition": "“Today's steps” is a civil-date question, not a UTC range. DST days aren't 24 hours, so a fixed window silently drops or double-counts an hour twice a year.",
      "group": "Architecture & data quality",
      "href": "https://aifitnessapi.com/day-boundaries",
      "anchor": "#term-day-boundary-problem",
      "id": "https://aifitnessapi.com/glossary#term-day-boundary-problem"
    },
    {
      "term": "Late-arriving data",
      "definition": "Health samples are not append-only — a watch syncs hours late, a user edits yesterday, a provider revises last night's sleep. Any total computed once and considered final will be wrong.",
      "group": "Architecture & data quality",
      "href": "https://aifitnessapi.com/architecture/incremental-sync",
      "anchor": "#term-late-arriving-data",
      "id": "https://aifitnessapi.com/glossary#term-late-arriving-data"
    },
    {
      "term": "Idempotent ingestion",
      "definition": "Making a duplicated event a no-op. In health data a doubly-processed event silently doubles a user's calories rather than throwing, so the dedupe key is load-bearing.",
      "group": "Architecture & data quality",
      "href": "https://aifitnessapi.com/architecture/webhook-ingestion",
      "anchor": "#term-idempotent-ingestion",
      "id": "https://aifitnessapi.com/glossary#term-idempotent-ingestion"
    },
    {
      "term": "Backfill",
      "definition": "Importing a user's history as a budgeted, resumable job — recent-first so the app is useful immediately, and chunked so a crash resumes rather than restarts.",
      "group": "Architecture & data quality",
      "href": "https://aifitnessapi.com/architecture/historical-backfill",
      "anchor": "#term-backfill",
      "id": "https://aifitnessapi.com/glossary#term-backfill"
    },
    {
      "term": "Metric versioning",
      "definition": "Recording which formula produced a derived value, so improving a calorie or readiness formula doesn't silently rewrite a user's history.",
      "group": "Architecture & data quality",
      "href": "https://aifitnessapi.com/architecture/metric-versioning-and-recompute",
      "anchor": "#term-metric-versioning",
      "id": "https://aifitnessapi.com/glossary#term-metric-versioning"
    },
    {
      "term": "PHI (protected health information)",
      "definition": "The HIPAA category. Whether your fitness data is PHI depends on who you are and who you share it with — a consumer app is often outside HIPAA entirely, but not always.",
      "group": "Compliance & AI",
      "href": "https://aifitnessapi.com/compliance/is-fitness-data-phi",
      "anchor": "#term-phi",
      "id": "https://aifitnessapi.com/glossary#term-phi"
    },
    {
      "term": "General wellness policy",
      "definition": "The FDA position that it does not intend to examine low-risk wellness products. There is no approval to claim — and diagnosis or treatment claims can push you out of it.",
      "group": "Compliance & AI",
      "href": "https://aifitnessapi.com/compliance/fda-fitness-app-regulation",
      "anchor": "#term-general-wellness-policy",
      "id": "https://aifitnessapi.com/glossary#term-general-wellness-policy"
    },
    {
      "term": "RAG / grounding",
      "definition": "Constraining an LLM to a vetted catalogue instead of free-generating. For a few-thousand-row exercise table, plain retrieval usually beats vector search.",
      "group": "Compliance & AI",
      "href": "https://aifitnessapi.com/ai/ground-llm-in-exercise-database",
      "anchor": "#term-rag-grounding",
      "id": "https://aifitnessapi.com/glossary#term-rag-grounding"
    },
    {
      "term": "Guardrails (health advice)",
      "definition": "The deterministic gate in front of an LLM giving exercise or nutrition guidance. A model asked to police itself in the same call gets talked out of it.",
      "group": "Compliance & AI",
      "href": "https://aifitnessapi.com/ai/llm-safety-fitness-advice",
      "anchor": "#term-guardrails",
      "id": "https://aifitnessapi.com/glossary#term-guardrails"
    }
  ]
}