The Legacy REST API will move to a dedicated extension in WooCommerce 9.0

Update 2023-12-01: The dedicated Legacy REST API extension is now available. See the announcement post.

Update 2023-10-27: This post has been extended to include information about legacy webhooks.

The details

WooCommerce 2.6, which was released back in 2016, included a new REST API based on the WordPress JSON API. That made the old (now referred to as “Legacy”) REST API obsolete, and we have documented it as being deprecated since then. In fact, it needs to be explicitly enabled from the admin area for it to be usable.

We have decided that the Legacy REST API will be removed from WooCommerce as of version WooCommerce 9.0, scheduled to be released in June 2024. However, we will offer a separate WooCommerce extension that will include all the removed code for sites that still need it.

For all practical purposes, having the new extension installed and activated in WooCommerce 9.0 and newer versions will be functionally equivalent to having the Legacy REST API enabled in WooCommerce 8.9 and older versions: nothing will change for clients of the API, and the same client keys will continue working.

Additionally, webhooks configured to use the Legacy REST API to compose their payloads (referred to as “legacy webhooks” in this post) will stop working starting with WooCommerce 9.0 unless the new extension is installed.

Why this change?

We are continuously working on improving the WooCommerce experience for both users and developers. As part of that, we sometimes need to do some cleanup. Removing the Legacy REST API — whose usage we have been discouraging for the past few years — will make the WooCommerce release package lighter and will hopefully also help make the WooCommerce REST API easier to understand.

How can I tell if this affects me?

This change affects you if at least one of the following is true (or you anticipate that it will be true by the time of the WooCommerce 9.0 release) for your site :

  1. You have the Legacy REST API enabled in your WooCommerce install.

To check if the Legacy REST API is enabled, go to WooCommerce > Settings > Advanced > Legacy API. The “Enable the legacy REST API” box below being checked means that the Legacy REST API is enabled.

  1. You have legacy webhooks in your WooCommerce install.

To check if you have legacy webhooks in your store, go to WooCommerce > Settings > Advanced > Webhooks. Starting with WooCommerce 8.3 you will see a “Legacy” section with a count of how many of such webhooks exist in your site.

If you have WooCommerce 8.2 or an older version, you will need to check every webhook individually. Click on the webhook name to open its details page, a legacy webhook will have “Legacy API v3 (deprecated)” as the value for the API Version setting.

If any of these applies to you, your site will need to have the new extension installed so that applications communicating with your site via the Legacy REST API aren’t affected, and legacy webhooks continue working. Ideally, this should happen before your server gets upgraded to WooCommerce 9.0 to avoid any disruptions.

WooCommerce 8.3 will also add dismissible warning notices in sites that either have the Legacy REST API enabled or have legacy webhooks.

What action should I take?

If you anticipate that you’ll still need to have the Legacy REST API enabled when WooCommerce 9.0 is released, the recommended action is to install the new extension as soon as it’s available. We will announce the availability of the new extension in this blog.

Can I install the upcoming extension before WC 9.0 is released?

It will be safe to install the new extension at any time before WooCommerce 9.0 is released. This is due to the fact that as long as the extension detects that the WooCommerce version currently running in your server still has the Legacy REST API in place, it won’t initialize itself as to not interfere with the built-in code.

Can I rely on the new extension to support the Legacy API forever?

Please note that the new extension will not be maintained indefinitely, so we would strongly encourage you to update any systems that rely on the Legacy API or on legacy webhooks and migrate to the current REST API instead. If you are using a third party product or service, consider contacting their team about this.

Tell us what you think

We are considering automatic installation of the new extension as part of the upgrade to WooCommerce 9.0 on sites that have the Legacy REST API enabled or have legacy webhooks, but that’s something we need to explore further. Comment on this post and let us know if this is something you feel would benefit you.


