<!-- mobian-agent-page publisher="dailydev" canonical="https://daily.dev/posts/swagger-ui-alternatives-in-asp-net-core-jcmocdhd8" -->

---
title: Swagger UI alternatives in ASP.NET Core | daily.dev
description: Starting with .NET 9, Swagger UI via Swashbuckle.AspNetCore is no longer included by default in new project templates, replaced by Microsoft's first-party...
canonical: https://daily.dev/posts/swagger-ui-alternatives-in-asp-net-core-jcmocdhd8
twitter:card: summary_large_image
twitter:site: @dailydotdev
og:type: website
og:site_name: daily.dev
og:title: Swagger UI alternatives in ASP.NET Core | daily.dev
og:description: Starting with .NET 9, Swagger UI via Swashbuckle.AspNetCore is no longer included by default in new project templates, replaced by Microsoft's first-party...
og:url: https://daily.dev/posts/swagger-ui-alternatives-in-asp-net-core-jcmocdhd8
og:image: https://api.daily.dev/og/posts/JCMOcDHd8.png
og:image:alt: Swagger UI alternatives in ASP.NET Core
og:image:width: 1200
og:image:height: 630
og:locale: en
---

> ## Documentation Index
> Fetch the complete documentation index at: https://daily.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# Swagger UI alternatives in ASP.NET Core

