{"adoption": {"forks": 454, "observed_at": "2026-08-28T04:06:44.147802+00:00", "stars": 2407}, "canonical_url": "https://ross.abutalabs.com/products/open-wearables", "card": {"archived": false, "artifact_type": "service", "description": "Self-hosted platform to unify wearable health data through one AI-ready API.", "domain": ["healthcare", "apis", "self-hosted", "artificial-intelligence", "developer-tools"], "enriched": true, "function": ["api-framework", "web-framework", "etl", "webhook", "mcp", "sdk", "self-hosted"], "health_score": 100, "homepage": "https://docs.openwearables.io", "language": "Python", "license": "MIT", "license_family": "permissive", "maturity": "active", "member_repos": ["the-momentum/open-wearables"], "name": "the-momentum/open-wearables", "platform": ["self-hosted", "python", "cross-platform"], "pushed_at": "2026-08-26T13:54:06+00:00", "repo": "the-momentum/open-wearables", "stars": 2407, "tags": ["wearables", "health-data", "fitness-api", "garmin", "whoop", "apple-health", "oura", "fitbit", "strava", "fastapi", "quantified-self", "data-normalization", "unified-api", "health-insights", "data-engineering", "docker", "web-server"], "topics": ["wearables", "apple-health", "apple-watch", "fitness", "fitness-analysis", "fitness-api", "garmin", "health", "healthcare", "healthcare-ai", "python", "quantified-self", "self-hosted", "suunto", "fastapi"], "urls": [], "use_cases": ["unify wearable health data from multiple providers through one API", "self-host my own wearable data for privacy and control", "build a health app without maintaining separate Garmin/Whoop/Oura integrations", "query sleep, heart rate, and activity data via a normalized schema", "set up AI-powered health insights from natural language conditions", "sync Apple Health and fitness tracker data into my own database", "add wearable data connections to my product with embeddable widgets"], "what_it_is": "Open Wearables is a self-hosted, MIT-licensed platform that unifies wearable health data from providers like Garmin, Whoop, Oura, Fitbit, Strava, and Apple Health behind a single normalized REST API. Built with FastAPI, PostgreSQL, Redis, and Celery, it includes a developer portal, webhook notifications, and an MCP server for AI-powered health insights.", "when_to_avoid": ["you only need a single provider and its official SDK suffices", "you need a fully stable, production-hardened data model - the unified schema is still under active development", "you want a turnkey hosted SaaS rather than running Docker Compose yourself", "you need real-time clinical-grade medical data compliance guarantees"], "when_to_choose": ["you need normalized wearable data from many providers behind one API", "you want full data ownership by self-hosting on your own infrastructure", "you're building a health or fitness application and want to avoid per-provider integration work", "you want AI/MCP integration on top of unified health data"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/open-wearables", "repo": "the-momentum/open-wearables", "role": "main", "score": 83}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:06:44.147802+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T02:34:05.465231+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "36d391dd36324b09e2a794ee0eddc51cabb541acd9f4438bebfa67132f1c6f51", "fetched_at": "2026-08-28T04:06:44.147802+00:00", "kind": "readme", "missing": false, "url": "https://github.com/the-momentum/open-wearables"}, {"content_hash": "a2c6dff637258ed6389851a6586e6d8369e615cdc32ec9bd258fced11d0f3b3d", "fetched_at": "2026-08-29T10:14:31.124725+00:00", "kind": "homepage", "missing": false, "url": "https://docs.openwearables.io"}, {"content_hash": "9eb07b659745e3dfe9d0bf9c669dda322c37186cf6662b828bb93dc66fe29f75", "fetched_at": "2026-08-29T10:14:31.135629+00:00", "kind": "site_page", "missing": false, "url": "https://openwearables.io/docs/api-reference/introduction"}, {"content_hash": "e7a90edb213f6a6977844c6aac5ba271bdef27c1173ad32a4f8747ded6b450bc", "fetched_at": "2026-08-29T10:14:31.137283+00:00", "kind": "site_page", "missing": false, "url": "https://openwearables.io/docs/quickstart"}, {"content_hash": "17bd3436c4db167932344ed60fc3b0a0a47a02dcee572162b855ef0a8e0a9b1b", "fetched_at": "2026-08-29T10:14:31.142472+00:00", "kind": "site_page", "missing": false, "url": "https://openwearables.io/docs/architecture/unified-data-model"}, {"content_hash": "c5c0748e752f917bf2a39624c317344a70efbeed8cfc0c384cab8247dc94d387", "fetched_at": "2026-08-29T10:14:31.144228+00:00", "kind": "site_page", "missing": false, "url": "https://openwearables.io/docs/architecture/data-types"}, {"content_hash": "ba8a4f567c3cad84964bc061eb11e2815654d99274c3c276fc6874d44b7e764f", "fetched_at": "2026-08-29T10:14:31.138999+00:00", "kind": "site_page", "missing": false, "url": "https://openwearables.io/docs/roadmap"}, {"content_hash": "670e74d328db2dd3581bc17638e0500e26d276001df6f6d221d8444f359601e0", "fetched_at": "2026-08-29T10:14:31.140712+00:00", "kind": "site_page", "missing": false, "url": "https://openwearables.io/docs/architecture/system-overview"}, {"content_hash": "fdc6512cc484f0602dfa9f4ab5105420e6748555f8c147126727362c546f7fdd", "fetched_at": "2026-08-29T10:14:31.145974+00:00", "kind": "site_page", "missing": false, "url": "https://openwearables.io/docs/architecture/multi-account-sync"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:06:44.147802+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T02:34:05.465231+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "36d391dd36324b09e2a794ee0eddc51cabb541acd9f4438bebfa67132f1c6f51", "fetched_at": "2026-08-28T04:06:44.147802+00:00", "kind": "readme", "missing": false, "url": "https://github.com/the-momentum/open-wearables"}, {"content_hash": "a2c6dff637258ed6389851a6586e6d8369e615cdc32ec9bd258fced11d0f3b3d", "fetched_at": "2026-08-29T10:14:31.124725+00:00", "kind": "homepage", "missing": false, "url": "https://docs.openwearables.io"}, {"content_hash": "9eb07b659745e3dfe9d0bf9c669dda322c37186cf6662b828bb93dc66fe29f75", "fetched_at": "2026-08-29T10:14:31.135629+00:00", "kind": "site_page", "missing": false, "url": "https://openwearables.io/docs/api-reference/introduction"}, {"content_hash": "e7a90edb213f6a6977844c6aac5ba271bdef27c1173ad32a4f8747ded6b450bc", "fetched_at": "2026-08-29T10:14:31.137283+00:00", "kind": "site_page", "missing": false, "url": "https://openwearables.io/docs/quickstart"}, {"content_hash": "17bd3436c4db167932344ed60fc3b0a0a47a02dcee572162b855ef0a8e0a9b1b", "fetched_at": "2026-08-29T10:14:31.142472+00:00", "kind": "site_page", "missing": false, "url": "https://openwearables.io/docs/architecture/unified-data-model"}, {"content_hash": "c5c0748e752f917bf2a39624c317344a70efbeed8cfc0c384cab8247dc94d387", "fetched_at": "2026-08-29T10:14:31.144228+00:00", "kind": "site_page", "missing": false, "url": "https://openwearables.io/docs/architecture/data-types"}, {"content_hash": "ba8a4f567c3cad84964bc061eb11e2815654d99274c3c276fc6874d44b7e764f", "fetched_at": "2026-08-29T10:14:31.138999+00:00", "kind": "site_page", "missing": false, "url": "https://openwearables.io/docs/roadmap"}, {"content_hash": "670e74d328db2dd3581bc17638e0500e26d276001df6f6d221d8444f359601e0", "fetched_at": "2026-08-29T10:14:31.140712+00:00", "kind": "site_page", "missing": false, "url": "https://openwearables.io/docs/architecture/system-overview"}, {"content_hash": "fdc6512cc484f0602dfa9f4ab5105420e6748555f8c147126727362c546f7fdd", "fetched_at": "2026-08-29T10:14:31.145974+00:00", "kind": "site_page", "missing": false, "url": "https://openwearables.io/docs/architecture/multi-account-sync"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T02:34:05.465231+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "36d391dd36324b09e2a794ee0eddc51cabb541acd9f4438bebfa67132f1c6f51", "fetched_at": "2026-08-28T04:06:44.147802+00:00", "kind": "readme", "missing": false, "url": "https://github.com/the-momentum/open-wearables"}, {"content_hash": "a2c6dff637258ed6389851a6586e6d8369e615cdc32ec9bd258fced11d0f3b3d", "fetched_at": "2026-08-29T10:14:31.124725+00:00", "kind": "homepage", "missing": false, "url": "https://docs.openwearables.io"}, {"content_hash": "9eb07b659745e3dfe9d0bf9c669dda322c37186cf6662b828bb93dc66fe29f75", "fetched_at": "2026-08-29T10:14:31.135629+00:00", "kind": "site_page", "missing": false, "url": "https://openwearables.io/docs/api-reference/introduction"}, {"content_hash": "e7a90edb213f6a6977844c6aac5ba271bdef27c1173ad32a4f8747ded6b450bc", "fetched_at": "2026-08-29T10:14:31.137283+00:00", "kind": "site_page", "missing": false, "url": "https://openwearables.io/docs/quickstart"}, {"content_hash": "17bd3436c4db167932344ed60fc3b0a0a47a02dcee572162b855ef0a8e0a9b1b", "fetched_at": "2026-08-29T10:14:31.142472+00:00", "kind": "site_page", "missing": false, "url": "https://openwearables.io/docs/architecture/unified-data-model"}, {"content_hash": "c5c0748e752f917bf2a39624c317344a70efbeed8cfc0c384cab8247dc94d387", "fetched_at": "2026-08-29T10:14:31.144228+00:00", "kind": "site_page", "missing": false, "url": "https://openwearables.io/docs/architecture/data-types"}, {"content_hash": "ba8a4f567c3cad84964bc061eb11e2815654d99274c3c276fc6874d44b7e764f", "fetched_at": "2026-08-29T10:14:31.138999+00:00", "kind": "site_page", "missing": false, "url": "https://openwearables.io/docs/roadmap"}, {"content_hash": "670e74d328db2dd3581bc17638e0500e26d276001df6f6d221d8444f359601e0", "fetched_at": "2026-08-29T10:14:31.140712+00:00", "kind": "site_page", "missing": false, "url": "https://openwearables.io/docs/architecture/system-overview"}, {"content_hash": "fdc6512cc484f0602dfa9f4ab5105420e6748555f8c147126727362c546f7fdd", "fetched_at": "2026-08-29T10:14:31.145974+00:00", "kind": "site_page", "missing": false, "url": "https://openwearables.io/docs/architecture/multi-account-sync"}], "taxonomy_version": 1}, "health_score": {"inputs": ["days_since_push", "days_since_release", "archived"], "kind": "computed", "method": "health_v1"}, "homepage": {"kind": "observed", "observed_at": "2026-08-28T04:06:44.147802+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:06:44.147802+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:06:44.147802+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T02:34:05.465231+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "36d391dd36324b09e2a794ee0eddc51cabb541acd9f4438bebfa67132f1c6f51", "fetched_at": "2026-08-28T04:06:44.147802+00:00", "kind": "readme", "missing": false, "url": "https://github.com/the-momentum/open-wearables"}, {"content_hash": "a2c6dff637258ed6389851a6586e6d8369e615cdc32ec9bd258fced11d0f3b3d", "fetched_at": "2026-08-29T10:14:31.124725+00:00", "kind": "homepage", "missing": false, "url": "https://docs.openwearables.io"}, {"content_hash": "9eb07b659745e3dfe9d0bf9c669dda322c37186cf6662b828bb93dc66fe29f75", "fetched_at": "2026-08-29T10:14:31.135629+00:00", "kind": "site_page", "missing": false, "url": "https://openwearables.io/docs/api-reference/introduction"}, {"content_hash": "e7a90edb213f6a6977844c6aac5ba271bdef27c1173ad32a4f8747ded6b450bc", "fetched_at": "2026-08-29T10:14:31.137283+00:00", "kind": "site_page", "missing": false, "url": "https://openwearables.io/docs/quickstart"}, {"content_hash": "17bd3436c4db167932344ed60fc3b0a0a47a02dcee572162b855ef0a8e0a9b1b", "fetched_at": "2026-08-29T10:14:31.142472+00:00", "kind": "site_page", "missing": false, "url": "https://openwearables.io/docs/architecture/unified-data-model"}, {"content_hash": "c5c0748e752f917bf2a39624c317344a70efbeed8cfc0c384cab8247dc94d387", "fetched_at": "2026-08-29T10:14:31.144228+00:00", "kind": "site_page", "missing": false, "url": "https://openwearables.io/docs/architecture/data-types"}, {"content_hash": "ba8a4f567c3cad84964bc061eb11e2815654d99274c3c276fc6874d44b7e764f", "fetched_at": "2026-08-29T10:14:31.138999+00:00", "kind": "site_page", "missing": false, "url": "https://openwearables.io/docs/roadmap"}, {"content_hash": "670e74d328db2dd3581bc17638e0500e26d276001df6f6d221d8444f359601e0", "fetched_at": "2026-08-29T10:14:31.140712+00:00", "kind": "site_page", "missing": false, "url": "https://openwearables.io/docs/architecture/system-overview"}, {"content_hash": "fdc6512cc484f0602dfa9f4ab5105420e6748555f8c147126727362c546f7fdd", "fetched_at": "2026-08-29T10:14:31.145974+00:00", "kind": "site_page", "missing": false, "url": "https://openwearables.io/docs/architecture/multi-account-sync"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:06:44.147802+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:06:44.147802+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T02:34:05.465231+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "36d391dd36324b09e2a794ee0eddc51cabb541acd9f4438bebfa67132f1c6f51", "fetched_at": "2026-08-28T04:06:44.147802+00:00", "kind": "readme", "missing": false, "url": "https://github.com/the-momentum/open-wearables"}, {"content_hash": "a2c6dff637258ed6389851a6586e6d8369e615cdc32ec9bd258fced11d0f3b3d", "fetched_at": "2026-08-29T10:14:31.124725+00:00", "kind": "homepage", "missing": false, "url": "https://docs.openwearables.io"}, {"content_hash": "9eb07b659745e3dfe9d0bf9c669dda322c37186cf6662b828bb93dc66fe29f75", "fetched_at": "2026-08-29T10:14:31.135629+00:00", "kind": "site_page", "missing": false, "url": "https://openwearables.io/docs/api-reference/introduction"}, {"content_hash": "e7a90edb213f6a6977844c6aac5ba271bdef27c1173ad32a4f8747ded6b450bc", "fetched_at": "2026-08-29T10:14:31.137283+00:00", "kind": "site_page", "missing": false, "url": "https://openwearables.io/docs/quickstart"}, {"content_hash": "17bd3436c4db167932344ed60fc3b0a0a47a02dcee572162b855ef0a8e0a9b1b", "fetched_at": "2026-08-29T10:14:31.142472+00:00", "kind": "site_page", "missing": false, "url": "https://openwearables.io/docs/architecture/unified-data-model"}, {"content_hash": "c5c0748e752f917bf2a39624c317344a70efbeed8cfc0c384cab8247dc94d387", "fetched_at": "2026-08-29T10:14:31.144228+00:00", "kind": "site_page", "missing": false, "url": "https://openwearables.io/docs/architecture/data-types"}, {"content_hash": "ba8a4f567c3cad84964bc061eb11e2815654d99274c3c276fc6874d44b7e764f", "fetched_at": "2026-08-29T10:14:31.138999+00:00", "kind": "site_page", "missing": false, "url": "https://openwearables.io/docs/roadmap"}, {"content_hash": "670e74d328db2dd3581bc17638e0500e26d276001df6f6d221d8444f359601e0", "fetched_at": "2026-08-29T10:14:31.140712+00:00", "kind": "site_page", "missing": false, "url": "https://openwearables.io/docs/architecture/system-overview"}, {"content_hash": "fdc6512cc484f0602dfa9f4ab5105420e6748555f8c147126727362c546f7fdd", "fetched_at": "2026-08-29T10:14:31.145974+00:00", "kind": "site_page", "missing": false, "url": "https://openwearables.io/docs/architecture/multi-account-sync"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:06:44.147802+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:06:44.147802+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:06:44.147802+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T02:34:05.465231+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "36d391dd36324b09e2a794ee0eddc51cabb541acd9f4438bebfa67132f1c6f51", "fetched_at": "2026-08-28T04:06:44.147802+00:00", "kind": "readme", "missing": false, "url": "https://github.com/the-momentum/open-wearables"}, {"content_hash": "a2c6dff637258ed6389851a6586e6d8369e615cdc32ec9bd258fced11d0f3b3d", "fetched_at": "2026-08-29T10:14:31.124725+00:00", "kind": "homepage", "missing": false, "url": "https://docs.openwearables.io"}, {"content_hash": "9eb07b659745e3dfe9d0bf9c669dda322c37186cf6662b828bb93dc66fe29f75", "fetched_at": "2026-08-29T10:14:31.135629+00:00", "kind": "site_page", "missing": false, "url": "https://openwearables.io/docs/api-reference/introduction"}, {"content_hash": "e7a90edb213f6a6977844c6aac5ba271bdef27c1173ad32a4f8747ded6b450bc", "fetched_at": "2026-08-29T10:14:31.137283+00:00", "kind": "site_page", "missing": false, "url": "https://openwearables.io/docs/quickstart"}, {"content_hash": "17bd3436c4db167932344ed60fc3b0a0a47a02dcee572162b855ef0a8e0a9b1b", "fetched_at": "2026-08-29T10:14:31.142472+00:00", "kind": "site_page", "missing": false, "url": "https://openwearables.io/docs/architecture/unified-data-model"}, {"content_hash": "c5c0748e752f917bf2a39624c317344a70efbeed8cfc0c384cab8247dc94d387", "fetched_at": "2026-08-29T10:14:31.144228+00:00", "kind": "site_page", "missing": false, "url": "https://openwearables.io/docs/architecture/data-types"}, {"content_hash": "ba8a4f567c3cad84964bc061eb11e2815654d99274c3c276fc6874d44b7e764f", "fetched_at": "2026-08-29T10:14:31.138999+00:00", "kind": "site_page", "missing": false, "url": "https://openwearables.io/docs/roadmap"}, {"content_hash": "670e74d328db2dd3581bc17638e0500e26d276001df6f6d221d8444f359601e0", "fetched_at": "2026-08-29T10:14:31.140712+00:00", "kind": "site_page", "missing": false, "url": "https://openwearables.io/docs/architecture/system-overview"}, {"content_hash": "fdc6512cc484f0602dfa9f4ab5105420e6748555f8c147126727362c546f7fdd", "fetched_at": "2026-08-29T10:14:31.145974+00:00", "kind": "site_page", "missing": false, "url": "https://openwearables.io/docs/architecture/multi-account-sync"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:06:44.147802+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:06:44.147802+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T02:34:05.465231+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "36d391dd36324b09e2a794ee0eddc51cabb541acd9f4438bebfa67132f1c6f51", "fetched_at": "2026-08-28T04:06:44.147802+00:00", "kind": "readme", "missing": false, "url": "https://github.com/the-momentum/open-wearables"}, {"content_hash": "a2c6dff637258ed6389851a6586e6d8369e615cdc32ec9bd258fced11d0f3b3d", "fetched_at": "2026-08-29T10:14:31.124725+00:00", "kind": "homepage", "missing": false, "url": "https://docs.openwearables.io"}, {"content_hash": "9eb07b659745e3dfe9d0bf9c669dda322c37186cf6662b828bb93dc66fe29f75", "fetched_at": "2026-08-29T10:14:31.135629+00:00", "kind": "site_page", "missing": false, "url": "https://openwearables.io/docs/api-reference/introduction"}, {"content_hash": "e7a90edb213f6a6977844c6aac5ba271bdef27c1173ad32a4f8747ded6b450bc", "fetched_at": "2026-08-29T10:14:31.137283+00:00", "kind": "site_page", "missing": false, "url": "https://openwearables.io/docs/quickstart"}, {"content_hash": "17bd3436c4db167932344ed60fc3b0a0a47a02dcee572162b855ef0a8e0a9b1b", "fetched_at": "2026-08-29T10:14:31.142472+00:00", "kind": "site_page", "missing": false, "url": "https://openwearables.io/docs/architecture/unified-data-model"}, {"content_hash": "c5c0748e752f917bf2a39624c317344a70efbeed8cfc0c384cab8247dc94d387", "fetched_at": "2026-08-29T10:14:31.144228+00:00", "kind": "site_page", "missing": false, "url": "https://openwearables.io/docs/architecture/data-types"}, {"content_hash": "ba8a4f567c3cad84964bc061eb11e2815654d99274c3c276fc6874d44b7e764f", "fetched_at": "2026-08-29T10:14:31.138999+00:00", "kind": "site_page", "missing": false, "url": "https://openwearables.io/docs/roadmap"}, {"content_hash": "670e74d328db2dd3581bc17638e0500e26d276001df6f6d221d8444f359601e0", "fetched_at": "2026-08-29T10:14:31.140712+00:00", "kind": "site_page", "missing": false, "url": "https://openwearables.io/docs/architecture/system-overview"}, {"content_hash": "fdc6512cc484f0602dfa9f4ab5105420e6748555f8c147126727362c546f7fdd", "fetched_at": "2026-08-29T10:14:31.145974+00:00", "kind": "site_page", "missing": false, "url": "https://openwearables.io/docs/architecture/multi-account-sync"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T02:34:05.465231+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "36d391dd36324b09e2a794ee0eddc51cabb541acd9f4438bebfa67132f1c6f51", "fetched_at": "2026-08-28T04:06:44.147802+00:00", "kind": "readme", "missing": false, "url": "https://github.com/the-momentum/open-wearables"}, {"content_hash": "a2c6dff637258ed6389851a6586e6d8369e615cdc32ec9bd258fced11d0f3b3d", "fetched_at": "2026-08-29T10:14:31.124725+00:00", "kind": "homepage", "missing": false, "url": "https://docs.openwearables.io"}, {"content_hash": "9eb07b659745e3dfe9d0bf9c669dda322c37186cf6662b828bb93dc66fe29f75", "fetched_at": "2026-08-29T10:14:31.135629+00:00", "kind": "site_page", "missing": false, "url": "https://openwearables.io/docs/api-reference/introduction"}, {"content_hash": "e7a90edb213f6a6977844c6aac5ba271bdef27c1173ad32a4f8747ded6b450bc", "fetched_at": "2026-08-29T10:14:31.137283+00:00", "kind": "site_page", "missing": false, "url": "https://openwearables.io/docs/quickstart"}, {"content_hash": "17bd3436c4db167932344ed60fc3b0a0a47a02dcee572162b855ef0a8e0a9b1b", "fetched_at": "2026-08-29T10:14:31.142472+00:00", "kind": "site_page", "missing": false, "url": "https://openwearables.io/docs/architecture/unified-data-model"}, {"content_hash": "c5c0748e752f917bf2a39624c317344a70efbeed8cfc0c384cab8247dc94d387", "fetched_at": "2026-08-29T10:14:31.144228+00:00", "kind": "site_page", "missing": false, "url": "https://openwearables.io/docs/architecture/data-types"}, {"content_hash": "ba8a4f567c3cad84964bc061eb11e2815654d99274c3c276fc6874d44b7e764f", "fetched_at": "2026-08-29T10:14:31.138999+00:00", "kind": "site_page", "missing": false, "url": "https://openwearables.io/docs/roadmap"}, {"content_hash": "670e74d328db2dd3581bc17638e0500e26d276001df6f6d221d8444f359601e0", "fetched_at": "2026-08-29T10:14:31.140712+00:00", "kind": "site_page", "missing": false, "url": "https://openwearables.io/docs/architecture/system-overview"}, {"content_hash": "fdc6512cc484f0602dfa9f4ab5105420e6748555f8c147126727362c546f7fdd", "fetched_at": "2026-08-29T10:14:31.145974+00:00", "kind": "site_page", "missing": false, "url": "https://openwearables.io/docs/architecture/multi-account-sync"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T02:34:05.465231+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "36d391dd36324b09e2a794ee0eddc51cabb541acd9f4438bebfa67132f1c6f51", "fetched_at": "2026-08-28T04:06:44.147802+00:00", "kind": "readme", "missing": false, "url": "https://github.com/the-momentum/open-wearables"}, {"content_hash": "a2c6dff637258ed6389851a6586e6d8369e615cdc32ec9bd258fced11d0f3b3d", "fetched_at": "2026-08-29T10:14:31.124725+00:00", "kind": "homepage", "missing": false, "url": "https://docs.openwearables.io"}, {"content_hash": "9eb07b659745e3dfe9d0bf9c669dda322c37186cf6662b828bb93dc66fe29f75", "fetched_at": "2026-08-29T10:14:31.135629+00:00", "kind": "site_page", "missing": false, "url": "https://openwearables.io/docs/api-reference/introduction"}, {"content_hash": "e7a90edb213f6a6977844c6aac5ba271bdef27c1173ad32a4f8747ded6b450bc", "fetched_at": "2026-08-29T10:14:31.137283+00:00", "kind": "site_page", "missing": false, "url": "https://openwearables.io/docs/quickstart"}, {"content_hash": "17bd3436c4db167932344ed60fc3b0a0a47a02dcee572162b855ef0a8e0a9b1b", "fetched_at": "2026-08-29T10:14:31.142472+00:00", "kind": "site_page", "missing": false, "url": "https://openwearables.io/docs/architecture/unified-data-model"}, {"content_hash": "c5c0748e752f917bf2a39624c317344a70efbeed8cfc0c384cab8247dc94d387", "fetched_at": "2026-08-29T10:14:31.144228+00:00", "kind": "site_page", "missing": false, "url": "https://openwearables.io/docs/architecture/data-types"}, {"content_hash": "ba8a4f567c3cad84964bc061eb11e2815654d99274c3c276fc6874d44b7e764f", "fetched_at": "2026-08-29T10:14:31.138999+00:00", "kind": "site_page", "missing": false, "url": "https://openwearables.io/docs/roadmap"}, {"content_hash": "670e74d328db2dd3581bc17638e0500e26d276001df6f6d221d8444f359601e0", "fetched_at": "2026-08-29T10:14:31.140712+00:00", "kind": "site_page", "missing": false, "url": "https://openwearables.io/docs/architecture/system-overview"}, {"content_hash": "fdc6512cc484f0602dfa9f4ab5105420e6748555f8c147126727362c546f7fdd", "fetched_at": "2026-08-29T10:14:31.145974+00:00", "kind": "site_page", "missing": false, "url": "https://openwearables.io/docs/architecture/multi-account-sync"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T02:34:05.465231+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "36d391dd36324b09e2a794ee0eddc51cabb541acd9f4438bebfa67132f1c6f51", "fetched_at": "2026-08-28T04:06:44.147802+00:00", "kind": "readme", "missing": false, "url": "https://github.com/the-momentum/open-wearables"}, {"content_hash": "a2c6dff637258ed6389851a6586e6d8369e615cdc32ec9bd258fced11d0f3b3d", "fetched_at": "2026-08-29T10:14:31.124725+00:00", "kind": "homepage", "missing": false, "url": "https://docs.openwearables.io"}, {"content_hash": "9eb07b659745e3dfe9d0bf9c669dda322c37186cf6662b828bb93dc66fe29f75", "fetched_at": "2026-08-29T10:14:31.135629+00:00", "kind": "site_page", "missing": false, "url": "https://openwearables.io/docs/api-reference/introduction"}, {"content_hash": "e7a90edb213f6a6977844c6aac5ba271bdef27c1173ad32a4f8747ded6b450bc", "fetched_at": "2026-08-29T10:14:31.137283+00:00", "kind": "site_page", "missing": false, "url": "https://openwearables.io/docs/quickstart"}, {"content_hash": "17bd3436c4db167932344ed60fc3b0a0a47a02dcee572162b855ef0a8e0a9b1b", "fetched_at": "2026-08-29T10:14:31.142472+00:00", "kind": "site_page", "missing": false, "url": "https://openwearables.io/docs/architecture/unified-data-model"}, {"content_hash": "c5c0748e752f917bf2a39624c317344a70efbeed8cfc0c384cab8247dc94d387", "fetched_at": "2026-08-29T10:14:31.144228+00:00", "kind": "site_page", "missing": false, "url": "https://openwearables.io/docs/architecture/data-types"}, {"content_hash": "ba8a4f567c3cad84964bc061eb11e2815654d99274c3c276fc6874d44b7e764f", "fetched_at": "2026-08-29T10:14:31.138999+00:00", "kind": "site_page", "missing": false, "url": "https://openwearables.io/docs/roadmap"}, {"content_hash": "670e74d328db2dd3581bc17638e0500e26d276001df6f6d221d8444f359601e0", "fetched_at": "2026-08-29T10:14:31.140712+00:00", "kind": "site_page", "missing": false, "url": "https://openwearables.io/docs/architecture/system-overview"}, {"content_hash": "fdc6512cc484f0602dfa9f4ab5105420e6748555f8c147126727362c546f7fdd", "fetched_at": "2026-08-29T10:14:31.145974+00:00", "kind": "site_page", "missing": false, "url": "https://openwearables.io/docs/architecture/multi-account-sync"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 99, "longevity": 21, "rhythm": 97}, "computed_at": "2026-09-02T17:46:02.011165+00:00", "flags": [], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 307, "days_push": 7, "days_rel": 21, "gap_med": 13.5, "n_releases_24m": 19}, "score": 83, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}