Skip to content
AF

Open Datasets

14 datasets · 2064 rows · version 2026.1 · CC BY 4.0 · updated 22 August 2026

AIFitnessAPI publishes 14 open datasets about fitness and health APIs, each in both JSON and CSV, each versioned 2026.1 and licensed CC BY 4.0 with attribution as the only condition (where a dataset restates another publisher’s facts, its note says what the licence covers): the access-structure survey of 25 APIs, SDKs and models; the HealthKit ↔ Health Connect identifier matrix covering 10 health metrics; the dated record of 19 ecosystem changes, each graded for evidence strength; and the glossary of 45 defined terms. Three rules hold across all of them — there is not one dollar figure anywhere by design, a field we could not verify is null rather than guessed, and editions are versioned rather than overwritten, so a citation to 2026.1 keeps pointing at what 2026.1 said.

State of Fitness APIs 2026

25 rows (APIs, SDKs and models) · 7 columns · version 2026.1 · CC BY 4.0

The access-structure survey behind our annual report: for each product, how the vendor bills developers, what the end user must already own or pay for, and what approval stands between working code and a live product. One source link per row.

A coverage-driven sample, not a census: these are the products this site's own verified pages already cover in depth, so it implies nothing about market share. KinesteX, which funds this site, is one of the rows and is classified by the same rule as everyone else.

Licence:
Creative Commons Attribution 4.0 — reuse and redistribute freely, including commercially, with attribution.
Cite as:
AIFitnessAPI, "State of Fitness APIs 2026," version 2026.1, aifitnessapi.com, https://aifitnessapi.com/datasets/fitness-apis-2026.json
Columns:
id, label, category, devCost, userSideCost, approvalGate, source

Health Data Type Matrix 2026 (HealthKit ↔ Health Connect)

10 rows (health metrics) · 6 columns · version 2026.1 · CC BY 4.0

The cross-platform identifier mapping: each common health metric with its Apple HealthKit type identifier and its Android Health Connect record type, plus the gotcha where the two platforms quietly disagree — Apple stores HRV as SDNN, Health Connect stores RMSSD.

Scoped deliberately to the two on-device platform stores, because those are the cells we could verify against Apple's and Google's own documentation. A narrow table you can trust beats a wide one padded with guesses.

Licence:
Creative Commons Attribution 4.0 — reuse and redistribute freely, including commercially, with attribution.
Cite as:
AIFitnessAPI, "Health Data Type Matrix 2026 (HealthKit ↔ Health Connect)," version 2026.1, aifitnessapi.com, https://aifitnessapi.com/datasets/health-data-type-matrix-2026.json
Columns:
id, label, appleHealthKit, androidHealthConnect, watchOut, source

Fitness API Changes & Deadlines 2026

19 rows (dated ecosystem events) · 8 columns · version 2026.1 · CC BY 4.0

The dated record of what changed: deprecations, deadlines, term changes and model freezes. Every row is graded — confirmed means a vendor's own words are quoted on the linked page, reported means notices we could not confirm on an official page — and that grading survives into both formats.

Date precision is kept exactly as sourced — “2026-09” means a reported month, not a guessed day. The undated watch items on the tracker are excluded here because they carry no date to publish.

Licence:
Creative Commons Attribution 4.0 — reuse and redistribute freely, including commercially, with attribution.
Cite as:
AIFitnessAPI, "Fitness API Changes & Deadlines 2026," version 2026.1, aifitnessapi.com, https://aifitnessapi.com/datasets/fitness-api-changes-2026.json
Columns:
date, sortDate, title, summary, status, source, sourceLabel, verifiedOn

Fitness & Health API Glossary 2026

45 rows (defined terms) · 6 columns · version 2026.1 · CC BY 4.0

The controlled vocabulary: each term with its definition, the section it belongs to, the one page on this site that is its canonical explanation, and its stable identifier — so a machine reader can cite the exact definition it used.

These are the site's own editorial definitions, written against the vendor documentation cited on the linked pages — not quotations from a standards body. The groups are our sections, not an industry taxonomy.

Licence:
Creative Commons Attribution 4.0 — reuse and redistribute freely, including commercially, with attribution.
Cite as:
AIFitnessAPI, "Fitness & Health API Glossary 2026," version 2026.1, aifitnessapi.com, https://aifitnessapi.com/datasets/fitness-api-glossary-2026.json
Columns:
term, definition, group, href, anchor, id

HealthKit Type Identifiers 2026

241 rows (type identifiers) · 16 columns · version 2026.1 · CC BY 4.0

