---
title: API Explorer
---
API Explorer is a Postman & Swagger UI alternative built into every ServiceStack **v6+** App that lets you explore, discover & call your APIs with an Auto UI dynamically generated from your APIs typed C# classes.
It's built from the ground up with multiple levels of customizations, supporting both declarative & programmatic models for customizing each properties Input UI control, each APIs form grid layout whilst also providing the ability to provide rich interactive HTML Components to document each of your APIs & their Types.
This video provides a quick overview of API Explorer's v1 featureset:
Lets learn about each feature with screenshots 📷
If your AppHost has the ServiceStack [AuthFeature](/auth/authentication-and-authorization) plugin registered, the home page will display a **Sign In** dialog based on the its **configured Auth Providers**. This is what you'll see in a new [Vue Vite](https://blazor-vue.web-templates.io/ui) project which has **Credentials** Auth, **JWT** as well as **Facebook**, **Google** and **Microsoft** OAuth providers registered in `Configure.Auth.cs`: ```csharp Plugins.Add(new AuthFeature(() => new CustomUserSession(), new IAuthProvider[] { new JwtAuthProvider(appSettings) { AuthKeyBase64 = appSettings.GetString("AuthKeyBase64"), }, new CredentialsAuthProvider(appSettings), new FacebookAuthProvider(appSettings), new GoogleAuthProvider(appSettings), new MicrosoftGraphAuthProvider(appSettings), }) { IncludeDefaultLogin = false }); ``` ## Integrated Sign In Where it will dynamically render the **Sign Up** form with the App's enabled Auth capabilities.
Custom Auth Providers can provide their own Form Layout by overriding the `FormLayout`, e.g. the above Credentials UI is creatable with:
```csharp
public class CustomCredentialsAuthProvider : CredentialsAuthProvider
{
public CustomCredentialsAuthProvider()
{
FormLayout = new() {
Input.For
If you'd like to, you can add personalized links for users in different roles, e.g. this is what's used to populate the above UI for Admins:
```csharp
appHost.AddToAppMetadata(meta =>
{
meta.Plugins.Auth.RoleLinks[RoleNames.Admin] = new List
Control types are based on the property types in your DTOs.
| UI Input | Data Types |
| ----------------------- | ---------- |
| `