Skip to content

Tools Custom APIs

Ryan James edited this page Aug 17, 2026 · 2 revisions

Custom APIs tools

This page is generated from the code by scripts/gen_wiki_tools.py — do not edit by hand.

13 tools · category token customapis · enable with DATAVERSE_TOOLS=customapis (unset enables every category)

Tool-Index · Home

Write tools additionally require DATAVERSE_ALLOW_WRITE=true; delete tools require DATAVERSE_ALLOW_DELETE=true.


dataverse_create_custom_api

Write · non-idempotent · category customapis

Create a new Custom API record and return its GUID.

Required: uniquename (include publisher prefix, immutable after creation), name (display name). Optional: displayname, description, binding_type (0=Global, 1=Entity, 2=EntityCollection; default 0), is_function (bool, default false), is_private (bool, default false), allowed_custom_processing_step_type (0=None, 1=AsyncOnly, 2=SyncAndAsync; default 0), bound_entity_logical_name (required when binding_type is 1 or 2).

Note: uniquename, binding_type, is_function, allowed_custom_processing_step_type, and bound_entity_logical_name are immutable after creation — choose carefully. Requires DATAVERSE_ALLOW_WRITE=true.

Param Type Req Default Notes
dataverse_url str yes Required Dataverse organization URL for this request (e.g., 'https://yourorg.crm.dynamics.com').
uniquename str yes Unique name for the Custom API. Must include a publisher prefix (e.g., 'contoso_MyCustomAction'). This value is immutable after creation. (min_len=1)
name str yes Display name for the Custom API. (min_len=1)
displayname str | None no None Localizable display name for the Custom API. Defaults to name when omitted.
description str | None no None Description of the Custom API.
binding_type int no 0 Binding type for the Custom API (immutable after creation). 0=Global (default), 1=Entity, 2=EntityCollection. (ge=0, le=2)
is_function bool no False When True, the Custom API is a Function (GET-style, appears in $metadata). When False (default), it is an Action (POST-style). Immutable after creation.
is_private bool no False When True, the Custom API is hidden from $metadata and not discoverable by external callers. Defaults to False.
allowed_custom_processing_step_type int no 0 Controls which plug-in processing step types may be registered (immutable after creation). 0=None (default), 1=AsyncOnly, 2=SyncAndAsync. (ge=0, le=2)
bound_entity_logical_name str | None no None Logical name of the bound entity (e.g., 'account'). Required when binding_type is 1 (Entity) or 2 (EntityCollection). Immutable after creation.

Returns {"created": ..., "id": ...}. Errors return {"error": true, "message": "..."}.


dataverse_create_custom_api_request_parameter

Write · non-idempotent · category customapis

Create a new request parameter for a Custom API and return its GUID.

Required: custom_api_id (GUID of the parent Custom API, immutable), uniquename (immutable after creation), type (int, immutable; 0=Boolean, 1=DateTime, 2=Decimal, 3=Entity, 4=EntityCollection, 5=EntityReference, 6=Float, 7=Integer, 8=Money, 9=Picklist, 10=String, 11=StringArray, 12=Guid), name (display name). Optional: displayname, description, is_optional (bool, default false). Requires DATAVERSE_ALLOW_WRITE=true.

Param Type Req Default Notes
dataverse_url str yes Required Dataverse organization URL for this request (e.g., 'https://yourorg.crm.dynamics.com').
custom_api_id str yes GUID of the parent Custom API. This value is immutable after creation.
uniquename str yes Unique name for the parameter within the Custom API (e.g., 'Target'). Immutable after creation. (min_len=1)
type int yes Data type for the parameter (immutable after creation). 0=Boolean, 1=DateTime, 2=Decimal, 3=Entity, 4=EntityCollection, 5=EntityReference, 6=Float, 7=Integer, 8=Money, 9=Picklist, 10=String, 11=StringArray, 12=Guid. (ge=0, le=12)
name str yes Display name for the request parameter. (min_len=1)
displayname str | None no None Localizable display name. Defaults to name when omitted.
description str | None no None Description of the request parameter.
is_optional bool no False When True, this parameter is optional for callers. Defaults to False.

Returns {"created": ..., "id": ...}. Errors return {"error": true, "message": "..."}.


dataverse_create_custom_api_response_property

Write · non-idempotent · category customapis

Create a new response property for a Custom API and return its GUID.

Required: custom_api_id (GUID of the parent Custom API, immutable), uniquename (immutable after creation), type (int, immutable; 0=Boolean, 1=DateTime, 2=Decimal, 3=Entity, 4=EntityCollection, 5=EntityReference, 6=Float, 7=Integer, 8=Money, 9=Picklist, 10=String, 11=StringArray, 12=Guid), name (display name). Optional: displayname, description. Requires DATAVERSE_ALLOW_WRITE=true.

