CustomAPI tables
The data that defines custom APIs is in the following tables/entities:
The sections in this article provide detailed information about the column values you use most.
- custom API table columns
- CustomAPIRequestParameter Table Columns
- CustomAPIResponseProperty Table Columns
This diagram shows how the tables are related to these tables and others:
The relationship to the CatalogAssignment table enables using custom API with Microsoft Dataverse business events. More information: Catalog and CatalogAssignment tables.
Retrieve data about custom APIs
You can use the following queries to retrieve data about custom APIs.
More information: Query Data using the Web API
GET [Organization URI]/api/data/v9.1/customapis?$select=
uniquename,
allowedcustomprocessingsteptype,
bindingtype,
boundentitylogicalname,
description,
displayname,
executeprivilegename,
iscustomizable,
isfunction,
isprivate,
workflowsdkstepenabled
&$expand=
CustomAPIRequestParameters($select=
uniquename,
name,
description,
displayname,
type,
logicalentityname,
iscustomizable,
isoptional),
CustomAPIResponseProperties($select=
uniquename,
name,
description,
displayname,
iscustomizable,
type,
logicalentityname),
PluginTypeId($select=
plugintypeid,
typename,
version,
name,
assemblyname)
Custom API table columns
The following table includes selected columns of a custom API table that you can set.
Display Name Schema Name Logical Name |
Type | Description |
---|---|---|
Allowed Custom Processing Step TypeAllowedCustomProcessingStepType allowedcustomprocessingsteptype |
Choice Picklist |
Cannot be changed after it is saved. |
Binding TypeBindingType bindingtype |
Choice Picklist |
Cannot be changed after it is saved. |
Bound Entity Logical NameBoundEntityLogicalName boundentitylogicalname |
Text String |
The logical name of the table bound to the custom API if it isn't Global. Cannot be changed after it is saved. |
custom APICustomAPIId customapiid |
Unique Identifier Guid |
Unique Identifier for custom API instances Cannot be changed after it is saved. |
DescriptionDescription description |
Text String |
Localized description for this custom API. Use this value when the message is visible in an app. For example, as a ToolTip. |
Display NameDisplayName displayname |
Text String |
Localized display name for this custom API. Use this value when the message is visible in an app. |
Execute Privilege NameExecutePrivilegeName executeprivilegename |
Text String |
(Optional) Name of the privilege that allows execution of the custom API. See: Secure your custom API with a privilege |
Is CustomizableIsCustomizable iscustomizable |
ManagedProperty | Whether the custom API can be customized or deleted when part of a managed solution. |
Is FunctionIsFunction isfunction |
Yes/No Boolean |
Cannot be changed after it is saved. |
Is PrivateIsPrivate isprivate |
Yes/No Boolean |
|
NameName name |
Text String |
The primary name of the custom API. This value displays in the list of custom APIs when viewed in the solution. |
OwnerOwnerId ownerid |
Owner | A reference to the user or team that owns the API. |
Plugin TypePluginTypeId plugintypeid |
Lookup | A reference to the plug-in type that provides the main operation for this custom API. See: Use a plug-in to include logic in your custom API |
Unique NameUniqueName uniquename |
Text String |
Unique name for the custom API. This value is the name of the message created. This value must include a customization prefix that matches the prefix set for your solution publisher. This value can't contain any special characters. Cannot be changed after it is saved. |
Enabled for WorkflowWorkflowSdkStepEnabled workflowsdkstepenabled |
Yes/No Boolean |
Indicates if the custom API is enabled as a workflow action. See: Use a custom API in a workflow Cannot be changed after it is saved. |
CustomAPIRequestParameter Table Columns
A custom API isn't required to have any parameters. There's no specified order for the parameters. They're identified by name.
A parameter is related to a single custom API. You can't define multiple custom APIs to use the same parameter definition. You can define multiple request parameters with the same UniqueName
value if they're used by different custom APIs.
Note
If you define a bound table for your custom API, the request parameter will be generated for you. You don't need to create an input parameter for the table when the custom API is bound to a table. More information: Select a Binding Type
The following table includes columns (attributes) of the custom API Request Parameter table that you can set.
Display Name Schema Name Logical Name |
Type | Description |
---|---|---|
custom API Request ParameterCustomAPIRequestParameterId customapirequestparameterid |
Unique Identifier Guid |
Unique identifier for custom API request parameter instances. Cannot be changed after it is saved. |
custom API CustomAPIId customapiid |
Lookup | Unique identifier for the custom API that this custom API request parameter is associated with. Cannot be changed after it is saved. |
DescriptionDescription description |
Text String |
Localized description for custom API request parameter instances. Use this value when the message parameter is visible in an app. For example, as a ToolTip. |
Display Name DisplayName displayname |
Text String |
Localized display name for custom API request parameter instances. Use this value when the message parameter is visible in an app. |
Is CustomizableIsCustomizable iscustomizable |
ManagedProperty | Whether the custom API request parameter can be customized or deleted when part of a managed solution. See custom API Customization |
Is OptionalIsOptional isoptional |
Yes/No Boolean |
Indicates if the custom API request parameter is optional. If it isn't optional, it's required to pass a value for this parameter when using the message.
|
Logical Entity NameLogicalEntityName logicalentityname |
Text String |
The logical name of the table bound to the custom API request parameter. Cannot be changed after it is saved. |
NameName name |
Text String |
The primary name of the custom API request parameter. This value displays in the list of custom API request parameters when viewed in the solution. Use this value to differentiate this parameter from others that share a common Unique Name. This naming convention is recommended: {custom API Unique Name}.{Parameter UniqueName} |
Owner OwnerId ownerid |
Owner | A reference to the user or team that owns the API. |
TypeType type |
Choice Picklist |
The data type of the custom API request parameter.
|
Unique Name UniqueName uniquename |
Text String |
Unique name for the custom API request parameter. This value is the name of the parameter when you call the custom API. This value can't contain any special characters. Cannot be changed after it is saved. |
CustomAPIResponseProperty Table Columns
The object returned for your custom API message includes any response properties you define. It isn't required for a custom API Action to return any value, but it must return a value if defined as a Function.
If there's only a single Entity or EntityCollection response property defined, the response is of that type. If there are multiple parameters, or one or more parameters of a simple type, the API returns a complex type where each response property is a property of that complex type.
For example, if your custom API Unique name is sample_CustomAPIExample
, it returns a complex type named sample_CustomAPIExampleResponse
with properties for each response property you define.
The following table includes columns (attributes) of the custom API Response Property table that you can set.
Display Name Schema Name Logical Name |
Type | Description |
---|---|---|
custom API Response PropertyCustomAPIResponsePropertyId customapiresponsepropertyid |
Unique Identifier Guid |
Unique identifier for custom API response property instances. Cannot be changed after it is saved. |
custom API CustomAPIId customapiid |
Lookup | Unique identifier for the custom API that this custom API response property is associated with. Cannot be changed after it is saved. |
DescriptionDescription description |
Text String |
Localized description for custom API response property instances. Use this value when the message parameter is visible in an app. For example, as a ToolTip. |
Display Name DisplayName displayname |
Text String |
Localized display name for custom API response property instances. Use this value when the message parameter is visible in an app. |
Is CustomizableIsCustomizable iscustomizable |
ManagedProperty | Whether the custom API response property can be customized or deleted when part of a managed solution. |
Logical Entity NameLogicalEntityName logicalentityname |
Text String |
When Entity or EntityReference are selected as the Type, you can specify the logical name of the table bound to the custom API response property. You can't specify a Logical Entity Name when you choose EntityCollection as the Type. Cannot be changed after it is saved. |
NameName name |
String | The primary name of the custom API response property. This value displays in the list of custom API request parameters when viewed in the solution. Use this value to differentiate this parameter from others that share a common Unique Name. This naming convention is recommended: {custom API Unique Name}.{Property UniqueName} |
Owner OwnerId ownerid |
Owner | A reference to the user or team that owns the API. |
TypeType type |
Picklist | The data type of the custom API response property
|
Unique Name UniqueName uniquename |
Text String |
Unique name for the custom API response property. This value is the name of the parameter when you call the custom API. This value can't contain any special characters. Cannot be changed after it is saved. |
See also
Create and use custom APIs
Create a custom API using the plug-in registration tool
Create a custom API in Power Apps
Create a custom API with code
Create a custom API with solution files
Create your own messages