Open-source offline-first API platform and Postman alternative that turns OpenAPI specs into interactive documentation and local request runners.
Founders Marc Laventure and Cameron Rohani started Scalar in 2023 to bridge static API documentation and request testing. Rather than forcing developers into proprietary cloud workspaces, they built an interface that renders interactive references and executes HTTP calls directly. Today, the project delivers a unified desktop and self-hosted platform where teams inspect and test APIs entirely on local infrastructure.
Postman shifted from a local utility to a cloud ecosystem requiring user accounts, syncing collections to external servers, and gating collaboration behind subscriptions. For organizations handling confidential internal endpoints, staging credentials, or health data, that cloud requirement introduces compliance risks and data exposure. Scalar operates as an offline-first desktop application and embeddable reference that executes requests locally on your machine or private network. It stores variables, environments, and history on local disk, keeping authentication tokens within company boundaries.
The trade-off is workflow scope. Postman provides automated collection runners via Newman, complex pre-request scripts, and multi-step integration assertions. Scalar stays anchored to the OpenAPI specification, transforming any OpenAPI or Swagger document into an exploratory sandbox without custom collection migrations. You lose Postman's CI scripting and enterprise workspace governance, but you avoid per-seat fees, eliminate vendor lock-in, and retain full ownership over API traffic.
proxy.scalar.com by default to bypass browser CORS rules, requiring explicit configuration or a self-hosted proxy for private traffic.Is Scalar free for commercial use? Yes. Scalar carries an MIT license with no commercial restrictions, allowing companies to self-host documentation and deploy the desktop client across teams without fees.
Scalar vs Postman — which should I choose? Choose Postman for automated regression suites, Newman CI runners, and cloud team workspaces. Choose Scalar for local privacy, standard OpenAPI definitions, and an offline client requiring no user accounts.
Can I run Scalar entirely on internal networks without internet access? Yes. The desktop client operates completely offline, and the web library can be served as an on-premises package alongside internal API servers.
Scalar is the right choice when your team wants clean, interactive API documentation and an offline request runner without sending telemetry or tokens to a vendor cloud; it is not the tool for organizations whose deployment pipelines depend on scripted Newman test suites. Active maintenance through September 2026 and an MIT license that permits unconstrained embedding into internal and customer-facing products make it a reliable foundation for privacy-focused API workflows.
Commands from the official package registries. Each package is matched to Scalar through the registry's own link to its source code or website.
winget install --id APIDocumentation.Scalar -eWe started this exact setup from scratch in a clean Linux machine on Nov 1, 2026 and checked it through Scalar's own API: every check passed. Recipes are re-checked regularly and removed if they stop working.
mkdir -p scalar && cd scalar
curl -fsSL https://open-source.store/tools/scalar/compose.yml -o compose.ymltouch .envdocker compose up -dservices:
api-reference:
image: scalarapi/api-reference:0.6.21
ports:
- "8080:8080"
volumes:
- ./docs:/docs:ro
restart: unless-stopped
healthcheck:
test: ["CMD", "wget", "-q", "-O", "/dev/null", "http://localhost:8080/health"]
interval: 5s
timeout: 5s
retries: 5
Free IDE for Java, Kotlin, Go, TypeScript and Python. Built on IntelliJ Community, fully open source, 300+ plugins.
Show that Scalar is listed as an open-source alternative. Paste into your README:
Ubuntu 24.04 · Apple container, Docker 29.1.3, Compose 2.40.3+ds1-0ubuntu1~24.04.1. Images pulled in 46 s: scalarapi/api-reference:0.6.21.
Based on the upstream setup. Official compose example. Image pinned to 0.6.21; healthcheck added.
api-reference-1 | 2026-11-01T09:19:44.404006471Z Scanning for OpenAPI and AsyncAPI documents in: /docs
api-reference-1 | 2026-11-01T09:19:44.405043013Z No documents found
api-reference-1 | 2026-11-01T09:19:44.405314263Z ✓ Configuration generated from the mounted OpenAPI documents.
api-reference-1 | 2026-11-01T09:19:44.422745346Z {"level":"info","ts":1793524784.4226575,"msg":"maxprocs: Leaving GOMAXPROCS=2: CPU quota undefined"}
api-reference-1 | 2026-11-01T09:19:44.422762346Z {"level":"info","ts":1793524784.4226675,"msg":"GOMEMLIMIT is updated","GOMEMLIMIT":3820057804,"previous":9223372036854775807}
api-reference-1 | 2026-11-01T09:19:44.422763679Z {"level":"info","ts":1793524784.42267,"msg":"using config from file","file":"/etc/caddy/Caddyfile"}
api-reference-1 | 2026-11-01T09:19:44.422764471Z {"level":"info","ts":1793524784.422671,"msg":"adapted config to JSON","adapter":"caddyfile"}
api-reference-1 | 2026-11-01T09:19:44.422765179Z {"level":"warn","ts":1793524784.4226723,"logger":"admin","msg":"admin endpoint disabled"}
api-reference-1 | 2026-11-01T09:19:44.422795971Z {"level":"info","ts":1793524784.422727,"logger":"http.auto_https","msg":"automatic HTTPS is completely disabled for server","server_name":"srv0"}
api-reference-1 | 2026-11-01T09:19:44.422990679Z {"level":"info","ts":1793524784.4229696,"logger":"tls.cache.maintenance","msg":"started background certificate maintenance","cache":"0x767814f40300"}
api-reference-1 | 2026-11-01T09:19:44.423234138Z {"level":"warn","ts":1793524784.4232025,"logger":"http","msg":"HTTP/2 skipped because it requires TLS","network":"tcp","addr":":8080"}
api-reference-1 | 2026-11-01T09:19:44.423253138Z {"level":"warn","ts":1793524784.4232411,"logger":"http","msg":"HTTP/3 skipped because it requires TLS","network":"tcp","addr":":8080"}
api-reference-1 | 2026-11-01T09:19:44.423256471Z {"level":"info","ts":1793524784.4232492,"logger":"http.log","msg":"server running","name":"srv0","protocols":["h1","h2","h3"]}
api-reference-1 | 2026-11-01T09:19:44.423738888Z {"level":"info","ts":1793524784.423706,"msg":"autosaved config (load with --resume flag)","file":"/config/caddy/autosave.json"}
api-reference-1 | 2026-11-01T09:19:44.423760221Z {"level":"info","ts":1793524784.423749,"msg":"serving initial configuration"}
api-reference-1 | 2026-11-01T09:19:44.425109638Z {"level":"info","ts":1793524784.4250727,"logger":"tls","msg":"cleaning storage unit","storage":"FileStorage:/data/caddy"}
api-reference-1 | 2026-11-01T09:19:44.425685513Z {"level":"info","ts":1793524784.425646,"logger":"tls","msg":"finished cleaning storage units"}