What's The Point Of Public Azure Pricing API?
TLDR; Still an unanswered question.
Don't get me wrong, the major cloud providers have made this information available publicly. So I decided to create a database for Azure product pricing for all the products as per their regional availability.
The link here describes the way to do it. Since it is public it is much easier to fetch this information in batches of 100s. It gives us the unit and unit pricing information for all the services as promised.
However, all the services are represented in the form of strings or code. Unless you know by heart, what configuration is represented by "D64s v5 Spot", or "Standard_D64s_v5 Spot", or with a more descriptive "Virtual Machines Dsv5 Series Windows", or some alpha-numeric SKU and Product ID values like "DZH318Z08M9T", there is no way to figure out otherwise.
Consider this example:
{
"currencyCode": "USD",
"tierMinimumUnits": 0.0,
"retailPrice": 1.088102,
"unitPrice": 1.088102,
"armRegionName": "eastasia",
"location": "AP East",
"effectiveStartDate": "2022-08-01T00:00:00Z",
"meterId": "00014e7d-fff9-54dd-962e-4e992887ad3c",
"meterName": "D64s v5 Spot",
"productId": "DZH318Z08M9T",
"skuId": "DZH318Z08M9T/00CC",
"productName": "Virtual Machines Dsv5 Series Windows",
"skuName": "Standard_D64s_v5 Spot",
"serviceName": "Virtual Machines",
"serviceId": "DZH313Z7MMC8",
"serviceFamily": "Compute",
"unitOfMeasure": "1 Hour",
"type": "Consumption",
"isPrimaryMeterRegion": true,
"armSkuName": "Standard_D64s_v5"
}
The pricing API returns thousands of such records but there is no way to know about the configuration you are paying for at this rate.
Initially, I thought maybe there is another API that I can use productId
, skuId
, or meterId
to fetch that kind of information. These APIs exist but not as part of Azure REST APIs.
I have to say that I am not much aware of Microsoft and Azure's ecosystem of resources. I had to do a bit of digging around which led me to understand that these APIs are available as part of Partner Center Developer Resources.
It seemed to provide the exact information I have been looking for, by using productId
, and skuId
. Basically, I want to tie the pricing information to the product information in my database.
For all the sandbox purposes, I use my Gmail to signup for their portals. Turns out - you cannot use your personal email address to signup for partner portal access. Of course, it made sense. Partner portal resources have a lot more to offer than what I have been looking for.
To create a partner portal account I went ahead and used my non-Gmail addresses. Soon I was faced with a web page that indicated that I would also have to provide the business organization information to Microsoft. Not an issue, but seems to be an overkill for what I need.
Further, my attempt to register for the partner portal using a non-Gmail email was followed by email verification. For some reason, the email never appeared in my mailbox. Perhaps, they have some sort of intelligence going on.
Not sure what made them decide to not send me an email for verification, and not let me register on the portal. As a last step I decided to signup for the Azure Active Directory with the same email and tried to sign up again for partner portal. Again, the same result.
I totally get the point of the whole partner portal thing. But I still don't understand the point of keeping the pricing API public. It can be used by partners, and it is truly useful for partners who have access to partner portal APIs. But then keeping the pricing API public serves a namesake purpose.