**[NikolaTech](https://daily.dev/sources/nikolatech)** · 5 min read · 0 upvotes · 0 comments

## Summary

Starting with .NET 9, Swagger UI via Swashbuckle.AspNetCore is no longer included by default in new project templates, replaced by Microsoft's first-party Microsoft.AspNetCore.OpenApi package, which generates OpenAPI JSON documents but ships with no built-in UI. Developers now need to pick a UI themselves: re-adding Swashbuckle (either fully or just its SwaggerUI package), using Scalar for a modern cross-team-friendly interface (though it lacks Azure Functions support), or ReDoc for clean documentation-focused presentation. Instructions cover installing each package, mapping endpoints, and updating launchSettings.json to auto-open the chosen UI on project launch.

## Full article

daily.dev links to this article rather than hosting it. Read it at the original source: <https://nikolatech.net/blogs/swagger-alternatives-openapi-dotnet>

## Questions this post answers

### Why is Swagger UI missing from my new ASP.NET Core project in .NET 9?

Swashbuckle.AspNetCore, which previously provided Swagger UI, is no longer included by default starting with .NET 9 project templates. Microsoft replaced it with its own Microsoft.AspNetCore.OpenApi package, which generates OpenAPI JSON documents at /openapi/v1.json but does not include a built-in UI, so a separate UI package must be added manually.

_daily.dev surfaces practical fixes like this for developers adapting to ASP.NET Core template changes._

### How do I add Scalar UI to an ASP.NET Core project using Microsoft.AspNetCore.OpenApi?

Install the Scalar.AspNetCore NuGet package, call AddOpenApi() in services, then call app.MapOpenApi() and app.MapScalarUI("v1") in the development environment block. This exposes the interactive UI at /scalar/v1, built on top of the OpenAPI document generated by Microsoft's first-party package.

_Developers comparing OpenAPI UI tools can track setup steps like this via daily.dev._

### What is the difference between Scalar and ReDoc for ASP.NET Core API documentation?

Scalar is a modern, interactive UI good for cross-team collaboration but does not currently support Azure Functions, while ReDoc is more documentation-focused than interactive, emphasizing clean layout and readability over live request testing. Both require installing a separate NuGet package and configuring middleware since Microsoft.AspNetCore.OpenApi ships without any UI.

_daily.dev helps developers weighing API documentation tools like Scalar and ReDoc stay informed._

## Similar posts on daily.dev

- [Swagger UI: Architecture, Configuration, and Enterprise Implementation Guide](https://daily.dev/posts/swagger-ui-architecture-configuration-and-enterprise-implementation-guide-kv3at3icg) · C\# Corner · 0 upvotes · 0 comments
- [Combining API versioning with OpenAPI in .NET 10 applications](https://daily.dev/posts/combining-api-versioning-with-openapi-in-net-10-applications-gmga4jjr0) · ASP.NET Blog · 25 upvotes · 0 comments
- [ASP.NET Core in .NET 10: Major Updates Across Blazor, APIs, and OpenAPI](https://daily.dev/posts/asp-net-core-in-net-10-major-updates-across-blazor-apis-and-openapi-pt3fiswfo) · InfoQ · 17 upvotes · 0 comments
- [Swagger In A Box: NPM, APIs, and Swagger Codegen](https://daily.dev/posts/swagger-in-a-box-npm-apis-and-swagger-codegen-ks4ldkveh) · Atomic Spin · 6 upvotes · 0 comments
- [What’s New in ASP.NET Core 10 for .NET 10: Key Features and Enhancements](https://daily.dev/posts/what-s-new-in-asp-net-core-10-for-net-10-key-features-and-enhancements-zal4icrde) · Syncfusion · 17 upvotes · 1 comments

---

Tags: [#.net](https://daily.dev/tags/.net), [#c#](https://daily.dev/tags/c#), [#aspnet](https://daily.dev/tags/aspnet), [#openapi](https://daily.dev/tags/openapi)

[View this post on daily.dev](https://daily.dev/posts/swagger-ui-alternatives-in-asp-net-core-jcmocdhd8)

```json
{"@context":"https://schema.org","@graph":[{"@type":"Organization","@id":"https://daily.dev/#organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180},"sameAs":["https://twitter.com/dailydotdev","https://github.com/dailydotdev","https://www.linkedin.com/company/daily-dev-ltd"]},{"@type":"WebSite","@id":"https://daily.dev/#website","url":"https://daily.dev","name":"daily.dev","publisher":{"@id":"https://daily.dev/#organization"},"potentialAction":{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https://daily.dev/search?q={search_term_string}"},"query-input":"required name=search_term_string"}}]}
{"@context":"https://schema.org","@type":"TechArticle","headline":"Swagger UI alternatives in ASP.NET Core","url":"https://daily.dev/posts/swagger-ui-alternatives-in-asp-net-core-jcmocdhd8","mainEntityOfPage":{"@type":"WebPage","@id":"https://daily.dev/posts/swagger-ui-alternatives-in-asp-net-core-jcmocdhd8"},"datePublished":"2026-10-04T13:07:31.772Z","dateModified":"2026-10-04T13:17:23.310Z","description":"Starting with .NET 9, Swagger UI via Swashbuckle.AspNetCore is no longer included by default in new project templates, replaced by Microsoft's first-party...","image":"https://media.daily.dev/image/upload/f_auto,q_auto/v1/posts/102bb780c652c2b2d4f264487c803483?_a=AQAEuop","thumbnailUrl":"https://media.daily.dev/image/upload/f_auto,q_auto/v1/posts/102bb780c652c2b2d4f264487c803483?_a=AQAEuop","isAccessibleForFree":true,"articleSection":"NikolaTech","inLanguage":"en","publisher":{"@type":"Organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180}},"author":{"@type":"Organization","name":"NikolaTech","logo":"https://media.daily.dev/image/upload/s--1h2fO6FL--/f_auto,q_auto/v1791119050/logos/nikolatech?_a=BAMAMicg0","url":"https://daily.dev/sources/nikolatech"},"commentCount":0,"discussionUrl":"https://daily.dev/posts/swagger-ui-alternatives-in-asp-net-core-jcmocdhd8","interactionStatistic":[{"@type":"InteractionCounter","interactionType":{"@type":"LikeAction"},"userInteractionCount":0},{"@type":"InteractionCounter","interactionType":{"@type":"CommentAction"},"userInteractionCount":0}],"keywords":".net,c#,aspnet,openapi","timeRequired":"PT5M"}
{"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https://daily.dev"},{"@type":"ListItem","position":2,"name":"NikolaTech","item":"https://daily.dev/sources/nikolatech"},{"@type":"ListItem","position":3,"name":"Swagger UI alternatives in ASP.NET Core"}]}
{"@context":"https://schema.org","@type":"FAQPage","@id":"https://daily.dev/posts/swagger-ui-alternatives-in-asp-net-core-jcmocdhd8#faq","mainEntity":[{"@type":"Question","name":"Why is Swagger UI missing from my new ASP.NET Core project in .NET 9?","acceptedAnswer":{"@type":"Answer","text":"Swashbuckle.AspNetCore, which previously provided Swagger UI, is no longer included by default starting with .NET 9 project templates. Microsoft replaced it with its own Microsoft.AspNetCore.OpenApi package, which generates OpenAPI JSON documents at /openapi/v1.json but does not include a built-in UI, so a separate UI package must be added manually. daily.dev surfaces practical fixes like this for developers adapting to ASP.NET Core template changes."}},{"@type":"Question","name":"How do I add Scalar UI to an ASP.NET Core project using Microsoft.AspNetCore.OpenApi?","acceptedAnswer":{"@type":"Answer","text":"Install the Scalar.AspNetCore NuGet package, call AddOpenApi() in services, then call app.MapOpenApi() and app.MapScalarUI(\"v1\") in the development environment block. This exposes the interactive UI at /scalar/v1, built on top of the OpenAPI document generated by Microsoft's first-party package. Developers comparing OpenAPI UI tools can track setup steps like this via daily.dev."}},{"@type":"Question","name":"What is the difference between Scalar and ReDoc for ASP.NET Core API documentation?","acceptedAnswer":{"@type":"Answer","text":"Scalar is a modern, interactive UI good for cross-team collaboration but does not currently support Azure Functions, while ReDoc is more documentation-focused than interactive, emphasizing clean layout and readability over live request testing. Both require installing a separate NuGet package and configuring middleware since Microsoft.AspNetCore.OpenApi ships without any UI. daily.dev helps developers weighing API documentation tools like Scalar and ReDoc stay informed."}}]}
```

