umami matches your origin region's taste baseline with ingredients available at the mainstream supermarkets where you currently live, and proposes recipes that approximate authentic home cooking. The App requires an internet connection to generate new recipes via our backend, which calls third-party LLM providers through Cloudflare AI Gateway. Once generated, recipes are cached on your device and remain available offline.
umami は、ご利用者の出身地の味覚基準と、現在お住まいの国の大型スーパーで入手できる食材を突き合わせ、本場の家庭料理に近いレシピを提案します。新しいレシピの生成には当チームのバックエンドへのインターネット接続が必要で、バックエンドは Cloudflare AI Gateway を介して第三者の LLM プロバイダーを呼び出します。生成されたレシピは端末にキャッシュされ、オフラインでも閲覧できます。
umami 는 사용자의 출신지 미각 기준과 현재 거주 국가의 대형 슈퍼에서 구할 수 있는 식재료를 매칭하여, 본고장 가정 요리에 가까운 레시피를 제안합니다. 새로운 레시피 생성에는 당 팀의 백엔드에 대한 인터넷 연결이 필요하며, 백엔드는 Cloudflare AI Gateway 를 통해 제 3 자 LLM 제공업체를 호출합니다. 생성된 레시피는 기기에 캐시되어 오프라인에서도 열람할 수 있습니다.
1. Introduction / はじめに / 소개
English: Thank you for using umami. umami (hereafter "the App") is a free recipe assistant that proposes authentic home-country dishes recreated with ingredients from mainstream supermarket chains in your current country of residence. This policy explains how the App handles your information, taking Japan's Act on the Protection of Personal Information (APPI), GDPR, CCPA/CPRA, Korea's PIPA, and similar laws into account.
日本語: umami (以下「当アプリ」) をご利用いただきありがとうございます。当アプリは、現在お住まいの国の大型スーパーで入手できる食材を用いて、出身国の本場の家庭料理を再現するためのレシピを提案する無料のレシピアシスタントです。本ポリシーは、当アプリがどのように情報を取り扱うかを説明します。日本の改正個人情報保護法 (APPI) に準拠するとともに、GDPR、CCPA/CPRA、韓国 PIPA などの海外法令の考え方にも配慮しています。
한국어: umami (이하 "본 앱") 을 이용해 주셔서 감사합니다. 본 앱은 현재 거주 국가의 대형 슈퍼에서 구할 수 있는 식재료로 출신국의 본고장 가정 요리를 재현하기 위한 레시피를 제안하는 무료 레시피 도우미입니다. 본 방침은 본 앱이 정보를 어떻게 취급하는지 설명하며, 일본 개정 개인정보보호법 (APPI), GDPR, CCPA/CPRA, 대한민국 개인정보보호법 (PIPA) 등의 해외 법령의 관점도 고려합니다.
English: The App is provided in Japanese, English, Korean, Simplified Chinese, and Traditional Chinese. As the App expands its scope or evolves, this policy may be updated accordingly.
日本語: 当アプリは日本語・英語・韓国語・中国語 (簡体・繁体) で提供されています。提供範囲の拡大や機能の進化に伴い、本ポリシーの内容は更新される場合があります。
한국어: 본 앱은 일본어 · 영어 · 한국어 · 중국어 (간체 · 번체) 로 제공됩니다. 제공 범위의 확장이나 기능 변화에 따라 본 방침은 갱신될 수 있습니다.
2. Data Controller / データ管理者 / 데이터 관리자
English: Team: Skima Engineering / Address: Big Office Plaza Ikebukuro 1206, 2-62-8 Higashi-Ikebukuro, Toshima-ku, Tokyo 170-0013, Japan / Email: privacy@skm.works
日本語: TEAM 名: スキマエンジニアリング / 住所: 〒170-0013 東京都豊島区東池袋 2-62-8 ビッグオフィスプラザ池袋 1206 / Email: privacy@skm.works
한국어: 팀명: 스키마 엔지니어링 / 주소: 〒170-0013 일본 도쿄도 토시마구 히가시이케부쿠로 2-62-8 빅오피스플라자 이케부쿠로 1206 / Email: privacy@skm.works
English: The App does not require account registration. Server-side records are keyed only by an irreversible SHA-256 hash of an OS-level device identifier (identifierForVendor on iOS, SSAID on Android). The raw identifier is never transmitted. Most of your data (search history, cached recipe snapshots, preferences) is stored locally on your device using sqflite (SQLite).
日本語: 当アプリはアカウント登録を必要としません。サーバ側の記録は OS 提供の端末識別子 (iOS: identifierForVendor, Android: SSAID) を不可逆な SHA-256 でハッシュ化した値だけをキーとして管理します。元の識別子はサーバに送信されません。お客様のデータの大半 (検索履歴、レシピのキャッシュ、設定値) は sqflite (SQLite) で端末内にローカル保存されます。
한국어: 본 앱은 계정 등록이 필요하지 않습니다. 서버 측 기록은 OS 가 제공하는 단말 식별자 (iOS: identifierForVendor, Android: SSAID) 를 비가역적 SHA-256 으로 해시한 값만을 키로 관리합니다. 원래 식별자는 서버에 전송되지 않습니다. 사용자 데이터 대부분 (검색 기록, 레시피 캐시, 설정값) 은 sqflite (SQLite) 로 기기 내 로컬에 저장됩니다.
3. Information We Collect / 収集する情報 / 수집하는 정보
3.1 Provided by You / お客様が直接提供する情報 / 사용자가 직접 제공하는 정보
English:
- Dish-name search queries (free text, e.g., "Mapo Tofu", "ペペロンチーノ", "비빔밥")
- Origin region setting (country and optional sub-region label such as a prefecture or province)
- Current location setting (country)
- UI display language preference
日本語:
- 料理名の検索クエリ (自由入力。例: 「麻婆豆腐」「ペペロンチーノ」「비빔밥」)
- 出身地設定 (国、および任意で都道府県・省名などのサブリージョン)
- 現在地設定 (国)
- UI 表示言語の設定
한국어:
- 요리명 검색 쿼리 (자유 입력. 예: 「麻婆豆腐」「ペペロンチーノ」「비빔밥」)
- 출신지 설정 (국가, 임의로 도도부현 · 성명 등의 서브리전)
- 현재지 설정 (국가)
- UI 표시 언어 설정
3.2 Automatically Collected / 自動的に収集される情報 / 자동으로 수집되는 정보
English:
- Device identifier hash: SHA-256 of identifierForVendor (iOS) / SSAID (Android). Generated and hashed on-device at first launch; the raw value is never sent. Used solely as an anonymous key for freemium quota counting and for de-duplicating recipe requests from the same device.
- App version and UI locale (sent as HTTP headers with each API request, for compatibility/i18n routing)
- Generated recipe content (ingredients, steps, "do not add" items, etc.) — stored on our server keyed by the dish identifier so future requests can be served from cache
- Monthly AI-generation count (server-side; used to enforce the 20-per-month freemium cap)
- Local search history, cached recipes, and ambiguous-candidate metadata (kept on device only, capped at 50 entries)
日本語:
- 端末識別子ハッシュ: iOS の identifierForVendor / Android の SSAID を SHA-256 でハッシュ化した値。初回起動時に端末側で生成・ハッシュ化され、元の値はサーバに送信されません。フリーミアム回数のカウントと、同一端末からの重複リクエスト判別の匿名キーとしてのみ使用します。
- アプリバージョンおよび UI ロケール (各 API リクエストの HTTP ヘッダで送信。互換性確認と i18n ルーティングのため)
- 生成されたレシピ内容 (食材、手順、「入れてはいけないもの」など) — 料理識別子をキーとしてサーバに保存し、以降のリクエストはキャッシュから提供されます
- 月次 AI 生成回数 (サーバ側で管理。月 20 回までの無料枠の制御に使用)
- 端末ローカルの検索履歴・レシピキャッシュ・同名異料理の候補メタ情報 (端末内のみ、上限 50 件)
한국어:
- 단말 식별자 해시: iOS 의 identifierForVendor / Android 의 SSAID 를 SHA-256 으로 해시한 값. 최초 실행 시 단말 측에서 생성 · 해시되며 원래 값은 서버에 전송되지 않습니다. 프리미엄 횟수 카운트와 동일 단말로부터의 중복 요청 판별을 위한 익명 키로만 사용합니다.
- 앱 버전 및 UI 로케일 (각 API 요청의 HTTP 헤더로 전송. 호환성 확인과 i18n 라우팅을 위해)
- 생성된 레시피 내용 (식재료, 절차, 「넣지 말아야 할 것」 등) — 요리 식별자를 키로 서버에 저장되어 이후의 요청은 캐시에서 제공됩니다
- 월간 AI 생성 횟수 (서버 측에서 관리. 월 20 회까지의 무료 한도 제어에 사용)
- 단말 로컬의 검색 기록 · 레시피 캐시 · 동명이요리 후보 메타 정보 (단말 내에서만, 상한 50 건)
English: The App does not use advertising identifiers (IDFA / AAID), ad-tracking SDKs, third-party behavioral analytics SDKs, or any cross-app tracking technology. App Tracking Transparency (ATT) is therefore not required.
日本語: 当アプリは広告識別子 (IDFA / AAID)、広告トラッキング SDK、第三者の行動分析 SDK、クロスアプリ追跡技術を一切使用しません。そのため App Tracking Transparency (ATT) ダイアログも表示しません。
한국어: 본 앱은 광고 식별자 (IDFA / AAID), 광고 트래킹 SDK, 제 3 자의 행동 분석 SDK, 크로스 앱 추적 기술을 일체 사용하지 않습니다. 따라서 App Tracking Transparency (ATT) 다이얼로그도 표시하지 않습니다.
3.3 Permissions / 必要な権限 / 필요한 권한
English: The App does not request camera, microphone, location, photos, contacts, or any other privacy-sensitive permission. The only OS-level capability used is network access, which is required to call our backend.
日本語: 当アプリはカメラ、マイク、位置情報、写真、連絡先などのプライバシー関連の権限を一切要求しません。OS の機能として利用するのはネットワーク通信のみで、これは当チームのバックエンドへの API 呼び出しに必要です。
한국어: 본 앱은 카메라, 마이크, 위치 정보, 사진, 연락처 등의 프라이버시 관련 권한을 일체 요구하지 않습니다. OS 기능으로 이용하는 것은 네트워크 통신뿐이며, 이는 당 팀의 백엔드 API 호출에 필요합니다.
4. How We Use Information / 情報の使用方法 / 정보의 사용 방법
English:
- Generate, retrieve, and cache recipes tailored to your origin region × current location × UI language
- Detect and merge same-dish multilingual aliases (e.g., "麻婆豆腐" / "마파두부" / "Mapo Tofu")
- Surface ambiguous candidates when a query matches multiple dishes
- Enforce the monthly freemium quota using the device identifier hash
- Display recently viewed recipes and category browsing on the home screen
- Apply rate limiting and abuse prevention
日本語:
- ご利用者の出身地 × 現在地 × UI 言語の組合せに合わせたレシピの生成・取得・キャッシュ
- 同一料理の多言語表記 (例: 「麻婆豆腐」「마파두부」「Mapo Tofu」) の名寄せとマージ
- 同名異料理が存在する場合の候補表示
- 端末識別子ハッシュをキーにした月次フリーミアム枠の管理
- ホーム画面での「最近見たレシピ」とカテゴリブラウズ表示
- レート制限と濫用防止
한국어:
- 사용자의 출신지 × 현재지 × UI 언어의 조합에 맞춘 레시피 생성 · 취득 · 캐시
- 동일 요리의 다국어 표기 (예: 「麻婆豆腐」「마파두부」「Mapo Tofu」) 의 명칭 통합 (alias 매핑)
- 동명이요리가 존재할 경우의 후보 표시
- 단말 식별자 해시를 키로 한 월간 프리미엄 한도 관리
- 홈 화면의 「최근 본 레시피」와 카테고리 둘러보기 표시
- 레이트 리미트와 남용 방지
English: Collected data is not used for training AI models, for behavioral profiling, or for advertising. We do not sell or rent any data to third parties.
日本語: 収集したデータは、AI モデルの学習、行動プロファイリング、広告のいずれにも使用しません。第三者にデータを販売・賃貸することもありません。
한국어: 수집한 데이터는 AI 모델 학습, 행동 프로파일링, 광고 중 어느 용도로도 사용하지 않습니다. 제 3 자에게 데이터를 판매 · 임대하지도 않습니다.
5. Data Sharing and Third Parties / 第三者提供と外部送信 / 제 3 자 제공 및 외부 송신
English: The App connects to the following external resources. Each is invoked only when needed to provide the App's core functionality.
日本語: 当アプリは以下の外部リソースに接続します。いずれも当アプリのコア機能を提供するために必要な範囲でのみ呼び出されます。
한국어: 본 앱은 다음 외부 리소스에 접속합니다. 어느 것도 본 앱의 핵심 기능을 제공하기 위해 필요한 범위에서만 호출됩니다.
English:
- Skima Engineering backend (Cloudflare Workers / D1 / KV): Our own infrastructure on Cloudflare. Stores hashed device IDs, generated recipes, browse-promotion timestamps, and usage logs. Cloudflare is the data processor.
- Cloudflare AI Gateway: A pass-through proxy that routes our LLM calls. Used for response caching, cost monitoring, and rate limiting. The dish-name query, current location, origin region, and UI locale are included in the prompt.
- OpenAI (primary LLM via AI Gateway): Generates recipe content from the prompt. Per OpenAI's API terms, prompts and outputs sent through the API are not used for model training by default.
- Google AI Studio / Gemini (fallback LLM via AI Gateway): Called only when the primary LLM is unavailable.
- Apple / Google app distribution: Used for distribution and operational checks via the App Store and Google Play.
日本語:
- スキマエンジニアリングのバックエンド (Cloudflare Workers / D1 / KV): Cloudflare 上に構築した当チーム自身のインフラ。ハッシュ化された端末 ID、生成されたレシピ、ブラウズ昇格時刻、利用ログを保存します。Cloudflare が委託処理事業者となります。
- Cloudflare AI Gateway: 当チームの LLM 呼び出しを中継するプロキシ。レスポンスキャッシュ、コスト監視、レート制限のために使用します。料理名のクエリ、現在地、出身地、UI ロケールがプロンプトに含まれます。
- OpenAI (主 LLM、AI Gateway 経由): プロンプトからレシピ内容を生成します。OpenAI の API 利用規約により、API 経由で送信されたプロンプトと出力はデフォルトでモデル学習には使用されません。
- Google AI Studio / Gemini (副 LLM、AI Gateway 経由): 主 LLM が利用できない場合のフォールバックとしてのみ呼び出されます。
- Apple / Google アプリ配信: App Store / Google Play を通じたアプリの配信および動作確認に利用します。
한국어:
- 스키마 엔지니어링 백엔드 (Cloudflare Workers / D1 / KV): Cloudflare 상에 구축한 당 팀 자체 인프라. 해시된 단말 ID, 생성된 레시피, 둘러보기 승격 시각, 이용 로그를 저장합니다. Cloudflare 가 위탁 처리 사업자가 됩니다.
- Cloudflare AI Gateway: 당 팀의 LLM 호출을 중계하는 프록시. 응답 캐시, 비용 모니터링, 레이트 리미트를 위해 사용합니다. 요리명 쿼리, 현재지, 출신지, UI 로케일이 프롬프트에 포함됩니다.
- OpenAI (주 LLM, AI Gateway 경유): 프롬프트로부터 레시피 내용을 생성합니다. OpenAI 의 API 이용 약관에 따라 API 를 통해 전송된 프롬프트와 출력은 기본적으로 모델 학습에 사용되지 않습니다.
- Google AI Studio / Gemini (부 LLM, AI Gateway 경유): 주 LLM 이 이용할 수 없는 경우의 폴백으로만 호출됩니다.
- Apple / Google 앱 배포: App Store / Google Play 를 통한 앱의 배포 및 동작 확인에 이용합니다.
English: Cloudflare and the LLM providers may temporarily process the request data on servers located outside Japan (including in the United States and EU). We rely on the standard contractual safeguards of these providers (DPA / SCC) for cross-border transfers. We do not sell personal information, share it for advertising purposes, or use ad-tracking SDKs.
日本語: Cloudflare および LLM 提供事業者は、リクエスト内容を一時的に日本国外 (米国・EU 等) のサーバで処理する場合があります。越境移転については各事業者の標準的な契約上の安全管理措置 (DPA / SCC) を前提とします。当チームは個人情報を販売せず、広告目的での情報共有も行わず、広告トラッキング SDK を使用しません。
한국어: Cloudflare 및 LLM 제공 사업자는 요청 내용을 일시적으로 일본 국외 (미국 · EU 등) 의 서버에서 처리할 수 있습니다. 국외 이전에 관해서는 각 사업자의 표준적인 계약상 안전 관리 조치 (DPA / SCC) 를 전제로 합니다. 당 팀은 개인정보를 판매하지 않으며, 광고 목적의 정보 공유도 하지 않고, 광고 트래킹 SDK 를 사용하지 않습니다.
6. Your Rights / お客様の権利 / 사용자 권리
English: Users in Japan, the EU, California, Korea, Brazil, and other regions may exercise rights such as access, correction, deletion, suspension of use, data portability, and withdrawal of consent in accordance with applicable laws.
English:
- Delete all device-side data and request server-side deletion: Open Settings → Account → "Delete data" within the App. This wipes all on-device data and sends a DELETE request to our backend, which cascades to remove your user row and associated usage logs.
- Re-run onboarding: Settings → Account → "Replay onboarding". Useful for changing the origin/current/language combination.
- Remove a single history entry: Long-press or tap "Edit" on the history screen and tap the trash icon.
- Stop new data being generated: Uninstall the App; no further requests will be made to our backend.
日本語: 日本、EU、カリフォルニア、韓国、ブラジルなどの地域の利用者は、関連法令に基づき、保有する個人情報の開示、訂正、削除、利用停止、データポータビリティ、同意の撤回などの権利を行使できます。
日本語:
- 端末内データの全削除とサーバ側削除リクエスト: アプリの 設定 → アカウント → 「データを削除」 を実行してください。端末内データを全消去し、当チームのバックエンドへ DELETE リクエストを送信、関連する利用ログも cascade で削除されます。
- オンボーディングの再実行: 設定 → アカウント → 「チュートリアルを再表示」。出身地 / 現在地 / 言語の組合せを変更したい場合に利用できます。
- 履歴の個別削除: 履歴一覧画面で「編集」をタップしてから対象項目のゴミ箱アイコンをタップ。
- 新規データ生成の停止: アプリをアンインストールすれば以降のリクエストは発生しません。
한국어: 일본, EU, 캘리포니아, 한국, 브라질 등의 지역에 거주하는 사용자는 해당 법령에 근거하여 보유하는 개인정보의 열람, 정정, 삭제, 이용 정지, 데이터 이동권, 동의 철회 등의 권리를 행사할 수 있습니다.
한국어:
- 기기 내 데이터 전체 삭제 및 서버 측 삭제 요청: 앱의 설정 → 계정 → 「데이터 삭제」 를 실행해 주십시오. 기기 내 데이터를 모두 삭제하고, 당 팀의 백엔드로 DELETE 요청을 전송하여 관련 이용 로그도 cascade 로 삭제됩니다.
- 온보딩 재실행: 설정 → 계정 → 「튜토리얼 다시 보기」. 출신지 / 현재지 / 언어 조합을 변경하고 싶을 때 이용할 수 있습니다.
- 기록 개별 삭제: 기록 목록 화면에서 「편집」 을 탭한 후 대상 항목의 휴지통 아이콘을 탭.
- 신규 데이터 생성 중지: 앱을 삭제하면 이후의 요청은 발생하지 않습니다.
7. Retention, Security, Contact / 保持期間・安全管理・お問い合わせ / 보관 기간 · 안전 관리 · 문의
English: On-device data persists until you remove it via the in-app "Delete data" action or by uninstalling the App. Server-side recipe content is retained indefinitely as part of our shared recipe cache (keyed by dish identifier, not by user). Server-side usage logs are archived after approximately three months. The user row (the hashed device ID) is deleted immediately upon your deletion request.
日本語: 端末内に保存された情報は、アプリ内の「データを削除」ボタンで削除するか、アプリをアンインストールするまで保持されます。サーバ側のレシピ内容は、料理識別子をキーとした共有キャッシュとして無期限に保持されます (ユーザ単位ではない)。サーバ側の利用ログは約 3 ヶ月でアーカイブされます。ユーザ行 (ハッシュ化された端末 ID) は削除リクエスト時に即時削除されます。
한국어: 기기 내에 저장된 정보는 앱 내 「데이터 삭제」 버튼으로 삭제하거나 앱을 삭제할 때까지 유지됩니다. 서버 측 레시피 내용은 요리 식별자를 키로 한 공유 캐시로서 무기한 보관됩니다 (사용자 단위가 아님). 서버 측 이용 로그는 약 3 개월 후에 아카이브됩니다. 사용자 행 (해시된 단말 ID) 은 삭제 요청 시 즉시 삭제됩니다.
English: Communication between the App and our backend is encrypted with HTTPS / TLS. Server-side data is stored in Cloudflare D1 (SQLite) and Cloudflare KV with encryption at rest. On-device data is stored within the device sandbox and protected by OS-provided encryption (iOS Data Protection / Android File-Based Encryption). API access requires the SHA-256 device hash header, and abuse is mitigated by Cloudflare's rate-limiting at the edge.
日本語: 当アプリと当チームのバックエンド間の通信は HTTPS / TLS で暗号化されます。サーバ側のデータは Cloudflare D1 (SQLite) および Cloudflare KV に保管時暗号化された状態で保存されます。端末内のデータは端末サンドボックス内に保存され、OS の暗号化機能 (iOS Data Protection / Android File-Based Encryption) で保護されます。API へのアクセスには SHA-256 端末ハッシュのヘッダが必要で、Cloudflare のエッジレート制限によって濫用を抑止しています。
한국어: 본 앱과 당 팀 백엔드 간의 통신은 HTTPS / TLS 로 암호화됩니다. 서버 측 데이터는 Cloudflare D1 (SQLite) 및 Cloudflare KV 에 저장 시 암호화된 상태로 보관됩니다. 기기 내 데이터는 단말 샌드박스 내에 저장되며, OS 의 암호화 기능 (iOS Data Protection / Android File-Based Encryption) 으로 보호됩니다. API 접근에는 SHA-256 단말 해시 헤더가 필요하며, Cloudflare 의 엣지 레이트 리미트로 남용을 억제합니다.
English: The App is not primarily intended for children under 13 (under 16 in the EU / under 14 in Korea). If users of such ages use the App, we ask that they do so under the judgment and consent of a parent or guardian.
日本語: 当アプリは 13 歳未満 (EU では 16 歳未満、韓国では 14 歳未満) のお子様を主対象としていません。該当する年齢の方がご利用になる場合、保護者の方の判断と同意のもとでのご利用をお願いします。
한국어: 본 앱은 13 세 미만 (EU 에서는 16 세 미만, 한국에서는 14 세 미만) 의 어린이를 주된 대상으로 하지 않습니다. 해당 연령의 사용자가 이용하는 경우, 보호자의 판단과 동의 하에 이용해 주시기 바랍니다.
English: This policy may be updated from time to time in response to changes in service or law. We will announce significant changes within the App or on our website. For contact details, see Section 2. Data Controller.
日本語: 本ポリシーは、サービス内容の変更や法令の改正に応じて随時更新される場合があります。重要な変更がある場合は、アプリ内またはウェブサイトでお知らせします。お問い合わせは前記 2. データ管理者 に記載の Email 宛にお願いします。
한국어: 본 방침은 서비스 내용의 변경이나 법령 개정에 따라 수시로 갱신될 수 있습니다. 중요한 변경이 있을 경우 앱 내 또는 웹사이트에서 안내합니다. 문의는 위의 2. 데이터 관리자 에 기재된 Email 로 부탁드립니다.