Is Who Unfollowed Me? safe?
Who Unfollowed Me is medium risk. Entering an email in the license form makes Who Unfollowed Me? send it to www.invertexto.com as part of a license-check URL. The store listing describes comparing follower lists; it doesn't mention this email transmission.
Who publishes itinvertexto.com - 6 other listings from the same operator, 1 of them carrying a finding
invertexto.com - 6 other listings from the same operator, 1 of them carrying a finding
What this publisher told the store about itself, and the other listings that told it the same thing.
Same store account
6 other listings published from this account, 1.1M+ users between them. 1 of them carries a finding.
AI-generated. Findings may contain errors. Those marked Verified have been manually reviewed.
Publishers can request a review.
Findings
License Check Sends Your Email to Invertexto
Entering an email in the license form makes Who Unfollowed Me? send it to www.invertexto.com as part of a license-check URL.
The store listing describes comparing follower lists; it doesn't mention this email transmission.
You submit an email address in the extension's license form.
The form appears on the extension's license page and is wired to the Enter button.
The extension sends that email address to Invertexto's license-check endpoint.
Observed dynamic-analysis evidence records the GET request path and source code shows the email value is appended as the `email` query parameter.
| Field | Value | Why it matters | |
|---|---|---|---|
Your license email | user@example.com (illustrative) | This can identify the person or account being checked for license status. | |
Product being checked | unfollowed | This tells the receiving service which extension product the email is being checked against. | |
Stored license result | email=user@example.com, expiration=2026-12-31 (illustrative) | If the server reports an active license, the extension keeps the email and expiration date in browser storage. |
The license button reads the form field and builds the request URL
let enterButton = document.getElementById("enter"),
licenseDiv = document.getElementById("license-info"),
emailInput = document.getElementById("email");
emailInput.setAttribute("placeholder", chrome.i18n.getMessage("licensePlaceholder")), document.querySelectorAll("[data-locale]").forEach(a => {
a.innerHTML = chrome.i18n.getMessage(a.dataset.locale)
});
function activeLicenseHtml(a) {
return chrome.i18n.getMessage("licenseActive") + ": " + a.email + "<br>" + chrome.i18n.getMessage("licenseExpiration") + ": " + a.expiration
}
chrome.storage.local.get(["license"]).then(a => {
a.license !== void 0 && (licenseDiv.innerHTML = activeLicenseHtml(a.license))
}), enterButton.addEventListener("click", function() {
let a = emailInput.value;
return a ? void fetch("https://www.invertexto.com/licenses/check.php?product=unfollowed&email=" + a).then(a => a.json()).then(b => {
if ("ok" != b.status) return alert(b.status);
const c = {
email: a,
expiration: b.expiration
};
chrome.storage.local.set({
license: c
}, () => {
licenseDiv.innerHTML = activeLicenseHtml(c)
})
}).catch(() => {
alert(chrome.i18n.getMessage("unexpectedError"))
}) : alert(chrome.i18n.getMessage("licenseEnterAlert"))
});- www.invertexto.com
Receives the license-check GET request with product=unfollowed and the email query parameter; the same domain is listed as the extension author site.