All four HealthKit naming families in one table — quantity, category, characteristic and workout activity — read straight from the JSON Apple serves to developer.apple.com, with units, value enums, platform versions, and the column Apple does not expose anywhere: whether a quantity type is cumulative or discrete.

Two columns are derived, not copied: aggregation and unit family. Apple states both in prose rather than as properties, so each was matched against Apple's own sentence and left null where Apple's wording does not say. Both apply only to quantity types — elsewhere null means the concept does not apply, not that Apple was silent. Apple's abstracts are reproduced to identify the API surface; the classification is ours, and Apple's documentation remains the authority.

Licence:
Creative Commons Attribution 4.0 — reuse and redistribute freely, including commercially, with attribution.
Cite as:
AIFitnessAPI, "HealthKit Type Identifiers 2026," version 2026.1, aifitnessapi.com, https://aifitnessapi.com/datasets/healthkit-type-identifiers-2026.json
Columns:
identifier, objcConstant, family, group, abstract, aggregation, unitFamily, valueEnum, iosIntroduced, watchosIntroduced, deprecated, iosDeprecated, deprecationNote, renamedTo, appleDocumented, appleDocs

Health Connect Record Types 2026

42 rows (record classes) · 18 columns · version 2026.1 · CC BY 4.0

Every record class in Google's Health Connect data-types table, joined to its Jetpack reference page: category, record shape, unit class, mandatory fields, the exact read and write permission strings, and the aggregate metrics each class exposes.

Generated from Google's pages, so it says what they say: a field Google does not state is null. Where Google's own pages disagree on a permission string, this file carries the data-types table's spelling and the record page shows both.

Licence:
Creative Commons Attribution 4.0 — reuse and redistribute freely, including commercially, with attribution.
Cite as:
AIFitnessAPI, "Health Connect Record Types 2026," version 2026.1, aifitnessapi.com, https://aifitnessapi.com/datasets/health-connect-records-2026.json
Columns:
className, qualifiedName, dataType, category, recordShape, unitClass, mandatoryFields, readPermissions, writePermissions, permissionEvidence, aggregateMetrics, addedIn, featureFlag, deprecated, description, googleDocs, sourceUpdated, page

Health Connect Permission Strings 2026

219 rows (permission strings) · 6 columns · version 2026.1 · CC BY 4.0

Every constant on Android's framework HealthPermissions reference: the android.permission.health manifest string, Google's description, protection level, the API level it arrived in, and the record classes that use it.

The records column is a join to Google's data-types table, not a statement from the HealthPermissions page; background, history, medical and symptom permissions name no record class and are null there.

Licence:
Creative Commons Attribution 4.0 — reuse and redistribute freely, including commercially, with attribution.
Cite as:
AIFitnessAPI, "Health Connect Permission Strings 2026," version 2026.1, aifitnessapi.com, https://aifitnessapi.com/datasets/health-connect-permissions-2026.json
Columns:
constant, permission, description, protectionLevel, added, records

HealthKit Metadata Keys 2026

67 rows (metadata keys) · 12 columns · version 2026.1 · CC BY 4.0

Every HKMetadataKey constant on Apple's Metadata Keys collection and its workout sub-collection, read from the JSON Apple serves to developer.apple.com: Swift and Objective-C names, Apple's topic group, abstract, platform versions, and the value type where Apple's own sentence states it.

valueType is derived, not copied: it is read from the sentence in Apple's text that names the value, and that sentence ships beside it in valueTypeEvidence. Where Apple's text does not say, both are null rather than guessed.

Licence:
Creative Commons Attribution 4.0 — reuse and redistribute freely, including commercially, with attribution.
Cite as:
AIFitnessAPI, "HealthKit Metadata Keys 2026," version 2026.1, aifitnessapi.com, https://aifitnessapi.com/datasets/healthkit-metadata-keys-2026.json
Columns:
swiftName, objcName, group, subgroup, valueType, valueTypeEvidence, iosIntroduced, watchosIntroduced, deprecated, abstract, appleDocs, page

Wear OS Health Services Data Types 2026

65 rows (data types) · 12 columns · version 2026.1 · CC BY 4.0

Every DataType companion constant on Google's Jetpack reference for Wear OS Health Services: the declared Kotlin type, delta or aggregate class, value and data-point class, Google's description, and the permission Google's permissions table lists it under.

The permission column is set only where Google's permissions table names the constant, and the table row ships beside it in permissionEvidence; a constant the table does not name has a null permission, not an inferred one.