Param Type Req Default Notes
dataverse_url str yes Required Dataverse organization URL for this request (e.g., 'https://yourorg.crm.dynamics.com').
custom_api_id str yes GUID of the parent Custom API. This value is immutable after creation.
uniquename str yes Unique name for the response property within the Custom API (e.g., 'Result'). Immutable after creation. (min_len=1)
type int yes Data type for the response property (immutable after creation). 0=Boolean, 1=DateTime, 2=Decimal, 3=Entity, 4=EntityCollection, 5=EntityReference, 6=Float, 7=Integer, 8=Money, 9=Picklist, 10=String, 11=StringArray, 12=Guid. (ge=0, le=12)
name str yes Display name for the response property. (min_len=1)
displayname str | None no None Localizable display name. Defaults to name when omitted.
description str | None no None Description of the response property.

Returns {"created": ..., "id": ...}. Errors return {"error": true, "message": "..."}.


dataverse_delete_custom_api

Delete · idempotent · category customapis

Permanently delete a Custom API record by its GUID.

This is irreversible and also cascades to delete all associated request parameters and response properties. Managed Custom APIs cannot be deleted directly — uninstall via the parent solution. Requires DATAVERSE_ALLOW_DELETE=true.

Param Type Req Default Notes
dataverse_url str yes Required Dataverse organization URL for this request (e.g., 'https://yourorg.crm.dynamics.com').
custom_api_id str yes GUID of the Custom API record to delete (e.g., 'a1b2c3d4-1234-5678-abcd-ef0123456789').

Returns {"deleted": ..., "id": ...}. Errors return {"error": true, "message": "..."}.


dataverse_delete_custom_api_request_parameter

Delete · idempotent · category customapis

Permanently delete a Custom API request parameter by its GUID.

This is irreversible. The parent Custom API is not affected. Requires DATAVERSE_ALLOW_DELETE=true.

Param Type Req Default Notes
dataverse_url str yes Required Dataverse organization URL for this request (e.g., 'https://yourorg.crm.dynamics.com').
request_parameter_id str yes GUID of the Custom API request parameter record to delete (e.g., 'a1b2c3d4-1234-5678-abcd-ef0123456789').

Returns {"deleted": ..., "id": ...}. Errors return {"error": true, "message": "..."}.


dataverse_delete_custom_api_response_property

Delete · idempotent · category customapis

Permanently delete a Custom API response property by its GUID.

This is irreversible. The parent Custom API is not affected. Requires DATAVERSE_ALLOW_DELETE=true.

Param Type Req Default Notes
dataverse_url str yes Required Dataverse organization URL for this request (e.g., 'https://yourorg.crm.dynamics.com').
response_property_id str yes GUID of the Custom API response property record to delete (e.g., 'a1b2c3d4-1234-5678-abcd-ef0123456789').

Returns {"deleted": ..., "id": ...}. Errors return {"error": true, "message": "..."}.


dataverse_get_custom_api

Read · idempotent · category customapis

Retrieve a single Custom API record by its GUID, including expanded request parameters and response properties.

Returns all default columns plus:

  • CustomAPIRequestParameters (customapirequestparameterid, uniquename, name, type, isoptional)
  • CustomAPIResponseProperties (customapiresponsepropertyid, uniquename, name, type) The @odata.context key is stripped from the response.
Param Type Req Default Notes
dataverse_url str yes Required Dataverse organization URL for this request (e.g., 'https://yourorg.crm.dynamics.com').
custom_api_id str yes GUID of the Custom API record to retrieve (e.g., 'a1b2c3d4-1234-5678-abcd-ef0123456789').

Returns {"custom_api": ...}. Errors return {"error": true, "message": "..."}.


dataverse_list_custom_api_request_parameters

Read · idempotent · category customapis

List request parameter records for a Custom API.

Filters by custom_api_id (GUID) to return only parameters belonging to that Custom API. Returns customapirequestparameterid, uniquename, name, displayname, type, isoptional for each record. Type enum: 0=Boolean, 1=DateTime, 2=Decimal, 3=Entity, 4=EntityCollection, 5=EntityReference, 6=Float, 7=Integer, 8=Money, 9=Picklist, 10=String, 11=StringArray, 12=Guid. An optional OData filter expression can further narrow results.

Param Type Req Default Notes
dataverse_url str yes Required Dataverse organization URL for this request (e.g., 'https://yourorg.crm.dynamics.com').
custom_api_id str yes GUID of the parent Custom API whose request parameters to list.
filter str | None no None Additional OData $filter expression to narrow results (e.g., "isoptional eq true"). The parent Custom API filter is always applied automatically.
top int no 50 Maximum number of records to return (1–5000). (ge=1, le=5000)

Returns {"request_parameters": ..., "count": ..., "has_more": ...}. Errors return {"error": true, "message": "..."}.


dataverse_list_custom_api_response_properties

Read · idempotent · category customapis

List response property records for a Custom API.

