Enchlist Privacy Policy

Enchan Li provides Enchlist as a commercial shopping-list application. This policy explains what Enchlist processes, why it is processed, the choices available to you, and how to request access to or deletion of information. It applies to the Enchlist applications for iOS and Android; platform-specific practices are identified below.

Local-first design

Enchlist is local-first. Lists, folders, products, quantities, prices, notes, favorites, loyalty-card entries, checked history, trash, and app preferences normally remain on your device. Enchlist does not require an Enchlist account on iOS. Information leaves the device only when needed for a feature you use, for service security and free-feature accounting, or for diagnostics and Analytics according to the controls described below.

Information Enchlist processes

Persistent free-feature usage identifier

To provide the same free-feature usage accounting on iOS and Android, Enchlist sends an opaque device-level identifier, app version/build, and feature-usage counters to Google Firebase Functions. Android uses the Android system identifier. On iOS, Enchlist generates a random identifier and stores it in the device Keychain. The iOS identifier may remain on the same device after the app is uninstalled and reinstalled.

This identifier is used to restore and commit free-feature usage, enforce usage limits, maintain service reliability, and prevent repeated allowance resets or abuse. It is not the Apple advertising identifier (IDFA), is not used for advertising, and is not used to track activity across other companies' apps or websites.

Optional remote barcode, voice, photo, and import processing

If you choose an online barcode, voice, photo, receipt, price-tag, or import feature, Enchlist may send the material required for that request. Depending on the feature, this may include a barcode value, language, audio recording, transcript, image, file contents, webpage content, or user-supplied text, together with limited app-version, request-security, and operation metadata. These features are presented with one shared in-app remote-processing choice for barcode, voice, photo, and import. Acceptance from any of these activities is saved and applies to the others, including import; adding import does not reset an existing acceptance. You may decline and continue using local features. Dismissing the notice does not grant consent. You can reset this choice in Settings > Data & Privacy.

Firebase and Google Cloud route and protect these requests. OpenAI may process speech, text, or images for requested AI-assisted features. Product lookup and reference-search providers may receive a barcode or product reference needed to answer the request. Enchlist does not send this content to Firebase Analytics or use it for advertising.

Shared lists

When you create or use a shared-list link, the shared list and its items are stored in Google Firebase Firestore. A sharing link is a bearer capability: anyone who obtains the link may be able to access the shared list. Stopping sharing as the creator deletes the remote shared list. Disconnecting a list as a recipient removes the connection from that device but does not delete the creator's remote list.

iCloud snapshots on Apple platforms

Manual and optional automatic snapshots are stored in your private Apple iCloud container when you enable or request them. Apple processes iCloud data under Apple's terms and privacy policy. Enchlist provides controls to delete its iCloud snapshots.

Purchases

Purchases on iOS are processed by Apple. Enchlist may process App Store product, transaction, entitlement, and verification status needed to provide Premium features, restore purchases, prevent purchase abuse, and provide support. Enchlist does not receive full payment-card details. Purchases on Android are processed by Google Play under Google's applicable terms.

Firebase Analytics

On iOS, Firebase Analytics is disabled unless you explicitly choose Allow. If enabled, Enchlist may collect event and action names, screens or features used, event time, app version/build, operating system and device/app technical information, language or region settings, coarse location derived from network information, and Firebase-generated app-instance identifiers. Enchlist's Analytics event contract excludes list names, folder names, product names, notes, barcode values, voice transcripts, photos, audio, files, email addresses, account identifiers, purchase receipts, security tokens, and raw server responses.

Declining or dismissing the Analytics choice keeps Analytics disabled and does not restrict app functionality. Events from the undecided or declined period are not buffered for later transmission. You can change the choice in Settings > Data & Privacy. Turning Analytics off stops future Analytics collection and resets the local Firebase Analytics identifier and data; it does not remove previously processed aggregate information.

Firebase Crashlytics

Enchlist uses Firebase Crashlytics to diagnose crashes and nonfatal software failures. Crash diagnostics is controlled separately from Analytics and is enabled by default on iOS. Diagnostic reports may contain a crash stack, error domain or code, app/build/OS information, device and process state, bounded operation/source/state keys, performance information, and event time. Enchlist's diagnostic contract excludes user-created list and product content, barcodes, transcripts, photos, audio, file contents or paths, account identity, security tokens, purchase receipts, and raw server responses. You may disable future Crashlytics collection in Settings > Data & Privacy.

Android advertising and platform services

