Privacy Policy
Effective date: 7 November 2026 · Version: 1.0 (in-app consent version: v2)
Dreams are among the most personal stories we tell. This policy explains what data Onira processes when you use it, why, who receives it and what your rights are. It is also our notice under the UK General Data Protection Regulation (UK GDPR), the EU GDPR (Art. 13) and Turkey's Personal Data Protection Law No. 6698 (KVKK).
1. Who we are (controller)
Onira is published by, and your personal data is controlled by:
Tarsier Vision Ltd (TARSIER VISION LIMITED)
Registered in England and Wales, company no. 14733954
71-75 Shelton Street, Covent Garden, London, WC2H 9JQ, United Kingdom
Email: privacy@oniradreams.com
Users in Turkey: our controller is established outside Turkey (in the United Kingdom). Our data controller representative in Turkey under KVKK: you can send requests to privacy@oniradreams.com. When you use Onira from Turkey, your data is also transferred to us in the United Kingdom as the controller (see sections 5 and 6).
2. In short
- We don't ask for your name, email or phone number. Your account is created with an anonymous ID.
- Your dream is sent to AI services for interpretation and imagery only with your explicit consent.
- Voice recordings are not stored. They are transcribed and discarded.
- Your dream journal is stored encrypted on your device (AES-256-GCM; the key lives in the device's secure key store).
- No ads. Your data is never used for advertising or profiling, and never sold.
- You can export your dreams or delete them completely along with your account.
3. Data we process
| Category | What | Source |
|---|---|---|
| Account and device | Anonymous user ID; language (tr/en); market (Turkey/global); plan (free/premium); a one-way hash of your device ID (the raw device ID is not stored) | App |
| Dream content | Dream text (up to 4,000 characters); input mode (text/voice); optional context (how you woke up, sleep quality 1-5, "anything on your mind" note; these reach AI services only with your explicit consent, see also the "Daily log" row); emotion tags; dream date | You |
| Daily log (streak) | For each dream or "I don't recall a dream" entry, the date, entry type, sleep quality (1-5) and wake-up feeling label if given (up to 60 characters), plus your streak counter and time zone, are stored on the server. The sleep quality and wake-up feeling answers fall under AI consent: they are sent to and stored on the server only with your consent; without it they stay on your device and only the day's date and entry type go to the server (your streak is not broken). With consent, these answers also go to AI services as context when you ask for a reading. Deleted with your account. | You |
| Voice recording | A spoken dream (up to 2 MB / 120 s). Not stored. Only passed on for transcription. | You |
| Personalization | Optional onboarding answers (why you're here, life stage, how often you recall dreams), reminder time | You |
| Generated content | Interpretations (emotion, essence, depth, reflective question, small step), symbols, scene description for the image, dream images; which model and prompt version produced them | Onira |
| Feedback and reports | Your 👍/👎 on interpretations; the reason you choose when you "Report" an interpretation or image (inappropriate, wrong or irrelevant, disturbing) and, if you wish, a free-text note of up to 300 characters. The note may contain personal data, so it is not written to event logs; it stays only in the report record, is not sent to AI services and is deleted with your account. Please don't put names, contact details or other people's information in it. | You |
| Consent records | One record for AI processing and cross-border transfer: whether you gave or withdrew it, the version, the time and, where the app language is known when the record is made, the language. Records made when you withdraw or re-grant consent from the settings screen may have no language. | App |
| Usage and quota | Counts and dates of successful readings and images, cost data; counters for abuse and budget limits (IP addresses only as a one-way digest, never raw; counters are deleted after 3 days) | Onira |
| App events | Event names such as "dream saved" or "paywall viewed" and short technical properties. They contain no dream text, name, email or other personal data; the server enforces this. | App |
| Subscription | Status, product, start and end dates, store. We never receive your card details, since Apple or Google handles payment. | Adapty, Apple, Google |
| Technical logs | Our own code logs only request method, path, result and duration. It doesn't record IP addresses, and dream text is never logged. Our hosting provider's (Supabase) platform logs do include IP address and device/browser details. These are kept under the provider's rules for up to 90 days. | System |
Special category data: Dreams may naturally include information about health, sex life or beliefs (GDPR Art. 9; KVKK Art. 6). We never ask for it, but what you write may contain it. That's why AI processing of your dreams relies only on your explicit consent.
4. Where your data is kept
- On your device: the main copy of your dream journal, stored encrypted on your device: dreams, settings and your consent record are encrypted with AES-256-GCM; the key is generated randomly, kept in the device's secure key store (iOS Keychain / Android Keystore) and never leaves the device. This makes it harder for anyone to read the app's files directly; it does not protect against someone using the app while your phone is unlocked. Files you export are readable. If the key is lost (for example on a device change or restore from backup), the encrypted on-device data cannot be read; it is not deleted, but it cannot be recovered either.
- What the server holds: what you send to the server for a reading or for backup (dream text, interpretations, images, daily log, consent and usage records, subscription summary) is kept against your account. It is not covered by the on-device encryption; we do not use end-to-end encryption for server data, and it is kept for the periods in Section 7.
- In the cloud: backup and sync on Supabase infrastructure, region: EU (Germany).
- Dream images are kept in private storage only you can access and are delivered through short-lived (1-hour) signed links.
- Cookies and analytics. Unless you consent, this website runs no cookies or tracking tools. On your first visit a banner appears with "Accept" and "Reject" buttons of equal prominence. If you accept, Google Analytics 4 is loaded to understand how the site is used: page views, approximate location (country and city level), device and browser type, and clicks on the store buttons. IP addresses are shortened; advertising identifiers and ad personalisation are switched off; the content of your dreams never reaches the website, dreams stay in the app. The legal basis is your explicit consent; you can withdraw it at any time from the "Cookie preferences" link in the footer, and withdrawing does not affect earlier processing. Your choice is kept in your browser (localStorage,
onira-consent) for 12 months. Google Ireland Limited (together with Google LLC) processes the data on our behalf; transfers abroad rely on your explicit consent and the transfer safeguards Google provides. If you reject, no analytics data is collected. Our hosting provider (Vercel) also keeps standard access logs (IP address, browser details). - Row-level access rules ensure each user can only read their own records. Service keys live only on the server, never in the app.
5. Purposes and legal bases
| Purpose | Data | Legal basis (GDPR / KVKK) |
|---|---|---|
| Providing, saving and backing up your dream journal | Dream content, account | Contract (Art. 6(1)(b); KVKK 5/2-c). Explicit consent for special category content (Art. 9(2)(a); KVKK 6). |
| Interpreting your dream, transcribing your voice, creating the dream image, saving your sleep check-in answers | Dream content, context and personalization answers, sleep check-in answers, voice recording | Explicit consent (Art. 9(2)(a); KVKK 6) |
| Transfers to our controller (UK) and to AI providers outside your country | As above | Transfers rely on your explicit consent and the transfer safeguards in applicable law |
| Crisis safety: showing support information instead of a reading when text signals self-harm | Dream text (automatic check); a "crisis triggered" event without text | Within consent. Vital interests (Art. 9(2)(c)) |
| Managing the free gift and quotas, preventing abuse and runaway costs | Device ID hash, usage counters | Legitimate interests (Art. 6(1)(f)) |
| Managing your subscription | Subscription data | Contract (Art. 6(1)(b)) |
| Improving interpretation quality, reviewing inappropriate output | 👍/👎, report reasons, model and prompt version | Legitimate interests |
| Understanding product usage | App events (no personal data) | Legitimate interests |
| Legal obligations and claims | Necessary records | Legal obligation / legal claims |
If you don't consent: you can still write and keep dreams in your journal, but interpretation, transcription and images won't work. Your sleep check-in answers (sleep quality, wake-up feeling) stay on your device only; just the day's entry goes to the server. No dream text is sent to any AI service without your consent.
Withdrawing consent: anytime in the app via Profile > Privacy and data > AI permission and then Withdraw permission, or by emailing privacy@oniradreams.com. When you withdraw, AI features (interpretation, transcription, images) turn off, your dream journal stays, and your consent record on our server is updated. Withdrawal doesn't affect processing done before it, and you can give permission again later.
6. Who receives your data
We don't sell your data or share it with ad networks. We share only what's needed with the service providers below. The list of AI providers comes from the same source as the in-app consent text; if it changes, the consent version is raised and we ask for your consent again:
- OpenRouter (AI routing service; OpenRouter, Inc.)
- Purpose: Routing interpretation and transcription requests to models
- Data: Dream text, context and personalization answers, symbol list from past dreams, voice recording
- Location: USA
- DeepSeek (via OpenRouter; free and primary model)
- Purpose: Dream interpretation
- Data: Dream text, context and personalization answers, sleep check-in answers (when sent as context)
- Location: varies by the provider OpenRouter routes to
- Google (Gemini models, via OpenRouter; Google LLC)
- Purpose: Backup interpretation, sensitive-content classification and speech-to-text
- Data: Dream text, context; voice recording (voice entry only)
- Location: USA and Google's global data centers (processing region cannot be selected)
- kie.ai (image generation intermediary; NEXUSAI SERVICES LLC and INNOLEAP AI LLC) and the image model providers it uses
- Purpose: Creating your dream image
- Data: Not your dream text, only a short scene description (in English) derived from it
- Location: kie.ai: USA. The model providers that generate the image (e.g. ByteDance, Alibaba) may operate in other countries, including China.
- Supabase (hosting, database, storage)
- Purpose: Account, backup, images
- Data: Data in this policy
- Location: Region in section 4
- Adapty (subscription management; Adapty Tech Inc.)
- Purpose: Verifying subscription status
- Data: Subscription data, anonymous user ID
- Location: USA (Standard Contractual Clauses for EU data)
- Apple, Google
- Purpose: Distribution and payment
- Data: Purchase data under their own policies
- Location: –
- On OpenRouter we disable routing to providers that use data for model training.
- The image provider may change. If it does, this list and the in-app consent text will be updated.
- We may disclose data to authorities where legally required.
7. How long we keep data
| Data | Retention |
|---|---|
| Dreams, interpretations, images, personalization, usage and quota records | Until you delete them. Deleting your account deletes all of it, including image files. |
| Inactive accounts | Free accounts not used at all for 24 months are deleted with all their data (including image files) by a daily automated job. Accounts with an active subscription or billing issue are not deleted this way. Because accounts are anonymous we cannot email you in advance, so we do not send a notice before deletion. |
| Voice recordings | Never stored |
| Consent records | For the life of the account, deleted with it (no separate proof copy is kept at present). |
| Daily log (streak, sleep quality, wake-up feeling) | For the life of the account, deleted with it. |
| Free-text note on a content report | Automatically cleared 14 months after the report (the report reason stays, the note is removed). Also deleted with your account. |
| App events (no personal data) | 14 months. Deleted automatically when the period ends (daily cleanup job). If you delete your account, the user ID field of your events is cleared; they remain as anonymous counts for the rest of the period. |
| Server logs | Up to 90 days (under our hosting provider's rules) |
| Device ID hash (free gift) | Only a one-way hash is kept, never the raw device ID. Its purpose is to prevent abuse of the free gift. Kept for 14 months after account deletion. It doesn't directly identify you. |
| Subscription event records (event type, product, store, dates) | On account deletion the user ID field is cleared; records without a user ID are deleted automatically after 14 months. While the account exists, statutory retention obligations apply . |
| Rate-limit counters | 3 days |
| Signed link for images | 1 hour |
We complete deletion requests within 30 days at the latest. Deleting in the app starts immediately.
8. Exporting and deleting your data
- Export: Profile > Privacy and data > Export my data (JSON) gives you your dreams as a JSON file.
- Delete: Profile > Privacy and data > Delete my account and all my data. This cannot be undone. Local data on your device and its encryption key are deleted too. On the server, your dreams, interpretations, image files, daily log (streak, sleep quality, wake-up feeling), report notes, consent and usage records, subscription summary and your account are deleted. If you can't access the app, email privacy@oniradreams.com with your Support ID. We complete requests within 30 days. Details: oniradreams.com/en/support#delete-account.
- After deletion, only the records in section 7 that don't directly identify you remain.
- Deleting your account doesn't cancel your subscription. Cancel it separately in App Store or Google Play settings.
- Subscription service (Adapty): Deleting your account does not by itself delete your subscription profile at Adapty; the app does not forward that request to Adapty. The link to our records is cut, while the record at Adapty may remain under Adapty's own policy. If you want it removed, email privacy@oniradreams.com.
9. Your rights
Under the UK GDPR and EU GDPR you have the right to access, rectify and erase your data, restrict processing, data portability, object, and withdraw consent at any time. As our controller is in the UK, you can complain to the Information Commissioner's Office (ICO, ico.org.uk). If you're in the EU/EEA, you can also complain to your local data protection authority. Under KVKK Art. 11 you have equivalent rights, including the right to learn about transfers and to object to adverse outcomes of solely automated analysis, and you may complain to Turkey's Personal Data Protection Board.
How to make a request: email privacy@oniradreams.com with the Support ID shown at the bottom of Profile > Privacy and data (format ON-XXXXX-XXXXX). The "Send a data request (GDPR/KVKK)" button there drafts an email with your ID already included. Because accounts are anonymous, we use this ID to verify the request is yours. If you can't find it, we'll ask you to delete your data from within the app (Profile > Privacy and data > Delete my account and all my data). We respond free of charge within 30 days.
10. Automated processing
Interpretations and images are produced automatically by AI. They don't make legal or similarly significant decisions about you. They only offer a perspective. The crisis check is automatic. If it detects a signal, no reading is produced and support information is shown instead.
11. Children
Onira is not intended for anyone under 13 (or the minimum age of digital consent in your country, if higher). We don't knowingly collect data from them and will delete it if we learn of it.
12. Security
Data is encrypted in transit (HTTPS). The dream journal, settings and consent record on your device are stored encrypted with AES-256-GCM (Section 4). Users can only access their own records. Service keys are kept only on the server. Dream text is never written to system logs. No system is perfectly secure. If a breach occurs, we'll notify you and the relevant authorities within the legally required timeframes.
13. Changes
If we change this policy we'll update the effective date. For significant changes (such as a new AI provider) we'll tell you in the app and ask for consent again where needed.
14. Contact
Privacy and data requests: privacy@oniradreams.com
General support: support@oniradreams.com