Filters by custom_api_id (GUID) to return only properties belonging to that Custom API. Returns customapiresponsepropertyid, uniquename, name, displayname, type for each record. Type enum: 0=Boolean, 1=DateTime, 2=Decimal, 3=Entity, 4=EntityCollection, 5=EntityReference, 6=Float, 7=Integer, 8=Money, 9=Picklist, 10=String, 11=StringArray, 12=Guid. An optional OData filter expression can further narrow results.

Param Type Req Default Notes
dataverse_url str yes Required Dataverse organization URL for this request (e.g., 'https://yourorg.crm.dynamics.com').
custom_api_id str yes GUID of the parent Custom API whose response properties to list.
filter str | None no None Additional OData $filter expression to narrow results (e.g., "type eq 10"). The parent Custom API filter is always applied automatically.
top int no 50 Maximum number of records to return (1–5000). (ge=1, le=5000)

Returns {"response_properties": ..., "count": ..., "has_more": ...}. Errors return {"error": true, "message": "..."}.


dataverse_list_custom_apis

Read · idempotent · category customapis

List Custom API records in the Dataverse environment.

Returns customapiid, uniquename, name, displayname, bindingtype, isfunction, isprivate, and allowedcustomprocessingsteptype for each record. Use the optional filter parameter to narrow results with an OData $filter expression (e.g., "isprivate eq false", "isfunction eq true"). bindingtype: 0=Global, 1=Entity, 2=EntityCollection. allowedcustomprocessingsteptype: 0=None, 1=AsyncOnly, 2=SyncAndAsync. Use dataverse_get_custom_api to fetch expanded request parameters and response properties for a specific Custom API.

Param Type Req Default Notes
dataverse_url str yes Required Dataverse organization URL for this request (e.g., 'https://yourorg.crm.dynamics.com').
filter str | None no None OData $filter expression to narrow results. Use lowercase logical names (e.g., "isprivate eq false", "isfunction eq true", "bindingtype eq 0").
top int no 50 Maximum number of Custom API records to return (1–5000). (ge=1, le=5000)

Returns {"custom_apis": ..., "count": ..., "has_more": ...}. Errors return {"error": true, "message": "..."}.


dataverse_update_custom_api

Write · idempotent · category customapis

Partially update a Custom API record (PATCH) — only mutable fields.

Mutable fields: name, displayname, description, is_private, execute_privilege_name. Provide custom_api_id and at least one of the mutable fields. Immutable fields (uniquename, bindingtype, isfunction, allowedcustomprocessingsteptype, boundentitylogicalname) cannot be changed after creation. Requires DATAVERSE_ALLOW_WRITE=true.

Param Type Req Default Notes
dataverse_url str yes Required Dataverse organization URL for this request (e.g., 'https://yourorg.crm.dynamics.com').
custom_api_id str yes GUID of the Custom API record to update.
name str | None no None Updated display name.
displayname str | None no None Updated localizable display name.
description str | None no None Updated description.
is_private bool | None no None When provided, sets the isprivate flag.
execute_privilege_name str | None no None Privilege name required to execute the Custom API (e.g., 'prvMyPrivilege'). Set to an empty string to clear.

Returns {"updated": ..., "id": ...}. Errors return {"error": true, "message": "..."}.


dataverse_update_custom_api_request_parameter

Write · idempotent · category customapis

Partially update a Custom API request parameter (PATCH) — mutable fields only.

Mutable fields: name, displayname, description, is_optional. Provide request_parameter_id and at least one mutable field. Immutable fields (uniquename, customapiid, type, logicalentityname) cannot be changed. Requires DATAVERSE_ALLOW_WRITE=true.

Param Type Req Default Notes
dataverse_url str yes Required Dataverse organization URL for this request (e.g., 'https://yourorg.crm.dynamics.com').
request_parameter_id str yes GUID of the Custom API request parameter record to update.
name str | None no None Updated display name.
displayname str | None no None Updated localizable display name.
description str | None no None Updated description.
is_optional bool | None no None When provided, updates the isoptional flag.

Returns {"updated": ..., "id": ...}. Errors return {"error": true, "message": "..."}.


dataverse_update_custom_api_response_property

Write · idempotent · category customapis

Partially update a Custom API response property (PATCH) — mutable fields only.

Mutable fields: name, displayname, description. Provide response_property_id and at least one mutable field. Immutable fields (uniquename, customapiid, type, logicalentityname) cannot be changed. Requires DATAVERSE_ALLOW_WRITE=true.

Param Type Req Default Notes
dataverse_url str yes Required Dataverse organization URL for this request (e.g., 'https://yourorg.crm.dynamics.com').
response_property_id str yes GUID of the Custom API response property record to update.
name str | None no None Updated display name.
displayname str | None no None Updated localizable display name.
description str | None no None Updated description.

Returns {"updated": ..., "id": ...}. Errors return {"error": true, "message": "..."}.


Clone this wiki locally