Skip to content
Effect Days 2026 Get your ticket

HttpApiScalar

Scalar documentation UI for declarative HttpApi contracts.

Use this module to mount a browser-based API reference on an HttpRouter without writing or storing a separate OpenAPI file. The route renders an HTML page containing the OpenAPI document produced from the supplied HttpApi and boots Scalar in the browser.

4 exports Added in v4.0.0 Source

Layers

layer

Added in v4.0.0 Source

Mounts a Scalar API reference page for an HttpApi using the bundled Scalar script.

Details

The route serves the OpenAPI specification generated from the API at the configured path, defaulting to /docs.

Signature

declare function layer<Id extends string, Groups extends Constraint>(api: HttpApi<Id, Groups>, options?: {
readonly path?: `/${string}`;
readonly scalar?: ScalarConfig;
}): Layer<never, never, HttpRouter>

layerCdn

Added in v4.0.0 Source

Mounts a Scalar API reference page for an HttpApi that loads Scalar from jsDelivr.

Details

The route serves the OpenAPI specification generated from the API at the configured path, defaulting to /docs; version selects the Scalar package version loaded from the CDN.

Signature

declare function layerCdn<Id extends string, Groups extends Constraint>(api: HttpApi<Id, Groups>, options?: {
readonly path?: `/${string}`;
readonly scalar?: ScalarConfig;
readonly version?: string;
}): Layer<never, never, HttpRouter>

Models

ScalarConfig type

Added in v4.0.0 Source

Configuration passed to the embedded Scalar API reference UI.

Details

This configuration follows Scalar's API reference configuration: https://github.com/scalar/scalar/blob/main/documentation/configuration.md

Signature

type ScalarConfig = {
baseServerURL?: string;
customCss?: string;
customFetch?: string;
darkMode?: boolean;
defaultOpenAllTags?: boolean;
favicon?: string;
forceDarkModeState?: "dark" | "light";
hideDarkModeToggle?: boolean;
hideModels?: boolean;
hideSearch?: boolean;
hideTestRequestButton?: boolean;
layout?: "modern" | "classic";
proxyUrl?: string;
showOperationId?: boolean;
showSidebar?: boolean;
theme?: ScalarThemeId;
withDefaultFonts?: boolean;
}

ScalarThemeId type

Added in v4.0.0 Source

Theme preset identifier accepted by the Scalar API reference UI.

Signature

type ScalarThemeId = "alternate" | "default" | "moon" | "purple" | "solarized" | "bluePlanet" | "saturn" | "kepler" | "mars" | "deepSpace" | "laserwave" | "none"