CDS/Dynamics 365 Global Discovery Service Additional Versions and Properties

As discussed previously in a post, Calling the Global Discovery Service (actually over 2 years ago) is a way of returning all the instances across regions that are within a tenant that the calling user belongs to in a single API call. This differs from the discovery service in each region where it only returns the instances in that region and you would need to query multiple times to get the results for all regions.

Since the release of the global discovery service there have actually been additional undocumented versions of the models added to the service. You can see those within the $metadata as Microsoft.Crm.Online.GlobalDiscoveryService.WebApi.Models.V2 and Microsoft.Crm.Online.GlobalDiscoveryService.WebApi.Models.V3 namespaces.
https://globaldisco.crm.dynamics.com/api/discovery/v1.0/$metadata

These new schema definition extends the original v1.0 schema with additional attributes. There are some especially useful as we move into this merged world of the Power Platform and Dynamics 365 CE instances and Common Data Service instances co-existing in the same tenant and now in the new administrative experience of the Power Platform Admin Center.

Within the v2.0 model there is OrganizationType, there is also Region which doesn’t provide the CRM# URL but the short label, for instance NA for CRM or North America, and CAN for CRM3 or Canada. Some other useful attributes in v2.0 depending on your use case might be IsUserSysAdmin telling you if the user being used to query the global discovery service actually is has the System Administrator role assigned or not.

The v2.0 endpoint is as simple as just switching the URL to be v2.0 instead of v1.0.
https://globaldisco.crm.dynamics.com/api/discovery/v2.0/Instances

The v3.0 endpoint while in the metadata doesn’t actually seem live currently. While the v2.0 is undocumented currently I have been successfully using it for the last few months without any issues.

The v3.0 endpoint includes some cool attributes as well especially for CDS based environments, in knowing if the calling user is Environment Maker, and is Environment Customizer. If you wanted to get the size of an environment then you could from this endpoint as well. Definitely some interesting items and hopefully it becomes available soon.

Authentication is still the same for the new versions. For details on how to authenticate to the global discovery service, acquiring and bearer token for the correct resource check out my Calling the Global Discovery Service post.