Skip to content

AI & TechnologyFacebook Graph API Version Expiry Dates 2027

Simon Dziak
Simon Dziak
Founder & developer, App369
LinkedIn
October 19, 20268 min

Key takeaways

  • Meta's Graph API changelog lists three versions with an Available Until date between October 19, 2026 and the end of 2027: v21.0 on January 21, 2027, v22.0 on May 20, 2027 and v23.0 on October 8, 2027. The newest version is v26.0, introduced July 29, 2026, with Available Until shown as TBD.
  • The Marketing API runs on its own, shorter schedule, and two Meta pages disagree on it. The Graph API changelog shows v24.0 until October 6, 2026 and v25.0 as TBD. The Marketing API changelog shows v24.0 until November 10, 2026 and v25.0 until February 23, 2027. I could not reconcile them.
  • Meta's versioning guide says that once a Graph API version is no longer usable, calls made to it default to the next oldest, usable version. For the Marketing API it says calls to an unavailable version may fail or be upgraded, and calls to endpoints the next version changes fail.
  • Each Facebook SDK for iOS or Android release is tied to the Graph API version available on its release date, and Meta says you can override it per request. The iOS changelog says the default became v26.0 in release 18.1.1. The Android changelog I read states no default for its current release.
  • An app that never names a Graph API version uses the version set in the App Dashboard under Settings > Advanced. Meta says Marketing API calls with no version are invalid and fail.

Pricing an app? Try the free app cost calculator or get a range for your project in the instant quote.

Meta's Graph API changelog lists three versions with an Available Until date between October 19, 2026 and the end of 2027: v21.0 on January 21, 2027, v22.0 on May 20, 2027 and v23.0 on October 8, 2027. The newest version is v26.0, introduced July 29, 2026, with no end date yet. Meta's versioning guide says calls to a Graph API version that is no longer usable default to the next oldest, usable version, so the practical risk is a silent change in behavior, not a clean error. The Marketing API has a separate, shorter schedule, and two Meta pages disagree on it.

I checked Meta's pages on October 19, 2026. Meta can change a date, so open the linked page before you plan around it.

Disclosure: App369 is my studio. I build and fix Flutter and Firebase apps, and the last section mentions what I sell. Meta doesn't pay me for anything on this page, and I have no connection to Meta.

The dated table

This is the Graph API table from Meta's changelog, with the dates as written. I read the raw page text, so the dates are exact.

VersionReleased (Date Introduced)Available Until
v26.0 (latest)July 29, 2026TBD
v25.0February 18, 2026July 29, 2028
v24.0October 8, 2025February 18, 2028
v23.0May 29, 2025October 8, 2027
v22.0January 21, 2025May 20, 2027
v21.0October 2, 2024January 21, 2027
v20.0May 21, 2024September 24, 2026

Bold rows are the versions whose Available Until date falls between October 19, 2026 and the end of 2027. v20.0 is in the table for context: its date, September 24, 2026, had already passed when I checked. v24.0 and v25.0 run into 2028. I use the table dates as written.

The Marketing API has its own dates

Meta's Graph API versioning guide says the Marketing API has its own versioning scheme, with numbers and schedules different from the Graph API's. The Marketing API versioning page describes a grace period of at least 90 days instead of the Graph API's two years. The two Meta pages I read list different Available Until dates for the same versions.

VersionReleasedAvailable Until, Graph API changelogAvailable Until, Marketing API changelog
v26.0July 29, 2026TBDTBD
v25.0February 18, 2026TBDFebruary 23, 2027
v24.0October 8, 2025October 6, 2026November 10, 2026

The Graph API changelog also says "Marketing API version auto-upgrade will be released on July 29, 2026." I found no page that explains why the two tables differ. If you run ads through the API, treat the Marketing API changelog as the page to watch, since it is the one dedicated to that API, and recheck it before each release. Under either table, v24.0 is the version closest to its end date. By the Graph API page's date it had already ended when I checked, and by the Marketing API page's date it ends on November 10, 2026.

What happens when a version expires