Licence:
Creative Commons Attribution 4.0 — reuse and redistribute freely, including commercially, with attribution.
Cite as:
AIFitnessAPI, "Wear OS Health Services Data Types 2026," version 2026.1, aifitnessapi.com, https://aifitnessapi.com/datasets/wear-os-health-services-data-types-2026.json
Columns:
name, kotlinType, dataTypeClass, valueType, dataPointClass, permission, permissionEvidence, addedIn, deprecated, description, googleDocs, page

Pose Keypoint Maps 2026

321 rows (keypoints) · 14 columns · version 2026.1 · CC BY 4.0

Every point of the pose-estimation keypoint schemes this site covers — COCO 17, MediaPipe BlazePose 33, ML Kit, Halpe26, COCO-WholeBody, OpenPose BODY_25 and COCO 18, and Apple Vision 2D and 3D — with its index and name exactly as the model's own source spells them, the models a source ties to each scheme, and the source file's branch and hash.

crosswalkKey is derived, not copied: the name lowercased with separators removed. Points are joined on that key alone, so a shared row means the names match, not that two models place the point in the same spot, and names that differ stay unmapped rather than guessed.

Licence:
Creative Commons Attribution 4.0 — reuse and redistribute freely, including commercially, with attribution.
Cite as:
AIFitnessAPI, "Pose Keypoint Maps 2026," version 2026.1, aifitnessapi.com, https://aifitnessapi.com/datasets/pose-keypoint-maps-2026.json
Columns:
scheme, schemeName, index, name, altNames, description, group, crosswalkKey, sharedWith, usedBy, source, sourceBranch, sourceSha256, page

Google Health API Data Types 2026

44 rows (data types) · 25 columns · version 2026.1 · CC BY 4.0

Every data type in Google's Google Health API data-types table, joined to the v4 discovery document: record type, storage resolution, webhook and true-zeros support, operations and the methods they map to, full scope URLs, the DataPoint field and its schema's fields, rollup fields, the Fitbit Web API predecessor and the disagreements between Google's own pages.

Three columns are derived and ship with their evidence: scope URLs (Google's documented prefix plus the printed suffix), methods ("update" is paired with patch only through Google's endpoint-mapping table) and the DataPoint field (matched by its own description, or by the kebab-case rule DataPoint.name states). Where Google's pages disagree, the flags column names the kind and the data-type page shows the texts.

Licence:
Creative Commons Attribution 4.0 — reuse and redistribute freely, including commercially, with attribution.
Cite as:
AIFitnessAPI, "Google Health API Data Types 2026," version 2026.1, aifitnessapi.com, https://aifitnessapi.com/datasets/google-health-api-data-types-2026.json
Columns:
dataType, name, filterParam, recordType, storageResolution, channel, webhookSupport, trueZerosSupport, operations, methods, scopes, dataPointProperty, dataPointMatch, dataPointEvidence, schema, requiredFields, fields, rollupSchema, rollupFields, fitbitPredecessor, fitbitDescription, compatibleDevices, flags, googleDocs, page

Health and Fitness MCP Servers 2026

176 rows (MCP servers) · 23 columns · version 2026.1 · CC BY 4.0

Every server in the official MCP Registry whose name, title or description names a health or fitness data source, read page by page from the registry's listing: the registry's description verbatim, version, status and dates, packages and remote URLs, the term each was kept for, and npm or PyPI facts for its packages.

Descriptions are the publishers' own words and no server was run or audited. publisherIsVendor is yes only when the registry namespace is the vendor's own domain in reverse-DNS form; repositories were not read, so repositoryUrl is only what the entry lists.

Licence:
Creative Commons Attribution 4.0 — reuse and redistribute freely, including commercially, with attribution.
Cite as:
AIFitnessAPI, "Health and Fitness MCP Servers 2026," version 2026.1, aifitnessapi.com, https://aifitnessapi.com/datasets/health-mcp-servers-2026.json
Columns:
name, title, description, version, status, registryPublishedOn, registryUpdatedOn, group, dataSources, matchedTerms, publisherIsVendor, publisherEvidence, packages, remotes, secretInputs, packageLatestVersion, packageLastPublished, packageLicense, packageNotFound, repositoryUrl, websiteUrl, registryRecord, page

Bluetooth Fitness GATT Characteristics 2026

378 rows (characteristic fields) · 21 columns · version 2026.1 · CC BY 4.0

The byte layout of the Bluetooth GATT characteristics fitness and health devices use, read from the Bluetooth SIG's own YAML: one row per field with its type, size, offset where it is fixed, the Flags bit that makes it present, and its unit, plus a row for each in-scope characteristic the SIG publishes no structure for.

