Need help with your APIs? I offer API discovery, governance & evangelism services. Explore services →
API Evangelist API Evangelist
Discovery
Learnings
Guidance
Toolbox
Alignment
API Evangelist LLC

WeFitter

WeFitter is a health and fitness data platform ("one API to access wearable data, gamification and AI") operated by Thunderbyte.AI in Groningen, Netherlands. Its REST API aggregates health and activity data from 300+ wearables and fitness apps — Fitbit, Garmin, Google Fit, Apple Health, Withings, Polar, Oura, Whoop, Samsung Health, Huawei and more — into a single unified, deduplicated data model, and layers gamification (challenges, leaderboards, teams, points) and AI insights (biological age, recommendations) on top. Organizations use it to build corporate wellbeing, digital fitness, e-health and insurance solutions. WeFitter also ships mobile SDK bridges for Apple Health, Samsung Health and Android Health Connect.

agent native

Real signal across most facets with visible, nameable gaps — the contract exists but is thin, or the portal is good while governance and commercial terms are absent.

Kin Score

API Evangelist profiles WeFitter the way a machine reads it — 14 machine-readable artifacts across 9 APIs, pulled from the provider's own public surface and indexed so a developer, an analyst, or an AI agent can evaluate it against every other provider on the network.

Every provider in the network is reduced to the same set of machine-readable artifacts — OpenAPI contracts, event specifications, GraphQL schemas, runnable collections, pricing and rate-limit signals, security posture, OAuth scopes, and the agent surfaces (MCP servers and skills) that let software drive the API on its own. We profile them because the interface is the part of a company you can actually inspect: it is a truer signal of what a provider does than any marketing page. From those artifacts we compute the Kin Score — WeFitter scores 51.1/100 (developing), with a separate agent-readiness read of 71/100 (agent native). The full breakdown is below, followed by every artifact we hold — each card links through to its machine-readable definition on apis.io.

Kin Score

This is the API Evangelist rating — a single, repeatable read computed from the artifacts on this page. Green fill is points earned; the red track is points possible, so every bar shows earned-versus-possible at a glance.

Kin Score Kin Score How this is scored →
scored 2026-07-27 · rubric v0.5
Composite quality — 51.1/100 · developing
Contract Quality 15.1 / 25
Developer Ergonomics 14.8 / 20
Commercial Clarity 6.8 / 20
Operational Transparency 3.8 / 13
Governance 0.0 / 12
Discoverability 10.0 / 10
Regulatory · Health 8.1 / 15
Agent readiness — 71/100 · agent native
Machine-Readable Contract 18 / 18
Agentic Access Contract 15 / 15
MCP Server 12 / 12
Machine-Readable Auth 10 / 10
Idempotency 0 / 9
Stable Error Semantics 8 / 8
Request/Response Examples 0 / 7
Rate-Limit Signaling 0 / 7
Typed Event Surface 6 / 6
Agent Skills 5 / 5
Well-Known Catalog 0 / 4
Consent & Bot Identity 0 / 3

How we profile WeFitter

Each block below is one kind of artifact we hold for WeFitter. For each we say what it is and why it earns a place in the profile, then list every one we've indexed — capped at two rows, scroll within the panel for the rest.

APIs 9

Each API is captured as its own OpenAPI definition — every operation, parameter, and response. This is the single most useful machine-readable description of what an API does, and it's what lets us score, lint, mock, and generate against it without asking the provider for anything.

Individual APIs this provider publishes, each with its own machine-readable definition.

WeFitter app API

The app API from WeFitter — 1 operation(s) for app.

WeFitter challenge API

WeFitter API’s challenge engine will bring endless engagement to your platform. For more information about the possibilities in challenges please go to https://www.wefitter.com/...

WeFitter connection API

Connections are the links between profiles and their wearables.

WeFitter insights API

The insights API from WeFitter — 1 operation(s) for insights.

WeFitter loyalty API

The loyalty API from WeFitter — 2 operation(s) for loyalty.

WeFitter notification API

