Deane Barker
May 9, 2014
visibility 4058
star star star star star star
(2 votes)

EPiServer License Data Exporter

EPiServer recently released an API for their license data.  The idea is that you can export license information from EPiServer and bring it down to your own infrastructure to query and otherwise manipulate it.

I had been asking for something like it for years, starting with this blog post: "Why Your App Needs Automated Data Export." In that post, I complained (nicely) about both EPiServer and Insightly, a CRM my company uses.

After that post, Insightly created their API, and it was awesome in its simplicity – it just gave you a basic bulk export, from which you could do anything.  The idea is that your local tools are better at querying and data manipulation than a web-based system, so if I can just get this data down to my local machine, I’m better off.

EPiServer was finally able to take a run at this system, and I worked with the internal team on it. I explained what I was looking for, and they responded with exactly what I asked for: simple, API-driven, bulk export.  It’s not complicated and it works beautifully.

I adapted a library that I wrote for Insightly to download the data and populate SQL database.  It’s now on Github:

EPiServer License Data Exporter

Provide an API key and a connection string, and this command line utility will populate a local SQL Server database with all your license information, enabling you to develop reporting around that information.  It’s extensible as well – all the objects are run through “mapping objects” with properties that use XPath to extract data.  It should be awfully easy for any .Net developer to figure out.

I hope you get some value out of it, and I welcome pull requests if you have changes.

May 09, 2014

Comments

error Please login to comment.
Latest blogs
Composition Over Inheritance: Why Your Content Contract Is Not a Base Class

Inside the structural conformance pattern in SaaS CMS — from server-side inheritance to pipeline governance. A contract in Optimizely SaaS CMS is...

Vipin Banka | Sep 19, 2026

Optimizely Opti ID Integration: Why the API Key Was Missing from the DXP Management Portal

While working on an Optimizely CMS 12 Opti ID integration recently, we ran into an issue that initially appeared to be related to SSO authenticatio...

Madhu | Sep 18, 2026 |

Extending a Contract: What You Can Override

Contracts share fields across content types — but not every field setting can be overridden. Push the same contract onto several components, and CM...

Chirag Khanna | Sep 18, 2026 |

Building a Blazor Server UI Inside the Optimizely CMS 13 Admin Shell

What I learned shipping a Blazor Server UI inside Optimizely CMS 13 — Razor components in a NuGet package, the Blazor hub next to MapContent(),...

Stanisław Szołkowski | Sep 17, 2026 |