Android API Level Chart: Every Version, API Level, and What Changed

Introduction

If you’ve ever stared at a minSdkVersion field in a build.gradle file and wondered what you’re actually targeting, this is for you. Android’s API levels are the backbone of app compatibility — each one represents a specific set of capabilities, behaviors, and restrictions that your app can rely on (or must work around).

The API level system started simple: Android 1.0 was API Level 1. Android 1.1 bumped it to 2. Cupcake made it 3. And from there, the numbers climbed with every release, sometimes skipping levels (there’s no API Level 13 gap — Honeycomb used 11, 12, and 13), sometimes adding multiple levels in a single version cycle.

This chart covers every API level from 1 to 35, what version it corresponds to, and the headline feature or change that defined it. Bookmark this. You’ll need it.


Complete API Level Chart

API LevelAndroid VersionCodenameRelease DateHeadline Feature
11.0(none)Sep 23, 2008Initial release
21.1Petit FourFeb 9, 2009Bug fixes, reviews support
31.5CupcakeApr 27, 2009On-screen keyboard, widgets, video recording
41.6DonutSep 15, 2009CDMA support, Quick Search Box, WVGA
52.0EclairOct 26, 2009Google Maps Navigation, multi-touch, HTML5
62.0.1EclairDec 3, 2009Minor bug fixes
72.1EclairJan 12, 2010Live wallpapers, Flash support
82.2FroyoMay 20, 2010Dalvik JIT, Wi-Fi hotspot, apps on SD
92.3GingerbreadDec 6, 2010NFC, SIP VoIP, concurrent GC
102.3.3GingerbreadFeb 9, 2011Dual-core support, NFC refinements
113.0HoneycombFeb 22, 2011Tablet holographic UI, fragments, Action Bar
123.1HoneycombMay 10, 2011USB host, resizable widgets
133.2HoneycombJul 15, 2011Screen size compatibility zoom
144.0Ice Cream SandwichOct 19, 2011Holo design, Roboto font, virtual buttons
154.0.3Ice Cream SandwichDec 16, 2011Social stream API, camera refinements
164.1Jelly BeanJul 9, 2012Project Butter, Google Now, expandable notifications
174.2Jelly BeanNov 13, 2012Lock screen widgets, Quick Settings, multi-user
184.3Jelly BeanJul 24, 2013BLE, OpenGL ES 3.0, SELinux enforcing
194.4KitKatOct 31, 2013Project Svelte, ART (experimental), HCE
204.4WKitKat WearJun 25, 2014Android Wear (watch-specific)
215.0LollipopNov 3, 2014Material Design, ART mandatory, JobScheduler
225.1LollipopMar 9, 2015Multi-SIM, HD voice, device protection
236.0MarshmallowOct 5, 2015Runtime permissions, Doze, fingerprint API
247.0NougatAug 22, 2016Multi-window, bundled notifications, Vulkan
257.1NougatOct 4, 2016App shortcuts, round icons, image keyboard
268.0OreoAug 21, 2017Notification channels, PiP, Treble, Autofill
278.1OreoDec 5, 2017Android Go, Neural Networks API
289PieAug 6, 2018Gesture nav, Digital Wellbeing, Adaptive Battery
2910Android 10Sep 3, 2019Full gesture nav, dark theme, Scoped Storage
3011Android 11Sep 8, 2020Conversations, Bubbles, one-time permissions
3112Android 12Oct 4, 2021Material You, Privacy Dashboard, stretch overscroll
3212LAndroid 12LMar 7, 2022Large-screen taskbar, two-column layouts
3313Android 13Aug 15, 2022Themed icons, per-app language, Photo Picker
3414Android 14Oct 4, 2023Lock screen customization, Health Connect, Ultra HDR
3515Android 15Oct 15, 2024Satellite connectivity, Private Space, app archiving

Understanding API Level Targeting

