Cora IQ ("we", "us", "our") operates the Cora mobile application and related cloud services. This Privacy Policy explains what information we collect, how we use it, and your rights regarding that information.
1. Information We Collect
1.1 Account Information
When you create an account, we collect:
- Email address and password (email/password sign-in)
- Name and email address from your Google account (Google Sign-In)
- Name and email address from your Apple ID (Sign in with Apple)
- Email verification status
Account credentials are managed securely through Cora Cloud. We do not store your raw password; credentials are hashed and stored using industry-standard practices.
1.2 Tank Profile Data
When you create a tank profile, we store the following in Cora Cloud:
- Tank name, volume, type, salinity target, and other configuration details
- Selected dashboard metrics and display preferences
- Associated device IDs and integration settings
1.3 Water Parameter Data
We store water chemistry parameters (pH, alkalinity, calcium, magnesium, nitrate, phosphate, salinity, temperature, ORP, and others) that you enter manually, import from a Neptune™ Apex controller, or receive from Cora devices. All parameter data is stored in Cora Cloud under your user account.
1.4 ICP Report Data
When you upload an ICP (Inductively Coupled Plasma) water analysis report:
- The PDF file is stored in Cora Cloud under your user account
- The PDF content is processed by the Cora Assistant to extract and analyze parameters
- The extracted parameter values and AI-generated analysis are stored in Cora Cloud
Results sent by a laboratory (“Send to Cora”). If you ask a partner laboratory to send your ICP result to Cora, the laboratory sends us your email address, the result PDF and its report number, and may also send the measured values, the sample type and the sample date. We match the email address with your Cora account and add the result to your account, where it is stored and analyzed exactly like a report you upload. If you have more than one aquarium, the result waits in your account until you choose the aquarium it belongs to. You can also email your own ICP result to icp@in.coraiq.tech; we add it to the account registered under the sender’s address.
If no Cora account uses the email address a laboratory sent, we tell the laboratory only that there is no account, delete the PDF and values straight away, and keep a record of the submission without your email address for 90 days. The result is not added to an account created later.
A laboratory can see whether a result it sent was delivered. It can see Cora’s analysis of that result (the health score, the assessment of each element and the written analysis) only while you have turned on Share Cora’s analysis with labs in the app. It is off unless you turn it on, and you can turn it off at any time. A laboratory can withdraw or correct a result it sent; we tell you when it does.
1.5 Health Reports
When you generate a health report:
- Your tank parameters, livestock inventory, and journal entries are processed by the Cora Assistant
- The AI-generated health assessment is stored in Cora Cloud under your user account
1.6 Cora Assistant (Text)
When you use the text-based Cora Assistant:
- Your messages and the AI responses are stored in Cora Cloud under your user account
- Your messages, along with your tank context (parameters, livestock, journal entries), are processed by the Cora Assistant to generate responses
- A daily message limit applies
- Conversation history is retained in Cora Cloud until you delete your account
1.7 Cora Assistant (Voice)
When you use the voice-based Cora Assistant:
- Audio from your device microphone is transmitted in real time over a secure connection for processing by the Cora Assistant
- The assistant processes the audio to generate spoken responses streamed back to your device
- Voice sessions are ephemeral; audio is not stored on our servers or in your account
- Text transcripts of voice conversations may be stored in Cora Cloud under your user account
1.8 Livestock Tracking
When you track livestock (coral, fish, invertebrates), the species, name, date added, and notes are stored in Cora Cloud under your user account.
1.9 Journal Entries
When you create journal entries:
- Entry text, date, tags, and associated parameters are stored in Cora Cloud
- Journal data may be processed by the Cora Assistant when generating AI-powered correlations and health reports
1.10 Maintenance Scheduler
When you create maintenance tasks, the task name, schedule, and completion history are stored in Cora Cloud. Push notifications for due tasks are delivered through Cora Cloud.
1.11 Parameter Alerts
When you configure parameter alerts, your alert thresholds and notification preferences are stored in Cora Cloud. Push notifications for triggered alerts are delivered through Cora Cloud.
1.12 Push Notifications
- We use Cora Cloud to deliver push notifications for maintenance reminders and parameter alerts
- Your device notification token is stored in Cora Cloud to route notifications to your device
- You can disable notifications at any time through your device settings or within the app
1.13 Neptune Apex Integration
When you connect a Neptune Apex controller:
- Your Apex IP address and credentials are stored locally on your device only, using encrypted storage
- The app communicates with your Apex controller over your local network; Apex data does not pass through our servers
- Parameter readings retrieved from the Apex are stored in Cora Cloud as part of your tank data
1.14 AquaWiz™ Integration
When you link an AquaWiz KH Controller, Cora signs in to AquaWiz's online service on your behalf and reads that controller's measurements. Unlike the Neptune Apex integration, this one is not local; it runs in Cora Cloud, so your AquaWiz sign-in is held on our servers rather than only on your phone:
- Your AquaWiz username, and an access token issued to you by AquaWiz, are stored in Cora Cloud. The token is encrypted at rest using AES-256-GCM under a key held in a dedicated secrets manager, separate from the database
- Your AquaWiz password is stored only if you choose to save it when linking, and it is encrypted the same way. If you choose not to save it, we keep only the access token, and you will be asked to reconnect when it expires, roughly every 30 days
- Cora connects to AquaWiz's servers on your behalf about every 30 minutes to retrieve alkalinity readings, and pH readings if you enable that option. Those readings are stored in Cora Cloud as part of your tank data
- AquaWiz issues a single access token per account, so the token Cora holds is the same one their own app uses. We cannot revoke Cora's access independently. To cut it off, unlink the controller in Cora, or change your AquaWiz password
- Your stored AquaWiz sign-in is permanently deleted when you unlink the controller, and when you delete your Cora account
1.15 Cora Devices
When you pair a Cora hardware device:
- Bluetooth Low Energy (BLE) is used during initial device provisioning
- After provisioning, the app communicates with devices over your local network
- Device telemetry (sensor readings, operational status) is stored in Cora Cloud under your user account
1.16 Local Storage
The app stores the following data locally on your device using encrypted storage:
- Display and theme preferences
- Neptune Apex credentials and IP address
- Passwords of the cameras you added (Section 1.19)
- Device connection history and cached data
- App configuration and preferences
This local data is not transmitted to our servers unless explicitly stated otherwise in this policy.
1.17 Crash Reports
If the app stops unexpectedly or a screen fails to load, the app sends a crash report to Cora Cloud so we can find and fix the fault. A crash report contains:
- The technical details of the error: the error message and where in the app’s code it happened
- The app version, device model, operating system version, device state at the time (such as available memory) and the time of the crash
- A short support code derived from the error, which the app also shows on the error screen, and a random identifier for this installation of the app
- Counters the app keeps about its own network use, which help us find faults that cause excess traffic
Crash reports do not include your name, email address, tank data, photos or messages. Crash reporting is on by default. You can turn it off at any time in the app under Settings > “Send crash reports”.
1.18 Subscriptions
If you buy a Cora subscription, the payment is handled by the Apple App Store or Google Play under their own terms; we never receive your card or bank details. To know which plan your account has, we use a subscription management provider. It receives your Cora account identifier and the purchase records the store issues for your subscription (the plan, purchase and renewal dates, whether it will renew or was cancelled, and the store country and currency), and tells Cora Cloud which plan is active on your account.
1.19 Cameras
When you add a camera to Cora (for example a Wyze Cam or a Tapo camera):
- The camera’s name, its address on your home network and its username are stored in Cora Cloud as part of your tank profile
- The camera’s password is stored in Cora Cloud encrypted with AES-256-GCM, under a key held in a dedicated secrets manager, separate from the database. It is given only to your own Cora account and to the Cora Max devices paired with your tank, so they can open the camera. Your phone keeps it in encrypted storage, and Cora Max keeps it encrypted at rest
- At home, video does not pass through our servers. When your phone or Cora Max is on the same network as the camera, it plays the video directly from the camera. Cora does not record video or audio
- Away from home, still pictures pass through Cora Cloud. While a camera is open on your phone and the phone cannot reach the camera directly (or you choose Snapshots), your Cora Max takes a small still picture from the camera about every 3 seconds and uploads it to Cora Cloud, where each picture replaces the previous one. Only your Cora account and the Cora Max devices paired with your tank can read it. So that Cora Max knows when to send pictures, your phone records in Cora Cloud that you are watching; that record is removed when you close the camera
- Pictures are not kept. There is only ever one picture per camera. It is overwritten every few seconds while you watch, and Cora Max deletes it when you stop watching. If Cora Max cannot do so (for example after a power cut), the picture is deleted the next time Cora Max starts, when you remove the camera, or when you delete the tank or your account
- Skimmer Watch (paid plans, Beta). If you switch on Skimmer Watch for a camera, the Cora Max paired with your tank takes one still picture from that camera about every 5 minutes, cuts out the box you marked around the skimmer cup, measures how full the cup is on the Cora Max itself, and stores the result in Cora Cloud. Cora Cloud keeps: the latest picture of the marked cup (each one replaces the previous one), the fill readings of the last 24 hours (numbers only), and one small greyscale picture of the empty cup taken when you tap Cup is empty now. These are visible only to your Cora account and the Cora Max devices paired with your tank, are used only to show you the cup level and to warn you before it overflows, and are deleted when you remove the camera, the tank or your account
- Camera pictures are not sent to the Cora Assistant. They are not sent to our AI processing provider either, with one exception: an AI reading of the Skimmer Watch cup, which is not offered to customers today. If we ever offer it, it will be off unless you switch it on, and the cup picture will be sent to OpenAI only after you have accepted the AI data-sharing disclosure described in Section 4
- Removing a camera deletes its stored password, its last picture and its viewing record
2. How We Use Your Information
We use your information to:
- Provide and operate the Cora app and its features
- Authenticate your identity and secure your account
- Store and display your tank data, parameters, livestock, and journal entries
- Generate AI-powered analysis, health reports, and assistant responses through the Cora Assistant
- Deliver push notifications for maintenance reminders and parameter alerts
- Manage your subscription and the features your plan includes
- Communicate with your Cora devices and Neptune Apex controller
- Show you your camera’s live video at home, and its latest picture when you are away from home
- Measure how full your skimmer cup is and warn you before it overflows, if you switch on Skimmer Watch
- Improve the app and diagnose technical issues
3. Service Providers
Cora Cloud and the Cora Assistant are operated on secure, industry-leading third-party cloud infrastructure and AI processing providers. These providers act as our sub-processors under data-processing agreements and are bound by confidentiality and security obligations that provide the same or equal protection for your data as described in this policy. They process data only as necessary to deliver Cora features on our behalf.
AI processing provider: OpenAI. The Cora Assistant is powered by OpenAI. When you use the assistant (text chat, voice conversation, health reports or ICP analysis), your question or voice message, together with the tank parameters and readings, livestock list, journal entries and connected-device information needed to answer it, is transmitted to OpenAI, which generates the reply and returns it to us. OpenAI processes this data solely to produce your response. Its handling of data submitted through its API is described in the OpenAI Privacy Policy and the OpenAI enterprise privacy commitments. No data is sent to OpenAI until you have accepted the in-app data-sharing disclosure described in Section 4; if you decline, the assistant is not used and nothing is transmitted.
Email provider. Results emailed to icp@in.coraiq.tech are received by our email provider, which passes the attached reports to Cora Cloud. We keep the attached PDFs and a minimal technical record of each message, not its text, subject or addresses.
Subscription management provider. Receives your account identifier and the store’s purchase records for your subscription, and processes them only to tell Cora Cloud which plan is active (Section 1.18).
Where your data is processed. Cora Cloud, our AI processing provider, our email provider and our subscription management provider process data in the United States. When personal data is transferred from the European Economic Area, the United Kingdom or Switzerland, we rely on the safeguards the law provides, such as the European Commission’s Standard Contractual Clauses or an adequacy decision, including the EU-U.S. Data Privacy Framework where the recipient is certified.
In addition, the following optional sign-in methods are provided directly to you, each governed by its own privacy policy:
- Google Sign-In: optional authentication method
- Sign in with Apple: optional authentication method
4. Data Consent
We ask for your permission before any of your data is sent for AI processing. The first time you use the Cora Assistant, the app presents an in-app disclosure that states what data will be sent and who it is sent to, and requires you to tap “Agree & Continue” before anything is transmitted. If you decline, nothing is sent.
You can turn consent off at any time from the data consent toggle in Settings. While consent is on, the Cora Assistant may use your saved tank history, parameter data, livestock, journal entries and connected-device information to provide personalized guidance. While it is off, no assistant request is sent and none of your data is transmitted for AI processing.
5. Data Sharing
We do not sell, rent, or trade your personal information. Your data may be shared with third parties only in the following circumstances:
- Service providers: Data is processed by our sub-processors, as described in Section 3, solely to provide app functionality
- Legal requirements: If required by law, regulation, or legal process
- Your direction: When you explicitly choose to export or share data (for example, configuration files)
- Partner laboratories: A laboratory that sends you a result sees whether it was delivered, and sees Cora’s analysis of it only if you turn on sharing with labs (Section 1.4)
6. Data Retention
- Account data and cloud content are retained as long as your account exists
- Voice audio is ephemeral and not retained after the session ends
- ICP report PDFs are retained in Cora Cloud until you delete them or your account
- Records of results sent by laboratories (without your email address once complete) are deleted after 90 days; a laboratory’s PDF is deleted as soon as it has been added to your account or when no account matches
- Crash reports are deleted after 90 days
- Camera pictures are not kept: one picture per camera is overwritten while you watch and deleted when you stop watching (Section 1.19). A stored camera password is kept until you remove the camera, the tank or your account
- Skimmer Watch keeps the latest cup picture, 24 hours of fill readings and one empty-cup picture per camera until you remove the camera, the tank or your account (Section 1.19)
- Our record of your subscription status is deleted with your account. We keep only your account identifier and the subscription identifiers linked to it, for 120 days, so that we can delete your customer record at our subscription management provider. That customer record is kept for 120 days after your account is deleted, so that a refund or payment dispute made through the store can still be processed, and is then deleted. The purchase records held by the App Store and Google Play are kept under their own rules for billing, refunds and tax
- Local data remains on your device until you uninstall the app or clear app data
- Notification tokens are retained as long as your account is active
6.1 Anonymized Aquarium Data
When you delete your account, a copy of your aquarium's non-identifying data (tank type, tank volume, water parameter history, lighting schedule, and general livestock categories) may be retained in fully anonymized form to support reef-keeping research and improve Cora's guidance. This anonymized data contains no name, email address, account identifier, device identifier, free-text notes, or photos, and cannot be linked back to you or your account.
You can turn this off at any time before deleting your account in the app under Settings > Cora Assistant > "Contribute anonymized tank data". With the switch off, your aquarium data is permanently deleted together with everything else.
7. Account Deletion and Your Rights
You can delete your account at any time from within the app (Settings > Delete Account). When you delete your account:
- Your authentication account is permanently deleted
- All data in Cora Cloud associated with your account (tank profiles, parameters, livestock, journal entries, assistant history, health reports, ICP reports, maintenance tasks, alerts) is permanently deleted via a GDPR-compliant cascade deletion
- All files associated with your account (ICP report PDFs) are permanently deleted
- Device telemetry data associated with your account is permanently deleted
- Any stored third-party service sign-in (such as an AquaWiz access token, and a password if you saved one) is permanently deleted
- Stored camera passwords and any camera picture are permanently deleted
- Your customer record at our subscription management provider is deleted 120 days after your account, once the store refund period has passed (Section 6)
- If you have left "Contribute anonymized tank data" enabled, a fully anonymized copy of your aquarium's parameter history is retained as described in Section 6.1; it contains nothing that identifies you
- Local data on your device remains until you uninstall the app
Under applicable data protection laws (including GDPR), you may also have the right to:
- Access the personal data we hold about you
- Correct inaccurate personal data
- Request deletion of your personal data
- Object to or restrict processing of your personal data
- Data portability: receive your data in a structured, machine-readable format
To exercise these rights, contact us at the address below.
8. Children's Privacy
Cora is not directed at children under the age of 13. We do not knowingly collect personal information from children under 13. If you believe a child has provided us with personal information, please contact us so we can delete it.
9. Permissions
Cora may request the following device permissions:
- Local network access: To discover and communicate with Cora devices and Apex controllers on your Wi-Fi network
- Bluetooth: To discover and provision new Cora devices during setup
- Microphone: To capture voice audio for the Cora Assistant voice conversation feature
- Notifications: To deliver device alerts, parameter alerts, and maintenance reminders
- Location (Android only): Required by Android for Bluetooth scanning; Cora does not track or store your location
You can deny any permission, but related features may not work correctly.
10. Security
We use industry-standard security measures to protect your data, including:
- Encrypted local storage for sensitive credentials
- HTTPS/TLS for all cloud communications
- Access rules that restrict data access to authenticated users
- Abuse-prevention safeguards to protect against unauthorized API access
The security of your local network, device, and account credentials is your responsibility.
11. Changes to This Policy
We may update this Privacy Policy as the app evolves. The effective date at the top of this page indicates the latest revision. Continued use of the app after changes constitutes acceptance of the updated policy. If we make material changes, we will make reasonable efforts to notify you.
12. Contact
For questions about this Privacy Policy or your data:
- Email: cora@coraiq.tech
- Web: coraiq.tech
