Privacy policy
Pointfare for iPhone
Pointfare is the current brand name of the app formerly called AwardGrid. The App Store listing is currently named AwardGrid (App ID 6816321841).
This policy covers the App Store version of Pointfare for iPhone.
In short
- Pointfare for iPhone has no accounts of its own and no analytics, advertising, tracking or crash reporting. Its developer does not receive your search queries or award result rows.
- With sample data, the app sends nothing: sample data is made on your device.
- You connect your seats.aero account with seats.aero's own sign-in (Login with Seats.aero): seats.aero asks you to sign in and approve AwardGrid, and Pointfare never sees your password. You can disconnect at any time, in Pointfare or in your seats.aero settings.
- With your account connected, the app sends your search from your device directly to seats.aero, with the access token from that sign-in.
- A small token service at awardgrid.dowhiz.com exchanges and refreshes the sign-in tokens for Pointfare; it does not persist sign-in tokens, search queries or award results and keeps no logs of tokens.
- Pointfare keeps award result rows from your seats.aero account only in memory while the app runs; it never writes those rows to its files. Saved keeps your queries; opening a saved query whose results are gone searches again.
- The sign-in tokens stay in this iPhone's Keychain, with iCloud Keychain sync off. The iPhone app saves query and watch conditions, target-met and seen status, and check/call metadata in its own files on the device. With notification permission, iOS Notification Center can retain route, cabin, miles and date in a local watch notification. These device records are separate from award result rows and are not a Pointfare server cache.
- This website, not the app, counts visits with Cloudflare Web Analytics, without cookies (see This website).
Connection and account results
Does Pointfare receive my seats.aero password or save award results on its servers?
Pointfare is the iPhone app formerly called AwardGrid (App ID 6816321841), published by Curastone CORP.
The Pointfare iPhone app connects through seats.aero's own sign-in (Login with Seats.aero), where you approve AwardGrid; Pointfare never sees your seats.aero password. Searches go directly from your iPhone to seats.aero, and results return to the iPhone. The developer's token service exchanges and refreshes sign-in tokens; it does not receive your search queries or award result rows and does not persist the tokens. Account result rows and the 45-minute search cache stay in the iPhone app's memory, not in a Pointfare server cache.
The iPhone app saves query and watch conditions, target-met and seen status, and check/call metadata in its own files on the device. With notification permission, iOS Notification Center can retain route, cabin, miles and date in a local watch notification. These device records are separate from award result rows and are not a Pointfare server cache.
What the app sends, and to whom
Sample data: nothing
Without a seats.aero account, Pointfare shows sample data: invented results, made on your device for the routes and dates you search, and labelled "Sample data" on every screen that shows them. While sample data is on, searching, flight details, watches and the app's other features send nothing to seats.aero or to anyone else.
seats.aero's sign-in, when you connect
Connect seats.aero (Settings › seats.aero account) opens seats.aero's own sign-in page, Login with Seats.aero, in the system's sign-in sheet. You sign in to seats.aero there and approve AwardGrid; Pointfare never sees your password. The page receives Pointfare's client ID and a random value that ties seats.aero's answer to this sign-in. seats.aero then hands a one-time code back to the app, through Pointfare's token service.
Pointfare's token service, to exchange and refresh the sign-in tokens
Pointfare's client secret may not be in the app, so a small token service at awardgrid.dowhiz.com, which runs on Cloudflare Workers, does two things for it. When you connect, it exchanges the one-time code for the sign-in tokens (an access token, valid about an hour, and a refresh token). Later, it gets a new access token with the refresh token. The app sends it only the code and the random value, or the refresh token; the service adds Pointfare's client ID and secret, passes the request to seats.aero, and hands back only the tokens. It does not persist sign-in tokens, search queries or award results and keeps no logs of tokens. It never sees your searches or their results, and, like any server, it sees your device's IP address.
seats.aero, for every search on your account
With your own seats.aero account connected, Pointfare gets award availability only from the seats.aero Partner API, directly from your device. It sends seats.aero:
- the access token from your sign-in, in the header that authorizes each request;
- your search: airports, dates, cabins, programs and similar filters;
- when you open a result's flight details, that result's availability ID.
The Pointfare iPhone app sends account-data requests directly to seats.aero when you search, open flight details, reopen a saved query whose results are gone, or open or return to the app with watches. Native route targets can also make requests during a background check when iOS allows; iOS decides when, if at all. Sample-data watches send nothing. seats.aero handles requests under its own terms and privacy practices.
Nothing else
Like any internet request, a request to seats.aero or to the token service shows that service your device's IP address. The app sends nothing to any other server, and the token service, which the developer runs, does not persist sign-in tokens, search queries or award results. If you choose, in iOS, to share analytics with app developers, or you test the app through TestFlight, Apple may pass crash reports or the feedback you send to the developer; those are Apple's features, under your device's settings and Apple's policies.
Like any server, the token service sees your device's IP address. Cloudflare uses that address for in-memory rate-limit counters. The token service does not persist sign-in tokens, search queries or award results.
What stays on your device
- Keychain: the sign-in tokens for your seats.aero account, if you connect it. They are kept for this device only and not synced through iCloud Keychain. The app never shows them.
- The app's own files: whether you use sample data or your seats.aero account; today's count of seats.aero calls; your search conditions and view preferences; your saved queries and when you saved them; watch conditions; saved trip plans; and your settings (language, appearance, and the programs you choose in My programs: names only, never a card number). The app never writes results from your seats.aero account to them.
- Account result rows: returned award result rows and full watch comparisons stay in the app process memory, not in app files. Repeated searches can use a 45-minute in-memory cache. Restarting the app loses those result rows; Saved keeps your queries; opening a saved query whose results are gone searches again.
- Local background records: The iPhone keeps the background watch conditions, route labels and notification wording on the device. It also keeps target-met timestamps and seen status, last-check/run information and call counts. These derived status records do not contain the returned award result rows, result miles, travel dates or programs. The app tries to mark its native background folder as excluded from device backups.
- Local notifications: With notification permission, iOS Notification Center can retain a local watch notification containing route, cabin, miles and date. The app requests removal of delivered watch notifications older than 24 hours when it launches, returns to the foreground or finishes a background check, and removal of all delivered watch notifications on disconnect. This is event-driven cleanup on the device, not a guaranteed deletion at the 24-hour mark and not a server cache.
- Older stored data: the app checks older files for known seats.aero result fields and removes those fields. If a file is unknown, damaged or cannot be updated safely, it is kept and the app shows on screen that cleanup could not finish. Such an error does not mean every old copy was deleted. This cleanup does not rewrite backups you made outside the app.
- Sample data: while it is on, the app keeps its own copies of these files (its cached results, watches, saved results and plans, the search on screen and settings) in a separate folder, and exiting sample data deletes them. Sample data never reads or changes your sign-in tokens or today's count of seats.aero calls.
The app's regular documents are included in your device's backups, to iCloud or to a computer, when you back up the device.
Your choices
- Disconnect in Settings › seats.aero account: it removes sign-in tokens and clears current account results. Saved query conditions and watches stay. If tokens or older stored data cannot be cleared, the app says so on screen. You can also remove Pointfare's access in your seats.aero settings; the app clears the connection and current account results when its next token refresh is refused.
- Clear cached results in Settings.
- Exit sample data to delete everything sample data kept.
- Delete the app to delete its files. iOS may keep Keychain items after the app is deleted, so disconnect in Settings first if you want the sign-in tokens gone.
What seats.aero received is held by seats.aero, under its own policies; ask seats.aero about it. Pointfare has no copy, so it cannot delete it for you.
The App Store privacy label
The label of the App Store version lists Search History as data linked to you, used for app functionality, and no data used to track you. That is what the app sends to seats.aero on your own account, as set out above. The developer does not receive it.
Tracking and advertising
Pointfare does not track you across other companies' apps and websites, does not use the advertising identifier, and shows no ads.
This website
The pages on pointfare.dowhiz.com, this one included, are served through Cloudflare, which counts visits to them with Cloudflare Web Analytics. A small script from Cloudflare records the page, the site you came from, your browser, operating system and type of device, your country, and how quickly the page loaded. It uses no cookies and does not fingerprint you, and the developer sees only totals. Like any website, Cloudflare sees your IP address when it serves a page.
The app does not include this script. Its requests to Pointfare's token service go to Cloudflare, which hosts the service on Cloudflare Workers: the one-time code and the random value when you connect, and the refresh token when the app renews the connection. Opening one of these pages from the app (Settings › Privacy policy or Support) opens it in Safari, as a visit like any other; as you tap the link, iOS may already open a connection to awardgrid.dowhiz.com, which shows Cloudflare your IP address.
Changes
If what the app sends changes, this page changes first, with a new date.
Contact
Questions about this policy: knowhiz.us@gmail.com. Pointfare is published by Curastone CORP.
Pointfare is not affiliated with, endorsed by, or sponsored by seats.aero, any airline, or any loyalty program.
隐私政策
Pointfare iPhone 版
Pointfare 是原名 AwardGrid 的 iPhone App 当前使用的品牌名。App Store 中的名称目前仍为 AwardGrid(App ID 6816321841)。
本政策适用于 Pointfare iPhone 版的 App Store 版本。
概要
- Pointfare iPhone 版没有自己的账号,应用中也没有统计分析、广告、跟踪或崩溃报告。开发者不接收你的查票查询或结果明细。
- 使用示例数据时,应用不发送任何内容:示例数据在本机生成。
- 你用 seats.aero 自己的登录(Login with Seats.aero)连接 seats.aero 账户:seats.aero 会请你登录并批准 AwardGrid,Pointfare 不会看到你的密码。你可以随时在 Pointfare 或 seats.aero 设置中断开连接。
- 连接账户后,查票时应用用这次登录得到的访问令牌,把你的查询从本机直接发送给 seats.aero。
- awardgrid.dowhiz.com 上的一个小型令牌服务为 Pointfare 交换和续期登录令牌;它不持久保存登录令牌、查票查询或查票结果,也不记录令牌。
- Pointfare 只在应用运行期间把来自你的 seats.aero 账户的查票结果明细保存在内存中,从不把这些明细写入应用文件。收藏会保留你的查询;打开结果已不在的收藏查询时,会重新查票。
- 连接账户后,登录令牌保存在本机钥匙串中。iPhone App 在本机的应用文件中保存查询和关注条件、目标达成及已读状态,以及检查和调用记录。允许通知后,iOS 通知中心可以在本机关注通知中保留航线、舱位、里程和日期。这些设备记录与查票结果明细分开,不是 Pointfare 的服务器缓存。
- 本网站(不是应用)用 Cloudflare Web Analytics 统计访问,不使用 cookie(见本网站)。
连接 seats.aero 时,Pointfare 会拿到我的密码,或者把查票结果保存到自己的服务器吗?
这里的 Pointfare 是 Curastone CORP. 发布、原名 AwardGrid 的 iPhone App(App ID 6816321841)。
Pointfare iPhone App 用 seats.aero 自己的登录(Login with Seats.aero)连接账户,你在那里批准 AwardGrid;Pointfare 不会看到你的 seats.aero 密码。查票请求从 iPhone 直接发往 seats.aero,结果返回 iPhone。开发者的令牌服务交换和续期登录令牌,不接收你的查票查询或结果明细,也不持久保存令牌。账户查票结果明细和 45 分钟的查票缓存保留在 iPhone App 的内存中,不是 Pointfare 的服务器缓存。
iPhone App 在本机的应用文件中保存查询和关注条件、目标达成及已读状态,以及检查和调用记录。允许通知后,iOS 通知中心可以在本机关注通知中保留航线、舱位、里程和日期。这些设备记录与查票结果明细分开,不是 Pointfare 的服务器缓存。
应用发送什么,发给谁
示例数据:不发送任何内容
没有 seats.aero 账户时,Pointfare 显示示例数据:在本机按你查询的航线和日期生成的虚构结果,每个显示它的页面都标注“示例数据”。示例数据开启期间,查票、航班详情、关注以及应用的其他功能都不会向 seats.aero 或任何其他方发送内容。
seats.aero 登录:连接账户时
“连接 seats.aero”(设置 › seats.aero 账户)会在系统的登录窗口中打开 seats.aero 自己的登录页面 Login with Seats.aero。你在那里登录 seats.aero 并批准 AwardGrid;Pointfare 不会看到你的密码。这个页面会收到 Pointfare 的客户端 ID,以及一个把 seats.aero 的回应与这次登录对应起来的随机值。之后 seats.aero 通过 Pointfare 的令牌服务,把一个一次性代码交回应用。
Pointfare 的令牌服务:交换和续期登录令牌
Pointfare 的客户端密钥不能放在应用里,所以 awardgrid.dowhiz.com 上的一个小型令牌服务(运行在 Cloudflare Workers 上)替应用做两件事:连接时,用一次性代码换取登录令牌(一个约一小时有效的访问令牌和一个刷新令牌);之后,用刷新令牌换取新的访问令牌。应用只向它发送代码和随机值,或刷新令牌;它加上 Pointfare 的客户端 ID 和密钥,把请求转给 seats.aero,只把令牌交回。它不持久保存登录令牌、查票查询或查票结果,也不记录令牌。它看不到你的查询和查询结果;与任何服务器一样,它会看到你设备的 IP 地址。
seats.aero:用你的账户每次查票
连接你自己的 seats.aero 账户后,Pointfare 只通过 seats.aero Partner API、从本机直接获取里程票数据。它会向 seats.aero 发送:
- 这次登录得到的访问令牌,放在为每个请求授权的请求头中;
- 你的查询:机场、日期、舱位、里程计划及类似筛选条件;
- 打开某个结果的航班详情时,该结果的 availability ID。
Pointfare iPhone App 在你查票、打开航班详情、打开结果已不在的收藏查询,或有关注并打开或回到 App 时,从本机直接向 seats.aero 发送账户数据请求。原生航线目标还可能在 iOS 允许的后台检查中发送请求;是否运行、何时运行由 iOS 决定。示例数据的关注不发送任何内容。 seats.aero 按其自身的条款和隐私做法处理请求。
其他
与任何网络请求一样,发往 seats.aero 或令牌服务的请求会让对方看到你设备的 IP 地址。应用不会向任何其他服务器发送数据;由开发者运行的令牌服务不持久保存登录令牌、查票查询或查票结果。如果你在 iOS 中选择与应用开发者共享分析数据,或通过 TestFlight 测试本应用,Apple 可能会把崩溃报告或你提交的反馈转交给开发者;这些是 Apple 的功能,受你的设备设置和 Apple 的政策约束。
与任何服务器一样,令牌服务会看到你设备的 IP 地址。Cloudflare 用这个地址在内存中统计限流计数。令牌服务不持久保存登录令牌、查票查询或查票结果。
留在你设备上的内容
- 钥匙串:你连接账户后的 seats.aero 登录令牌。它们只保存在本机,不通过 iCloud 钥匙串同步。应用从不显示令牌。
- 应用自己的文件:你使用示例数据还是 seats.aero 账户;今天的 seats.aero 调用次数;查询条件和显示偏好;你收藏的查询及收藏时间;关注条件;保存的行程规划;以及你的设置(语言、外观,以及你在“我的计划”中选择的计划,只有名称,绝不含卡号)。应用从不把来自你的 seats.aero 账户的结果写入这些文件。
- 账户查票结果明细:返回的查票结果明细和完整关注比较数据保留在应用进程内存中,不写入应用文件。重复查询可以使用 45 分钟的内存缓存。重启应用后,这些结果明细不再保留;收藏保留查询条件,打开时重新查询。
- 本机后台记录:iPhone 在本机保留后台关注条件、航线名称和通知文案,也保留目标达成时间和已读状态、上次检查或运行的信息及调用计数。这些派生状态记录不包含返回的查票结果明细、结果里程、出行日期或里程计划。应用会尝试将原生后台记录目录标记为不纳入设备备份。
- 本机通知:允许通知后,iOS 通知中心可以保留包含航线、舱位、里程和日期的本机关注通知。超过 24 小时的已送达关注通知,会在应用启动、回到前台或结束后台检查的运行时机请求清理;断开连接也会请求移除全部已送达关注通知。清理依赖这些运行时机,并非保证到 24 小时整就删除,也不是服务器缓存。
- 旧版保存数据:应用会检查旧文件中能识别的 seats.aero 结果字段,并移除这些字段。文件格式未知、损坏或无法安全更新时,文件会保留,应用会在屏幕上提示清理未完成。出现这类错误不表示所有旧副本都已删除。此清理不会改写你在应用之外创建的备份。
- 示例数据:开启期间,应用把自己的一套文件(缓存结果、关注、保存的结果和行程规划、屏幕上的查询和设置)放在单独的文件夹里,退出示例数据时会删除它们。示例数据从不读取或更改你的登录令牌,也不读取或更改今天的 seats.aero 调用次数。
你备份设备时(到 iCloud 或电脑),应用的常规文档会包含在备份中。
你的选择
- 在“设置 › seats.aero 账户”中断开连接:这会移除登录令牌并清除当前账户结果,收藏的查询条件和关注会保留。令牌或旧版数据如无法清除,应用会在屏幕上说明。你也可以在 seats.aero 设置中移除 Pointfare 的访问权限;应用的下一次令牌刷新被拒绝时,会清除连接和当前账户结果。
- 在设置中清除缓存结果。
- 退出示例数据,即删除示例数据保存的全部内容。
- 删除应用即删除其文件。应用删除后,iOS 可能仍在钥匙串中保留内容;如需删除登录令牌,请先在设置中断开连接。
seats.aero 收到的内容由 seats.aero 按其自身的政策保存,请直接向 seats.aero 询问。Pointfare 没有副本,因此无法替你删除。
App Store 隐私标签
App Store 版本的标签列出与你关联的“搜索历史”,用于应用功能,且没有用于跟踪你的数据。这就是上文所述、应用使用你自己的账户发送给 seats.aero 的内容。开发者不会收到这些数据。
跟踪与广告
Pointfare 不会在其他公司的应用和网站之间跟踪你,不使用广告标识符,也不显示广告。
本网站
pointfare.dowhiz.com 上的页面(包括本页)通过 Cloudflare 提供,并用 Cloudflare Web Analytics 统计访问。Cloudflare 的一小段脚本会记录访问的页面、你从哪个网站过来、你的浏览器、操作系统和设备类型、所在国家或地区,以及页面加载速度。它不使用 cookie,也不做指纹识别,开发者只能看到汇总数字。与任何网站一样,Cloudflare 在提供页面时会看到你的 IP 地址。
应用本身不包含这段脚本。应用发往 Pointfare 令牌服务的请求会到达 Cloudflare,因为该服务托管在 Cloudflare Workers 上:连接时发送一次性代码和随机值,续期连接时发送刷新令牌。从应用里打开这些页面(设置 › 隐私政策或支持)会在 Safari 中打开,与其他访问一样;你点按链接时,iOS 可能已经开始连接 awardgrid.dowhiz.com,这会让 Cloudflare 看到你的 IP 地址。
变更
如果应用发送的内容有变,本页会先更新,并注明新的日期。
联系
关于本政策的问题:knowhiz.us@gmail.com。Pointfare 由 Curastone CORP. 发布。
Pointfare 与 seats.aero、任何航空公司或任何里程计划均无关联,也未获其认可或赞助。