It would be great to be able to run the VertiPaq Analyzer against semantic models that are hosted in a Power BI Pro environment. While the XMLA endpoint is not available, much of the data might be available through the INFO DAX functions when run against the executeQueries API. After a quick test it doesn't seem possible to run DMV queries against the API, but the INFO functions, such as INFO.TABLES() do return results.
While there are limitations on the API as far as how much data can be returned, the results for the VertiPaq Analyzer use case would likely be well within the limitations. The biggest limitation might be the 1,000,000 values per API call. Even then simple paging logic could be built. With a quick look, it appears that the INFO.COLUMNS() function has the most columns at 41, which would allow for 24,390 rows returned. While there are likely some models with more than that, the paging logic could be as simple as returning the first set of rows with an ID of <= 20,000 and query in chunks until no results come back.
I know this would take a bit of an effort as a new method of extraction would be required, however, this should likely pay off and open more opportunity for users (and owners) of tools such as DAX Optimizer.
This could then ideally be part of a DevOps process and have a much wider spread than the currently required XMLA endpoints.
I haven't thought through every detail, but on the surface this feels very manageable. There might be some catch along the way, but it isn't apparent to me at the moment.
I hope this gets considered so many more can benefit from the amazing value that the VertiPaq Analyzer already offers.
Cory Cundy

It would be great to be able to run the VertiPaq Analyzer against semantic models that are hosted in a Power BI Pro environment. While the XMLA endpoint is not available, much of the data might be available through the INFO DAX functions when run against the executeQueries API. After a quick test it doesn't seem possible to run DMV queries against the API, but the INFO functions, such as INFO.TABLES() do return results.
While there are limitations on the API as far as how much data can be returned, the results for the VertiPaq Analyzer use case would likely be well within the limitations. The biggest limitation might be the 1,000,000 values per API call. Even then simple paging logic could be built. With a quick look, it appears that the INFO.COLUMNS() function has the most columns at 41, which would allow for 24,390 rows returned. While there are likely some models with more than that, the paging logic could be as simple as returning the first set of rows with an ID of <= 20,000 and query in chunks until no results come back.
I know this would take a bit of an effort as a new method of extraction would be required, however, this should likely pay off and open more opportunity for users (and owners) of tools such as DAX Optimizer.
This could then ideally be part of a DevOps process and have a much wider spread than the currently required XMLA endpoints.
I haven't thought through every detail, but on the surface this feels very manageable. There might be some catch along the way, but it isn't apparent to me at the moment.
I hope this gets considered so many more can benefit from the amazing value that the VertiPaq Analyzer already offers.
Cory Cundy