The licence covers this compilation and its derived columns. The UUIDs, names, types and sizes are the Bluetooth SIG's, restated as facts, and its files say they are proprietary to Bluetooth SIG and grant no licence, so the SIG's descriptions are left out (the pages quote them with attribution) and the file carries the SIG's notice in sourceTerms. Offsets, flag bits and units are derived, each beside the line it was read from.

Licence:
Creative Commons Attribution 4.0 — reuse and redistribute freely, including commercially, with attribution.
Cite as:
AIFitnessAPI, "Bluetooth Fitness GATT Characteristics 2026," version 2026.1, aifitnessapi.com, https://aifitnessapi.com/datasets/bluetooth-fitness-gatt-2026.json
Columns:
characteristicUuid, characteristicName, characteristicId, sigService, structurePublished, order, field, parentField, type, size, sizeUnit, offset, offsetVariesWith, presentIf, flagsField, flagBit, flagValue, units, unitEvidence, gssFile, page

Workout Types Crosswalk 2026 (HealthKit, Health Connect, Wear OS, Google Health API)

412 rows (workout type constants) · 20 columns · version 2026.1 · CC BY 4.0

Every workout or exercise type constant on HealthKit (HKWorkoutActivityType), Health Connect (ExerciseSessionRecord.EXERCISE_TYPE_*), Wear OS Health Services (ExerciseType) and the Google Health API (exerciseType), with the number each platform prints, the source's own wording, Health Connect's platform-API value and allowed segment types, and the constants of the same name on the other three.

crosswalkKey is derived: the name with a leading EXERCISE_TYPE_ removed, lowercased, separators dropped. Constants are joined on that key alone, so a shared key means the names match, not that the platforms define the activity alike, and no Apple or Google page read for it maps one list onto another. Wear OS ids come from the androidx source the reference links, because the reference prints none.

Licence:
Creative Commons Attribution 4.0 — reuse and redistribute freely, including commercially, with attribution.
Cite as:
AIFitnessAPI, "Workout Types Crosswalk 2026 (HealthKit, Health Connect, Wear OS, Google Health API)," version 2026.1, aifitnessapi.com, https://aifitnessapi.com/datasets/workout-types-crosswalk-2026.json
Columns:
platform, enumeration, constant, qualified, value, description, discussion, group, iosIntroduced, deprecated, platformApiConstant, platformApiValue, platformApiLevel, platformApiDeprecatedIn, segmentRule, segments, crosswalkKey, sameNameOn, source, page

The rules these files follow

No dollar figures, by design. There is not one monetary value in any of these datasets. Most serious tiers in this market are contact-sales, published figures move within a quarter, and a stale number damages a citable source more than a missing one. What we publish instead is structure: how a vendor bills, what gates a launch, what the end user must already own. The cost planner works the same way and likewise refuses to produce a total.

A null means we could not verify it. It never means zero and it is never a guess. If a field is empty in the CSV, the corresponding page on this site carries no sentence documenting it — that is the whole claim. Judgement calls stay out of the data entirely rather than being laundered into a column.

Versioned, not overwritten. Every file is pinned at version 2026.1. The next edition re-verifies each row and ships under a new version rather than editing these in place, so a citation to 2026.1 keeps pointing at what 2026.1 actually said.

Every row traces to a page. Each dataset carries a link column pointing at the page on this site that states the claim in prose, with its own sourcing and review date. Nothing here asserts more than its source page does. How we verify is written up in our methodology.

Generated, not typed. Every file is built by scripts/build-datasets.mjs from the same data modules that render the pages, so a dataset cannot drift from the page it came from. The counts, field lists and versions shown above are read out of the published JSON when this page is built, which is why they cannot disagree with the downloads.

Using them

The JSON files share one envelope: name, version, publisher, license, methodology, generatedFrom, a fields dictionary describing the columns, a stats block, and the items array. The CSVs carry the same rows and columns, RFC 4180 quoted, with an empty field wherever the JSON has null.

Attribution is the only condition. A link to aifitnessapi.com/datasets alongside the citation string above satisfies it. If you find an error in a row, the page it links is the place it will be corrected first.

The same rows are also served one at a time, as a read-only JSON API with an OpenAPI 3.1 document and as tools on a hosted MCP server for AI assistants. No key is needed for either; see the developer API and MCP server.

Published by AIFitnessAPI. Independent and not sponsored — one row of the access-structure survey covers KinesteX, the company that funds this site, recorded on the same terms as every competitor.