Privacy Policy — TagLink
This Privacy Policy explains how TagLink (“the App”, “we”, “us”) handles information when you use the iOS application. TagLink is published by an independent developer (“the Developer”). Questions about this policy can be sent to Shashankbhatti@icloud.com.
1. Who is the data controller?
The Developer of TagLink is the data controller for the limited data described in this policy. Because TagLink does not operate any backend, the practical data controller for the model traffic itself is OpenRouter (and the model provider you choose through OpenRouter). See Section 6.
Contact: Shashankbhatti@icloud.com
2. What information does TagLink collect?
TagLink does not collect personal information on a server, because there is no server. All data described below stays on your device unless explicitly sent to OpenRouter when you tap Generate.
2.1 Information you provide
- OpenRouter API key. Stored only in the iOS Keychain (service
com.aitagneo.openai-key). It is never written to logs,UserDefaults, iCloud, backups created by the App, or transmitted to the Developer. - Prompt text and optional photo. When you tap Generate, the text you entered and the photo you attached (if any) are sent from your device directly to OpenRouter as part of the chat-completions request, authenticated by your API key. The Developer is not part of this network path.
- Brand voice settings, tag feedback, saved collections, caption sessions, generation history (up to 200 entries). Stored locally in SwiftData on your device only.
2.2 Information automatically generated on your device
- Estimated usage cost (USD). Derived locally from token counts returned by OpenRouter and a bundled price table. Used to power the “This month” summary in Settings. Never transmitted off the device.
- Banned-tag scan results. Each generated tag is checked locally against a bundled list (
bannedTags.json, ~800 entries). The check happens entirely on device; nothing is uploaded.
2.3 Information TagLink does not collect
- No analytics, telemetry, crash reporting, or product-usage tracking.
- No advertising identifiers (IDFA / IDFV).
- No location data, contacts, microphone, calendar, or health data.
- No account, signup, login, or profile — there is nothing to register for.
- No third-party SDKs that perform tracking.
3. Photos and the photo library
If you choose to attach a photo, TagLink uses the system PhotosPicker interface. The App receives only the single image you select. The image is resized and compressed on your device (max 1024 px, JPEG quality 0.8, ≤ 5 MB) and then sent to OpenRouter as part of your generation request. The image is not saved by TagLink after the request completes unless you explicitly save the resulting generation to your local history or collections.
4. Where your data is stored
| Data | Storage location | Lifetime |
|---|---|---|
| OpenRouter API key | iOS Keychain, on device | Until you remove it or reset local data |
| Generation history | SwiftData, on device | Up to 200 most recent entries (older are pruned) |
| Brand voice, collections, feedback, sessions | SwiftData, on device | Until you delete the entry or reset local data |
| Pricing cache | UserDefaults, on device | Refreshed periodically from a public pricing JSON |
| Banned-tag list | App bundle (read-only) | Shipped with each App version |
No personal data is stored on any Developer-controlled server.
5. Network requests made by TagLink
TagLink makes the following outbound network requests:
https://openrouter.ai/api/v1/models— to validate your API key.https://openrouter.ai/api/v1/chat/completions— to generate captions, alt-text, and hashtags using the model you selected.https://raw.githubusercontent.com/aitagneo/pricing/main/pricing.json— read-only fetch of a price table used to estimate cost in USD. No personal data is sent.
Requests 1 and 2 include OpenRouter's recommended attribution headers (HTTP-Referer: https://aitagneo.app, X-Title: TagLink) so OpenRouter can identify the originating application. These headers do not identify you.
No other network destinations are contacted.
6. Third-party services
6.1 OpenRouter
OpenRouter (operated by OpenRouter, Inc.) routes your generation requests to the model provider you select (for example, OpenAI). Your prompt and any attached image transit OpenRouter and the upstream provider. Their handling of that data is governed by:
- OpenRouter Privacy Policy: https://openrouter.ai/privacy
- The privacy policy of the upstream model provider you select.
You authenticate to OpenRouter with your own key, and billing for tokens is between you and OpenRouter. The Developer has no access to your OpenRouter account or its usage.
6.2 GitHub (pricing JSON only)
The static pricing JSON described in Section 5 is served from GitHub's raw content host. GitHub may log standard HTTP request metadata (IP address, User-Agent) per its own privacy policy at https://docs.github.com/site-policy. No personal data is sent in the request body.
7. Children's privacy
TagLink is not intended for children under the age of 13 (or the equivalent minimum age in your jurisdiction). The App does not knowingly collect information from children. The App Store age rating reflects the fact that AI output is not curated by the Developer and should be reviewed before posting.
8. Your rights
Because the App stores everything locally, you control your data directly from the App:
- Access and portability. All saved generations, brand-voice text, and collections are visible inside the App.
- Deletion. Settings → Reset all local data removes your saved API key, brand voice, history, collections, and feedback from this iPhone. You can also delete individual items from their respective screens.
- Withdrawing consent. Stop using the App and delete it from your device. iOS removes the App container including the Keychain entry created by TagLink.
For rights against OpenRouter or the upstream model provider (for example, GDPR / CCPA requests for data they processed), contact those services directly using the policies linked in Section 6.
9. Security
- The API key is stored using iOS Keychain Services with the App's default protection class.
- Outbound traffic uses HTTPS exclusively; App Transport Security defaults are not relaxed.
- No data is uploaded to any Developer-controlled endpoint, so there is no Developer-side breach surface.
10. International data transfers
When you tap Generate, your request travels from your device to OpenRouter and the upstream model provider, which may be located in countries different from yours, including the United States. That transfer happens directly between your device and those services using your key — it is not routed through the Developer.
11. Changes to this policy
If this policy is updated, the new effective date will appear at the top of this document and the updated text will replace the version currently linked from the App and the App Store listing. Material changes will be highlighted in release notes.
12. Contact
Privacy questions, deletion requests, and policy inquiries: Shashankbhatti@icloud.com