Car Recall Check & Alerts — Privacy Policy
Last updated: 29 October 2026 · Package:
com.ibrahimtxy.carrecall · Developer: bulbildir
1. What the app does
Car Recall Check & Alerts checks safety recalls published for a vehicle you choose on the NHTSA recalls endpoint at an interval you choose, and sends a notification to your phone when NHTSA publishes a recall for a vehicle you watch. An example watch: 2021 Ford F-150.
The app never buys, reserves or holds anything. It points you at the recall page on nhtsa.gov; you act there yourself.
2. Data we collect
The developer collects none. We run no server and receive nothing from your device — not your watches, not your device identifier, not your usage, not crash reports.
There are two exceptions, and the developer processes neither: in the free tier Google serves the ads and may use your device's advertising ID (AAID) and IP address (§5), and Google ML Kit sends Google its own diagnostic data with an identifier for this installation (§4).
3. What is stored on your device
The watches you create (model year, make, model), your interval setting, the records already seen (their IDs with status and price, up to 500 per watch) so the app does not repeat itself, the recent finds (up to 20 per watch: title, second line, status or price and its previous value, link and the time found), shown under the watch as Recent finds and deleted with the watch, and the measured data usage. All of it lives in the app's private storage and is deleted when you uninstall the app.
4. Servers the app talks to
For its own work the app connects ONLY to NHTSA's open data endpoints. There is no account and no sign-in; the year, make and model you pick are sent as search terms, exactly as if you typed them on their website — also when you tap Show owner complaints — and a manufacturer name you search for goes to NHTSA's manufacturer register. If you type, scan or photograph a VIN, only its first 11 characters — the part shared by every car of the same model, year and plant, with the check character blanked — go to NHTSA's VIN decoder; the serial number never leaves the phone and the VIN is not saved. The addresses are:
api.nhtsa.govvpic.nhtsa.dot.govwww.nhtsa.gov
These requests are ordinary public web requests over HTTPS, the same ones your browser makes on the public NHTSA recall list. They carry no identifier of you.
Apart from those requests and the advertising and purchase traffic described in §5 and §6, the only other traffic comes from Google ML Kit, the Google library that reads the VIN in a photo you take or pick; that work itself is done on this phone.
According to Google, ML Kit collects device and app information (such as the phone model, the Android version and the app version), an identifier for this installation that Google says is not intended to identify a user or a device (for the code scanner, which runs in Google Play services, also a device identifier), performance metrics, settings, input and output sizes, event types and error codes, and sends them to Google over HTTPS for diagnostics and usage analytics; Google does not share them with third parties. That list does not include your pictures or the text read from them. The code scanner the app opens is part of Google Play services and is covered by the same Google page. Google describes it at https://developers.google.com/ml-kit/android-data-disclosure. The Google Play Data safety section lists that identifier as collected for analytics.
5. Advertising
This section applies to version 0.1.0 and later. Earlier versions show no ads, contain no advertising library and read no advertising ID.
The free tier shows ads. They are served by Google AdMob; the developer does not choose what is shown and has no direct relationship with advertisers. The formats used are:
- Banner — at the bottom of the screen; it never covers your content.
- Rewarded — only when you tap the offer yourself; it grants temporary extra watch slots.
- Native — a card inside your watch list, always marked with an “Ad” label.
Interstitial, rewarded interstitial and app open ads are no longer used; versions of the app released before 28 October 2026 also showed these formats.
- Paid members see no ads and no ad request is made — nothing leaves the device for AdMob, and no consent form is shown.
- To select, serve and measure ads, Google may use your device's advertising ID (AAID) and IP address. The developer never reads or stores that identifier; Google is the party that processes it.
- You can reset or delete the advertising ID in Settings › Google › Ads. The app keeps working if you do.
- In the European Economic Area, Switzerland and the United Kingdom, Google's certified consent form is shown before the first ad loads. You can change your choice later from the Privacy options link inside the app.
- How Google processes this data: policies.google.com/technologies/partner-sites
The developer adds no analytics (Firebase Analytics and the like), no crash reporting (Crashlytics and the like) and no marketing tracker. How you use the app is never reported to the developer. The diagnostic and usage data Google ML Kit sends (§4) goes to Google, not to the developer.
6. Permissions
| Permission | Why |
|---|---|
ACCESS_NETWORK_STATE | To avoid pointless attempts while offline, and to tell mobile data from Wi-Fi. |
INTERNET | To reach the public NHTSA recall list. |
POST_NOTIFICATIONS | To tell you a recall was published for your vehicle. That is the whole app. |
READ_BASIC_PHONE_STATE | So the ads library can tell Wi-Fi from mobile data. It grants no access to your phone number, IMEI or call log; the app does not declare it, the ads library adds it. |
RECEIVE_BOOT_COMPLETED | So your watches resume after the phone restarts. |
VIBRATE | To vibrate when a notification arrives. |
WAKE_LOCK | So the phone does not fall asleep in the middle of a check. The app does not ask for this itself; the background work library (Android Jetpack WorkManager) adds it. |
BILLING | So you can buy a paid membership through Google Play. The app does not declare this permission itself; the Google Play Billing library adds it. Your payment details (card, address, invoice) never reach the app and are never seen or stored by it — Google Play takes the payment. All the app learns is whether your membership is active. |
AD_ID | Ads in the free tier are served by Google AdMob, which may read the device advertising ID (AAID). The app does not declare this permission itself; the ads library adds it. Paid members make no ad request at all. You can reset or delete the ID in Settings › Google › Ads. |
7. Payment and membership
If you buy a paid membership, the payment is handled by Google Play. Your card details are never entered into the app and are never seen by the developer.
Monthly and yearly memberships renew automatically; Google Play charges your account at the start of each period. The lifetime membership is a one-off purchase and does not renew. You can cancel a subscription at any time in Google Play Store › Menu › Subscriptions; cancelling takes effect at the end of the period you have already paid for. Refunds are also handled by Google Play — the developer has no access to the payment.
The app has no server of its own. Whether your membership is active is read again every time the app asks Google Play (when you open the app and when you view the membership screen). That is why a cancellation or refund closes the membership the next time you open the app. If you changed device, Restore purchases on the membership screen brings back a purchase made with the same Google account.
8. Children
The app is not directed to children. The developer collects no data from anyone; the advertising data described in §5 is processed by Google.
9. Keeping and deleting your data
Everything the app stores stays on your device; there is no account and no server copy. Deleting a watch removes it immediately. Clearing the app’s storage, or uninstalling the app, deletes everything it has ever kept — nothing survives elsewhere, so there is no separate deletion request to make. A paid membership is held by Google Play, not by the app: it survives reinstalling and can be brought back with Restore purchases.
10. Changes
If this policy changes, the date at the top changes with it.
11. Contact
12. This app in detail
The sections above apply to every app by this developer. What follows is written for this app only and describes exactly what it records, what it never records and what it will not claim.
Starting from a VIN The Vehicle tab has an optional box for a vehicle identification number (VIN). Before anything is sent, the app checks the VIN on your phone: 17 characters, none of the letters I, O or Q, and a 9th character (the check character) that matches the others. A VIN that fails this check is not sent at all, because a mistyped VIN would decode to someone else's model. Only the first 11 characters are sent, with the check character replaced by an asterisk — for example 1FTFW1E5*MF. That part is shared by every car of the same make, model, model year and assembly plant. The last six characters, the serial number that points at one particular car, never leave your phone. The request goes to NHTSA's public VIN decoder at vpic.nhtsa.dot.gov, which answers with the make, model, model year and body style; the app then selects the year and make in NHTSA's recall lists, and the model only when NHTSA uses exactly the same name (otherwise it shows you the names to choose from). The VIN you type is kept only in the app's memory while the screen is open: it is not written to storage, it is not part of a watch and it is not sent anywhere else. A watch still holds only the model year, make and model. The same answer from NHTSA's decoder also lists what it records for that part of the VIN — engine, transmission, drive, trim, assembly plant and factory safety equipment — and the app shows it under the VIN; no further request is made for it and none of it is stored. A VIN does not tell the app whether a recall was carried out on your car. NHTSA's open data has no per-car answer; that record is held by the manufacturer and its dealers. Scanning or photographing a VIN "Scan VIN barcode" opens Google's code scanner, which is part of Google Play services on your phone. Google Play services opens the camera and reads the barcode; this app receives only the decoded text and keeps it only if it is a valid VIN, which then goes into the VIN box and is decoded at once. It never receives the camera image. If the scanner module is not on your phone yet, Google Play services downloads it once. "Photo of the VIN" asks your phone's camera app to take one picture, which the camera app writes into a single folder in this app's private cache; "Choose a photo" lets you pick one picture with the system photo picker instead. The app reads the text in the picture ON THIS DEVICE with Google's ML Kit text recognition, which is built into the app and needs no network connection to read, and offers only text that passes the VIN check character. The picture taken for this is deleted right after it is read; a picked picture is not copied into the app. The app requests NO camera permission. Whichever way it arrives, a VIN is handled exactly like a typed one: only its first 11 characters are sent to NHTSA's decoder and it is not saved. Google ML Kit sends Google its own diagnostic and usage data, described in §4; Google describes the data its ML Kit components handle at https://developers.google.com/ml-kit/android-data-disclosure . Safety ratings When you tap "Show safety ratings", the app asks NHTSA's public 5-Star Safety Ratings data at api.nhtsa.gov for the model year, make and model you chose: one request for the rated model names, one for the body style you pick, and one for each of at most four variants (for example 2WD and 4WD). Nothing is fetched in the background and nothing about the ratings is stored. Crash-test photos and videos referred to in NHTSA's answer are not downloaded. Owner complaints When you tap "Show owner complaints", the app asks NHTSA's public complaints data at api.nhtsa.gov for the model year, make and model you chose — one request, which can be large for a popular model (measured up to about 0.7 MB). Nothing is fetched in the background. The app shows the counts, the parts named and the newest complaints in their owners' words; it does not show the partial VIN NHTSA publishes with each complaint, and it stores none of the answer. Manufacturer directory When you type at least three letters of a manufacturer's name and tap "Search manufacturers", that text is sent to NHTSA's public manufacturer register at vpic.nhtsa.dot.gov; opening a manufacturer asks the same register for the makes it registered. The app shows the company's name, address, country, vehicle types and makes. NHTSA's register also lists contact people with their names, e-mail addresses and phone numbers; the app does not read those fields and never shows them. Nothing is stored. "Done on my car" Each recall card has a switch for marking a campaign as already done on your car. The mark is your own note: the app stores the model year, make, model and the NHTSA campaign number as one entry in its private, encrypted storage on this phone. It is not sent to the developer or anywhere else and is not copied to Android's cloud backup or to another device. Marked campaigns move below the open ones and are counted separately. A mark does not silence a watch: if NHTSA escalates a campaign to "do not drive", you are still told. Turning the switch off removes the entry; clearing the app's storage or uninstalling the app removes all of them. Recently checked lists So that you can read a recall list again without a signal, the app keeps your last six checks in its private, encrypted storage on this phone: the model year, make and model you picked, the name NHTSA files the recalls under, every campaign card as it was shown (NHTSA's public campaign number, component, manufacturer, date, remedy text and urgency) and the time it was saved. A saved list always says that it is a copy and when it was saved. It is not sent to the developer or anywhere else and is not copied to Android's cloud backup or to another device; a seventh check replaces the oldest, and clearing the app's storage or uninstalling the app removes them. Sharing or saving the recall list "Share list" hands the cards shown on screen to the app you choose from Android's share sheet, as plain text; "Save as PDF" opens Android's own save screen and writes a PDF of the same cards where you choose. Both hold the vehicle you picked, NHTSA's cards, your "done" marks and the date of the check — never a VIN. The app sends nothing itself and keeps no copy of either. Service reminders The Service tab keeps service reminders you set yourself — an oil change, a tire rotation, an engine or cabin air filter, a brake check, the state inspection or a service you name — by date, by mileage or both, and the odometer readings you type for them. The app does not know any manufacturer's service schedule: every interval is the one you enter. For each reminder it stores the vehicle name you chose (a watched model year, make and model, or a name you type), the kind of service, the due date and due mileage, how often it repeats, when you last marked it done and when it last notified you; for each reading, the vehicle name, the day and the miles. All of it stays in the app's private, encrypted storage on this phone. It is not sent to the developer or anywhere else, it makes no network request, and it is not copied to Android's cloud backup or to another device, so a new phone starts with an empty list. A VIN is refused as a vehicle name, so no VIN is stored here either. Reminder notifications are worked out on the phone: once when a service is coming up (14 days or 500 miles before), once when it is due, and then once a week while it stays overdue, only between 8 a.m. and 9 p.m. local time. The lock-screen version of the notification names no vehicle and no service. Mileage between your readings is projected from your own readings and labelled as estimated; with too few readings the app says the mileage is not up to date instead of guessing. Marking a one-time reminder done switches it off and keeps it listed until you delete it; deleting a reminder removes it, and clearing the app's storage or uninstalling the app removes all reminders and readings. Damage map The Service tab also has a damage map: you tap a panel on a drawing of a car seen from above — or pick it from a list — and note a dent, scratch, chip, crack, rust, collision damage or something else, with an optional note of up to 80 characters. For each mark the app stores the vehicle name you chose, the panel, the kind of damage, the spot on the drawing, your note and the day, together with the service reminders in the same private, encrypted storage on this phone. It is not sent anywhere and makes no network request; "Share" hands the list of one vehicle's marks to the app you choose from Android's share sheet, and "Remove" deletes a mark. Notification categories Under Settings, "Notify me about" lets you switch off each kind of notice: a recall escalated to "do not drive" or "park outside" (for every vehicle you watch), a service coming up, a service due, and the weekly repeat of an overdue one. A new recall campaign for a vehicle you watch is always told while that watch is on. The choices are stored on this phone and change nothing that is sent.