Skip to content

API Deprecation

Also called: Graph API version expiry · API sunset · End of life (EOL) · Version deprecation

How Meta retires Graph API versions and whole products: each version works for at least two years, then calls to it fall back to the oldest usable one.

Reviewed

What is API deprecation?

API deprecation is the process by which a platform announces that an API version, endpoint, field or entire product will stop being supported, and then retires it on a stated date. For WhatsApp integrations it happens at two levels: Graph API versions, which Meta retires on a fixed schedule, and products such as the On-Premises API, which Meta sunsets with a migration path to a successor.

Graph API versions follow a predictable rule. Each version is guaranteed to operate for at least two years and expires two years after the next version ships. When a version expires, calls that still name it in the path — /v21.0/ — are not rejected; Meta serves them with the oldest version that is still usable. That sounds safe, and it is the main danger: fields, defaults and error behaviour can change under an integration nobody has touched, with no error to warn anyone. Calls with no version in the path use the default set in the App Dashboard, which ages in the same way.

Product sunsets are bigger. The On-Premises API, the self-hosted WhatsApp client, stopped accepting new registrations on 1 July 2024 and was sunset on 23 October 2025, so every business now sends through the Cloud API. Smaller features are retired the same way: Embedded Signup, for example, has moved through numbered flow versions, and Meta announces a date by which partners must leave an older one. API deprecation is the end-of-life schedule; Graph API versioning, a separate topic, is how you choose and pin a version in the first place.

Key takeaways

  • API deprecation is how Meta retires an API version or product, with a published date after which old calls change or stop.
  • Each Graph API version is guaranteed for at least two years and expires two years after its successor ships.
  • Calls to an expired version are served by the oldest version still usable, so behaviour can change without any error.
  • Graph API v21.0 runs until 21 January 2027 and v24.0 until 18 February 2028; v26.0, released 29 July 2026, is the current version.
  • Whole products retire too: the On-Premises API was sunset on 23 October 2025, leaving the Cloud API as the only option.

See InfiQ pricing

Interactive stop

Drag the clock: how long does v21.0 have left?

13 / 13

Time since it opened

876d

ClosedCalls to /v21.0/ fall back to the oldest usable version
v22.0 ships: v21.0's clock starts
v24.0 ships
v25.0 ships
v26.0 ships (current)
Today, 19 Oct 2026
Planned cut-over to v26.0
0d182.5d365d547.5d730dWindow closes
v21.0's two-year clock started when v22.0 shipped and runs out on 21 January 2027. Drag past the releases since and past today to see when calls stop being served as v21.0.

876d in: window closed. Calls to /v21.0/ fall back to the oldest usable version.

Why does API deprecation matter?

A deprecation date is a deadline on someone else's calendar that can still break your integration. Teams that track it upgrade on a quiet weekday with tests; teams that do not discover it when a fallback version changes a response field in the middle of a festive sale, or when a sunset product simply stops sending. For the business the risk is lost OTPs and order updates; for developers it is an unplanned migration under pressure.

How does API deprecation work?

  1. Know what you call

    Inventory every Graph API version string in code, SDK configuration and no-code tools, plus the App Dashboard default that unversioned calls use.

  2. Read the expiry dates

    Meta's Graph API changelog lists each version's release and available-until date. As of October 2026, v21.0 expires on 21 January 2027 and v24.0 on 18 February 2028.

  3. Read what changed

    Each version's changelog entry lists breaking changes. Note the ones that touch the endpoints you use: messages, templates, phone numbers and webhooks.

  4. Upgrade in staging first

    Change the version string in one place, run your tests and a few real sends against a test number, and compare responses and webhooks with the old version.

  5. Cut over before the date

    Deploy the new version well ahead of expiry, keep the old one as a short-lived rollback, and put the next upgrade in the team calendar.

  6. Watch for notices

    Follow the changelog and App Dashboard alerts for product sunsets, and for the rare out-of-cycle changes Meta reserves for urgent security or privacy reasons.

API deprecation: key facts and limits

Version guarantee
At least 2 years per Graph API version
Expiry rule
2 years after the next version ships
After expiry
Calls fall back to the oldest usable version
Current version
v26.0 (released 29 July 2026)
v21.0 available until
21 January 2027
v24.0 available until
18 February 2028
On-Premises API
Sunset 23 October 2025

Example: A Ludhiana lender still on v21.0

A Ludhiana NBFC's repayment reminders were built in 2024 and pinned to /v21.0/. In October 2026 its developer checks the changelog: v21.0 expires on 21 January 2027, after which those calls would quietly be served by a different version with different behaviour. She moves the version string to v26.0 in the shared HTTP client, runs the template-send and webhook tests against a test number, fixes the one difference a test catches in a response her code parsed, and ships the upgrade in November — two months before the cut-off rather than the morning after it.

— A Ludhiana lender still on v21.0

API deprecation in code

# List every Graph API version string the codebase calls, with counts
grep -rhoE "graph\.facebook\.com/v[0-9]+\.[0-9]+" src/ config/ | sort | uniq -c

Run it in CI and fail the build when more than one version appears.

Common mistakes with API deprecation

  • Assuming an expired version returns an error

    It does not: the call is served by another version. Record the version you send and test upgrades instead of waiting for failures to tell you.

  • Version strings scattered across the code

    A hard-coded old version in one cron job is the one that gets missed. Route every call through one client with a single version constant.

  • Forgetting unversioned calls and tools

    Calls without a version use the App Dashboard default, and SDKs, no-code connectors and Postman collections carry their own. Include them all in the inventory.

  • Upgrading on the deadline

    Leaving the move to the last week leaves no time to fix a breaking change. Stay within one version of the latest and treat the expiry date as a backstop, not a target.

  • Ignoring product-level sunsets

    Upgrading the version does not rescue a retired product. Track notices such as the On-Premises API sunset or Embedded Signup flow versions and plan those migrations in quarters, not weeks.

API Deprecation FAQs

What happens when a Graph API version expires?+
Calls to it are served by the oldest version still usable instead of failing. That fallback can change fields and behaviour without warning, so upgrade before the expiry date rather than relying on it.
How long is a Graph API version supported?+
At least two years. A version expires two years after its successor is released, so its exact end date depends on when the next version shipped; Meta publishes every date in the Graph API changelog.
Is the WhatsApp On-Premises API still available?+
No. New On-Premises registrations ended on 1 July 2024 and the API was sunset on 23 October 2025, so it no longer sends messages. Every business now uses the Cloud API.
What is the difference between API deprecation and API versioning?+
Versioning is choosing and pinning the Graph API version your calls use; deprecation is the schedule on which old versions and products are retired. You manage versioning continuously and plan around deprecation dates.

Best practices for API deprecation

  • Move to each new Graph API version within a few months of release, so you are never more than one version behind.
  • Add the Graph version to logs and dashboards so you can see what production really calls.
  • Keep a test phone number and a small end-to-end suite — send a template, receive a webhook — to run on every version change.
  • Put the next expiry date in the team calendar on the day you upgrade.

Talk to InfiQ

From definition to your first message

InfiQ is an official Meta Business Partner. Start a 7-day free trial — no card needed — and see this running on your own number.