We monitor 175 App Store storefronts to answer one question —
Is Mouth & Teeth: Dental Health Care Assistant & Oral Anatomy and Physiology FREE censored by Apple?
Mouth & Teeth: Dental Health Care Assistant & Oral Anatomy and Physiology FREE is gone from every App Store storefront we test. It was last seen available on Jan 30, 2022.
181 tests on record·last checked 24 days ago
Why it is unavailable
Five things can put an app out of one App Store. Each is weighed below against what can be seen from outside — open a card for the reasoning.
A government or a court demanded it
and Apple complied. Apple publishes a count of these per country each year and never says which apps they were. Apple's 2025 App Store Transparency Report
- 47% of Medical apps are unavailable in Latvia — 80 of 169 — against 18% of everything we test there.
- Apple reports 1,213 government-ordered removals in Russia for 2025, naming none of them.
Apple applied a rule, unasked
either its own review guidelines, or its own reading of a local law, with nobody having demanded anything. This is the largest category in Apple's own removal figures by a wide margin, and it covers distribution permits as well as content — Apple kept a free Bible app out of mainland China in 2021 for want of one. Apple's 2025 App Store Transparency Report
- 47% of Medical apps are unavailable in Latvia — 80 of 169 — against 18% of everything we test there.
The developer withheld it
freely, or under legal advice of their own, or because Apple's guidelines require that kind of app to be limited to certain countries. Switching a country off is easy for a developer to do in Apple's own tools: it needs no new version of the app, and it leaves no public trace other than the app being unavailable.
- 47% of Medical apps are unavailable in Latvia — 80 of 169 — against 18% of everything we test there.
Something broke
a rejected update, a lapsed certificate, a payment or licensing problem, a mistake nobody has got round to noticing.
- 47% of Medical apps are unavailable in Latvia — 80 of 169 — against 18% of everything we test there.
- Gone for 2 years.
A local rule about paying for it
gambling licences, financial rules, tax — the kind of law that governs a transaction. Apple can obey every one of them by refusing the payment, which is why this is the only restriction we would accept and the only one that cannot touch a free app.
- It is free, so Apple sells nothing here.
How this is weighed, and what it cannot tell you
Weighed from the evidence under each card, not from a model. There is no published figure for how Apple's removals divide up, so these are ordered words rather than percentages. For scale on the same-day counts: across the whole record an app leaves a storefront with fewer than two others, so a dozen at once is not a dozen coincidences.
None of this is certain, and a citation does not make it so: Apple naming a Chinese agency tells you what Apple said, not everything that happened. What can be said is that the readings alone cannot separate these five — a developer switching off a country and a government ordering it removed arrive at Apple's catalogue looking identical — and that nobody has ever measured how they divide across the App Store. The one careful study of the question was done on Google's store, using an error message Apple does not emit.
Apple publishes no record of which apps are unavailable in which of its App Stores. For the removals it makes on a government's demand it publishes the agency and the law behind every one — 2,045 of the 166,899 apps it removed during 2025 — and never which app. Where a reason reaches the public at all, it is usually because a developer chose to say so. Apple's App Store Transparency Report
Know of a statement, notice or order we have missed? Tell us →
Mouth & Teeth: Dental Health Care Assistant & Oral Anatomy and Physiology FREE
Developer: Michael Quach · Category: Medical · Released: Oct 12, 2009 · Rating: 1.2★
Other Medical apps missing from mainland China
Life of this app
- Oct 12, 2009Released on the App Store
- Jan 30, 2022First tested by AppleCensorship
- Jan 30, 2022Last seen available anywhere
- Nov 26, 2024Gone from 43 storefronts
- Aug 25, 2026Most recent test
Testing history
One column per month, every month from the first reading to the last. Height follows how many readings we took that month; red is the share of them that found the app unavailable. An empty month is one nobody tested.
Found availableFound unavailable
Availability by storefront
Every storefront we test, current status first. Data is a measurement, not a promise: each row carries its own date.
| Test now | |||||
|---|---|---|---|---|---|
| AlbaniaAL | Unavailable | May 24, 2024 | 2 years ago | ||
| AnguillaAI | Unavailable | Nov 26, 2024 | 2 years ago | ||
| Bosnia & HerzegovinaBA | Unavailable | Dec 14, 2024 | 10 months ago | ||
| CambodiaKH | Unavailable | Apr 4, 2026 | 5 months ago | ||
| Cayman IslandsKY | Unavailable | May 5, 2026 | 4 months ago | ||
| China (Mainland)CN | Unavailable | Feb 11, 2024 | 4 months ago | ||
| Costa RicaCR | Unavailable | May 10, 2025 | 16 months ago | ||
| FinlandFI | Unavailable | Jul 18, 2024 | 2 years ago | ||
| GambiaGM | Unavailable | Jun 22, 2025 | 15 months ago | ||
| GreeceGR | Unavailable | Aug 25, 2026 | 24 days ago | ||
| Hong KongHK | Unavailable | Feb 11, 2024 | 31 days ago | ||
| IrelandIE | Unavailable | Jan 26, 2026 | 8 months ago | ||
| JapanJP | Unavailable | Feb 11, 2024 | 24 days ago | ||
| KenyaKE | Unavailable | Jan 25, 2026 | 8 months ago | ||
| LatviaLV | Unavailable | Feb 18, 2025 | 2 years ago | ||
| LebanonLB | Unavailable | Sep 19, 2025 | 12 months ago | ||
| LuxembourgLU | Unavailable | Dec 8, 2024 | 2 years ago | ||
| MacaoMO | Unavailable | Feb 11, 2024 | 8 months ago | ||
| MalawiMW | Unavailable | Jun 5, 2026 | 3 months ago | ||
| MauritaniaMR | Unavailable | Mar 30, 2026 | 6 months ago | ||
| NauruNR | Unavailable | Jul 18, 2024 | 24 days ago | ||
| NepalNP | Unavailable | Feb 11, 2024 | 2 years ago | ||
| North MacedoniaMK | Unavailable | Dec 28, 2025 | 9 months ago | ||
| NorwayNO | Unavailable | Mar 24, 2024 | 2 years ago | ||
| PakistanPK | Unavailable | Feb 12, 2025 | 2 years ago | ||
| PhilippinesPH | Unavailable | Jul 30, 2025 | 14 months ago | ||
| RomaniaRO | Unavailable | Aug 18, 2026 | 31 days ago | ||
| RussiaRU | Unavailable | Feb 11, 2024 | 2 years ago | ||
| SerbiaRS | Unavailable | Feb 11, 2024 | 3 years ago | ||
| Solomon IslandsSB | Unavailable | Feb 11, 2024 | 3 years ago | ||
| South AfricaZA | Unavailable | Oct 24, 2024 | 2 years ago | ||
| South KoreaKR | Unavailable | Feb 11, 2024 | 7 months ago | ||
| St. LuciaLC | Unavailable | Oct 1, 2024 | 2 years ago | ||
| SurinameSR | Unavailable | Feb 7, 2026 | 7 months ago | ||
| TaiwanTW | Unavailable | Feb 11, 2024 | 2 years ago | ||
| Trinidad & TobagoTT | Unavailable | May 21, 2025 | 16 months ago | ||
| Turks & Caicos IslandsTC | Unavailable | Feb 3, 2026 | 7 months ago | ||
| UkraineUA | Unavailable | Feb 11, 2024 | 2 years ago | ||
| United Arab EmiratesAE | Unavailable | Feb 11, 2024 | 24 days ago | ||
| United StatesUS | Unavailable | Feb 11, 2024 | 24 days ago | ||
| UzbekistanUZ | Unavailable | Jul 30, 2024 | 2 years ago | ||
| VenezuelaVE | Unavailable | Mar 18, 2024 | 3 years ago | ||
| ZambiaZM | Unavailable | Aug 7, 2026 | 42 days ago | ||
| AfghanistanAF | Not tested | — | — | 0 | |
| AlgeriaDZ | Not tested | — | — | 0 | |
| AngolaAO | Not tested | — | — | 0 | |
| Antigua & BarbudaAG | Not tested | — | — | 0 | |
| ArgentinaAR | Not tested | — | — | 0 | |
| ArmeniaAM | Not tested | — | — | 0 | |
| AustraliaAU | Not tested | — | — | 0 | |
| AustriaAT | Not tested | — | — | 0 | |
| AzerbaijanAZ | Not tested | — | — | 0 | |
| BahamasBS | Not tested | — | — | 0 | |
| BahrainBH | Not tested | — | — | 0 | |
| BarbadosBB | Not tested | — | — | 0 | |
| BelarusBY | Not tested | — | — | 0 | |
| BelgiumBE | Not tested | — | — | 0 | |
| BelizeBZ | Not tested | — | — | 0 | |
| BeninBJ | Not tested | — | — | 0 | |
| BermudaBM | Not tested | — | — | 0 | |
| BhutanBT | Not tested | — | — | 0 | |
| BoliviaBO | Not tested | — | — | 0 | |
| BotswanaBW | Not tested | — | — | 0 | |
| BrazilBR | Not tested | — | — | 0 | |
| British Virgin IslandsVG | Not tested | — | — | 0 | |
| BruneiBN | Not tested | — | — | 0 | |
| BulgariaBG | Not tested | — | — | 0 | |
| Burkina FasoBF | Not tested | — | — | 0 | |
| CameroonCM | Not tested | — | — | 0 | |
| CanadaCA | Not tested | — | — | 0 | |
| Cape VerdeCV | Not tested | — | — | 0 | |
| ChadTD | Not tested | — | — | 0 | |
| ChileCL | Not tested | — | — | 0 | |
| ColombiaCO | Not tested | — | — | 0 | |
| Côte d’IvoireCI | Not tested | — | — | 0 | |
| CroatiaHR | Not tested | — | — | 0 | |
| CyprusCY | Not tested | — | — | 0 | |
| CzechiaCZ | Not tested | — | — | 0 | |
| DenmarkDK | Not tested | — | — | 0 | |
| DominicaDM | Not tested | — | — | 0 | |
| Dominican RepublicDO | Not tested | — | — | 0 | |
| DR CongoCD | Not tested | — | — | 0 | |
| EcuadorEC | Not tested | — | — | 0 | |
| EgyptEG | Not tested | — | — | 0 | |
| El SalvadorSV | Not tested | — | — | 0 | |
| EstoniaEE | Not tested | — | — | 0 | |
| EswatiniSZ | Not tested | — | — | 0 | |
| FijiFJ | Not tested | — | — | 0 | |
| FranceFR | Not tested | — | — | 0 | |
| GabonGA | Not tested | — | — | 0 | |
| GeorgiaGE | Not tested | — | — | 0 | |
| GermanyDE | Not tested | — | — | 0 | |
| GhanaGH | Not tested | — | — | 0 | |
| GrenadaGD | Not tested | — | — | 0 | |
| GuatemalaGT | Not tested | — | — | 0 | |
| Guinea-BissauGW | Not tested | — | — | 0 | |
| GuyanaGY | Not tested | — | — | 0 | |
| HondurasHN | Not tested | — | — | 0 | |
| HungaryHU | Not tested | — | — | 0 | |
| IcelandIS | Not tested | — | — | 0 | |
| IndiaIN | Not tested | — | — | 0 | |
| IndonesiaID | Not tested | — | — | 0 | |
| IraqIQ | Not tested | — | — | 0 | |
| IsraelIL | Not tested | — | — | 0 | |
| ItalyIT | Not tested | — | — | 0 | |
| JamaicaJM | Not tested | — | — | 0 | |
| JordanJO | Not tested | — | — | 0 | |
| KazakhstanKZ | Not tested | — | — | 0 | |
| KosovoXK | Not tested | — | — | 0 | |
| KuwaitKW | Not tested | — | — | 0 | |
| KyrgyzstanKG | Not tested | — | — | 0 | |
| LaosLA | Not tested | — | — | 0 | |
| LiberiaLR | Not tested | — | — | 0 | |
| LibyaLY | Not tested | — | — | 0 | |
| LithuaniaLT | Not tested | — | — | 0 | |
| MadagascarMG | Not tested | — | — | 0 | |
| MalaysiaMY | Not tested | — | — | 0 | |
| MaldivesMV | Not tested | — | — | 0 | |
| MaliML | Not tested | — | — | 0 | |
| MaltaMT | Not tested | — | — | 0 | |
| MauritiusMU | Not tested | — | — | 0 | |
| MexicoMX | Not tested | — | — | 0 | |
| MicronesiaFM | Not tested | — | — | 0 | |
| MoldovaMD | Not tested | — | — | 0 | |
| MongoliaMN | Not tested | — | — | 0 | |
| MontenegroME | Not tested | — | — | 0 | |
| MontserratMS | Not tested | — | — | 0 | |
| MoroccoMA | Not tested | — | — | 0 | |
| MozambiqueMZ | Not tested | — | — | 0 | |
| Myanmar (Burma)MM | Not tested | — | — | 0 | |
| NamibiaNA | Not tested | — | — | 0 | |
| NetherlandsNL | Not tested | — | — | 0 | |
| New ZealandNZ | Not tested | — | — | 0 | |
| NicaraguaNI | Not tested | — | — | 0 | |
| NigerNE | Not tested | — | — | 0 | |
| NigeriaNG | Not tested | — | — | 0 | |
| OmanOM | Not tested | — | — | 0 | |
| PalauPW | Not tested | — | — | 0 | |
| PanamaPA | Not tested | — | — | 0 | |
| Papua New GuineaPG | Not tested | — | — | 0 | |
| ParaguayPY | Not tested | — | — | 0 | |
| PeruPE | Not tested | — | — | 0 | |
| PolandPL | Not tested | — | — | 0 | |
| PortugalPT | Not tested | — | — | 0 | |
| QatarQA | Not tested | — | — | 0 | |
| Republic of the CongoCG | Not tested | — | — | 0 | |
| RwandaRW | Not tested | — | — | 0 | |
| São Tomé & PríncipeST | Not tested | — | — | 0 | |
| Saudi ArabiaSA | Not tested | — | — | 0 | |
| SenegalSN | Not tested | — | — | 0 | |
| SeychellesSC | Not tested | — | — | 0 | |
| Sierra LeoneSL | Not tested | — | — | 0 | |
| SingaporeSG | Not tested | — | — | 0 | |
| SlovakiaSK | Not tested | — | — | 0 | |
| SloveniaSI | Not tested | — | — | 0 | |
| SpainES | Not tested | — | — | 0 | |
| Sri LankaLK | Not tested | — | — | 0 | |
| St. Kitts & NevisKN | Not tested | — | — | 0 | |
| St. Vincent & GrenadinesVC | Not tested | — | — | 0 | |
| SwedenSE | Not tested | — | — | 0 | |
| SwitzerlandCH | Not tested | — | — | 0 | |
| TajikistanTJ | Not tested | — | — | 0 | |
| TanzaniaTZ | Not tested | — | — | 0 | |
| ThailandTH | Not tested | — | — | 0 | |
| TongaTO | Not tested | — | — | 0 | |
| TunisiaTN | Not tested | — | — | 0 | |
| TürkiyeTR | Not tested | — | — | 0 | |
| TurkmenistanTM | Not tested | — | — | 0 | |
| UgandaUG | Not tested | — | — | 0 | |
| United KingdomGB | Not tested | — | — | 0 | |
| UruguayUY | Not tested | — | — | 0 | |
| VanuatuVU | Not tested | — | — | 0 | |
| VietnamVN | Not tested | — | — | 0 | |
| YemenYE | Not tested | — | — | 0 | |
| ZimbabweZW | Not tested | — | — | 0 |
Testing asks Apple whether it will sell this app in that storefront, right now, by the same method the crawler has used since 2019. Your browser asks Apple directly, so the answer describes what Apple serves your connection — and if your browser cannot reach Apple at all, we ask on your behalf and say so. The result is a link: open it to see Apple's own answer and check ours. Readings are added to the record above; roughly a quarter of the readings taken each day come from people testing.
How we test
Availability is checked against Apple's own catalog servers for every storefront, the same way the App Store app asks. "Unavailable" means Apple's servers say the app cannot be offered in that country — it does not say who asked for the removal. Removals initiated by the developer and removals demanded by governments look the same from outside; the history and context on this page are how we tell them apart.