PRIVACY POLICY
Privacy policy
What ReadHalo collects, why, who helps us run it, how long we keep it, and how to delete it.
In effect from
Who we are
ReadHalo is run by Gaurav Thakur, an individual based in India (“we”, “us”). Address: Bengaluru, Karnataka, India.
This policy covers the readhalo.com website, the ReadHalo extensions for Chrome and Safari, the iPhone, iPad and Mac apps, and ReadHalo accounts and Premium voices, served from account.readhalo.com.
For privacy questions, requests or complaints, email support@readhalo.com.
In short
- Device voices need no account. ReadHalo doesn’t send their text to us.
- Finding the article happens in your browser. With a Premium voice, the text you play goes to our voice service and DeepInfra (Natural voices) or Inworld (Studio voices) to make the audio.
- We don’t collect the addresses of pages you read or your browsing history.
- We collect product usage analytics to understand setup, listening, reliability and subscriptions. This includes that the player appeared, even before you press Play. Page titles, reading text, your email and your IP address never go to PostHog, our analytics service.
- We have no ads, and we don’t sell data.
- You can delete your account and its linked analytics at any time from Manage account.
In your browser
To find the article and show the player or Listen buttons, the extension reads pages on the sites Chrome’s Site access allows it on. That happens inside your browser. The extension doesn’t send page addresses, titles or your history to us.
Your settings stay in the extension’s storage in your browser: voice, speed, where the player sits, and each site’s setting. We measure changes to voice and speed, but don’t send your saved site settings to our analytics service.
Premium audio you’ve played is kept in your browser as saved audio, up to 50 MB, so replays start quickly and don’t use characters. Saved audio expires after 30 days. Help › Clear saved audio in the player removes it. In Incognito windows, audio is kept in memory only.
When you sign in, the extension keeps a sign-in token in its storage. Signing out in the extension ends that token on our side and removes it.
Help › Report a problem shows a diagnostic report you can copy and email to us. It doesn’t include the page address or any article text. This report is sent only if you send it to us. Product analytics is separate and is sent automatically.
We collect setup steps, that the player appeared, playback lengths and outcomes, voice and speed choices, upgrade steps, and errors by category. We also collect the app or extension version, browser type and platform. Our service adds your country from your connection. It doesn’t pass your IP address to PostHog.
Only when you start playback, we record a broad site category, such as X, Reddit or an article. We don’t collect page addresses, titles, reading text or browsing history for analytics. Showing the player doesn’t tell us which site you’re on.
The extension and apps use random IDs saved on your device. Signing in links earlier usage to your account’s random ID. Signing out replaces the device’s analytics ID. The extension doesn’t send analytics from private or Incognito windows.
When you remove the Chrome extension, its uninstall link includes its current random ID, browser type and version. This connects removal to earlier usage. You can choose a reason on that page, or leave without choosing. The link has no email, sign-in token or other credential.
The website has no ads or analytics cookies. It uses a random ID in session storage, which lasts for that tab’s session, not a persistent visitor ID. We count visits to a fixed list of our own pages and clicks on store links. On the landing page, we keep only campaign tags from a short list we recognise. We don’t collect referring page addresses. This also applies in private windows. The sample player plays recordings bundled with the site. The account website uses a separate cookie to keep you signed in, and a session-only random ID before sign-in.
Device voices
With a device voice, ReadHalo hands the text to your browser or device’s speech engine, not to us. Voices from your computer’s operating system speak on your computer.
Chrome also lists some voices that its maker provides over the internet, such as “Google US English” and “Google UK English Female”. If you choose one of these, Chrome sends the text to Google to speak it, under Google’s privacy policy. Choose another device voice to avoid that.
Analytics records playback lengths, timing and outcomes, not the words you hear or the audio.
Your account
You need an account only for Premium voices. Signing in creates one. We keep:
- Your email address
- To identify your account and send sign-in codes. Codes are stored hashed and expire after 5 minutes.
- Sign-in sessions
- When you sign in on the account website, we record the session’s IP address and browser (its user agent), and when it started and was last used. A cookie keeps you signed in there. A session stops working 30 days after you last used it.
- Connected browsers
- A hashed sign-in token for each browser you connect, with when it was created and when it expires.
- Your plan and usage
- Your plan, when your free listening resets or your paid month ends, and how much of your allowance you’ve used this month.
- Abuse limits
- The account website counts requests from each IP address to each sign-in step, to stop people guessing codes or flooding email. These counts aren’t linked to your account.
- Sign in with Google or Apple
- If the sign-in page offers these and you use one, that provider shares your name and email address with us.
We link product usage to your account’s random ID when you sign in. We measure sign-in and upgrade steps, and whether an account is used internally. PostHog doesn’t get your email or name. It gets the random ID, your plan and how Premium access was granted.
Payments
Razorpay takes payment for Premium on its own checkout page. We never see or store your card, UPI or bank details. Razorpay keeps its own records under its privacy policy.
We keep the Razorpay subscription ID, the payment IDs, the period each payment covers, whether a payment was refunded or disputed, and the IDs of Razorpay’s notifications to us.
For each refunded or disputed payment, we keep a case with when it happened and whether we’ve reviewed it. When a dispute cancels a renewal, we record our requests to Razorpay to cancel it, with any error Razorpay returned. We also keep a log of billing actions on your account: refunds, disputes, cancelled renewals, and what we check or change to fix a billing problem, each with its time and any note we add. The log keeps the latest 1,000 entries.
If App Store purchases or restores are offered in your build, Apple handles them. We keep verified purchase and subscription records to grant access. Analytics includes payment and subscription outcomes, amounts, currency and random reference IDs. It never includes card, bank or UPI details, checkout addresses or the payment provider’s raw responses.
Services we use
- Cloudflare
- Hosts readhalo.com and account.readhalo.com, stores account records, and caches Premium audio. It handles your IP address and request details to deliver and protect both sites.
- PostHog
- Measures product usage and subscriptions for us on its US Cloud service in the United States. It gets limited usage events and random IDs, not your email, IP address or reading content. See its privacy policy.
- DeepInfra
- Makes audio for Natural voices from the text you play.
- Inworld
- Makes audio for Studio voices from the text you play.
- Razorpay
- Takes payments for Premium.
- ZeptoMail, by Zoho
- Sends sign-in codes. It gets your email address and the code, with open and click tracking turned off.
They process data for us to provide these services; Inworld may also use what it gets to improve its own, as above. Your data may be processed outside your country: DeepInfra is in the United States, as is PostHog US Cloud, and Inworld is based there and may process data in other countries too. Cloudflare serves you from data centres around the world.
How we use data
ReadHalo’s use of information received from your browser complies with the Chrome Web Store User Data Policy, including the Limited Use requirements.
We use data only to read pages aloud, run your account and Premium, keep the service secure, and measure and improve setup, listening and reliability. We don’t sell it. We don’t use or share it for advertising, to train AI models, to decide creditworthiness or lending, or for anything unrelated to reading aloud.
We routinely review combined usage counts to improve ReadHalo. People read your individual data only when you ask us to, for example in a support email, when security requires it, or when the law requires it.
How long we keep it
- Product analytics
- PostHog keeps events available for up to seven years under our plan. Reaching that limit doesn’t guarantee that every stored copy is physically erased. When you delete your account, we request deletion of its linked analytics, including earlier usage linked at sign-in. This runs in the background; we retry failures. Activity never linked to an account can’t be found by email. A late uninstall signal may arrive after deletion.
- Unsent extension analytics
- Kept on your device for no more than 24 hours. Older events are discarded rather than sent later.
- Email, plan and usage
- Until you delete your account.
- Sign-in sessions, with IP address and browser
- Until you sign out on the account website or delete your account.
- Connected browsers
- A browser’s token stops working 30 days after it was last used, and 90 days after it was created at most. We delete it when you sign out in that browser, choose Sign out on all devices, or delete your account.
- Premium request IDs, times and browser token hashes
- Deleted once they’re more than 24 hours old, the next time we accept a Premium request from you. Those from the 24 hours before your last request stay after you stop using Premium voices or delete your account, linked to the random account ID.
- Premium audio in Cloudflare’s cache
- Up to 24 hours.
- Saved audio in your browser
- Expires after 30 days. Clear it sooner with Help › Clear saved audio, or remove the extension.
- Sign-in codes
- Expire after 5 minutes.
- Abuse limit counts
- The latest count for each IP address and sign-in step, which later requests overwrite. We don’t delete them on a schedule yet.
- Payment records, billing cases and the billing log
- Kept after you delete your account, to handle refunds, disputes and tax records. They’re linked to a random account ID, not your email.
- Deleted accounts
- We keep the random account ID and when its sign-ins were ended, so old sign-ins and late payment notices can’t bring the account back.
- Support email
- Kept in our mailbox. Ask and we’ll delete it, unless it’s about a payment we need to keep a record of.
- Request logs
- Our service doesn’t write request logs. Cloudflare’s database recovery history can hold deleted records for up to 30 days.
Your choices and requests
- Use device voices only, with no account.
- Choose which sites ReadHalo can read in Chrome’s Site access.
- Clear saved audio with Help › Clear saved audio.
- Sign out in the extension, or choose Sign out on all devices on Manage account to disconnect every browser.
- Delete your account: open Manage account and choose Delete account. This also requests deletion of linked analytics. See deleting your account.
To get a copy of your data, correct it, or have us delete it, email support@readhalo.com from the address on your account. We may ask you to confirm the request from that address. If you’re unhappy with our answer, you can complain to the data protection authority where you live.
Children
ReadHalo accounts are for people 18 and over. We don’t knowingly collect data from anyone younger. If you think a child has made an account, email support@readhalo.com and we’ll delete it.
Changes
When we change this policy, we’ll post the new version here with a new date at the top.