Send a notification to all devices for the specified profiles The data will be sent to the client in the following format: ``` { "app": , "title": , "body"...</p> </div> <div class="item-card"> <h4><a href="https://apis.io/apis/wefitter/wefitter-profile-api/" target="_blank" rel="noopener">WeFitter profile API</a></h4><p>Profiles are containers for wearables data. The profiles can be seen as an extension of users in a different system. Profiles are anonymous objects which can participate in team...</p> </div> <div class="item-card"> <h4><a href="https://apis.io/apis/wefitter/wefitter-team-api/" target="_blank" rel="noopener">WeFitter team API</a></h4><p>The team API from WeFitter — 5 operation(s) for team.</p> </div> <div class="item-card"> <h4><a href="https://apis.io/apis/wefitter/wefitter-token-api/" target="_blank" rel="noopener">WeFitter token API</a></h4><p><p> Before any calls can be made to wefitter, BasicAuth is needed to verify the identity of the requesting party. This call will result into a Bearer token which has administrat...</p> </div> </div><p class="scroll-hint">Scroll within the panel for all 9 ·</p> </section> <section class="artifact-section"> <h2 class="section-anchor" id="mcp-servers"><a href="#mcp-servers">MCP Servers</a> <span class="section-count">1</span></h2><p class="section-why">Model Context Protocol servers expose these APIs directly to AI agents. We profile them because agent-native access is the fastest-growing way this provider's capabilities actually get used.</p><p class="section-blurb">Model Context Protocol servers that expose these APIs to AI agents.</p> <div class="card-grid scroll-pane"> <div class="item-card" style="border-left: 3px solid #0d9488;"> <h4><a href="https://apis.io/servers/wefitter/wefitter-mcpyml/" target="_blank" rel="noopener">wefitter-mcp.yml</a></h4><p></p><span class="card-badge" style="background: #0d9488;">MCP SERVER</span> </div> </div> </section> <section class="artifact-section"> <h2 class="section-anchor" id="asyncapis"><a href="#asyncapis">Event Specifications</a> <span class="section-count">1</span></h2><p class="section-why">Not every API is request/response. AsyncAPI describes the event-driven and streaming side — the webhooks and channels — so the asynchronous half of the interface is documented the same way the synchronous half is.</p><p class="section-blurb">AsyncAPI definitions for this provider's event-driven and streaming APIs.</p> <div class="card-grid scroll-pane"> <div class="item-card" style="border-left: 3px solid #1e40af;"> <h4><a href="https://apis.io/asyncapis/wefitter/wefitter-webhooks/" target="_blank" rel="noopener">Wefitter Webhooks</a></h4><p></p><span class="card-badge" style="background: #1e40af;">ASYNCAPI</span> </div> </div> </section> <section class="artifact-section"> <h2 class="section-anchor" id="security"><a href="#security">Security Posture</a> <span class="section-count">2</span></h2><p class="section-why">Authentication, domain security, vulnerability disclosure, and trust-center signals — the evidence that a provider takes security seriously enough to document it. We profile it because you can't govern what you can't see.</p><p class="section-blurb">Authentication, domain security, vulnerability disclosure, and trust-center signals.</p> <div class="card-grid scroll-pane"> <div class="item-card" style="border-left: 3px solid #b91c1c;"> <h4><a href="https://apis.io/security/wefitter/wefitter-authentication/" target="_blank" rel="noopener">Wefitter Authentication</a></h4><p>apiKey/http · 2 schemes</p><span class="card-badge" style="background: #b91c1c;">SECURITY</span> </div> <div class="item-card" style="border-left: 3px solid #b91c1c;"> <h4><a href="https://apis.io/security/wefitter/wefitter-domain-security/" target="_blank" rel="noopener">Wefitter Domain Security</a></h4><p>TLSv1.3 · HSTS · DNSSEC · DMARC</p><span class="card-badge" style="background: #b91c1c;">SECURITY</span> </div> </div> </section> <section class="artifact-section"> <h2 class="section-anchor" id="agentic-access"><a href="#agentic-access">Agentic Access</a> <span class="section-count">1</span></h2><p class="section-why">An x-agentic-access contract marks which operations are safe for an agent to run on its own and which need a human in the loop. It is the difference between an API an agent can use and one it can use safely.</p><p class="section-blurb">Recommended x-agentic-access execution contracts for AI agents.</p> <div class="card-grid scroll-pane"> <div class="item-card" style="border-left: 3px solid #6d28d9;"> <h4><a href="https://apis.io/agentic-access/wefitter/wefitter-agentic-access/" target="_blank" rel="noopener">Wefitter Agentic Access</a></h4><p>77 operations · 34 acting</p><p class="card-meta">77 operations · 34 acting</p><span class="card-badge" style="background: #6d28d9;">AGENTIC</span> </div> </div> </section> <h2 class="section-anchor" id="resources"><a href="#resources">Resources</a></h2> <p class="section-why">Every other property we hold for WeFitter — documentation, portals, status pages, policies, and corporate surface — grouped by the job it does, following the integrator's arc from getting started to running in production.</p> <div class="res-group"> <div class="res-group-head"> <h3 id="resources-start">Get Started <span class="res-count">3</span></h3> <p>Portal, sign-up, and the first successful call</p> </div> <div class="card-grid"> <a href="https://www.wefitter.com/en-us/developers/" target="_blank" rel="noopener" class="item-card res-card res-start"> <strong>DeveloperPortal</strong> <div class="res-type">DeveloperPortal</div> </a> <a href="https://www.wefitter.com/en-us/developers/getting-started/" target="_blank" rel="noopener" class="item-card res-card res-start"> <strong>GettingStarted</strong> <div class="res-type">GettingStarted</div> </a> <a href="https://api.wefitter.com/dashboard" target="_blank" rel="noopener" class="item-card res-card res-start"> <strong>SignUp</strong> <div class="res-type">SignUp</div> </a> </div> </div> <div class="res-group"> <div class="res-group-head"> <h3 id="resources-docs">Documentation <span class="res-count">4</span></h3> <p>Reference material describing how the API behaves</p> </div> <div class="card-grid"> <a href="https://www.wefitter.com/en-us/developers/documentation/" target="_blank" rel="noopener" class="item-card res-card res-docs"> <strong>Documentation</strong> <div class="res-type">Documentation</div> </a> <a href="https://api.wefitter.com/api/v1.3/redoc/" target="_blank" rel="noopener" class="item-card res-card res-docs"> <strong>APIReference</strong> <div class="res-type">APIReference</div> </a> <a href="https://www.wefitter.com/en-us/developers/guides/" target="_blank" rel="noopener" class="item-card res-card res-docs"> <strong>Guides</strong> <div class="res-type">Guides</div> </a> <a href="openapi/wefitter-openapi-original.json" target="_blank" rel="noopener" class="item-card res-card res-docs"> <strong>OpenAPI</strong> <div class="res-type">OpenAPI</div> </a> </div> </div> <div class="res-group"> <div class="res-group-head"> <h3 id="resources-agent">Agent Surfaces <span class="res-count">4</span></h3> <p>MCP servers, agent skills, and machine-readable catalogs</p> </div> <div class="card-grid"> <a href="mcp/wefitter-mcp.yml" target="_blank" rel="noopener" class="item-card res-card res-agent"> <strong>MCPServer</strong> <div class="res-type">MCPServer</div> </a> <a href="llms/wefitter-llms.txt" target="_blank" rel="noopener" class="item-card res-card res-agent"> <strong>LLMsTxt</strong> <div class="res-type">LLMsTxt</div> </a> <a href="skills/_index.yml" target="_blank" rel="noopener" class="item-card res-card res-agent"> <strong>AgentSkill</strong> <div class="res-type">AgentSkill</div> </a> <a href="agentic-access/wefitter-agentic-access.yml" target="_blank" rel="noopener" class="item-card res-card res-agent"> <strong>AgenticAccess</strong> <div class="res-type">AgenticAccess</div> </a> </div> </div> <div class="res-group"> <div class="res-group-head"> <h3 id="resources-design">Design & Contract <span class="res-count">7</span></h3> <p>Pagination, idempotency, versioning, errors, and events</p> </div> <div class="card-grid scroll-pane"> <a href="conformance/wefitter-conformance.yml" target="_blank" rel="noopener" class="item-card res-card res-design"> <strong>Conformance</strong> <div class="res-type">Conformance</div> </a> <a href="errors/wefitter-problem-types.yml" target="_blank" rel="noopener" class="item-card res-card res-design"> <strong>ErrorCatalog</strong> <div class="res-type">ErrorCatalog</div> </a> <a href="lifecycle/wefitter-lifecycle.yml" target="_blank" rel="noopener" class="item-card res-card res-design"> <strong>Lifecycle</strong> <div class="res-type">Lifecycle</div> </a> <a href="conventions/wefitter-conventions.yml" target="_blank" rel="noopener" class="item-card res-card res-design"> <strong>Conventions</strong> <div class="res-type">Conventions</div> </a> <a href="data-model/wefitter-data-model.yml" target="_blank" rel="noopener" class="item-card res-card res-design"> <strong>DataModel</strong> <div class="res-type">DataModel</div> </a> <a href="asyncapi/wefitter-webhooks.yml" target="_blank" rel="noopener" class="item-card res-card res-design"> <strong>Webhooks</strong> <div class="res-type">Webhooks</div> </a> <a href="components/wefitter-components.yml" target="_blank" rel="noopener" class="item-card res-card res-design"> <strong>Components</strong> <div class="res-type">Components</div> </a> </div><p class="scroll-hint">Scroll within the panel for all 7 ·</p> </div> <div class="res-group"> <div class="res-group-head"> <h3 id="resources-build">Build <span class="res-count">3</span></h3> <p>SDKs, sample code, and the tooling you integrate with</p> </div> <div class="card-grid"> <a href="https://github.com/wefitter" target="_blank" rel="noopener" class="item-card res-card res-build"> <strong>GitHubOrganization</strong> <div class="res-type">GitHubOrganization</div> </a> <a href="packages/wefitter-packages.yml" target="_blank" rel="noopener" class="item-card res-card res-build"> <strong>Packages</strong> <div class="res-type">Packages</div> </a> <a href="packages/wefitter-packages.yml" target="_blank" rel="noopener" class="item-card res-card res-build"> <strong>SDKs</strong> <div class="res-type">SDKs</div> </a> </div> </div> <div class="res-group"> <div class="res-group-head"> <h3 id="resources-auth">Access & Security <span class="res-count">2</span></h3> <p>Authentication, authorization, and security posture</p> </div> <div class="card-grid"> <a href="security/wefitter-domain-security.yml" target="_blank" rel="noopener" class="item-card res-card res-auth"> <strong>DomainSecurity</strong> <div class="res-type">DomainSecurity</div> </a> <a href="authentication/wefitter-authentication.yml" target="_blank" rel="noopener" class="item-card res-card res-auth"> <strong>Authentication</strong> <div class="res-type">Authentication</div> </a> </div> </div> <div class="res-group"> <div class="res-group-head"> <h3 id="resources-operate">Operate <span class="res-count">3</span></h3> <p>Status, limits, changes, and where to get help</p> </div> <div class="card-grid"> <a href="https://developers.wefitter.com/support" target="_blank" rel="noopener" class="item-card res-card res-operate"> <strong>Support</strong> <div class="res-type">Support</div> </a> <a href="https://www.wefitter.com/en-us/developers/changelog/" target="_blank" rel="noopener" class="item-card res-card res-operate"> <strong>ChangeLog</strong> <div class="res-type">ChangeLog</div> </a> <a href="changelog/wefitter-changelog.yml" target="_blank" rel="noopener" class="item-card res-card res-operate"> <strong>ChangeLog</strong> <div class="res-type">ChangeLog</div> </a> </div> </div> <div class="res-group"> <div class="res-group-head"> <h3 id="resources-commercial">Commercial <span class="res-count">2</span></h3> <p>Pricing, plans, and the legal terms of use</p> </div> <div class="card-grid"> <a href="https://www.wefitter.com/en-us/terms-and-conditions/" target="_blank" rel="noopener" class="item-card res-card res-commercial"> <strong>TermsOfService</strong> <div class="res-type">TermsOfService</div> </a> <a href="https://www.wefitter.com/en-us/privacy-policy/" target="_blank" rel="noopener" class="item-card res-card res-commercial"> <strong>PrivacyPolicy</strong> <div class="res-type">PrivacyPolicy</div> </a> </div> </div> <div class="res-group"> <div class="res-group-head"> <h3 id="resources-company">Company <span class="res-count">2</span></h3> <p>The organization behind the API</p> </div> <div class="card-grid"> <a href="https://www.wefitter.com/en-us/resources/blog/" target="_blank" rel="noopener" class="item-card res-card res-company"> <strong>Blog</strong> <div class="res-type">Blog</div> </a> <a href="https://wefitter.com" target="_blank" rel="noopener" class="item-card res-card res-company"> <strong>Website</strong> <div class="res-type">Website</div> </a> </div> </div> <div class="res-group"> <div class="res-group-head"> <h3 id="resources-other">Other <span class="res-count">1</span></h3> <p>Properties that don't map to a standard resource type</p> </div> <div class="card-grid"> <a href="overlays/wefitter-openapi-overlay.yaml" target="_blank" rel="noopener" class="item-card res-card res-other"> <strong>Overlay</strong> <div class="res-type">Overlay</div> </a> </div> </div> <p class="text-muted small mt-4"> <a href="/providers/" class="text-decoration-none">← All providers</a> · Data indexed from <a href="https://github.com/api-evangelist/wefitter" target="_blank" rel="noopener">github.com/api-evangelist/wefitter</a> · <a href="https://apis.io/providers/wefitter/" target="_blank" rel="noopener">machine-readable index on apis.io</a> </p> </div> <!-- Right sidebar: metadata (top) + featured white paper --> <div class="col-lg-4"> <div class="prov-side"> <aside class="prov-meta card"> <div class="card-body"> <div class="prov-meta-head"><img class="prov-meta-logo" src="https://www.wefitter.com/static/frontend/img/website/wefitter.png" alt="WeFitter logo" loading="lazy" onerror="this.remove()"> <div> <div class="prov-meta-name">WeFitter</div> <div class="prov-meta-kicker">API Evangelist provider profile</div> </div> </div> <a class="prov-meta-score" href="#rating" title="Kin Score composite — full breakdown below"> <span class="pm-num">51.1<small>/100</small></span> <span class="band-pill band-developing">developing</span> </a> <div class="prov-meta-agent"> <span class="pm-agent-label">Agent readiness</span> <span class="pm-agent-num">71<small>/100</small></span> <span class="band-pill band-agent-native">agent native</span> </div> <div class="prov-meta-access"><span class="access-pill ax-self-serve">Self serve</span> </div> <dl class="prov-meta-facts"><dt>APIs</dt><dd>9</dd><dt>Artifacts profiled</dt><dd>14</dd><dt>First profiled</dt><dd>2026-07-17</dd><dt>Last updated</dt><dd>2026-07-21</dd> </dl> <div class="prov-meta-tags"><span class="tag-sm">Company</span><span class="tag-sm">Health</span><span class="tag-sm">Fitness</span><span class="tag-sm">Wearables</span><span class="tag-sm">Health Data</span><span class="tag-sm">Wellbeing</span><span class="tag-sm">Gamification</span><span class="tag-sm">Digital Health</span><span class="tag-sm">Insurance</span><span class="tag-sm">Activity Tracking</span> </div> <div class="prov-meta-links"><a class="pm-link primary" href="https://wefitter.com" target="_blank" rel="noopener"><span class="material-symbols-outlined">public</span> Website</a> <a class="pm-link" href="https://apis.io/providers/wefitter/" target="_blank" rel="noopener"><span class="material-symbols-outlined">travel_explore</span> View on apis.io</a> <a class="pm-link" href="https://github.com/api-evangelist/wefitter" target="_blank" rel="noopener"><span class="material-symbols-outlined">code</span> Source on GitHub</a> </div> </div> </aside> <aside class="prov-paper"> <div class="prov-paper-eyebrow">From the API Evangelist bookshelf</div> <a class="prov-paper-card" href="https://papers.apievangelist.com/papers/state-of-us-payments-apis/" target="_blank" rel="noopener"> <div class="prov-paper-cover"> <img src="https://papers.apievangelist.com/assets/covers/state-of-us-payments-apis.png" alt="The State of US Payments APIs cover" loading="lazy" onerror="this.closest('.prov-paper-cover').style.display='none'"> </div> <div class="prov-paper-body"> <div class="prov-paper-area">Sector Report</div> <div class="prov-paper-title">The State of US Payments APIs</div><p class="prov-paper-tagline">What sixty-eight US payment companies actually publish, scored — the deepest, most agent-instrumented payments estate on earth, and the market with...</p> <span class="prov-paper-cta">Read the paper → <span class="prov-paper-price">$500</span></span> </div> </a> <a class="prov-paper-all" href="https://papers.apievangelist.com/" target="_blank" rel="noopener">Browse all 68 papers →</a> </aside> </div> </div> </div> </div> <script type="application/ld+json"> { "@context": "https://schema.org", "@type": "Organization", "name": "WeFitter", "description": "WeFitter is a health and fitness data platform (\"one API to access wearable data, gamification and AI\") operated by Thunderbyte.AI in Groningen, Netherlands. Its REST API aggregates health and activity data from 300+ wearables and fitness apps — Fitbit, Garmin, Google Fit, Apple Health, Withings, Polar, Oura, Whoop, Samsung Health, Huawei and more — into a single unified, deduplicated data model, and layers gamification (challenges, leaderboards, teams, points) and AI insights (biological age, recommendations) on top. Organizations use it to build corporate wellbeing, digital fitness, e-health and insurance solutions. WeFitter also ships mobile SDK bridges for Apple Health, Samsung Health and Android Health Connect.", "logo": "https://www.wefitter.com/static/frontend/img/website/wefitter.png", "url": "https://wefitter.com", "keywords": "Company, Health, Fitness, Wearables, Health Data, Wellbeing, Gamification, Digital Health, Insurance, Activity Tracking" } </script> <div data-laneworks-ad="content-bottom"></div> </main> </div> </div> <!-- Footer --> <footer class="footer-ae py-4 mt-5"> <div class="container"> <div class="row align-items-center"> <div class="col-md-6"> <span>© 2026 API Evangelist</span> </div> <div class="col-md-6 text-md-end mt-2 mt-md-0"> <a href="https://apievangelist.com/about/api-evangelist" class="text-muted text-decoration-none me-3">About</a> <a href="https://apievangelist.com/contact" class="text-muted text-decoration-none me-3">Contact</a> <a href="https://github.com/api-evangelist" class="text-muted text-decoration-none me-3">GitHub</a> <a href="https://buttondown.com/apievangelist" class="text-muted text-decoration-none me-3">Newsletter</a> <a href="https://apievangelist.com/terms/" class="text-muted text-decoration-none me-3">Terms</a> <a href="https://apievangelist.com/privacy/" class="text-muted text-decoration-none">Privacy</a> </div> </div> </div> </footer> <!-- Bootstrap 5.3 JS --> <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/js/bootstrap.bundle.min.js" crossorigin="anonymous"></script> <!-- Kin Score glyph — renders every [data-kin-glyph] placeholder. Canonical source: api-evangelist/kin-score/glyph/ --> <script src="/assets/js/kin-glyph.js"></script> </body> </html>