Hi,
1. How often the spot vm price changes , daily / hourly / something else ?
You can refer to the pricing here:
https://learn.microsoft.com/en-us/azure/virtual-machines/windows/spot-vms#pricing
Pricing
Pricing for Spot VMs is variable, based on region and SKU. For more information, see VM pricing for Linux and Windows.
With variable pricing, you have option to set a max price, in US dollars (USD), using up to 5 decimal places. For example, the value 0.98765would be a max price of $0.98765 USD per hour. If you set the max price to be -1, the VM won't be evicted based on price. The price for the VM will be the current price for spot or the price for a standard VM, which ever is less, as long as there is capacity and quota available.
2. Is there an api call to get the current spot price of vm size in a particular region?
Maybe this one?
Use Azure Billing APIs to programmatically get insight into your Azure usage
https://learn.microsoft.com/en-us/azure/cost-management-billing/manage/usage-rate-card-overview
For billing questions you can also contact the Microsoft Azure sales by phone or chat: