Rejaie
May 10, 2017
  11293
(6 votes)

Episerver CMS + Web API

During my last Episerver project, I needed to stand up a Web API endpoint to grab data from an external source. Sounds easy enough, right? Actually, it is in Episerver. One of Episerver’s greatest strengths is the code base works really well with existing ASP.NET features like Web API. In the scenario above, you can easily wire up a Web API Controller just like you would in any MVC web application. Here are the steps I followed to set up a very simple Web API controller in Episerver:

 

  1. Open your Episerver solution in Visual Studio
  2. Create an API controller named DummyApiController under the Controllers folder. From here, add an action to do something simple, such as returning the number 5.

    Image Step2-1.png

    Image Step2-2.png

  3. Create a code file named WebApiConfig.cs. This fill will contain a method called Register. This method will register the route to our custom API.

    Image Step3-1.png

  4. Add code to register your route with the application in the WebApiConfig.cs file.Image Step4-1.png
  5. Next, call the register method in the Application_Start method. You can find this method in the global.asax.cs fileImage Step5-1.png
  6. Fire up your app, and navigate to your API endpoint (http://host/app-api/getdummynumber). The request will return the number 5!Image Step6-1.png 

 

That’s it. Very, very simple. However, in this case, you will need to do a lot more in terms of security and data input validation. Hope this is helpful to you.

May 10, 2017

Comments

Robert Domingo
Robert Domingo Jan 17, 2018 08:44 PM

how come I couldn't make it work :(

Darren Sunderland
Darren Sunderland Jul 20, 2018 03:23 PM

This works when running on a development machine but when the solution is published to the DXC environment this returns a 404 error everytime.  Is there something further required to get this running in the DXC?

Sam Brooks
Sam Brooks Nov 17, 2020 06:36 PM

thanks Rejaie,

i was struggling to set up an api on an episerver website and this guide was exactly waht i was lookin for. Thanks for keeping it simple, some other examples i found were overly complicated and i was struggling to work out which part i had done wrong.

Sam

Please login to comment.
Latest blogs
Remote Debugging in Optimizely DXP: What Is Actually Possible?

Introduction At SYZYGY Techsolutions , we support Optimizely DXP projects at scale, so continuously  identifying  the right tools and approaches fo...

Mike | Apr 20, 2026

Removing Unused Properties in Optimizely CMS 13

Learn how to remove orphaned property definitions in Optimizely CMS 13. Explore API updates for IContentTypeRepository and how to safely use...

Stuart | Apr 17, 2026 |

How to Remove the "Paste formatting options" Dialog in Optimizely CMS 12

If you've upgraded from an older Optimizely CMS solution lately, you may have noticed a dialog popping up every time an editor pastes content from...

Henning Sjørbotten | Apr 17, 2026 |

Creating an admin tool - unused assets

Let's make an admin tool to clean unused assets and see how to extend your favorite CMS with custom tools and menues! We will build a tool step by...

Daniel Ovaska | Apr 15, 2026

Running Optimizely CMS on .NET 11 Preview

Learn how to run Optimizely CMS on the .NET 11 preview with a single-line change. Explore performance gains, PGO improvements, and future-proofing...

Stuart | Apr 15, 2026 |

Your Optimizely Opal Is Probably Burning Carbon It Doesn't Need To

Four patterns Optimizely practitioners could be getting wrong with Opal agents: inference levels, oversized tool responses, missing output...

Andy Blyth | Apr 15, 2026 |