XrmToolSuite.ApiDocumentationBuilder 1.2026.7.12

dotnet add package XrmToolSuite.ApiDocumentationBuilder --version 1.2026.7.12
                    
NuGet\Install-Package XrmToolSuite.ApiDocumentationBuilder -Version 1.2026.7.12
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="XrmToolSuite.ApiDocumentationBuilder" Version="1.2026.7.12" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="XrmToolSuite.ApiDocumentationBuilder" Version="1.2026.7.12" />
                    
Directory.Packages.props
<PackageReference Include="XrmToolSuite.ApiDocumentationBuilder" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add XrmToolSuite.ApiDocumentationBuilder --version 1.2026.7.12
                    
#r "nuget: XrmToolSuite.ApiDocumentationBuilder, 1.2026.7.12"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package XrmToolSuite.ApiDocumentationBuilder@1.2026.7.12
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=XrmToolSuite.ApiDocumentationBuilder&version=1.2026.7.12
                    
Install as a Cake Addin
#tool nuget:?package=XrmToolSuite.ApiDocumentationBuilder&version=1.2026.7.12
                    
Install as a Cake Tool

📘 API Documentation Builder

A read-only XrmToolBox plugin that documents a Dataverse environment's Custom APIs (parameters, response properties, binding, and backing plugin) as a redaction-safe reference and a best-effort OpenAPI 3.0-style JSON spec. It is the OpenAPI + redaction specialist of the suite — complementary to the Custom API Explorer, which browses and (confirmation-gated) invokes APIs. This tool never invokes an API: secret-named parameters are masked in examples and the spec, free-text bearer tokens and URL query strings (SAS / HTTP-trigger secrets) are stripped, and the operator can add their own redaction terms.

Features

Area What it does
Discovery Loads and documents the Custom APIs in the connected environment off the UI thread; the status shows the documented count, and the catalog carries a documented note when the tables can't be read or none are present.
Select which APIs A left panel lists every Custom API with a checkbox (none checked initially — so a selection of five means five), a Select all (n/total) toggle, and a search box that filters by unique/display name (checked state is preserved while filtering; Select all while searching applies to the filtered rows only). Preview and every export include only the checked APIs — the count in the output reflects the selection.
Real HTML preview An Open in browser button (enabled in the HTML source preview) renders the actual themed HTML page in your default browser; the source pane also pretty-prints HTML and OpenAPI JSON for readability (exports write the original bytes).
API detail For each API, documents unique/display name, operation kind (Action/Function), private flag, binding type, bound table, and backing plugin type (sourced from customapi + plugintype); missing fields degrade gracefully.
Parameters & responses Renders a request-parameter and response-property grid with name, type, and requirement; field types map to friendly labels and OpenAPI schema fragments.
Safe examples & spec Generates template request/response payloads (labelled as templates) and an OpenAPI 3.0-style spec — one POST path per API with request-body + 200-response schemas built from parameter/response metadata (best-effort, not a guaranteed live contract; the spec description says so).
Redaction safety Secret-named parameters (built-in heuristics + operator-supplied terms) get a masked sample and are annotated (format: password, x-redacted) in the spec; free-text bearer tokens and URL query strings are stripped from descriptions.

Exports

BCL-only — this tool has no export dependency chain (no ClosedXML/PdfSharp/MigraDoc). All formats are produced as plain strings using the base class library and Newtonsoft.Json, so the tool ships as a single DLL. Redaction is applied before anything is written.

Format What you get
Markdown A rendered reference with the API detail and parameter/response grids, for repos and wikis.
HTML A self-contained, theme-aware (light/dark) page with content escaped; opens offline.
JSON (raw) The raw documentation model, for programmatic use.
OpenAPI JSON The best-effort OpenAPI 3.0-style spec, for portals and codegen tooling.

Word/PDF via the sanctioned ClosedXML/PdfSharp chains are a documented future extension — this tool does not ship them today.

Help & Support

A right-aligned Help button on the toolbar opens the shared suite Help & Support dialog (Documentation, Report an issue, and a support link, each opened via Process.Start). The control implements IHelpPlugin and IGitHubPlugin, so XrmToolBox's own tool-menu links resolve to the same GitHub project (kkora/XrmToolSuite).

Build & install

This tool is a single DLL — the shared core is compiled in, so there is no ClosedXML/PdfSharp chain to ship alongside it.

Build and deploy straight into your local XrmToolBox in one step:

dotnet build src\Tools\XrmToolSuite.ApiDocumentationBuilder\XrmToolSuite.ApiDocumentationBuilder.csproj -c Release -p:DeployToXTB=true

Then restart XrmToolBox and open API Documentation Builder. For manual/other-machine installs copy only XrmToolSuite.ApiDocumentationBuilder.dll into %AppData%\MscrmTools\XrmToolBox\Plugins (flat in the Plugins root, not a subfolder), Unblock-File it, and restart. Do not copy Newtonsoft.Json.dll or any Microsoft.Xrm.* / Microsoft.Crm.* DLLs — XrmToolBox already ships them.

Full steps and troubleshooting: ./DEPLOYMENT.md and the suite-wide Deployment_Guide_XrmToolBox.md.

Usage

  1. Connect to the environment whose Custom APIs you want to document.
  2. (Optional) Add any extra redaction terms — comma/semicolon-separated name fragments for parameters your org treats as secret (added to the built-in secret/token/apikey/… heuristics); matching parameter values are masked as ***REDACTED*** in every output.
  3. Load Custom APIs — read and documented off the UI thread; they appear in the left list (unchecked).
  4. In the left panel, search and check the APIs you want (or Select all — which, while a search is active, checks just the filtered rows). The preview and exports include only the checked APIs.
  5. Preview the Markdown / HTML source / OpenAPI JSON; click Open in browser to see the rendered HTML.
  6. Export to Markdown, HTML, raw JSON, or OpenAPI JSON — redaction is applied to every output.

Notes & limitations

  • Read-only — the tool documents metadata and never invokes an API. To test-invoke a Custom API, use the Custom API Explorer.
  • BCL-only — no third-party export dependencies; the tool ships as one DLL.
  • The OpenAPI spec is best-effort from Custom API metadata, not a guaranteed live contract — the spec's own description states this.
  • Redaction masks secret-named parameters and strips bearer tokens / URL query strings, and is user-controllable, but operators should still review exports before sharing widely.
  • The SDK-free model + redaction + emitters (Api/ApiModels.cs, Api/Redactor.cs, Api/ApiDocEmitters.cs, Api/OpenApiEmitter.cs) are unit-tested (testing/UnitTests/ApiDocumentationBuilderTests.cs); the SDK collector (Api/ApiCollector.cs) and the WinForms host are manual-tested against a live connection.
  • Unavailable metadata degrades to documented notes rather than a crash; System Customizer or higher is recommended for complete results.
Product Compatible and additional computed target framework versions.
.NET Framework net48 is compatible.  net481 was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
1.2026.7.12 250 7/11/2026
1.2026.7.11 114 7/11/2026
1.2026.7.10 112 7/11/2026
1.2026.7.9 117 7/11/2026
1.2026.7.8 116 7/11/2026
1.2026.7.7 120 7/11/2026
1.2026.7.6 117 7/10/2026
1.2026.7.5 106 7/9/2026
1.2026.7.3 117 7/7/2026

1.2026.7.12: The API list now starts unchecked so preview/export include only the APIs you check (search no longer leaves hidden APIs selected).