Here is what Meta's pages say, and nothing beyond it.

Graph API. The versioning guide says each version is guaranteed to operate for at least two years, and that a version is no longer usable two years after the next version is released. It then says: "For APIs, once a version is no longer usable, any calls made to it will be defaulted to the next oldest, usable version." Meta also reserves the right to make changes in any API in a short period for security or privacy reasons.

Marketing API. The Marketing API versioning page says that when a new version releases, the previous one stays supported for at least 90 days. After that, "the deprecated version stops working", and calls to that version number "may fail or be upgraded to the next available version." Since May 2024, Meta upgrades a call only when the endpoint is not affected between versions. Its worked example says that after v17.0 was deprecated on May 14, 2024, a POST to an ad set on v17.0 failed because that endpoint changed in v18.0, while a GET on ad account insights was upgraded to v18.0. It also says Marketing API versions are released approximately every four months.

SDKs. Meta says an SDK version always remains available because it is a downloadable package, but past its end-of-life date it "may rely upon APIs or methods which no longer work", so you should assume an end-of-life SDK is no longer functional.

Which versions your app can call. The versioning guide says your app can call an older version only if it is still available and your app has already made calls to that version. An app that made no calls until v2.2, in Meta's example, could not use v2.0 or v2.1. The Marketing API page has the same rule.

My advice: do not read "defaulted to the next version" as "safe". A newer version can rename a field or drop an endpoint, and an old call will then hit that change without any code release on your side.

How to find which version your app calls

There are four places the version can come from.

  1. The request path. Meta says to prepend the version to the path, for example https://graph.facebook.com/v26.0/me. Search your code, your backend and any tool that talks to graph.facebook.com for /v followed by a number. This is also how the Facebook Login dialog is versioned on the web (https://www.facebook.com/v26.0/dialog/oauth).
  2. No version at all. Meta calls this an unversioned call, and says it "uses the version set in the app dashboard Upgrade API Version card under Settings > Advanced." Meta recommends always specifying the version. For the Marketing API, an unversioned call is invalid and fails. For the JavaScript SDK, Meta says you cannot make unversioned calls.
  3. The Facebook SDK for Android or iOS. Meta says each SDK release is tied to the Graph API version available on its release date, so upgrading the SDK also upgrades the API version. You can override it for one request with GraphRequest.setVersion() on Android, or [FBSDKGraphRequest initWithGraphPath] and [FBSDKGraphRequestConnection overrideVersionPartWith] on iOS. Meta says the version is listed with each SDK release. In the changelogs I read, the iOS one says "The default Graph API version is now v26.0" under release 18.1.1, dated August 27, 2026. The Android changelog says nothing about a default version for its current 19.0.0 release, and I could not find the Android default on a page I fetched.
  4. The App Dashboard. Meta's upgrade guide describes an API Upgrade Tool. You choose your app, a version to upgrade from and a version to upgrade to, and it lists the changes that affect your calls, with the number of calls in the last 7 days. Meta says the dates in the tool are when the changes are enforced for all apps, and that the data is sampled, so volumes may look off. It also says no data appears if the app made too few calls on the source version. The same page describes upgrading in Settings > Advanced, either for developers and admins only (a small test) or for all calls. Meta notes that upgrading early keeps the option of going back.

Flutter and React Native apps

Meta's pages I fetched cover the native SDKs and the JavaScript SDK. They say nothing about Flutter or React Native plugins, and I did not read any plugin's documentation for this guide. What I can say from Meta's own wording:

  • The Facebook SDK for Android and iOS set the default Graph API version per SDK release. A plugin that bundles the native SDKs gets whatever default the bundled release carries.
  • So the question is which native SDK version your build resolves. In a Flutter app that means reading android/app/build.gradle and ios/Podfile.lock after a clean install. In a React Native app it means the same two native files.
  • If your own code, or a server you control, calls graph.facebook.com directly, the version is whatever your path says, and the SDK is not involved.