The Android version may use Google Play Services and Google AdMob. These are Android-only integrations and are not used by the iOS application. Their collection and controls are governed by the Android app configuration and Google's applicable policies.

Support communications

If you contact Enchlist support, the information you choose to provide, including your email address and message, is processed to answer the request, investigate a problem, or complete a verified privacy request.

Purposes

Enchlist processes information only as needed to:

  • provide features that you request;
  • store, restore, or share information at your direction;
  • look up products, interpret voice and images, or extract list items from imports;
  • verify purchases and Premium entitlement;
  • secure Firebase access and enforce fair-use limits;
  • prevent fraud, abuse, and repeated allowance resets;
  • diagnose failures and improve reliability; and
  • respond to support and privacy requests.

Enchlist does not sell personal information. Enchlist does not use IDFA, advertising personalization, or cross-app tracking on iOS.

Service providers and international processing

Information may be processed in countries other than your own by the service providers needed for the feature you use. Current providers may include:

  • Apple for App Store purchases, iCloud, and platform security services;
  • Google Firebase and Google Cloud for Functions, Firestore, App Check, Remote Config, Analytics, Crashlytics, and operational infrastructure;
  • OpenAI for requested speech, text, or image processing; and
  • configured product-code lookup and product-reference search providers.

Providers may process only the information required to perform their service and are expected to protect it under their applicable contracts and policies.

Retention

  • Local content remains until you delete it, clear the app's data, or remove the app. The iOS free-feature identifier is stored separately in Keychain and may remain after app removal on the same device.
  • Free-feature identifiers and counters are retained while needed to provide usage restoration, enforce limits, and prevent abuse. A limited keyed, content-free anti-abuse record may be retained for up to 24 months.
  • Shared lists remain until the creator stops sharing or they are otherwise deleted under the service's retention process. A recipient's disconnect action does not delete the creator's remote list.
  • iCloud snapshots remain until you delete them or Apple removes them under its applicable service rules.
  • Content submitted for optional online processing is subject to the processor's applicable retention settings. OpenAI's default abuse-monitoring retention is up to 30 days, with exceptions for legal and safety needs. For imports, processing results may be retained for at least 30 days under standard service-provider settings. Shorter retention applies only where supported and actually configured. Deleting local import data or resetting consent does not itself delete data already processed by a service provider.
  • Firebase Analytics and Crashlytics information is retained according to the configured Firebase property and service settings and only as long as needed for the purposes described here. Disabling a control stops future collection but does not necessarily delete previously processed aggregate or diagnostic information.
  • Support records are retained as long as reasonably needed to resolve the request, meet legal obligations, prevent abuse, or resolve disputes.

Your choices and deletion

On iOS, Settings > Data & Privacy lets you:

  • allow or disable Firebase Analytics;
  • allow or disable Firebase Crashlytics diagnostics;
  • reset remote-processing consent;
  • delete Enchlist iCloud snapshots;
  • delete creator-owned shared cloud lists; and
  • disconnect received shared lists.

The iOS app does not create an Enchlist user account. To request access to or deletion of the persistent free-feature identifier, its server-side usage record, or other information controlled by Enchan Li, email enchlist.ios@enchanli.com with the subject “Enchlist privacy request.” Because Enchlist does not use an iOS account, support may provide proportionate verification steps involving the affected installation. Verified requests are normally completed within 30 days. Information may be retained where required for legal obligations, security, fraud prevention, abuse prevention, or dispute resolution.

Android account deletion: Android users who create or use an Enchlist cloud-backup account can initiate deletion from the Android app's Backup and restore settings. To request help outside the app, email shoppinglist@enchanli.com from the address associated with the Android account. Account deletion does not delete information stored only on the device or the user's Google account.

Children's privacy

Enchlist is not directed to children under 13, and Enchan Li does not knowingly collect personal information from children under 13. If you believe a child has provided personal information, contact us so that the situation can be reviewed and appropriate deletion steps can be taken.

Security

Enchlist uses measures such as transport encryption, Apple App Attest and Firebase App Check where configured, Keychain storage, bounded requests, access controls, service-side usage enforcement, and secret management. No method of electronic storage or transmission is completely secure, so absolute security cannot be guaranteed.

Changes to this policy

This policy may be updated when Enchlist's features, providers, or legal requirements change. The updated policy and its revision date will be posted on this page. Additional notice or renewed consent will be provided where required.

Contact

For iOS privacy questions or requests, email enchlist.ios@enchanli.com. For general or Android support, email shoppinglist@enchanli.com.

Enchan Li
Last updated: October 20, 2026