Car Recall Check & Alerts — Privacy Policy

Last updated: 29 October 2026 · Package: com.ibrahimtxy.carrecall · Developer: bulbildir

In short: the developer collects no personal data, the app does not ask you to create an account and sends nothing to any server of ours — we do not operate one. Everything you enter stays on your phone. The free tier shows Google AdMob ads (every format is listed in §5); the Google Mobile Ads SDK that serves them collects and shares with Google the IP address, app interactions, diagnostic information and device identifiers, including the advertising ID (§5). Paid members see no ads and no ad request is made at all. The developer uses no analytics and no crash reporting. Google ML Kit, which reads the VIN in a photo you take or pick, works on this phone and sends Google its own diagnostic and usage data (§4).
Important: This app is NOT affiliated with NHTSA. A recall covers a RANGE of vehicles, so treat a match as “check my VIN”, not as “my car is affected”. The recall notice says what the remedy is; the repair is arranged at a dealer, not in this app.

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:

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:

Interstitial, rewarded interstitial and app open ads are no longer used; versions of the app released before 28 October 2026 also showed these formats.

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

PermissionWhy
ACCESS_NETWORK_STATETo avoid pointless attempts while offline, and to tell mobile data from Wi-Fi.
INTERNETTo reach the public NHTSA recall list.
POST_NOTIFICATIONSTo tell you a recall was published for your vehicle. That is the whole app.
READ_BASIC_PHONE_STATESo 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_COMPLETEDSo your watches resume after the phone restarts.
VIBRATETo vibrate when a notification arrives.
WAKE_LOCKSo 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.
BILLINGSo 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_IDAds 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

bulbildir@mail.com

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.