Privacy Policy
Draft: not yet effective. Effective date: [to be set at publication]. Last updated: 2026-10-07
Who we are
Karot is a personal relationship assistant made by 7Otters LLC, 1930 18th St NW Suite B2 PMB 2261, Washington, DC 20009. It consists of an Android app, a Chrome extension, an iOS app, a small API at api.karotapp.com and this website. Privacy contact: [email protected].
The short version
- Your contacts live in your Google account. Karot does not keep a copy of your contact list on any server we run.
- Before Karot changes anything, the Android app saves a backup of your contacts' notes and labels to a file on your phone (Documents/Karot). The file stays on the device, and Settings → Restore contacts backup puts everything back.
- Karot is designed so that nothing derived from your contacts, notes, traits or goals is sent to Karot's servers. Karot's suggestions are made on your device.
- Karot does not store, log or send the text of your messages. On Android, if you turn on the optional notification listener, it briefly reads a notification's text on your device, only to tell a group chat from a one-to-one chat. It records only the contact, the app, the direction and the time. See "Notification metadata" below.
- We do not use analytics or advertising SDKs, and we do not sell personal data. Cloudflare, which hosts this site and our API, keeps standard request logs (IP address, user agent and timestamps) for security and operation.
Data Karot reads on your device
- Your contacts, with your permission: names, phone numbers, email addresses, organisation, labels or groups, significant dates, and the notes field. Karot uses this to show you who is due for contact. The Chrome extension and the iOS app reach Google Contacts through Google's API under your OAuth consent. The Android app does not use Google's web API: it reads and writes through the device's Contacts Provider, and Android's own account sync passes the changes to your Google account.
- Karot data you enter: traits, short- and long-term goals, notes, and the last-contacted timestamp. This is written back into the notes field of the same contact, inside a
### Karot Data ###section, so it syncs through your own Google account. - Notification metadata (Android only, optional): when you enable the notification listener, Karot records which messaging app produced a notification and which contact it maps to, in order to update "last contacted". To tell a group chat from a one-to-one chat, the listener briefly reads the notification's text on your device. It looks only at the text before the first ": " in it. That text is never logged, stored or sent anywhere. Karot records only the contact, the app the notification came from, the direction and the time. Nothing from this feature leaves your device. You can turn the listener off at any time in Android's notification access settings.
- Interaction history: stored in a local database on the device and not uploaded.
Information about the people in your contacts
Your contacts include people who are not Karot users. Karot reads their details and your notes about them on your device, and stores its section in the notes field of the same contact in your own Google account. Karot does not send this information to its servers and does not contact these people. The one exception is a card order, described under "Cards" below. You decide what you write about other people, so please write only what you would be comfortable with them seeing.
Data sent to the Karot API
Karot does not send contact data, notes, traits or goals to the API. The API receives only the requests described below.
Lookups
Some ideas in Karot (events, films, sports) come from a lookup. A lookup sends only these non-personal values, and only those: city, region, country, team, league, interest, cuisine, date_from, date_to, lat and lon. The API passes them to Ticketmaster, TMDB and TheSportsDB. No contact data is included.
Cards
Karot does not offer printed cards yet. When it does, ordering a card sends the recipient's name, postal address and the message you typed to Karot's server, and from there to a card printing and mailing partner. Karot's server holds that order at most 24 hours and deletes it once the partner accepts it. The partner keeps the order data under its own policy. The recipient is not a Karot user and has not agreed to anything with us, so please only enter an address you have the right to use. The partner will be named on the service providers page before cards go on sale.
What the API stores
| Data | Purpose | Retention |
|---|---|---|
| Rate-limit counters | Abuse and cost control | Up to 31 days, keyed by a one-way hash of your credential |
| Request logs | Reliability and abuse investigation | Our worker logs hold request id, path, method, authentication type, status, duration and timestamp, plus client error reports sent to /v1/errors (message, stack, app version, platform, URL path); we do not write contact data to these logs. They are kept by Cloudflare under its default retention, which we do not configure. Cloudflare's own network logs (IP address, user agent, timestamps) follow Cloudflare's retention. |
| Card order (when cards are offered) | Hand the order to the card partner | Recipient name, address and message are held at most 24 hours and deleted when the printing partner accepts the order. The whole order record on our server (order id, status, partner reference) expires 24 hours after it is created. Stripe keeps the payment record for as long as tax law requires, proposed 7 years. |
| Lookup results (events, films, sports) | Avoid repeat calls to the data provider | Your lookup values are not stored against you. The answer is cached under the lookup values only, shared by all users, with no account or key attached, for 30 minutes (sports) to 12 hours (films), and then deleted automatically. |
| Error reports (Chrome extension) | Fixing crashes | Off unless you turn them on. If on, they would contain an error type, a shortened message, a sanitized stack trace, the extension version, coarse platform and a masked page path of the extension itself. No contact data |
Your account record
If the API issues you a key, it keeps one small record. If something is later bought, the record also holds payment references. The record is designed to hold only these fields:
| Field | Why | Retention |
|---|---|---|
| A SHA-256 hash of your Karot key | Authenticates your requests. The key itself is not stored, only its hash | While the account exists; deleted immediately when you delete your account |
| Membership status | Decides what is unlocked for you | While the account exists. A revoked key stays on the record, marked revoked, until you delete your account; account deletion removes it immediately. |
| Stripe customer id and email address | Only when you buy something. Links payment events to your account and supports support requests | While the account exists; deleted immediately when you delete your account |
| Timestamps and status (created, updated, revoked and why) | Support, abuse handling, and knowing whether a membership is live | While the account exists |
Karot does not operate a database of your contacts, notes or relationship history.
Payments are processed by Stripe when something is purchased on our website. Your card number and billing address are held by Stripe under its own privacy policy and are not stored by Karot. If a purchase is made through an app store, that store handles the payment under its own terms. Nothing is on sale at launch.
How long we keep things
- Contact data, notes, traits and goals live in your Google Contacts. They are kept until you edit or delete them there. Karot's server never holds them.
- Interaction history (who, when, which app, direction, and the optional summary you type) is on your device only, in the app's local database. It is kept until you delete it or uninstall the app. Nothing expires automatically.
- The contacts backup Karot takes before its first write (a JSON snapshot in Documents/Karot and a private app copy) stays on your phone until you delete it or uninstall the app.
- The account record on our server (hashed key, a hash of your email, the email address itself if you bought something, plan and membership status, a revoked flag, Stripe customer id, timestamps) is kept while the account exists and deleted immediately when you delete your account. Short-lived helpers: sign-in claim records 7 days, claim markers 30 days, Stripe event ids 3 days. Stripe keeps its own payment records separately.
- Card orders: the recipient's name, address and message are held at most 24 hours and deleted when the printing partner accepts the order. The rest of the order record on our server also expires within 24 hours. The payment reference is kept by Stripe for as long as tax law requires, proposed 7 years.
- Lookup values ("Together" ideas) are not stored beyond the request, except that the answer is cached without any account or key for 30 minutes to 12 hours.
- Server and website logs: our worker logs hold request id, path, method, authentication type, status, duration and timestamp, plus client error reports sent to /v1/errors (message, stack, app version, platform, URL path). They are kept by Cloudflare under its default retention, which we do not configure. Cloudflare's own network logs follow Cloudflare's retention.
- Your newsletter email address stays with Buttondown until you unsubscribe. A one-time welcome email is sent through Resend, which handles the address only to deliver it.
- The crash log on Android stays on your device and is never sent to us. It is capped at roughly 50 KB (it restarts when it grows past that).
Launch updates mailing list
If you sign up on the homepage to hear when Karot launches, we collect your email address and when you signed up. We use this only to tell you when Karot launches on your platform and to send occasional product updates. The list is stored and sent by Buttondown, acting as our processor. Karot does not keep a separate copy of the list on its own servers. Every email from the list includes an unsubscribe link, and we do not sell the list. To have your address deleted, email [email protected].
Third parties
Karot uses service providers in these categories: sign-in and contacts storage, cloud hosting, payment processing, newsletter delivery, lookup data providers (which receive no personal data), and, when cards are offered, a card printing and mailing partner. The current names, what each receives and why are on the service providers page. We do not share your data with advertising networks or data brokers.
This website, cookies and server logs
This website sets no cookies, does not use local storage, and loads no third-party scripts, fonts or analytics, so it needs no cookie banner. Cloudflare serves the site and keeps standard request logs (IP address, user agent and timestamps). The only data the site sends us is your email address, if you use the launch updates signup described above.
Security and where data is processed
Our website and API are served over HTTPS. The API stores your Karot key only as a one-way hash. Your contacts and Karot's notes are stored by Google in your own account, under Google's security. Our API runs on Cloudflare Workers, which execute in Cloudflare's global network. Stored records are kept in Cloudflare KV, which is replicated across Cloudflare data centres, including in the United States. Payments are processed by Stripe in the United States. Google and Buttondown process data under their own policies. 7Otters LLC is a United States company and Karot is offered in the United States. If you are in the UK or the European Economic Area, see "If you are in the UK or the European Economic Area" above for how your data is handled. We do not claim any security certification or audit. [ATTORNEY: confirm cross-border wording]
Google API Services Limited Use disclosure
Karot's use and transfer to any other app of information received from Google APIs will adhere to the Google API Services User Data Policy, including the Limited Use requirements. This applies to the Chrome extension and the iOS app, which access Google Contacts through Google's API. The Android app uses the device's Contacts Provider and Android's own account sync, not Google's web API. Google user data is used only to provide the features described here and is not sold or used for advertising. [ATTORNEY: confirm Limited Use wording]
Legal basis and your rights
Where the GDPR or similar laws apply, processing is based on your consent (which you give in the Google OAuth screen and by enabling optional features) and on the performance of the service you asked for. You can access, correct, export or delete your contact data at any time. Because it is stored in your own Google account, you do this directly in Google Contacts. For the other data we hold (an account record, a launch updates signup, request logs), use the request channel below. Karot makes no automated decisions that have legal or similarly significant effects on you.
Privacy requests
To ask about, correct or delete data we hold about you, including an account record, a mailing-list signup or request logs, email [email protected] from the email address tied to your account. Replying from that address is how we verify it is you. We aim to respond within 30 days. [ATTORNEY: confirm period]
Deleting your data
- Remove the
### Karot Data ###block from a contact's notes to delete the data for that person. - Uninstall the app or extension to remove all local data, including interaction history.
- Revoke Karot's access at myaccount.google.com/permissions.
- To delete your account record, email [email protected]. Stripe keeps its own payment records for as long as tax and accounting law requires, which we cannot shorten.
If you are in the UK or the European Economic Area
[ATTORNEY: this whole section is a draft for redline] Karot is offered in the UK and the European Economic Area (EEA) as well as the United States. This section adds what the UK GDPR and the EU GDPR require.
Controller. 7Otters LLC, a limited liability company in Washington, DC, USA, is the controller of the personal data described in this policy. It has no establishment in the UK or the EEA. Contact: [email protected]. [ATTORNEY: whether an EU or UK representative under Art. 27 is required, and whether a data protection officer is needed]
Why we process your data, and on what basis. Your contacts and Karot's notes stay in your own Google account and on your device, and Karot's server does not receive them. The table covers the data we do handle.
| Activity | Data | Lawful basis |
|---|---|---|
| Providing the service and any membership | Hashed Karot key, membership status, timestamps, Stripe customer id and billing email | Contract (Art. 6(1)(b)) |
| Security logs, rate limiting and fraud prevention | Request metadata, IP address and user agent in Cloudflare logs, rate-limit counters | Legitimate interests (Art. 6(1)(f)): keeping the service secure and preventing abuse [ATTORNEY: legitimate interests assessment] |
| Launch and newsletter emails | Email address and sign-up time | Consent (Art. 6(1)(a)), which you can withdraw at any time [ATTORNEY: consent record and confirmation step] |
| Access to your Google contacts | Contacts and the Karot section of the notes field, in your Google account | Consent (Art. 6(1)(a)), given in the Google OAuth screen and by switching on optional features [ATTORNEY: confirm; contract may also apply for the core feature] |
| Tax and payment records | Payment records held by Stripe | Legal obligation (Art. 6(1)(c)) |
[ATTORNEY: confirm bases] Where a later section says we rely on your consent or on performance of the service, read it together with this table.
Your rights. You have the right to:
- access the personal data we hold about you;
- have inaccurate data corrected (rectification);
- have your data deleted (erasure);
- restrict how we use your data;
- receive your data in a portable format, where the processing is based on consent or contract;
- object to processing based on legitimate interests;
- withdraw consent at any time, without affecting what was done before you withdrew; and
- complain to a supervisory authority. In the UK this is the Information Commissioner's Office (ICO, ico.org.uk). In the EEA, you can complain to the authority in the country where you live, work or believe the problem happened.
To use a right, email [email protected]. See "Privacy requests" below for how we verify you and how fast we reply. [ATTORNEY: confirm response period of one month]
International transfers. 7Otters LLC is in the United States, so your data is processed in the United States by 7Otters LLC and by its processors listed on the service providers page. Some processors also operate elsewhere. Transfers from the UK and the EEA rely on [ATTORNEY: transfer mechanism, SCCs / UK IDTA or UK Addendum / adequacy decision or data privacy framework certification for each processor]. Providing the data is needed to use the related feature; the app works without server-side data if you do not use a membership or the newsletter.
How long we keep data. See "How long we keep things" above.
Automated decisions. Karot makes no automated decisions that have legal or similarly significant effects on you. Karot's suggestions are made on your device from templates and are not profiling of that kind.
Cookies. This website sets no cookies and uses no local storage, so it shows no cookie banner. See "This website, cookies and server logs" below.
Children
Karot is not directed to children and is not for anyone under 13. If Karot is ever offered in the EU or UK, the minimum age there is 16. The Terms of Service say the same. We do not knowingly collect data from under-age users. If we learn that a child has given us data, we will delete it.
Changes
If this policy changes materially, the updated version will be posted here with a new effective date before the change takes effect. [ATTORNEY: notice and renewed consent if our use of Google data changes]