Personvernerklæring
HealthBridge lagrer helsedataene dine slik at du selv kan la en KI-klient du velger lese dem, og slik at treningsøkter kan sendes til Apple Watch eller skrives til Health Connect på Android. Vi selger ingenting, viser ingen reklame, og gir ikke dataene dine videre til en tredjepart for deres egne formål.
Behandlingsansvarlig
mtnlabs.ai — et personlig prosjekt drevet fra Norge, ikke et registrert selskap. Kontakt: hello@mtnlabs.ai. Behandlingsansvarlig er privatpersonen bak mtnlabs.ai. Fullt navn og postadresse oppgis skriftlig og uten kostnad på forespørsel til adressen over, og til Datatilsynet. Alle henvendelser om personvern — innsyn, retting, sletting, dataportabilitet — besvares på samme adresse.
Hvilke opplysninger vi behandler
- Helsedata fra Apple Health eller Health Connect som du selv velger å dele: puls, hvilepuls, HRV, respirasjonsfrekvens, søvn med søvnstadier, treningsøkter med varighet, distanse, energi og puls, oksygenmetning, VO₂maks, skritt og vekt. Fra treningsøkter kan også total stigning, temperatur og luftfuktighet, løpseffekt og løpshastighet, og de faktiske intervallgrensene klokka registrerte, inngå.
- Planlagte treningsøkter i Health Connect — egen skrivetilgang. På Android kan du be HealthBridge skrive planen fra din autoriserte KI-assistent til Health Connect. Denne tillatelsen gir ikke HealthBridge tilgang til å lese planlagte økter. Vanlige oppdateringer erstatter bare framtidige økter skrevet av HealthBridge og lar i dag og tidligere dager stå. Når du bytter eller sletter konto, forsøker appen å slette alle planlagte økter den har skrevet; Android kan da også fjerne koblingen fra en fullført økt. Sletter du appdata eller avinstallerer appen, må du bruke Health Connects kontroll for appdata for å fjerne eventuelle gjenværende planlagte økter.
- Rutedata (GPS) — krever eget samtykke, og er AV som standard.
Hvis du slår det på, lagrer vi posisjonene klokka registrerte under økten:
breddegrad, lengdegrad, høyde over havet og nøyaktighet, tynnet ut til omtrent
ett punkt hvert femte sekund.
Dette er den mest sensitive kategorien i tjenesten. En GPS-logg over treningen din viser hvor du bor, når du er ute, og dermed når huset er tomt. Grunnen til at vi likevel tilbyr det er at gode råd om terreng krever det — om intervallene faktisk gikk i samme bakke, hvilken stigning du hadde, hvordan et løp bør pacet mot den virkelige traseen, og hva vinden gjorde.
Rutedata er ikke en del av det vanlige samtykket til treningssynk. Du må krysse av for det separat, du kan skru det av når som helst, og du kan slette det alene uten å slette resten. Er det av, forlater posisjonene aldri telefonen.
Ut fra posisjonene bygger vi også et grovmasket register over hvilke steder en økt gikk gjennom, slik at to turer i samme løype kan kjennes igjen som samme rute uten å sammenligne hver enkelt koordinat. Det registeret er et forenklet kart over hvor du ferdes, så vi behandler det nøyaktig som posisjonene selv: det bygges bare mens rutesamtykket er på, og skrur du rutesamtykket av, slettes registeret i samme operasjon som sletter posisjonene. - Måltider (ernæring) — krever eget samtykke, og er AV som standard.
Bildet du tar av måltidet når aldri serverne våre. Telefonen gir det til
KI-assistenten du selv har autorisert, assistenten anslår hva som ligger på
tallerkenen, og det eneste som lagres hos oss er tallene den skriver tilbake: et
anslag oppgitt som et intervall for kalorier, protein, karbohydrat og fett, en
kort merkelapp, tidspunkt og dag. Det finnes ingen bildekolonne i databasen.
Et fotografert måltid er et anslag av deler av en dag, ikke inntaket ditt. Derfor kaller vi det aldri inntak, og derfor holder vi dagssummen tilbake med mindre du selv har bekreftet at dagen er komplett — en assistent kan ikke bekrefte det på dine vegne. Legger du til eller fjerner et måltid etterpå, faller bekreftelsen bort av seg selv.
Trekker du samtykket tilbake, slutter vi å ta imot nye måltider, men de som allerede er lagret blir stående. De er en del av din egen helsejournal, og du skal kunne se og hente dem ut. Svaret forteller deg hvor mange vi beholdt og hvilken adresse som sletter dem. Du kan rette og slette enkeltmåltider når som helst — også etter at samtykket er trukket, fordi retting og sletting er rettigheter og ikke noe et samtykke skal kunne stenge. - Egenrapportert velvære — krever eget samtykke, og er AV som standard.
Hvis du slår det på, kan du registrere fem korte vurderinger fra 1 til 5:
søvnkvalitet, tretthet, stølhet, stress og motivasjon. Etter en lagret treningsøkt
kan du også registrere opplevd anstrengelse fra 1 til 10. Dette er dine egne
svar om treningsrelevant dagsform, ikke en psykisk-helsetest, diagnose eller
skaderisiko. Det finnes ikke noe fritekstfelt.
En assistent du selv har autorisert kan lese svarene som del av treningskonteksten din. Vi summerer dem ikke med pulsbelastning eller ernæring til ett «totalbelastningstall». Manglende svar betyr ikke null eller at alt er bra.
Trekker du samtykket tilbake, lagrer vi ingen nye svar. Tidligere svar blir stående slik at du kan se, rette og hente dem ut. Du kan slette ett svar eller hele denne historikken uten å slette resten av kontoen. - Trener i økten (AI) — krever eget samtykke, og er AV som standard.
Slår du det på, kan treneren i klokka sende øktdataene dine mens du løper —
puls, fart, stigning og pulsdrift — til Anthropics API for å svare underveis.
Dette er den ene funksjonen der helsedata forlater enheten til en tredjepart:
behandlingen skjer i USA foreløpig, og ingenting lagres der. Uten dette samtykket
spør klokka aldri, og ingen øktdata sendes for et svar underveis.
Det er et eget samtykke, atskilt fra treningssynk og fra egenrapportert velvære. Du kan skru det av når som helst; da slutter klokka å få svar fra neste spørsmål. - Skader og treningsbegrensninger — krever eget samtykke, og er AV som
standard. Hvilken kroppsregion du har fortalt oss plager deg, om den er
aktiv eller i bedring, hvordan den påvirker deltakelse, treningsmengde og
prestasjon, en egenrapportert smerteverdi fra 0 til 10, om en behandler er
involvert, og datoene du svarte.
Ingenting av dette er fritekst, og ingen bilder er involvert. Vi lagrer bare koder fra vårt eget vokabular, tall og datoer. Det finnes ingen diagnosekolonne i databasen, og ingen felt i denne funksjonen kan bære et bilde eller en beskrivelse av ett. Dette er ikke en pasientjournal, og det er ikke medisinsk rådgivning.
Bare dine egne svar registreres. Har du ikke svart, står det som ukjent — taushet lagres aldri som «ingen skade», og en tom liste betyr ikke at du er skadefri. Vi skiller på om noen har spurt og om du svarte at det ikke var noe å melde, fordi de to tingene ikke betyr det samme.
Smerteverdien er én egenrapportert avlesning på én dato. Vi lagrer ingen historikk for den, så et uendret tall er ikke bevis på at det ikke har endret seg — bare på at det ikke ble rapportert på nytt. Det er ingen trend, og skal ikke leses som en.
Trekker du samtykket tilbake, slutter vi å ta imot nye opplysninger, men det som allerede er lagret blir stående, av samme grunn som for måltider. Du kan endre eller slette hvert enkelt punkt når som helst, uten å røre resten av dataene dine. - Google Health — krever eget samtykke, og er AV som standard.
Dette er det motsatte av Strava-delingen: her leser vi fra en tredjepart
i stedet for å skrive til den. Slår du det på og kobler til en Google-konto,
henter serveren vår med jevne mellomrom de kategoriene du gir tilgang til fra
helsejournalen din hos Google — puls og pulsvariasjon, hvilepuls, VO2maks,
vekt, oksygenmetning og registrerte økter.
Vi skriver aldri noe til Google. Tilgangen vi ber om er utelukkende lesetilgang, og du kan gi færre kategorier enn vi spør om — appen viser hvilke du faktisk ga.
Dette skjer på serveren, ikke på telefonen, og derfor også når telefonen er avslått. Det er grunnen til at det er et eget samtykke: en tilkobling som leser av seg selv er noe annet enn en app du åpner. Vi oppbevarer tilgangsnøklene kryptert, og de er utelatt fra dataeksporten din — de er levende legitimasjon til en annen konto, ikke opplysninger om deg.
Trekker du samtykket tilbake, kobler vi fra og ber Google om å oppheve tilgangen, slik at det ikke ligger igjen en stående leserett hos dem. Det samme skjer når du sletter kontoen: vi ber Google oppheve tilgangen før vi sletter nøklene, ellers ville vi ikke hatt noe å be med. Svarer ikke Google, sletter vi kontoen din likevel — det skal ikke stå på dem — men da ligger tilgangen fortsatt igjen hos Google, og du fjerner den selv på myaccount.google.com → Sikkerhet → Tredjeparter med tilgang til kontoen din. Målinger vi allerede har hentet blir stående i kontoen din — de er dine — og kan slettes enkeltvis eller sammen med kontoen.
Strava er ikke det samme, og skal ikke leses som det. Der leverer vi til dem, og sletter du kontoen, forsvinner nøkkelen vi brukte — men HealthBridge blir stående som en godkjent app i Strava-innstillingene dine til du fjerner den der. - Hvordan tjenesten brukes: for hver dag lagrer vi hvilke verktøy assistenten din brukte og hvor mange ganger, samt hvor lang tid de tok. Det er tellinger og verktøynavn, ingen helseverdier og ingen innhold. Vi bruker det til to ting: å se at ingen løkke løper løpsk og koster mer enn den skal, og å forstå hvilke deler av tjenesten folk faktisk finner. Grunnlaget er berettiget interesse i å drive og forbedre tjenesten. Loggen er med i dataeksporten din, slettes med kontoen, og slettes uansett etter tolv måneder.
- Forslag og tilbakemeldinger til oss: hvis du ber assistenten din om å sende oss et ønske, en irritasjon, en feil eller ros, lagrer vi teksten den sender — en tittel på inntil 80 tegn og en beskrivelse på inntil 1 000 tegn — sammen med hvilken del av tjenesten det gjelder, tidspunktet og et eventuelt svar fra oss. Dette er det eneste stedet vi lagrer fritekst fra deg, og det leses av et menneske (Fredrik), ikke av en modell. Tjeneren avviser tekst som ser ut som en e-postadresse, en nettadresse, et telefonnummer eller et brukernavn, og lagrer da ingenting. Beskriv produktet, ikke kroppen din: en måleverdi i setningen kan vi ikke oppdage. Tar vi et forslag videre, kan Fredrik gjenfortelle det med egne ord på det lukkede prosjektet bidragsyterne jobber fra; teksten din publiseres aldri. Forslagene er med i dataeksporten, slettes med kontoen, kan trekkes tilbake når som helst, og avsluttede forslag slettes automatisk etter tolv måneder.
- Import av treningsdetaljer fra andre tjenester: når din egen AI-assistent henter detaljerte treningsdata fra en tjeneste du selv bruker (for eksempel sykkelcomputeren din) og sender dem hit, lagrer vi en kort logg over forsøket: tidspunkt, hvilken tjeneste, tjenestens egen id for økta, hvilke typer data som ble sendt og hvor mange punkter, og om det lyktes eller ble avvist. Loggen er avgrenset til de siste forsøkene. Den inneholder ingen måleverdier — selve dataene lagres som vanlige treningsdata, beskrevet over. Vi lagrer den fordi et avvist forsøk ellers ikke setter spor noe sted, og da er «det virket ikke» umulig å skille fra «ingen har prøvd».
- Treningsutstyr og treningssted: hvilket utstyr du har bekreftet at du
har, hvilket du har sagt at du ikke har, hvilken type rom du trener i
(for eksempel hjemmegym, hotellrom, arbeidsplass eller et fysikalsk
behandlingsrom), og datoen du svarte. Vi lagrer dette for å slippe å stille deg
det samme spørsmålet hver økt, og fordi et program bare kan foreslå øvelser du
faktisk kan gjøre.
Ingenting av dette er fritekst, og ingen bilder er involvert. Vi lagrer bare id-er fra vår egen utstyrskatalog og id-en for typen rom — det finnes ingen bildekolonne i databasen, og ingen felt noe sted i denne funksjonen som kan bære et bilde eller en fritekstbeskrivelse.
Bare dine egne svar havner her. Sier du at du ikke har noe, blir det svaret stående til du selv endrer det, og det du har bekreftet at du har, står som ditt svar. Har du ikke svart på noe, står det som ukjent — taushet blir aldri lagret som et nei. Du kan endre et svar når som helst, og du kan slette hele oversikten uten at det rører resten av dataene dine. - Én-repetisjonsmaksimum (1RM): den tyngste vekten du klarer én gang i en øvelse, sammen med om tallet er testet eller estimert, datoen, antall repetisjoner et estimat kom fra, og en valgfri merknad på inntil 280 tegn som du eller treneren din skriver. Merknaden er fri tekst og kan inneholde det du velger å skrive der, for eksempel hvorfor et løft ble avbrutt. Vi lagrer dette fordi et program ellers ikke kan angi belastning som en prosent av maksimum. Du kan endre eller slette hvert enkelt tall når som helst.
- Kontoopplysninger: en identifikator fra innloggingstjenesten du velger (Apple, Google eller GitHub) og navnet ditt derfra, tidspunkt for samtykke, hvilke enheter og KI-klienter du har autorisert, hvilken av enhetene dine du har valgt skal telle aktivitetssummene dine for dagen — enhetens eget navn, slik telefonen oppgir det, eller ingenting hvis du lar det stå på automatisk — og treningsinnstillingene du velger — hvilken treningsmetode du har valgt og hvilken tone du vil ha den sagt i, hver av dem ett ord fra en fast liste. Ved Google-innlogging lagrer vi en enveis-kryptert («hashet») versjon av kontonummeret ditt, ikke e-postadressen som identifikator. Vi ber bare om navn og e-post, og aldri om tilgang til noe annet i kontoen din.
- Det assistenten skriver til deg: treningsplanene og morgenbriefene KI-klienten din publiserer, og begrunnelsene den skriver til hver økt. Dette er ikke målinger, men tekst en assistent du selv har autorisert har laget om treningen din — vi lagrer den så appen og klokka kan vise den, og så neste samtale kan lese hva den forrige foreslo. Den ligger under det obligatoriske samtykket, følger med i eksporten din, og slettes med kontoen.
- Driftslogger med tidspunkt, endepunkt og status. Loggene inneholder aldri helseverdier. Vi lagrer også, for de siste 14 dagene, hvor mange ganger appen din faktisk har sendt oss data og hva som startet hver av disse sendingene — om du hadde appen åpen, eller om telefonen gjorde det i bakgrunnen — sammen med når den sist gjorde det. Bare sendinger som faktisk inneholdt noe, telles: en bakgrunnssjekk som ikke fant noe nytt, er ikke med i dette tallet i det hele tatt. Det lar oss se om telefonen din i det hele tatt har klart å levere i bakgrunnen. Det inneholder ingen helseverdier, ingen tekst du har skrevet, og ingenting om andre.
Appen leser bare de datatypene du krysser av for ved oppsett. Den separate tillatelsen for planlagte økter er bare for skriving. Data du ikke deler, kommer aldri inn i systemet og kan derfor heller ikke leses av noen.
Behandlingsgrunnlag
Helsedata er en særlig kategori personopplysninger etter personvernforordningen artikkel 9. Grunnlaget vårt er ditt uttrykkelige samtykke, jf. artikkel 9 nr. 2 bokstav a, gitt i appen før noe overføres. Du kan når som helst trekke samtykket tilbake; det påvirker ikke lovligheten av behandlingen frem til da.
Samtykkene er atskilte, og bare ett av dem er påkrevd: det som dekker treningssynkroniseringen tjenesten er til for. Resten er frivillige og uavhengige av hverandre: forskning på avidentifiserte data, produktforbedring (analyse av hvordan funksjonene brukes), rutedata (GPS), måltider, deling til Strava, lesing fra Google Health, egenrapportert velvære, trener i økten (AI) og skader. Forskning og produktforbedring er med vilje to ulike brytere: forskning kan en dag hvile på unntaket i artikkel 89 og bli vanskelig å kalle tilbake, mens funksjonsutvikling aldri gjør det, og én felles bryter ville gjort det umulig å vite hvilken av delene du faktisk sa ja til. Hvert enkelt kan slås av og på uten at de andre eller tjenesten påvirkes, og vi fører en logg over når hvert samtykke ble gitt og trukket, slik at det er dokumenterbart og ikke bare et avkrysningsfelt.
Hvem leser dataene
HealthBridge gir ikke dataene dine videre til en tredjepart for deres egne formål. Dataene ligger på vår server, og du autoriserer en KI-klient (for eksempel Claude) til å hente dem, på samme måte som du gir en app tilgang til kalenderen din. Det finnes én vei der data går ut på vårt initiativ og ikke ditt, og den er verdt å nevne framfor å gli forbi: et varsel. Se varsler på skjermen din lenger nede. Klienten leser på din instruks, og den som driver klienten er selvstendig behandlingsansvarlig for det som skjer der.
Du kan når som helst se hvilke klienter som er autorisert, når de sist leste data, og trekke tilgangen tilbake — inne i appen.
Det betyr ikke at ingen andre kan lese dem: se neste avsnitt om hva jeg som drifter tjenesten har tilgang til.
Hva jeg som drifter tjenesten kan se
Jeg har teknisk tilgang til databasen, og dermed til helsedataene dine.
Det er ikke til å komme utenom. Analysene kjøres på serveren, så dataene må ligge der i lesbar form. Kryptering som stengte meg ute, ville også stengt ute funksjonaliteten tjenesten finnes for.
Hva tilgangen brukes til: å rette feil og holde øye med kapasitet. Ikke til å bla i treningsdataene dine av nysgjerrighet. Jeg ser på enkeltbrukeres data når noen ber om hjelp med en konkret feil — ellers ikke.
Hva som begrenser den:
- Administratorverktøyene ligger bak en egen legitimasjon på et eget endepunkt. En vanlig pålogget økt — også min egen — kan verken se eller bruke dem. Én kompromittert innlogging gir altså ikke tilgang til andres data.
- All administratorbruk logges.
- Ingen andre enn meg har tilgang. Det finnes ingen kollega som ser meg i kortene, og ingen organisasjon rundt dette.
Er ikke dette greit for deg, er det en helt rimelig grunn til å la være å bruke tjenesten. Da er alternativet å beholde dataene i Apple Health eller Health Connect, der de allerede er.
Varsler på skjermen din
Appen kan sende varsler, og de går gjennom Apple, som er databehandler for selve leveringen. Det er fire slag: en ny plan, en brief fra assistenten din, en melding fra assistenten, og en påminnelse om måltider.
Tre av de fire har teksten i selve varselet. Det er verdt å si rett ut, for det betyr at en setning assistenten har skrevet om formen din kan stå på en låst skjerm og bli lest av den som står ved siden av deg — og at den har gått gjennom Apples servere for å komme dit. En brief sender tittelen og de første 140 tegnene; en ny plan sender navnet på blokken og neste økt; en melding fra assistenten sender inntil 60 og 300 tegn fri tekst. Måltidspåminnelsen er den fjerde, og den sender ingen tekst i det hele tatt — den peker på en setning appen allerede har, i stedet for å sende teksten. Forskjellen er et valg, ikke en tilfeldighet. (Det gjelder iPhone. Android-varsler bygges annerledes og har teksten med, men vi sender ingen ennå.)
Meldinger fra assistenten finnes bare på telefonen din. Serveren lagrer dem ikke — den beholder en forkortet tittel i loggen og ingen brødtekst — så det appen viser under Meldinger er det den fanget opp fra varselet da det kom. Sletter du appen, er de borte.
Vil du ikke ha teksten på låseskjermen, er det iOS som styrer det, ikke oss: under Innstillinger → Varsler → HealthBridge kan du slå av forhåndsvisning av varsler, slik at du ser at det har kommet noe uten å se hva. Meldinger fra assistenten kan du dessuten slå helt av inne i appen.
Hvor dataene ligger
Kontoen og de valgte helsedataene lagres hos Cloudflare, i Europa (region Vest-Europa), som databehandler for oss. Dataene er kryptert under overføring og i hvile på plattformnivå.
Hvor lenge vi lagrer
Så lenge du har en konto. Sletter du kontoen, slettes alt umiddelbart. En konto som ikke har synkronisert på 24 måneder slettes automatisk, inkludert alle helsedata. Sikkerhetskopier med inntil 30 dagers tilbakestillingsvindu kan inneholde data noe lenger.
Tjenesten er gratis og uten garantert tilgjengelighet, og kan avvikles når som helst — da slettes alle helsedata. Se tjenestenivå og oppsigelse.
Valgfri støttechat
I appversjoner med Hjelp og støtte finnes lokale veiledninger og telefonkontroller uten innlogging eller trenerforbindelse. Når nettbasert chat er aktivert, godkjenner du et eget behandlingsvarsel før teksten sendes til Microsoft Azure AI Foundry og modelleverandøren som oppgis der. Chat krever internett og er teknisk støtte, ikke en trener eller medisinsk rådgiver.
Telefonkontroller sendes ikke automatisk. Du forhåndsviser og velger om et begrenset teknisk sammendrag skal deles. Også datoer og opplysninger om hvilke datatyper som finnes kan være sensitive. Ikke skriv helseverdier, navn, tilgangstokener, koblingsadresser eller rålogger i chatten.
HealthBridge lagrer ikke støttechatten i helsedatabasen, driftsdatabasen for støtte eller applikasjonslogger, og oppretter ingen samtaletråd hos Foundry. Historikken holdes midlertidig i appen. Tjenesten ber om svar uten svarlagring; det er ikke et løfte om at leverandørens sikkerhets- og misbrukskontroller ikke bevarer data. Gjeldende leverandørvilkår må gjennomgås før chat aktiveres. Separate kvotetellere beskytter mot misbruk; de inneholder ikke meldingstekst eller HealthBridge-kontoidentitet. Å dele et sammendrag oppretter ikke en sak til et menneske.
Rettighetene dine
- Innsyn i hvilke opplysninger vi har om deg (artikkel 15).
- Retting av uriktige opplysninger (artikkel 16).
- Sletting — knappen «Slett konto og data» i appen sletter alt, umiddelbart og uten å spørre oss (artikkel 17).
- Dataportabilitet: å få utlevert dataene i et maskinlesbart format (artikkel 20).
- Å trekke tilbake samtykke når som helst (artikkel 7 nr. 3).
- Å klage til Datatilsynet (datatilsynet.no).
Innsyn og dataportabilitet er noe du kan gjøre selv, uten å spørre oss:
GET /api/export laster ned alt vi har om kontoen din som en
NDJSON-fil — én JSON-linje per rad, med tabellnavnet på hver linje. Filen starter
med et manifest som forklarer innholdet og teller opp radene, og slutter med en
oppsummering av hva som faktisk ble skrevet. Kall den med samme tilgangstoken som
appen bruker.
Én ting er bevisst holdt utenfor: selve nøklene. Tilgangstokener, APNs-tokener og engangskoder er legitimasjon, ikke opplysninger om deg, og en fil du blir oppfordret til å laste ned og flytte bør ikke inneholde en fungerende nøkkel til kontoen. De er erstattet med en kort identifikator som ikke kan regnes tilbake — den samme som vises under «Mine enheter». Manifestet navngir hver eneste kolonne som er utelatt, og hvorfor.
Eksporten og slettingen går gjennom den samme listen over tabeller i koden, så det du kan laste ned og det som blir slettet er per konstruksjon det samme.
Er noe uklart, eller vil du ha innsyn på en annen måte: skriv til hello@mtnlabs.ai, så svarer vi innen 30 dager.
Det vi ikke gjør
- Vi selger ikke data, og bruker dem ikke til reklame eller profilering for markedsføring.
- Vi lagrer ikke helsedata i iCloud.
- Vi bruker ikke informasjonskapsler til sporing.
- Vi bruker ikke dataene til å trene KI-modeller.
Ikke medisinsk utstyr
HealthBridge er et treningsverktøy, ikke et medisinsk hjelpemiddel. Ingenting i appen er medisinsk rådgivning, diagnose eller behandling. Treningsøkter kan inneholde hard innsats — snakk med lege før du starter hvis du er i tvil om helsen din.
Privacy notice
HealthBridge stores your health data so that you can let an AI client of your choosing read it, and so that workouts can be sent to your Apple Watch or written to Health Connect on Android. We sell nothing, show no advertising, and never hand your data to a third party for their own purposes.
Controller
mtnlabs.ai — a personal project run from Norway, not a registered company. Contact: hello@mtnlabs.ai. The controller is the individual behind mtnlabs.ai. Full name and postal address are provided in writing, free of charge, on request to the address above, and to the Norwegian Data Protection Authority. All privacy requests — access, rectification, erasure, portability — are answered at the same address.
What we process
- Health data from Apple Health or Health Connect that you choose to share: heart rate, resting heart rate, HRV, respiratory rate, sleep with stages, workouts (duration, distance, energy, heart rate), blood oxygen, VO₂max, steps and body mass. From workouts we may also process total ascent, temperature and humidity, running power and running speed, and the actual interval boundaries the watch recorded.
- Planned workouts in Health Connect — separate write access. On Android, you can ask HealthBridge to write the plan from your authorised AI assistant to Health Connect. This permission does not let HealthBridge read planned workouts. Routine updates replace only future sessions written by HealthBridge and preserve today and earlier days. When you switch or delete an account, the app tries to remove every planned session it wrote; Android may also clear the link from a completed workout. If you clear app storage or uninstall the app, use Health Connect's app-data controls to remove any planned sessions that remain.
- Route data (GPS) — separate consent, OFF by default.
If you turn it on, we store the positions your watch recorded during a session:
latitude, longitude, altitude and accuracy, thinned to roughly one point every
five seconds.
This is the most sensitive category in the service: a GPS log of your training reveals where you live, when you are out, and therefore when the house is empty. We offer it because terrain-aware coaching needs it — whether your intervals actually covered the same hill, what gradient you were on, how a race should be paced against the real course, and what the wind was doing.
Route data is not part of ordinary workout-sync consent. You opt in separately, you can switch it off at any time, and you can delete it on its own without deleting anything else. With it off, positions never leave your phone.
From the positions we also build a coarse index of which places a session passed through, so that two runs over the same ground can be recognised as the same route without comparing every coordinate. That index is a quantised map of where you go, so we treat it exactly like the positions themselves: it is built only while route consent is on, and switching route consent off deletes the index in the same operation that deletes the positions. - Meals (nutrition) — separate consent, OFF by default.
The photograph you take of a meal never reaches our servers. Your phone hands
it to the AI assistant you have authorised, the assistant estimates what is on the
plate, and the only thing stored here is the numbers it writes back: an estimate
given as a range for calories, protein, carbohydrate and fat, a short label, the
time and the day. There is no image column in the database.
A photographed meal is an estimate of part of a day, not your intake. So we never call it intake, and we withhold the daily total unless you have personally confirmed the day is complete — an assistant cannot confirm that on your behalf. Add or remove a meal afterwards and the confirmation lapses by itself.
If you withdraw consent we stop accepting new meals, but those already stored remain. They are part of your own health record and you should be able to see and export them. The response tells you how many were kept and which address deletes them. You can correct or delete individual meals at any time — including after withdrawing consent, because correction and erasure are rights and not something a consent switch should be able to close off. - Self-reported wellbeing — separate consent, OFF by default.
If you turn it on, you can record five short ratings from 1 to 5: sleep quality,
fatigue, soreness, stress and motivation. After a stored workout you can also
record perceived exertion from 1 to 10. These are your own answers about
training-relevant daily state, not a mental-health test, diagnosis, or injury
risk. There is no free-text field.
An assistant you have authorised can read the answers as part of your training context. We do not add them to heart-rate load or nutrition as one "total load" number. A missing answer never means zero or that everything is fine.
If you withdraw consent, we stop storing new answers. Earlier answers remain so you can see, correct and export them. You can delete one answer or this complete history without deleting the rest of your account. - In-session AI coaching — separate consent, OFF by default.
If you turn it on, the coach on the watch may send this session's live metrics
while you run — heart rate, pace, gradient and heart-rate drift — to Anthropic's
API to answer mid-run. This is the one feature where health data leaves the
device to a third party: processing is in the US for now, and nothing is stored
there. Without this consent the watch never asks, and no session metrics are
sent for a live answer.
It is a separate consent from training sync and from self-reported wellbeing. You can turn it off at any time; the watch then stops being answered from the next ask. - Injuries and training constraints — separate consent, OFF by default.
Which body region you have told us is bothering you, whether it is active or
settling, how it affects participation, training volume and performance, a
self-reported 0–10 rating, whether a clinician is involved, and the dates you
answered.
None of this is free text, and no photograph is involved. We store only tokens from our own vocabulary, numbers and dates. There is no diagnosis column in the database, and no field anywhere in this feature could carry an image or a description of one. This is not a medical record and it is not medical advice.
Only your own answers are recorded. Anything you have not answered stays unknown — silence is never stored as "no injury", and an empty list does not mean you are uninjured. We keep "nobody has asked" distinguishable from "asked, and there was nothing to report", because those are not the same fact.
The rating is one self-reported reading on one date. We keep no history for it, so an unchanged number is not evidence that it has not moved — only that it was not recorded again. It is not a trend and must not be read as one.
If you withdraw consent we stop accepting new entries, but those already stored remain, for the same reason as meals. You can change or delete any entry at any time without touching the rest of your data. - Google Health — separate consent, OFF by default.
This is the opposite of the Strava sharing above: here we read from a
third party rather than write to one. Turn it on and connect a Google account,
and our server periodically fetches the categories you grant from your Google
health record — heart rate and heart-rate variability, resting heart rate,
VO2max, weight, oxygen saturation and recorded sessions.
We never write anything to Google. The access we ask for is read-only, and you may grant fewer categories than we ask for — the app shows which ones you actually granted.
This happens on the server, not on your phone, and therefore also while your phone is switched off. That is why it is its own consent: a connection that reads by itself is a different thing from an app you open. We hold the access keys encrypted, and they are withheld from your data export — they are live credentials to another account, not information about you.
If you withdraw consent we disconnect and ask Google to revoke the access, so that no standing permission to read is left behind there. Deleting your account does the same: we ask Google to revoke before we delete the keys, because afterwards we would have nothing left to ask with. If Google does not answer we delete your account anyway — that should not wait on them — but the access is then still standing at Google, and you remove it yourself at myaccount.google.com → Security → Your connections to third-party apps and services. Measurements already fetched stay in your account — they are yours — and can be deleted individually or with the account.
Strava is not the same and should not be read as though it were. There we deliver to them, and deleting your account destroys the key we used — but HealthBridge stays listed as an approved app in your Strava settings until you remove it there. - How the service is used: for each day we keep which tools your assistant called, how many times, and how long they took. Counts and tool names, no health values and no content. We use it for two things: seeing that no loop is running away and costing more than it should, and understanding which parts of the service people actually find. The basis is legitimate interest in running and improving the service. The log is in your data export, is erased with your account, and is deleted after twelve months in any case.
- Suggestions and feedback to us: if you ask your assistant to send us a wish, a friction, a bug or praise, we store the text it sends — a title of up to 80 characters and a description of up to 1,000 — with which part of the service it concerns, when, and any reply from us. This is the one place we store free text from you, and it is read by a person (Fredrik), not by a model. The server refuses text that looks like an email address, a web address, a phone number or a username, and then stores nothing. Describe the product, not your body: a measurement inside a sentence is something we cannot detect. If a suggestion is taken up, Fredrik may restate it in his own words on the private project the contributors work from; your text is never published. Suggestions are in your data export, are erased with your account, can be withdrawn at any time, and closed ones are deleted automatically after twelve months.
- Imports of training detail from other services: when your own AI assistant reads detailed training data from a service you use (your bike computer, for example) and sends it here, we keep a short record of the attempt: when, which service, that service's own id for the session, which kinds of data were sent and how many points, and whether it succeeded or was refused. The record is limited to the most recent attempts. It holds no measured values — the data itself is stored as ordinary training data, described above. We keep it because a refused attempt otherwise leaves no trace anywhere, which makes "it did not work" impossible to tell apart from "nobody tried".
- Training equipment and where you train: which equipment you have
confirmed you have, which you have said you do not have, what kind of room
you train in (a home gym, a hotel room, your workplace, or a physiotherapy or
rehab room, for example), and the date you answered. We store it so the same
question is asked once rather than every session, and because a plan can only
offer movements you are actually able to do.
None of this is free text, and no photograph is involved. We store only ids from our own equipment catalogue and the id for a kind of room — there is no image column in the database, and no field anywhere in this feature that could carry an image or a free-text description.
Only your own answers are recorded here. If you say you do not have something, that answer stands until you change it yourself, and anything you have confirmed is recorded as your answer. Anything you have not answered stays unknown — silence is never stored as a no. You can change an answer at any time, and you can delete the whole inventory without touching the rest of your data. - One-rep maxima (1RM): the heaviest weight you can lift once in a given exercise, together with whether the number was tested or estimated, the date, the reps an estimate was calculated from, and an optional note of up to 280 characters written by you or your coach. The note is free text and can contain whatever you choose to put there, such as why a lift was stopped. We store it because otherwise a plan cannot set load as a percentage of your maximum. You can change or delete each number at any time.
- Account data: an identifier from the login service you choose (Apple, Google or GitHub) and your name from it, consent timestamps, which devices and AI clients you have authorised, which of your recorders you have chosen to count your daily activity totals — the device's own name, as your phone reports it, or nothing at all if you leave that on automatic — and the coaching settings you choose — which coaching method you picked and the tone you want it spoken in, each one word from a fixed list. For Google sign-in we store a one-way hash of your account identifier rather than your email address as the key. We request only name and email, and never access to anything else in your account.
- What the assistant writes to you: the training plans and morning briefs your AI client publishes, and the reasoning it writes for each session. These are not measurements but text produced about your training by an assistant you authorised — we store it so the app and the watch can show it, and so the next conversation can read what the last one proposed. It sits under the required consent, travels in your export, and is deleted with your account.
- Operational logs of time, endpoint and status. Logs never contain health values. We also keep, for the last 14 days, how many times your app actually sent us data and what started each of those sends — whether you had the app open, or your phone did it in the background — together with when it last did. Only sends that carried something are counted: a background check that found nothing new is not in this count at all. That lets us see whether your phone has been able to deliver in the background at all. It holds no health values, no text you wrote, and nothing about anyone else.
The app reads only the data types you tick at setup. Its separate planned-workout permission is write-only. Data you don't share never enters the system and therefore cannot be read by anything.
Legal basis
Health data is special-category data under GDPR Article 9. Our basis is your explicit consent under Article 9(2)(a), given in the app before anything is transmitted. You may withdraw it at any time; withdrawal does not affect the lawfulness of processing before then. Consent is granular and only one part is required: the one covering the workout sync the service exists for. The rest are optional and independent of one another: research on de-identified data, product improvement (analysing how features are used), route data (GPS), meals, sharing to Strava, reading from Google Health, self-reported wellbeing, in-session AI coaching and injuries. Research and product improvement are two different switches on purpose: research may one day rest on the Article 89 derogation and become hard to recall, while feature development never does, and a single shared switch would make it impossible to tell which of the two you actually agreed to. Each can be switched on or off without affecting the others or the service, and we keep a ledger of when every consent was given and withdrawn, so it is demonstrable rather than merely a checkbox.
Who reads your data
HealthBridge does not hand your data to a third party for their own purposes. It sits on our server, and you authorise an AI client (for example Claude) to fetch it — much as you grant an app access to your calendar. There is one path where data leaves on our initiative rather than yours, and it is worth knowing about rather than glossing: a notification. See notifications on your screen below. The client reads on your instruction, and whoever operates that client is an independent controller for what happens there.
You can see every authorised client, when it last read your data, and revoke it — inside the app.
That does not mean nobody else can read it: see the next section on what I, as the operator, have access to.
What I, as the operator, can see
I have technical access to the database, and therefore to your health data.
There is no way around it. The analysis runs on the server, so the data has to sit there in readable form. Encryption that locked me out would also lock out the functionality the service exists to provide.
What the access is used for: fixing faults and watching capacity. Not for browsing your training data out of curiosity. I look at an individual's data when they ask for help with a specific problem — otherwise not.
What constrains it:
- Admin tools sit behind a separate credential on a separate endpoint. An ordinary signed-in session — including my own — can neither see nor use them. One compromised login therefore does not reach anyone else's data.
- All admin use is logged.
- Nobody but me has access. There is no colleague checking my work and no organisation around this.
If that isn't acceptable to you, it is an entirely reasonable reason not to use the service. The alternative is to keep the data in Apple Health or Health Connect, where it already is.
Notifications on your screen
The app can send notifications, and they travel through Apple, which is our processor for delivering them. There are four kinds: a new plan, a brief from your assistant, a message from your assistant, and a meal reminder.
Three of the four carry their text inside the notification itself. That is worth saying plainly, because it means a sentence your assistant wrote about your condition can sit on a locked screen where whoever is next to you can read it — and that it passed through Apple's servers to get there. A brief sends its title and the first 140 characters; a new plan sends the block name and your next session; a message from the assistant sends up to 60 and 300 characters of free text. The meal reminder is the fourth, and it sends no text at all — it names a sentence the app already holds instead of sending the words. The difference is a choice rather than an accident. (That is the iPhone. Android notifications are built differently and do carry the text, though we send none yet.)
Messages from your assistant exist only on your phone. The server does not keep them — it holds a shortened title in its log and no body at all — so what the app shows under Messages is what it caught from the notification as it arrived. Delete the app and they are gone.
If you would rather the text stayed off your lock screen, iOS decides that and we do not: under Settings → Notifications → HealthBridge you can turn previews off, so you see that something arrived without seeing what. Assistant messages can also be switched off entirely inside the app.
Where data is stored
Your account and selected health records are stored with Cloudflare, in Europe (Western Europe region), acting as our processor. Encrypted in transit and at rest at platform level.
Retention
For as long as you have an account. Delete the account and everything goes immediately. An account that has not synced for 24 months is deleted automatically, health data included. Backups with a 30-day restore window may hold data slightly longer.
The service is free, carries no availability guarantee, and may be discontinued at any time — at which point all health data is deleted. See service level and termination.
Optional support chat
App versions with Help & Support include local guides and phone checks without sign-in or a coaching connection. When hosted chat is enabled, you accept a separate processing notice before text is sent to Microsoft Azure AI Foundry and the model provider identified there. Chat needs internet and provides technical support, not coaching or medical advice.
Phone checks are not sent automatically. You preview and choose whether to share a limited technical summary. Even dates and category-presence information can be sensitive. Do not put health readings, names, access tokens, connector URLs, or raw logs in chat.
HealthBridge does not store support transcripts in the health database, support operational database, or application logs, and does not create a Foundry conversation thread. History is held temporarily in the app. The service requests non-stored responses; this does not promise that provider safety or abuse-monitoring systems retain nothing. Applicable provider terms must be reviewed before enabling chat. Separate quota counters protect against abuse without message text or HealthBridge account identity. Sharing a summary does not file a human-support ticket.
Your rights
Access (Art. 15), rectification (Art. 16), erasure (Art. 17 — the "Delete Account and Data" button in the app does this immediately, without asking us), portability (Art. 20), withdrawal of consent (Art. 7(3)), and the right to complain to the Norwegian Data Protection Authority, Datatilsynet.
Access and portability are self-service: GET /api/export, with the
same access token the app uses, streams everything we hold about your account as
NDJSON — one JSON object per line, tagged with the table it came from, opening
with a manifest that explains the file and counts the rows and closing with a
summary of what was actually written. Credentials are deliberately left out:
access tokens, APNs tokens and one-time setup codes are keys, not facts about
you, and a file you are encouraged to download and move elsewhere should not
contain a working key to the account. They are replaced by a short identifier
that cannot be reversed — the same one shown under "My devices" — and the
manifest names every column withheld and why. Export and erasure walk the same
list of tables in the code, so what you can download and what gets deleted are
the same set by construction.
For anything else, write to hello@mtnlabs.ai; we answer within 30 days.
What we don't do
We do not sell data, advertise, profile you for marketing, store health data in iCloud, use tracking cookies, or train AI models on your data.
Not a medical device
HealthBridge is a training tool. Nothing in it is medical advice, diagnosis or treatment. Sessions may include hard efforts — talk to a doctor first if you have any doubt about your health.