142 responses to “The Legacy REST API will move to a dedicated extension in WooCommerce 9.0”

  1. Big change here i think. A notice upon install and upgrade of the latest version about the Legacy API or automatic installation is probably a good idea. I have a lot customer still using the Legacy API for shipping integration etc.

    1. konamiman Avatar
      konamiman

      Thanks for your comment. You are absolutely right, the good news is that we already thought of that and a warning notice pointing to this post will land in WooCommerce 8.3: https://github.com/woocommerce/woocommerce/pull/40535

      1. Awesome 😀

    2. Are you able to share details on any known integrations with the Legacy API? We’d love to reach out to those developers and try to get them moved over to the modern APIs.

      1. Artim Enterprise Avatar
        Artim Enterprise

        We use Delhivery shipping service in India to integrate our shipping service which required legacy API

      2. https://extensiv.com/ Still uses the legacy REST API to integrate with WooCommerce.

      3. awkwardstyles.com print on demand still uses Legacy API for its integration

  2. AgenturAllison Avatar
    AgenturAllison

    I remember seeing a note on Slack that the Legacy Rest API is not HPOS compatible. Am I right that Legacy REST API won’t work with HPOS?

    1. The legacy REST API has been deprecated for a considerable length of time (around 7 years) and so, quite naturally, we did not prioritize it while testing HPOS.

      It should however work so long as you keep Compatibility Mode enabled—but the best advice we can offer is to migrate away from it, and adopt the currently supported version of the REST API instead.

  3. AgenturAllison Avatar
    AgenturAllison

    Am I right in understanding that the Legacy REST API is not HPOS compatible?

  4. I have the Legacy API enabled on my site, but I have no idea why, or what might be using it. Is there any way to tell?

    1. Yes, the article was poorly written; I have the same question. I had one webhook that I no longer use, so I don’t know if that means I don’t need the legacy api or what.

      1. Hi, there is a section titled “How can I tell if this affects me?”.

        Specifically, it mentions you could be affected if:

        1. You have the Legacy REST API enabled in your WooCommerce install.
          To check if the Legacy REST API is enabled, go to WooCommerce > Settings > Advanced > Legacy API. The “Enable the legacy REST API” box below being checked means that the Legacy REST API is enabled.
        2. You have legacy webhooks in your WooCommerce install.
          To check if you have legacy webhooks in your store, go to WooCommerce > Settings > Advanced > Webhooks. Starting with WooCommerce 8.3 you will see a “Legacy” section with a count of how many of such webhooks exist in your site.

        If you have removed the unused legacy webhooks, then you should be good to go.

        1. But it says “If any of these applies to you” so that’s why there’s a lot of questions. People, such as me, are asking YES, it’s enabled, but NO I don’t have any webhooks. The way the article is written, it means or, not and, so that’s why there’s confusion.

          1. People, such as me, are asking YES, it’s enabled, but NO I don’t have any webhooks.

            I’m sorry for the confusion. So, in this case, yes: you are potentially affected.

            The reason I say potentially is that just because it is enabled does not mean it is actively being used—but, as you may have seen in another comment, we’re looking into ways to help determine that.

        2. You just quoted the blog post the comment was on, which does not answer any more clearly. The post says “This change affects you if at least one of the following is true” – one of those things being simply having the box checked.

          So how are we to know whether we can uncheck it or not? I have no webhooks and contacting support has not been terribly helpful, either. They even linked me to your comment, Stephanie.


          1. If you have custom integrations with 3rd party providers, software, programs, then you are using this functionality. For instance, if you send woocommerce data to a subcontractor or subsupplier, or if you send woocommerce data to other programs. In other words, if you only use WooCommerce to handle these data, and have not set up automation, then you are most likely not using this feature, and can untick it.

          2. If you have custom integrations with 3rd party providers, software, programs, then you are using this functionality.

            I just want to clarify that we only plan to remove the legacy REST API. Most integrations should now be using the currently supported REST API, which is not going anywhere.

    2. Michael Chesley Johnson Avatar
      Michael Chesley Johnson

      Same here. I never enabled it, but there it is…enabled. I’d also like to know the answer to this.

    3. Michael Chesley Johnson Avatar
      Michael Chesley Johnson

      And can I just disable it, since I don’t know why it’s enabled? I don’t have any webhooks, either.

      1. It seems a lot of us have the same question. Yes, I have the legacy checkbox enabled (and not by me!) and no, I don’t have any webhooks. Can I just uncheck it?

    4. szeszterke Avatar

      I also don’t know this. How can I found out if I still need it or not?

    5. I also have Legacy API enabled, but all webhooks were updated recently to the latest API. So I wonder if I can safely disable the Legacy API. Anyone?

    6. Great question!

      We’ll give some thought to the creation of a utility that can help to detect if the legacy REST API is actually being used, as opposed to it merely being enabled.

      For those who are able to look at their server access logs (sometimes this is available through web hosting control panels), you may also be able to scan them for URLs containing /wc-api/ … for example:

      https://example.com/wc-api/v3/orders

      These would act as an indication that one of the legacy REST APIs is still actively being used. We realize that may not be possible for everyone, though, and so—as noted—will think about some tooling to make it easier.

      1. That would be really helpful Barry – I have it enabled, no webhooks and no idea if it is being used.

  5. tanyacollier20 Avatar
    tanyacollier20

    As suggested, I think it’s a good idea to enable (or at least a checkbox to offer) automatic installation of the new extension as part of the upgrade to WooCommerce 9.0 on sites that have the Legacy REST API enabled or have legacy webhooks. The Legacy REST API is enabled in our settings but to be honest I’m not sure why, I’m guessing one of the plugins we have required it to be enabled as the site was only built in 2020.

  6. I have Woocommerce 8.3 installed and I am seeing the messages about Legacy REST API which has brought me here but when I look at Webhooks it is not showing me the All, Active, Disabled, Legacy tabs counts. I only have the 1 webhook – could this be the reason why I am not seeing the tab counts? When I check the API version of the webhook it says it is using WP REST API v3 so I am assuming this is all ok and I can safely disable Legacy REST API anyway?

    1. Exactly! Suppose you have one disabled webhook, you would only see the following tabs:

      All (1) | Disabled (1)

      The legacy tab count will not appear at all if you do not have any legacy webhooks in place.

  7. I also have no idea why my enable box is checked. I am a novice re: all website stuff (ha, ha, I don’t even know what to call it! lol) but am trying to learn as much as I can as fast as I can. I would love the extension to install automatically at this point. I have ShipStation integration, might that be why? thank you for thinking of us less experienced/more tech challenged folks!

    1. I agree. As someone who is just a novice running a website, I don’t really understand this – so instructions written for people who aren’t web developers would be helpful or something automatic would be even better.

  8. I hope this is updated automatically. I will be traveling a lot and may not notice when it becomes available.

  9. My Legacy API is enabled. Then I went to the Webhooks section and saw just one, that I no longer use and deleted it. Does that mean I can disable the Legacy API? Or do things other than Webhooks depend on it? I’m a little unclear there.. Thanks!

  10. Coopersgiftsandmore Avatar
    Coopersgiftsandmore

    Automatic installation of the new extension for those who have Legacy REST API enabled would be a very good idea and convenient for anyone who may not know much about website building in depth enough to set it all up.

  11. I have the Legacy API enabled on my site but I am not sure what is using it, is there a way to tell

  12. thedronecoach Avatar
    thedronecoach

    I have an online school (LMS) website selling one course. Woo notified me that Legacy REST API was active. I have no idea what this was about as I’m only skilled enough to copy and paste API keys from Stripe. There is a webhook secret set up between Woo and Stripe. WooCommerce> Settings> Payments> Stripe> Manage> Settings> Edit Account Keys is where my API keys and webhook secret key to Stripe is located.

    I made the mistake of disabling/unchecking Legacy REST API and customers began seeing a warning: “Error processing checkout. Please try again later.” Re-enabling Legacy didn’t immediately fix the problem as I had to delete, and then reinstall the WooCommerce plugin.

    I’m using a great “clean” theme called Total by WPExplorer and the LearnPress LMS plugin by ThimPress. I also had to buy a WooCommerce Payment plugin and a Stripe payment plugin from LearnPress/ThimPress so I could accept payments.

    I would be grateful for the auto plugin update, but even more appreciative if someone can tell me where this Legacy REST API is located? Who should I be contacting? Is it in the LearnPress WooCommerce plugin? My Total WordPress theme?

    All new to me, but no problem in learning something new. Been doing this for nearly ten years now. And just when I thought it was safe to relax for the upcoming holidays… 🙂

    Frank B.
    thedronecoach.io

    1. I’m sorry to hear you experienced difficulties … 😬

      I made the mistake of disabling/unchecking Legacy REST API and customers began seeing a warning: “Error processing checkout. Please try again later.” Re-enabling Legacy didn’t immediately fix the problem as I had to delete, and then reinstall the WooCommerce plugin.

      From your description, it certainly sounds like there is a connection between the two things—but I’m not immediately sure why this would be. To clarify, you are not using the official WooCommerce Stripe Payment Gateway but rather a third party solution from LearnPress?

      I would be grateful for the auto plugin update.

      We’d love to do something like this, and are looking into it in more detail.

      Appreciative if someone can tell me where this Legacy REST API is located?

      I’m a little unsure if I’m answering your question here, exactly, but the idea behind REST APIs is that they provide a way for two different applications on two different machines to communicate with one another.

      For example, you could have an app running on your phone that ‘speaks’ to WooCommerce and asks for a list of recent orders. Or, perhaps you operate a couple of physical stores, and have existing software to manage your inventory: the developers of that software package might then use the REST API to keep the inventory on your WooCommerce-powered webstore up-to-date.

      I’m simplifying a little, but perhaps that helps to illustrate? In terms of where it is ‘located’, the code supporting our REST APIs lives inside the WooCommerce plugin (but, of course, any applications which want to take advantage of it need to have some corresponding code of their own).

      And just when I thought it was safe to relax for the upcoming holidays…

      Just to reiterate the timeline for this change, we’re targeting WooCommerce 9.0 (provisionally slated for June 11, 2024) and we will have a new extension available in advance of that, which you can install to mitigate any risk.

      1. thedronecoach Avatar
        thedronecoach

        Hi Barry,

        Thanks for your reply. I’ve been busy reading, and somewhat comprehending, the Woo and REST API docs. And I’ve been painstakingly testing my site (in the wee hours of the morning when the Nation’s asleep) to see which plugins do what. Although I’m no where close to being able to sit in the same room as a developer, I eventually realised and corrected my problems.

        I had two previously-used ThimPress ‘theme’ plugins that were no longer being used. Those may not have been the cause for my troubles but, they were still unused and present. Those plugins now deleted.

        Before I began using WooCommerce two months ago, I was using a ThimPress LMS theme and a LearnPress Stripe plugin for online purchases. Between the ThimPress theme and the LearnPress Stripe checkout plugin, online purchasing, and my overall experience, was pretty awful; clunky and unstable to say the least. I noticed something wrong when I’m getting over 3,000 visitors a month yet 1-2 sales?

        So two months ago, I began using the Total WordPress theme by WPExplorer and I installed WooCommerce (I have 7 Total theme licenses so I know how stable that theme is). However, I never deleted the older/previously-used Stripe payment gateway plugin. I thought I could see it wasn’t being used but yet, I was afraid to uninstall it. But I’ve since discovered this older Stripe plugin isn’t necessary, I removed it and checkout works fine.

        I unchecked the Legacy REST API checkbox and no more issues or errors. Real-time purchases have been made, so no need for me to be concerned with this Legacy issue.

        But I also assumed I had to buy and install the $49 WooCommerce integration plugin by LearnPress to allow my visitors to purchase my LearnPress course; a required connection between LearnPress and WooCommerce?
        https://thimpress.com/product/woocommerce-add-on-for-learnpress/

        I also have your WooCommerce Stripe Gateway plugin installed. And when I click on your Stripe plugin settings link, I’m taken directly to Woo> Settings> Payment tab> Stripe> Manage button> Settings. Nice one-click jump to those settings!

        So I still have one more test to conduct, and that’s to see if the LearnPress WooCommerce integration plugin is required. ThimPress sells the plugin for $49 so I assumed it is a handshake or pathway between the LearnPress Buy Now button and the WooCommerce payment gateway? But, I am going to try removing it and conduct some sandbox purchasing test. Easy enough to do and my hosting provider provides backup on demand as well, which is a huge help.

        Anyway, thanks again for such a detailed reply Barry, and your support at WordPress.org is phenomenal as well (they directed me to the late night reads).

        Cheers!

        Frank B.
        thedronecoach.io

  13. I agree that I think it’s a good idea to enable automatic installation of the new extension as part of the upgrade to WooCommerce 9.0 on sites that have the Legacy REST API enabled. There are many things to keep track of here and this would be helpful!

    1. konamiman Avatar

      While automatic install of the new extension is certainly a possibility we’re exploring, I just would like to emphasize that it will be possible to manually install the extension before the Legacy REST API is removed from WooCommerce. By doing that no action will be required when your site effectively upgrades to WooCommerce 9.0. We’ll make the extension available well in advance before that happens.

  14. Same here: Legacy API is enabled and I don’t know why. Would be great to get an answer from the team if there’s a way to find out what is using it if anything.

    1. Michael Chesley Johnson Avatar
      Michael Chesley Johnson

      I found I have the Legacy REST API enabled (not sure why), and no webhooks. Since I didn’t know why this would be enabled, just for grins I disabled it. Site works just fine, including the whole ordering system.

      1. Thanks for the feedback. Yes, I could test that on my staging site. Thing is: There could be a background process that then doesn’t work anymore without any obvious, immediate signs. I’ve had features fail after an update and only realized it days later. It might not be a big deal, but I would just like to know beforehand, which processes, plugins, features use this Legacy API. Because then I can specifically test that afterwards.

        1. Michael Chesley Johnson Avatar
          Michael Chesley Johnson

          Good point!

      2. Thanks for that information as I have the same situation, API is enabled, but no webhooks are shown. I’ll disable mine too

    2. Noted! As covered above, we’re discussing some ways in which we might answer this question and will be sure to share what we come up with.

  15. I use the Printful integration which currently uses the legacy API. I have emailed them about the change but someone asked above for a list, so now you know as well!

    Also, it would be great to have the updated version of WooCommerce automatically come with the needed extension upon install. Just putting in my vote 🙂

    1. I use the Printful integration which currently uses the legacy API.

      Thank you for sharing!

      Just putting in my vote 🙂

      Appreciated—we’re looking into this possibility.

  16. SERIOUSLY WOOCOMMERCE I DON’T WANT TO SPEND ALL AFTERNOON LEARNING ABOUT WHAT A LEGACY API IS, WHAT IT DOES, WHY THE BOX THAT I’VE NEVER SEEN BEFORE IS CHECKED, AND WHETHER MY SITE IS GOING TO CRASH ON YOUR NEXT AUTOMATIC UPDATE! ARRRRGGGGHHHHH!!! YOUR “INFORMATION” IS JUST DREADFUL TORMENT.

    1. We’ll definitely do what we can to make this as safe and easy as possible.

      Our apologies if the post was not initially clear enough—I’ve posted answers to various questions in the comments that will hopefully provide some additional clarity.

  17. comitdevelopers116 Avatar
    comitdevelopers116

    WooCommerce successfully added a notice about the removal of the Legacy API in WooCommerce 9.0. Is it possible to add a notice when the dedicated extension is released? On the one hand, it would seem that, as adults, we’re capable of checking the blog from time to time. On the other hand, many of us are managing multiple projects and, even though I have a tickler to check the blog occasionally, I can imagine this slipping through the cracks.

    1. That’s a great idea. We’re definitely keen to take whatever steps we can to make this as easy as possible.

  18. I am using the Legacy API for Gelato integration. Also vote for automatic plugin install where the API is enabled.

  19. pedropape Avatar

    I am not sure if this is part of this
    First: Legacy API enabled (I cannot remember enabling this)
    Webhooks- NONE
    Go to Woocommerce/Settings/Advanced/Features

    In my case:
    Order data storage is locked to – WordPress posts storage (legacy)

    Checked WordPress posts storage (legacy) (LOCKED)
    Unavailable High-performance order storage (recommended)

    ⚠ Incompatible plugins detected (Events Manager for WooCommerce, WooCommerce Bookings and 1 other).
    View and manage
    

    Unchecked Enable compatibility mode (synchronises orders to the posts table).

    Is this affected by this change?
    What is your recommendation?

    1. The two things are unrelated: the reason you cannot enable HPOS (High-Performance Order Storage) is simply that the noted plugins are not compatible—this is unconnected to the Legacy REST API.

      …By the way, the current version of WooCommerce Bookings should actually be compatible: perhaps you need an update?

  20. I am in the same position as many here, the Legacy REST API in enabled on my site and I have no webhooks. However, I also didn’t enable it myself and don’t know what is using it or why.
    I am a big novice when it comes to web development and while I’ve learned a lot in the past 3 years I really know very little about the behind-the-scenes stuff. I can do what is recommended by support, but don’t usually understand the process or why.
    The automatic installation would be fab, because I have no idea how to do it, nor even what it does.

  21. FWIW, I went ahead and unchecked the box, and haven’t noticed any issues. Orders are still being placed without problem, so I guess it’s ok.

    1. Do you use PayPal Standard on the Payments tab? I’m hoping yes so that I can feel more comfortable unchecking the box.

  22. I’d love the automated install if possible 🙂 Thanks!

  23. The automatic install with the new version would be greatly appreciated.

    Robbie
    https://www.clickdatawifi.com.au

  24. wendys013 Avatar

    Same for me! I had some old Active Campaign web hooks that I deleted, but does that mean I can disable the Legacy API?

  25. I am facing many of the same questions already raised here. My site does have the legacy Rest API enabled but there are no webhooks defined. I have seen responses that a tool may be in the works that would allow novice users that play the role of site admins to verify if this is an issue and if our site could face some issues if this is not rectified correctly. Please let me know if based on my info above, I have anything to be aware of or when said tool might be ready for us to use.

  26. Daphne Talbot Avatar
    Daphne Talbot


    I have Legacy REST API enabled on all my ecommerce websites. I have no idea why it is enabled. I checked a couple of stores and there are no webhooks listed. I don’t understand any of this. I don’t know why the legacy rest api is enabled. I don’t know if it is required. I do run updates so have the most current version of Woo. The blog post seems to run right over me leaving me with more questions than answers. Can I disable it? Are there plugins that require it? How would I know if I broke something by disabling it? This is very confusion for some one who is not a developer.

    1. Sorry for the confusion, Daphne. As noted in a few other comments, we’re looking into tooling that will help to answer this question and make things clearer for everyone. Stay tuned!

      1. daphne talbot Avatar
        daphne talbot

        Hi,

        https://developer.woocommerce.com/2016/04/22/new-rest-api-based-on-the-wp-rest-api-in-2-6/?_gl=1*wunryc*_gcl_au*MTUwODgxNzk4Ny4xNzAwMjI4NTUy*_ga*MTUwODc1MTg5My4xNzAwMjI4NTUy*_ga_98K30SHWB2*MTcwMTQ0MTYzNy43LjEuMTcwMTQ0MTg3Ny4wLjAuMA..&_ga=2.249517826.485459642.1701441637-1508751893.1700228552

        For non-developers, this still doesn’t address whether or not we need the legacy API. I am still confused. And with legacy products, eventually, they are completely dropped. So, I am concerned about not understanding whether or not I even need it.

        1. Your confusion is completely understandable, and I’m sorry my last comment wasn’t clearer.

          The feedback we’ve received so far shows that, for many users, it’s hard to tell if the Legacy REST API is actually being used. After all, if it is not being used, you could simply disable it. To that end, we’re looking at some further changes to give you that information.

          That work is still in progress, and its final shape may change, but our current prototype would generate admin notices looking something like this (in other words, you will get an alert telling you that the Legacy REST API is being used along with information that might tell you who or what is using it.)

          Again, this is still under development, but hopefully will roll out soon.

          1. (I edited my comment, as the image link was initially missing.)

  27. Any timeframes of when:
    1) API 9.0 will become available?
    2) How long will the Legacy extension be available for before we need to transition off it?

    1. 1) API 9.0 will become available?

      Our plan is to remove the Legacy REST API in WooCommerce 9.0. That’s scheduled for June 11, 2024.

      2) How long will the Legacy extension be available for before we need to transition off it?

      We don’t have a fixed timeline for this. However, as the article mentions, the new extension will not be maintained indefinitely—so we would strongly encourage you to update any systems that rely on the Legacy API (or on legacy webhooks) and migrate to the current REST API instead, or else contact the relevant companies and prompt them to update their code.

      Also, as noted in a few other comments, we’re investigating ways of helping you to discover which services might still be accessing the legacy REST API, so you can evaluate if they are still needed and reach out to their support teams if so.

  28. After reading all the above I still have no idea what the Legacy Rest API is. LOL.

    And yes I found that it’s enabled on my site and I had no idea.

    It’s like… I had no problem but suddenly I have problem now…

  29. As my store shipping fulfillment service relies on Legacy Rest API to pick up my Woo orders, it would be great to have the extension automatically applied.
    Noticed that you were interested in reaching out to vendors about updating their products to eliminate the need for the Legacy Rest API. The one my fulfillment service uses is called CartRover.

  30. konamiman Avatar

    UPDATE: The dedicated Legacy REST API extension is now available. See the announcement post for the details.

    1. If I can’t tell if I need it or not, should I just install it to be safe?

  31. Yes, please just include the extension as part of the upgrade.

  32. DelphineH Avatar

    Hello,
    Not knowing much about it, I was wondering if, since my store is going to need to be redesigned, it wouldn’t be easier to uninstall Woocommerce and then reinstall it when version 9 is available.
    Will this work, or would I still have to go and change some settings somewhere…?
    Thanks for your feedback.

  33. I am confused by this. I do not remember ever enabling Legacy REST API, I have no webhooks, how would I know, or where can I find if I even need it enabled or not?

  34. I believe the legacy api was enable by default years ago. How can I tell if I need it enabled? I have no web hooks. Thanks

  35. Hello,
    i checked the webhooks , all webhooks do not use the legacy api
    but when i check the payment methods and i check stripe i found ?wc-api=wc_stripe.
    i am not sure, if i disabled the legacy APi will effect this on stripe ? if Yes how can i avoid this problem

    Add the following webhook endpoint https://example.de/?wc-api=wc_stripe to your Stripe account settings(öffnet in neuem Tab) (if there isn’t one already). This will enable you to receive notifications on the charge statuses.

  36. The automatic addition of the extension with the new update would be greatly appreciated please. We are a very small organization and we have pay another company dearly for every little change you require us to do on our end.

  37. Hello-
    Looks like there is a note within the Wocommerce advanced settings (pasted below for reference). If I do a search in my logs for “legacy_rest_api_usages” and find no logs (reference: https://share.zight.com/YEuJowyO), does that imply that I can uncheck the REST API box with no theoretical consequence?

    WooCommerce > Settings > Advanced > Legacy API

    ⚠️ ️The Legacy REST API will be removed in WooCommerce 9.0. A separate WooCommerce extension will soon be available to keep it enabled. You can check Legacy REST API usages in the WooCommerce log files (file names start with legacy_rest_api_usages). Learn more about this change.

  38. Hello Woocommerce Api people,

    On my site it lists that we have the Woocommerce Legacy API enabled, but when I click over to the webhooks, we do not have anything currently using it, or relying on the webhooks, or hooked to it.

    Does that mean we’re safe to proceed on the new version?

    Please let me know because we are not very web savvy over here, like, at all. I need to make sure nothing gets messed up.

    1. If you go to WooCommerce > Settings > Advanced > Rest API, you should see a notification titled “WooCommerce Legacy REST API access detected”. In that notification it should tell you how many times the Legacy API has been accessed and also provide a link to “the WooCommerce log files” which will take you to a page that contains logs of your sites usage of the Legacy API.

  39. I am in the same position, The Legacy API box is checked, but I have no Webhooks.
    There is a separate section for REST API, and it has the option to create an API key – should I create one? Will this help in any way?

    1. konamiman Avatar

      REST API keys are needed when you set up a new client/plugin integration with the WooCommerce API (and the same keys are shared between the current API and the Legacy API, by the way): the keys are use to authenticate the requester and are included in the data that is sent as part of the request.

      If you don’t have any API keys created this means that nothing is using the REST API (legacy or not) in your site. You don’t need to create any key if you haven’t needed one until now.

  40. Hi there,

    So, I am also wondering how I can confirm if my website is actually using the Legacy API.

    The box is ticked, i.e. “Enable the legacy REST API”

    And when I view the logs: “You can check Legacy REST API usages in the WooCommerce log files” I have several logs:

    “`
    01-10-2024 @ 15:20:18 – Updating courier timestamp for WooCommerce Order #30328 (Afterpay Order #XXXXXXXX)…
    01-10-2024 @ 15:20:19 – Update successful.
    01-10-2024 @ 15:22:27 – Updating courier timestamp for WooCommerce Order #30863 (Afterpay Order #XXXXXXXX)…
    01-10-2024 @ 15:22:27 – Update successful.
    01-10-2024 @ 19:50:58 – Updating courier timestamp for WooCommerce Order #35196 (Afterpay Order #XXXXXXXX)…
    01-10-2024 @ 19:50:58 – Update successful.
    “`

    Is this confirmation that my website is using the Legacy API?

    Thank you kindly in advance for any assistance you can provide.

  41. Ok, please delete/ignore my previous post:

    I have found the notification which confirms that my site is using the Legacy API:

    “WooCommerce Legacy REST API access detected

    The WooCommerce Legacy REST API has been accessed 2824 time(s) since 2024-01-16 22:53:07”

    Being that I have confirmed that my website is using the Legacy API, can I safely go ahead with installing the new extension without affecting my website functionality? And, is there nay that I am required to do in order to make sure that I am not affected when WooCommernce 9.0 rolls out?

    I know a little bit of coding if need be… but I am by no means an adept programmer.

  42. konamiman Avatar

    To answer the frequent question of “how can I be sure if the Legacy REST API is in use/if I really need to install the new extension” or not:

    If no log files named “legacy_rest_api_usages” have been generated since the site installed (or upgraded to) WooCommerce 8.5, this means that the site hasn’t received any request for Legacy REST API endpoints since then. For an active site this means that *likely* no such requests will be received in the future if there are no changes in the server, especially if no new plugins that could use the Legacy REST API are installed. In this case, the new extension is in principle not needed.

    That said, for anyone unsure or just willing to get peace of mind, the recommendation is to install the extension anyway as it’s completely safe to do so: before WooCommerce 9.0 the extension will do nothing, and from WooCommerce 9.0 the extension will re-enable the Legacy REST API; if in the end it turns out that nothing is using it then fine, no harm is done (and the extension can be deactivated or uninstalled at any time if desired).

    And we haven’t forgot about the extension auto-install part: we are still researching/working on it and we’ll announce any news regarding that part in this blog.

    1. Hello,

      So, if I have no webhooks, am I in the clear to upgrade or is there still an issue?

      On my site it lists that we have the Woocommerce Legacy API enabled, but when I click over to the webhooks, we do not have anything currently using it, or relying on the webhooks, or hooked to it.

      Does that mean we’re safe to proceed on the new version?

    2. You said “If you don’t have any API keys created this means that nothing is using the REST API (legacy or not) in your site.” .. and then you’ve also said “If no log files named “legacy_rest_api_usages” have been generated since the site installed (or upgraded to) WooCommerce 8.5, this means that the site hasn’t received any request for Legacy REST API endpoints since then” … so is it if I have API Keys or is it if I have Legacy API usage logs? I thought I was beginning to understand and now I am confused again.

      1. konamiman Avatar

        – API keys are needed to use the WooCommerce API, both the current REST API and the Legacy REST API. But having keys defined doesn’t imply that anything is using them.
        legacy_rest_api_usages log entries imply that the Legacy REST API endpoints have been accessed since the site installed/upgraded to WooCommerce 8.5

        So:

        – You should look into legacy_rest_api_usages log entries to know if the Legacy REST API is being used in your site.
        But, if you don’t have any API keys defined, then the REST API in your site (both legacy and not) can’t be used to start with.

        I hope this clarifies things a bit.

  43. Yes, automatic installation will be convenient.

    1. Hello,

      Was the yes for us?

      The question again was “So, if I have no webhooks, am I in the clear to upgrade or is there still an issue?

      On my site it lists that we have the Woocommerce Legacy API enabled, but when I click over to the webhooks, we do not have anything currently using it, or relying on the webhooks, or hooked to it.

      Does that mean we’re safe to proceed on the new version?”

      If your yes was for us, if you could just yes us again, I’ll go ahead and upload it.

  44. […] WooCommerce put out an announcement last year about their deprecated Legacy REST API and that this was being removed from WooCommerce […]

  45. Thanks for this, its heplful to see in the back end that I do have some legacy webhoos. Question is, how do we find which plugin is repsonsible for them?

  46. Thanks for this, it’s helpful to see in the back end that I do have some legacy webhooks. The question is, how do we find which plugin is responsible for them or using them?

    Which logs are you referring to? The WooCommerce / Status log? Just to confirm if we see no entry fr legacy_rest_api_usages then we can safely delete all those webhooks and not worry about WooCommerce v9?

    1. konamiman Avatar

      Unfortunately there’s no straightforward way to know which plugins are using which webhooks. Note also that the logs (indeed, the WooCommerce – Status logs) will only reflect incoming requests for the Legacy REST API, but not webhooks usage which are outgoing requests to a different server.

      Anyway, if you install the new plugin you won’t have to worry about WooCommerce 9 (and we plan to automatically install it as needed too).

  47. I installed the new extension. Is there anything else I need to do? I’m lost as usual and don’t have time to spend a day trying to figure all this out.

    1. konamiman Avatar

      If you installed and activated the extension then you’re all set, there’s nothing else to do on your side.

  48. Hi, we have enable new extension but we got alert that many of our plugins are incompatible with currently enabled WooCommerce features (WooCommerce Legacy REST API).
    What should we do, we cant replace all plugins 🙂 does not make sense.

  49. This new plugin is incompatible with the enabled WooCommerce feature ‘High-Performance order storage’, it shouldn’t be activated.

    1. konamiman Avatar

      Hi, this is not exactly true. What is incompatible with HPOS is the legacy REST API itself, not the new plugin. Adapting existing code so that it doesn’t use the legacy REST API anymore is the preferred course of action, but we are providing this plugin for the cases where doing so is not possible.

      1. Jade Atkins Avatar
        Jade Atkins

        Can you clarify your answer please. I also just installed the new plugin and received an error message stating “This new plugin is incompatible with the enabled WooCommerce feature ‘High-Performance order storage’, it shouldn’t be activated.”

        What are we suppose to do in this instance?

        1. konamiman Avatar
          konamiman

          My bad, I misinterpreted your comment, sorry. Yes, you are absolutely right, after installing the plugin you’ll see the “Some plugins are incompatible with HPOS” message on top of the plugins page and the “This plugin is incompatible with HPOS” message below the plugin information.

          In this case it’s safe to ignore the warning and leave the plugin installed (the plugin is just replicating behavior that will be removed from WooCommerce core, after all); but we understand that having these messages displayed permanently can be confusing and annoying. We are exploring options on what to do about this.

  50. Is there a beta version of woocommerce 9? So that we could test the new REST API?

  51. Most definitely this should be an automatic update – make sure to warn people ahead of time that it will not disturb the site already created by the creator, but also mention that it is a necessary update to keep things running smoothly. People who are not tech savvy and rely on sites like Square space don’t have to worry about these constant bothersome updates. It is very hard for non tech people just trying to run a website for their business to understand any of these “techy” terminologies and have to worry about soooo many other plug ins constantly having to update and then breaking. Very frustrating.

    1. Indeed. I have no idea what this does, or whether I even still need it.

  52. A very noticeable date of when this is going to be rolled out as well for people to be prepared for changes would also be helpful.

  53. Simply install and activate the plugin. that is the instruction .Where do you install ? where does the 43 php files go.

    1. konamiman Avatar
      konamiman

      It’s a regular WordPress plugin, so it will install in the <WordPress root>/wp-content/plugins/woocommerce-legacy-rest-api directory.

  54. Printful error

    Can’t add products

    Error message:

    Beyond Bars Snapback Retry
    Product was not added!

    Error: Valid route not found. Please make sure latest Printful plugin is installed and REST API enabled!

    That’s all we know. If you need some help, please contact our support, provide the error code below, and we’ll see what we can do.

    CODE: G638313378
    Break The Chains T-shirt Retry
    Product was not added!

    Error: Valid route not found. Please make sure latest Printful plugin is installed and REST API enabled!

    That’s all we know. If you need some help, please contact our support, provide the error code below, and we’ll see what we can do.

    CODE: G638312999

  55. Probably a dumb question (because I do not use the legacy REST API)…but is there a new API being rolled out that is based on GraphQL or some of the more modern API standards?

    1. konamiman Avatar
      konamiman

      I’m glad that you asked! We are actually evaluating options for the possible introduction of a new API in WooCommerce, and GraphQL is one of the options in the table. Howevere we’re still in the early stages of the process, so we can’t provide any details about when and how will that happen. That said, we’re always open to feedback and suggestions, and there’s a relevant discussion here: https://github.com/woocommerce/woocommerce/discussions/44199

  56. Thanks, I’ll take a look at that other discussion.

  57. I’m in the non-techy people group and have no idea what this terminology means or what to do next. To add to my frustration I’m legally blind and it takes me considerably longer to do tasks that would have been a cinch before my sight loss. I just want a simple answer and not to be directed to more confusing articles that might as well be written in Greek.

  58. Hi, I have no idea how to install this. I’ve downloaded it but now what. Automatic upgrade would be preferable for me with the new version please x

    1. Barry Hughes Avatar
      Barry Hughes

      It’s really just an ordinary WordPress plugin, and is available in the plugin directory:

      https://wordpress.org/plugins/woocommerce-legacy-rest-api/

      You can search for it, install it and activate it through the plugin management screen in WordPress. However, yes, we agree automatic installation would be preferable—and we’ve been working on exactly that.

  59. Tengo la API REST activa en mi tienda online pero no tengo webhooks, aún así es recomendable instalar la nueva extensión??

    Quedo atento
    Muchas gracias

    1. Hola Sergio,

      Aunque no tengas algún webhook activado, pero si tienes el Legacy REST API activado, se recomienda que instales la nueva extensión.

      “If any of these applies to you, your site will need to have the new extension installed so that applications communicating with your site via the Legacy REST API aren’t affected”

      Aquí puedes encontrar más información sobre la nueva extensión:
      https://developer.woocommerce.com/2024/01/17/the-woocommerce-legacy-rest-api-extension-is-now-available-in-wordpress-org/

  60. Feeling dumb … I have read the article and I have read the official Woo responses and I am still unsure if I can turn this off.

    I checked Webhooks and there are none.

    I checked Status > Logs and there is nothing labelled legacy_rest_api_usages

    I don’t even know what this API thing is, or does. Which is why I never unchecked the box, because I don’t mess with default settings if I don’t know what they do.

    So can I uncheck the box?

    Thanks!

    1. pia8c Avatar

      Hi SB, if there are no active Webhooks (which you have checked) and the logs don’t show any usage of the legacy REST API, then it is likely that is not in active use.

      However, as Barry has mentioned in other replies, software is complex and there are theoretical edge cases which may not be covered by the parameters cleared above.

      It looks like you are probably covered by the checks you’ve done, and can uncheck the box. I would still do some monitoring to ensure everything is working as expected.

  61. Dear,

    since last update 8.8.3. the notice about rest api is not dismissible . What to do with it?

    1. konamiman Avatar
      konamiman

      Hi, we have introduced a few notices during regarding the removal of the legacy REST API, which one is the one that you can’t dismiss? Could you please provide the notice text in another comment?

  62. Barry, thank you for patiently responding to all of us anxious website owners! I have read the thread and feel like I understand the situation but to clarify for me and others in the same situation: if my store’s Woo settings does NOT list any webhooks, and DOES have the Legacy REST API checkbox ticked but does NOT have any API keys listed, then it shouldn’t make any difference if I have the extension enabled or not. Do I have that right? Thanks again.

    1. barryhughes Avatar
      barryhughes

      If my store’s Woo settings does NOT list any webhooks, and DOES have the Legacy REST API checkbox ticked but does NOT have any API keys listed, then it shouldn’t make any difference if I have the extension enabled or not. Do I have that right?

      Yes—that is the essence of it.

      If there are no webhooks, and no API keys are active, then that indicates the legacy REST API is not in active use (even if it is technically enabled) … and so you do not need the extension.

      Software is complex, so there are some theoretical edge cases I’m ignoring here but, in the main, the above is true.

      1. Thank you. Software certainly IS complex. Your active engagement in this discussion is much appreciated. If there is no performance penalty I think I’ll leave the checkbox ticked and the extension enabled just to be on the safe side.

        1. barryhughes Avatar
          barryhughes

          You’re welcome! I’m sorry things weren’t quite as clear as we initially thought (and, I should say, this and all the other comments have been very valuable to us in that regard).

          If there is no performance penalty I think I’ll leave the checkbox ticked and the extension enabled just to be on the safe side.

          That sounds like a perfectly reasonable plan to me.

          Even so, I’d perhaps suggest that you do still calendar something to actually turn it off and remove the plugin at some future point (in 3-4 months, perhaps, if that gives you confidence) and I’m suggesting that because we do not plan on maintaining this new extension indefinitely.

          To be clear, I don’t anticipate it suddenly breaking in the foreseeable future, or anything like that, but I would still recommend this as a matter of good housekeeping.

  63. We have the WooCommerce Legacy REST API plugin installed now (it happedned automatically 2 days ago, do we need to do anything when upgrading to WC9 or will all parameters and keys be migrated to the plugin, so the integration will keep working without any effort?

    If anything needs to happen, please list the steps.

    1. konamiman Avatar
      konamiman

      If the plugin is installed and active, you’re all set. The plugin acts as a drop-in replacement for the functionality that will be removed from core in 9.0, so you won’t notice any difference: all the settings, keys, and integrations will continue working seamlessly.

  64. When I updated to Version 1.0.2 it crashed my site.

  65. Barry Hughes Avatar
    Barry Hughes

    Sorry for the trouble, Joe.

    We released 1.0.3 just a few moments ago to address what may have been the same problem you were experiencing.

    Please let us know if you continue to experience difficulties.

  66. […] post is a friendly reminder that the Legacy REST API will be removed in WooCommerce 9.0, which is scheduled for release on June 11, […]

  67. Happy Singh Avatar
    Happy Singh

    Hi, Can anyone tell me if I am able to retrieve the order using the wc_get_order($orderId) method in the new REST API in WooCommerce?

    1. Barry Hughes Avatar
      Barry Hughes

      You can continue to use wc_get_order() and friends from your own plugins, or from local code snippets, if that’s what you mean—they don’t rely on the REST API.

      1. Happy Singh Avatar
        Happy Singh

        ok thanks, Barry Hughes, Also can you tell me if these methods depend upon which API?

        1. Barry Hughes Avatar
          Barry Hughes

          “API” is a pretty wide term, but I think you are asking if they depend on a specific version of the “REST API”? If so, they do not depend on it at all.

  68. Rajendra Avatar
    Rajendra

    Hi, Can anyone tell me if I am able to retrieve the order using the wc_get_order($orderId) method in the new REST API in WooCommerce?

  69. Prajjuwal Avatar
    Prajjuwal

    Hi, Can anyone tell me if I am able to retrieve the order using the wc_get_order($orderId) method in the new REST API in WooCommerce for 9.0 version?

  70. Shane Koskov Avatar
    Shane Koskov

    Hi, If I enable button of Legacy Rest API before release of Woocommerce 9.0 .Does it uses Legacy API or not. Or the use case of this button of Legacy Rest API will only be relevant after release of Woocommerce 9.0.
    In short Can I use this button for WooCommerce version below 9.0

    1. Barry Hughes Avatar
      Barry Hughes

      By itself, enabling the Legacy REST API does not mean it is actually being used. It just opens up the possibility for it to be used.

      In short Can I use this button for WooCommerce version below 9.0

      Are you asking if you can enable the Legacy REST API ‘now’, before 9.0 rolls out? The answer is yes. However, to keep it working after 9.0 you will need to install the WooCommerce Legacy REST API plugin (though the system may try to automatically install it for you, if it thinks you require it).

      1. Shane Koskov Avatar
        Shane Koskov

        Hi @Barry Hughes, thanks for your comments.
        So if I do not want to use Legacy Rest API for the WooCommerce version below 9.0. Can I disable this button now and verify my changes?

        1. Shane Koskov Avatar
          Shane Koskov

          @Barry Hughes ??

        2. Barry Hughes Avatar
          Barry Hughes

          Yes, you can disable it at any point, especially if you are confident that you don’t have any services relying on it (and, if you are unsure about that, please see the guidance here before making a change).

Leave a Reply

Your email address will not be published. Required fields are marked *