Does Morpheus provide a unique Request ID

Take a look on the picture below:

Today, in the Service Catalog page, if an end user submits a request, he visits order history tab to understand the status.
We have users who directly make API calls to trigger the catalogs. Morpheus doesn’t provide any request ID as a response to make a second query for understanding the status of the request.

Please help with available options for any API calls directed towards Morpheus Catalogs.

There’s a way you can do this without the request id.

Placing an order via this endpoint:

POST https://{morpheus}/api/catalog/orders?validate=false

provides this response:

{
    "success": true,
    "msg": "Order created",
    "order": {
        "id": 8,
        "name": null,
        "items": [
            {
                "id": 7,
                "type": {
                    "id": 3,
                    "name": "Label test",
                    "type": "workflow"
                },
                "refType": "Workflow",
                "context": "server",
                "targets": [
                    {
                        "id": 36,
                        "name": "op-os-xxxxx-1"
                    }
                ],
                "quantity": 1,
                "price": null,
                "currency": null,
                "unit": null,
                "valid": true,
                "status": "ORDERED",
                "dateCreated": "2025-05-09T07:26:36Z",
                "lastUpdated": "2025-05-09T07:26:36Z"
            }
        ],
        "stats": {
            "price": 0,
            "currency": "",
            "unit": ""
        }
    }
}

We can’t use the order.id, to subsequently inspect the status of the order, (perhaps add that as an idea), but we can see that the order contains the items ordered and an id for each item. Here it is 7

Using this second endpoint, we can see the status of ordered items (PENDING, ORDERED, COMPLETE or FAILED):

GET https://{morpheus}/api/catalog/items

which provides this response:

{
    "items": [
        {
            "id": 7,
            "name": "Lablel test",
            "type": {
                "id": 3,
                "name": "Label test",
                "type": "workflow"
            },
            "quantity": 1,
            "status": "ORDERED",
            "statusMessage": null,
            "refType": "Workflow",
            "context": "server",
            "targets": [
                {
                    "id": 36,
                    "name": "op-os-xxxxx-1"
                }
            ],
            "execution": null,
            "orderDate": "2025-05-09T07:26:37Z",
            "dateCreated": "2025-05-09T07:26:37Z",
            "lastUpdated": "2025-05-09T07:26:37Z"
        },
        .......omitted for brevity
    ],
    "meta": {
        "offset": 0,
        "max": 25,
        "size": 5,
        "total": 5
    }
}

We can see our item (id 7).

So, the calling client code should capture the ids to array from the order response, and make a single call to second endpoint and check the status of each item in the array by parsing and matching it in the JSON.

1 Like