Every Android app declares three API levels in its build configuration:

  • minSdkVersion: The oldest Android version the app supports. Users on older versions can’t install it. Setting this determines which APIs you can call without runtime checks.
  • targetSdkVersion: The API level the app was tested against. This controls behavior compatibility — Android changes platform behavior for apps targeting newer levels (e.g., Scoped Storage enforcement at API 30, notification permission at API 33).
  • compileSdkVersion: The API level used to compile the app. This determines which APIs are available at build time. It should always be the latest stable API level.

The gap between minSdkVersion and targetSdkVersion is where the work lives. Supporting API 21 (Lollipop) while targeting API 34 (Android 14) means handling 13 API levels of behavioral changes, deprecated APIs, and new permission models.


Key API Level Thresholds

Some API levels represent hard breaks in Android’s platform behavior. If you’re setting minSdkVersion, these are the thresholds that matter:

API LevelWhy It Matters
21 (Lollipop)Material Design, ART runtime, JobScheduler. Most apps’ minimum. 64-bit support begins.
23 (Marshmallow)Runtime permissions. Apps targeting 23+ must request dangerous permissions at runtime.
24 (Nougat)Multi-window. Apps can be resized arbitrarily. JIT/AOT hybrid compiler.
26 (Oreo)Notification channels mandatory. Background execution limits. Autofill framework.
28 (Pie)Cleartext HTTP blocked by default. Non-SDK interface restrictions.
29 (Android 10)Scoped Storage (opt-out available). Dark theme. Gesture navigation.
30 (Android 11)Scoped Storage mandatory. One-time permissions. Foreground service types.
31 (Android 12)Material You. Stretch overscroll. SplashScreen API mandatory.
33 (Android 13)Notification permission opt-in. Photo Picker. Per-app language.
34 (Android 14)Foreground service types required. Non-linear font scaling.
35 (Android 15)Predictive back default. Private Space. Satellite API.

API Level Distribution (Real-World)

As of mid-2025, the active Android install base breaks down roughly as follows (based on Google Play distribution data and industry estimates):

API Level RangeApproximate ShareNotes
21–25 (Lollipop–Nougat)~3%Legacy devices, mostly in developing markets
26–28 (Oreo–Pie)~8%Aging but still active
29–30 (Android 10–11)~22%Large mid-range install base
31–33 (Android 12–13)~40%Current mainstream
34–35 (Android 14–15)~27%Newest devices, growing fast

Setting minSdkVersion to 26 (Oreo) covers ~97% of active devices. Setting it to 21 (Lollipop) covers ~99.7%. The trade-off is development complexity versus reach.


How API Levels Are Assigned

Google assigns API levels sequentially, but not every Android version gets a unique level. Point releases sometimes share a level (2.0 and 2.0.1 both used API 5 initially, though 2.0.1 later got API 6). Major releases always get a new level. The numbering is strictly sequential — there are no gaps and no retroactive changes.

Android Wear (API 20) and Android TV share the same API level numbering as phones but have different feature sets and compatibility requirements. API 20 was exclusive to Android Wear 1.0 (KitKat-based); subsequent Wear versions used the same API levels as phones.


Final Thoughts

The API level system is Android’s version of backward compatibility. Every level adds capabilities and restrictions. Every level you support adds testing burden. The art of Android development is choosing the right minSdkVersion — high enough to use modern APIs without excessive compatibility code, low enough to reach your target audience.

For most apps in 2025, API 26 (Oreo) is the sweet spot: notification channels, autofill, background limits, and 97%+ reach. If you need runtime permissions without compatibility shims, API 23 (Marshmallow) is the floor. If you’re building something cutting-edge that can assume modern hardware, API 31 (Android 12) gives you Material You and the latest privacy features.

Whatever you choose, this chart should help you understand what you’re signing up for.


References

  • Android API Levels documentation (developer.android.com)
  • Android Distribution Dashboard (Google Play Console)
  • AndroidX / Jetpack compatibility documentation
  • AOSP version tags and API level assignments

Leave a Reply