The iOS 19.0.0 release, dated September 24, 2026 in the changelog, is one to read before you update. It lists a Breaking change: the minimum supported deployment target is now iOS 15.0, up from iOS 12.0, because "Xcode 27 does not support deployment targets below iOS 15.0." Both the iOS and Android 19.0.0 notes also say that starting October 31, 2026, Screen Title and AppLink URL will be included with events logged by the SDK, and they say how to turn this off. The same release also adds sampled app information, such as screen layout, sent to Meta, which can be turned off. These are data changes, so they may belong in your privacy review.

A short plan

  1. List every place a version is chosen. Request paths, SDK overrides, server code and the App Dashboard setting.
  2. Note the earliest end date. For Graph API calls on v21.0, that is January 21, 2027. For Marketing API calls, use the Marketing API changelog.
  3. Run the API Upgrade Tool from your current version to v26.0 and read the list of changes against your own call list.
  4. Pin a version in code instead of relying on the dashboard default, so a dashboard change cannot move your app.
  5. Update the Facebook SDK in a release you can test, not at the last minute. Check the deployment target and the new data-logging note first.
  6. Test on a real device, with a clean install and a fresh login, before you submit.

For every other dated Apple, Google Play and Firebase requirement in 2026 and 2027, see App Store and Google Play deadlines for 2026 and 2027.

Need a hand?

If your Flutter app uses Facebook Login, app events or the Marketing API and you want the version problem sorted before an old version stops working, the App Fix Ticket covers it in two fixed-price steps. A $450 Diagnosis gives you the root cause with evidence and a fixed repair quote within 3 business days, credited toward the fix. If you go ahead, the $1,200 Fix takes 5 business days and comes as a pull request. Or send me a short description.

Frequently asked questions

Which Graph API versions expire in 2027?
Meta's Graph API changelog lists v21.0 as available until January 21, 2027, v22.0 until May 20, 2027 and v23.0 until October 8, 2027. v24.0 is listed until February 18, 2028 and v25.0 until July 29, 2028, both outside 2027. v26.0 is the latest, with Available Until shown as TBD.
Will my app break when its Graph API version expires?
Meta's versioning guide says that for APIs, once a version is no longer usable, any calls made to it will be defaulted to the next oldest, usable version. So a Graph API call is not described as failing outright, but it then runs against a newer version with whatever changed in between. Test against the newer version before the date instead of finding out in production.
What happens to Marketing API calls on an expired version?
Meta's Marketing API versioning page says that after the grace period the deprecated version stops working, and calls to it may fail or be upgraded to the next available version. It says the upgrade happens only for endpoints the next version does not change. Its own example says a POST to an ad set on an expired v17.0 failed, while a GET on ad account insights was upgraded to v18.0.
Does updating the Facebook SDK change which Graph API version I call?
Meta says each SDK release is tied to the Graph API version available when it shipped, so upgrading the SDK also upgrades the default API version. You can still pick an earlier available version in a request. The Facebook SDK for iOS changelog says the default Graph API version became v26.0 in release 18.1.1.
Do the Flutter and React Native Facebook plugins matter here?
They matter indirectly. I did not read any plugin documentation for this guide, so I can't say what version a particular plugin sets. A plugin that wraps the native Facebook SDKs inherits the Graph API behavior of the native SDK release it bundles, so check which native SDK version your build resolves to.

Sources

  1. Meta for Developers, Graph API Changelog
  2. Meta for Developers, Graph API Platform Versioning
  3. Meta for Developers, Upgrade to the Latest Graph API Version
  4. Meta for Developers, Marketing API versioning
  5. Meta for Developers, Marketing API Changelog
  6. GitHub, facebook-ios-sdk CHANGELOG
  7. GitHub, facebook-android-sdk CHANGELOG
Tags
#facebook graph api version expiry #graph api v21 available until #graph api v22 available until #graph api v23 available until #marketing api v24 v25 expiry #graph api v26.0 #facebook sdk android ios graph api version #facebook login flutter graph api version #react native fbsdk graph api version #graph api auto upgrade
Share:

Related Resources

Related guides