There is REST API endpoint for specific order statuses

GET    /V1/orders/:id/statuses

Reference: https://devdocs.magento.com/guides/v2.3/rest/list.html

But I am looking for approach to fetch all available order statuses using REST API because I am working on external system in which I need to fetch the required magento data.

Any help, experience and knowledge sharing would be appreciated

  • Are you want just available order status list? Or Particular order status? Commented Jul 24, 2019 at 6:34
  • All available order statuses list Commented Jul 24, 2019 at 6:37

1 Answer 1


I created module for that, You can follow this steps for that :

Step 1 : Create registration.php file at app/code/RH/OrderStatus


Step 2 : Create module.xml file at app/code/RH/OrderStatus/etc

<?xml version="1.0"?>
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    <module name="RH_OrderStatus" setup_version="1.0.0"/>

Step 3 : Create webapi.xml file at app/code/RH/OrderStatus/etc

<?xml version="1.0"?>
<routes xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../app/code/Magento/Webapi/etc/webapi.xsd">
    <route url="/V1/getorderstatus" method="GET">
        <service class="RH\OrderStatus\Api\Getorderstatus" method="getorderstatusarray"/>
            <resource ref="admin"/>

Step 4 : Create di.xml file at app/code/RH/OrderStatus/etc

<?xml version="1.0"?>
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../lib/internal/Magento/Framework/ObjectManager/etc/config.xsd">
    <preference for="RH\OrderStatus\Api\Getorderstatus" type="RH\OrderStatus\Model\GetorderstatusModel" />

Step 5 : Create Getorderstatus.php file at app/code/RH/OrderStatus/Api

namespace RH\OrderStatus\Api;
interface Getorderstatus {
     * @api
     * @return array
    public function getorderstatusarray();

Step 6 : Create GetorderstatusModel.php file at app/code/RH/OrderStatus/Model

namespace RH\OrderStatus\Model;

use RH\OrderStatus\Api\Getorderstatus;

class GetorderstatusModel implements Getorderstatus {

    protected $statusCollectionFactory;
    public function __construct(
        \Magento\Sales\Model\ResourceModel\Order\Status\CollectionFactory $statusCollectionFactory
    ) {
        $this->statusCollectionFactory = $statusCollectionFactory;

    public function getorderstatusarray() {
        $options = $this->statusCollectionFactory->create()->toOptionArray();
        return $options;

Now, Go to Admin -> System -> Integrations and Get Access Token value and set authorization value into postman application.

Then, execute {base_url}/rest/V1/getorderstatus this URL in postman.

You will get all order status.

enter image description here Hope, It will helpful for you.

  • 1
    I was looking for rest api endpoints for all available order statuses but there is none. So I decided to made my own custom rest api for all order statuses. I just finished it successfully and just going to share it in answer but you share it before. I did almost the same but you deserve credit. Anyways great work, keep coding :) thanks :) +1 for appreciation. Commented Jul 24, 2019 at 7:14
  • My pleasure :) Happy coding !! Commented Jul 24, 2019 at 7:21

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.