Dataverse API, Dataverse SDK, and Power Platform API sound like similar names. However, they solve different problems.

Lets understand each option using simple scenarios. Lets start with the options available for Microsoft Dataverse.

Understand the Dataverse SDK and Web API

  • Dataverse stores business data in tables. Accounts, contacts, cases, and custom tables are common examples.
  • We can work with this data using the Dataverse SDK for .NET or the Dataverse Web API.

Dataverse SDK for .NET
  • The Dataverse SDK provides .NET classes for working with Dataverse data and table definitions.
  • The Microsoft.PowerPlatform.Dataverse.Client NuGet package provides the ServiceClient class. It implements the IOrganizationService interface used by Dataverse.
  • Use the Dataverse SDK when:
    • Your application is built with .NET.
    • You want .NET classes for Dataverse requests and responses.
    • You need to create, retrieve, update, or delete Dataverse rows.
    • You need to run Dataverse messages or custom APIs.
    • You are building a Dataverse plug-in or custom workflow activity.

Note: Dataverse plug-ins use the SDK for .NET. They normally access Dataverse through IOrganizationService.

Dataverse Web API
  • The Dataverse Web API provides the same Dataverse operations through HTTP requests. It follows the OData version 4 standard.
  • The Web API uses an environment address such as https://yourorg.crm.dynamics.com/api/data/v9.2/.
  • Applications send authenticated HTTP requests to this address. The common request types are:
    • GET retrieves rows.
    • POST creates rows or calls actions.
    • PATCH updates rows.
    • DELETE deletes rows.

Use the Dataverse Web API when:

  • Your application is not built with .NET.
  • You prefer direct HTTP requests.
  • You are building an integration using JavaScript, Python, Java, or another language.
  • You do not need the .NET classes provided by the Dataverse SDK.

Now we know how to work with data inside Dataverse. Next, lets look at operations outside a single Dataverse database.

Understand the Power Platform API

  • The Power Platform API manages supported Power Platform resources. It is mainly used for administration, inventory, and governance scenarios.
  • Its base address is https://api.powerplatform.com.
  • The API groups operations into areas such as:
    • Environment management.
    • Power Apps.
    • Power Automate.
    • Copilot Studio.
    • Licensing.
    • Connections and connectors.
  • For example, the Environment Management area can return environments available to the signed-in user.
    • Use the Power Platform API when:
    • You need a list of Power Platform environments.
    • You need to inventory Power Apps or cloud flows.
    • You need supported governance or licensing operations.
    • You need a documented Copilot Studio administration operation.
    • The operation is listed in the Power Platform API reference.

Important: The Power Platform API does not provide every operation available in the maker or admin portals. Check the API reference before designing the integration.

Now lets look at the available options for using the Power Platform API from an application.

Use the Power Platform API from an Application
  • Microsoft provides the Microsoft.PowerPlatform.Management NuGet package.
  • The package provides .NET classes for supported Power Platform management operations. A C# console application can use it to list environments and access other documented resources.
  • The application requires a Microsoft Entra app registration. Add the required Power Platform API permissions to that registration.
  • For example, listing environments requires the EnvironmentManagement.Environments.Read delegated permission.
  • The signed-in user must also have permission to view the environments.
Use the REST API directly
  • The management SDK is a .NET wrapper for Power Platform API requests. Applications can also call the REST endpoints directly.
  • The application first obtains an access token from Microsoft Entra ID. The token must target https://api.powerplatform.com/.default.
  • The application then sends that token with each Power Platform API request.

Now we have seen the application options. Lets map them to common project requirements.

Choose the Correct Option

Use the Dataverse SDK for .NET
  • Choose the Dataverse SDK when a .NET application needs to work with Dataverse data.
  • Example scenarios include:
    • Create an Account row.
    • Update a Case row.
    • Query a custom table.
    • Call a Dataverse custom API.
    • Build a Dataverse plug-in.
Use the Dataverse Web API
  • Choose the Dataverse Web API when an application needs Dataverse data through HTTP.
  • Example scenarios include:
    • Query Dataverse from JavaScript.
    • Create Dataverse rows from Python.
    • Connect an external system without using the .NET SDK.
    • Use OData query options to filter returned rows.
Use the Power Platform API
  • Choose the Power Platform API when the requirement is about the wider Power Platform service.
  • Example scenarios include:
    • List environments available to a user.
    • List cloud flows in an environment.
    • Read supported Power Apps information.
    • Read tenant inventory information.
    • Perform a supported Copilot Studio administration action.

Refer to the following Microsoft documentation:

Hope this distinction helps you select the correct API 🙂

Leave a Reply

Visitors

2,226,524 hits

Top Posts

Discover more from Rajeev Pentyala – Technical Blog on Power Platform, Azure and AI

Subscribe now to keep reading and get access to the full archive.

Continue reading