Scalar vs. Zuplo
Zuplo is an API gateway where your API traffic flows through their infrastructure. They handle proxying, rate limiting, authentication, and monetization and also provide a developer portal for documentation.
Scalar takes a different approach: it lives alongside your API without touching your traffic, focusing on documentation and developer tools. When you migrate your developer portal from Zuplo to Scalar, you unlock a suite of tools to enhance your API experience:
- Scalar API Client: A modern, open-source API testing client for Windows, macOS and Linux
- Scalar SDKs: Generate type-safe client libraries in TypeScript, Python, Golang, and more
- Spectral Linting: Validate and lint your OpenAPI documents with Spectral rules
- Scalar Mock Server: Spin up a fully-functional mock server from your OpenAPI document for frontend development and testing
- Open-Source: Most of our packages are fully open-source, self-hosting is easy
Scalar is trusted by thousands of developers worldwide, with over 13,000 GitHub stars, millions of npm downloads, and official integrations for all the frameworks including Express, Fastify, Hono, NestJS, Next.js, Nuxt, ASP.NET Core, FastAPI, and more.
Zuplo and Scalar serve different purposes and can be used together. Keep Zuplo as your API gateway (rate limiting, authentication, monetization) while using Scalar for superior documentation and developer tooling - your API traffic can continue to flow through Zuplo.
Pricing
Scalar offers a more accessible entry point with a free tier and simpler pricing compared to Zuplo.
| Plan | Scalar | Zuplo |
|---|---|---|
| Free | ✓ | limited requests |
| Paid | $24/user/month | usage-based |
| Enterprise | custom pricing | custom pricing |
- Scalar pricing is user-based (documentation platform), while Zuplo pricing is request-based (gateway usage)
- Scalar has a generous free tier for documentation that doesn't depend on API traffic
- For teams focused on documentation, Scalar provides predictable and often lower costs
For detailed pricing information, visit Scalar Pricing and Zuplo Pricing.
Feature Comparison
| Feature | Scalar | Zuplo Developer Portal |
|---|---|---|
| Specification Support | ||
| OpenAPI 3.0 | ✓ | ✓ |
| OpenAPI 3.1 | ✓ | ✓ |
| OpenAPI 3.2 | in progress | |
| Documentation | ||
| API Reference | ✓ | ✓ |
| API Client | ✓ | ✓ |
| Unified Search | ✓ | ✓ |
| Markdown Guides | ✓ | ✓ |
| Customization | ||
| Custom Domain | ✓ | ✓ |
| Custom Styling (CSS) | ✓ | ✓ |
| Built-in Themes | 11 themes | limited |
| Remove "Powered by" Branding | ✓ | enterprise-only |
| Custom CSS & JS | ✓ | ✓ |
| Developer Tools | ||
| Desktop API Client | ✓ | |
| SDK Generation | Yes (8 languages) | |
| Mock Server | ✓ | ✓ |
| Spectral Linting | ✓ | |
| Code Snippet Generation | 25+ languages | limited |
| Integrations | ||
| GitHub Sync | ✓ | ✓ |
| CLI | ✓ | ✓ |
| API | ✓ | ✓ |
| Framework Integrations | all frameworks | limited |
| Open Source | ||
| Self-hostable | ✓ | ✓ |
| Community | ||
| GitHub Stars | 13K+ | 400+ |
| npm Downloads | 100K/week | 8K/week |
| PRs merged (2025) | 2,075 | 973 |
| Discord | discord.gg/scalar |
Scalar SDKs
Generate type-safe client libraries from your OpenAPI documents. Scalar supports SDK generation in multiple languages:
| Language | Status |
|---|---|
| TypeScript | Available |
| Python | Available |
| Go | Available |
| Java | Available |
| PHP | Available |
| Ruby | Available |
| Swift | Available |
| C# | Available |
SDKs sync with your API documentation, so whenever you update your OpenAPI document, your SDKs stay up to date. Learn more in our SDK documentation.
Framework Integrations
Scalar provides official integrations for all major web frameworks, making it easy to add API documentation to any stack:
| Framework | Available |
|---|---|
| Express | ✓ |
| Fastify | ✓ |
| Hono | ✓ |
| NestJS | ✓ |
| Next.js | ✓ |
| Nuxt | ✓ |
| SvelteKit | ✓ |
| Docusaurus | ✓ |
| Astro | ✓ |
| ASP.NET Core | ✓ |
| .NET Aspire | ✓ |
| FastAPI | ✓ |
| Django Ninja | ✓ |
| Spring (Java) | ✓ |
| Docker | ✓ |
All integrations are actively maintained and follow the same configuration patterns, making it easy to switch between frameworks or use Scalar across multiple services.
Spectral linting
Validate and lint your OpenAPI documents using Spectral rules. Spectral rules can be managed in the Scalar Registry alongside your OpenAPI documents and JSON Schemas.
API prototyping
Spin up a fully-functional mock server from your OpenAPI document. The mock server automatically generates realistic API responses based on your schemas—perfect for frontend development, API prototyping, and integration testing:
npx @scalar/cli document mock openapi.json --watch
Alternatively, run it in a Docker container or integrate it directly into your Node.js application. Learn more in the Scalar Mock Server documentation.
Migrate from Zuplo to Scalar
Migrating your developer portal from Zuplo to Scalar is straightforward since both platforms are OpenAPI-native. Your OpenAPI documents will transfer cleanly, and you can continue using Zuplo's gateway features while leveraging Scalar for superior documentation and developer tooling.
Step 1: Export OpenAPI from Zuplo
Zuplo stores your API configuration in OpenAPI format. To export your OpenAPI document:
- Navigate to your Zuplo project dashboard
- Go to your project's Routes or OpenAPI section
- Locate the
routes.oas.jsonfile (or similar OpenAPI document) - Download or copy the OpenAPI JSON/YAML file
Zuplo uses vendor extensions like x-zuplo-route, x-zuplo-path, and x-zuplo-route for gateway-specific configuration. Scalar will ignore these extensions but won't break—they're simply not used for documentation purposes.
If you have multiple OpenAPI files in Zuplo (split across different files), you'll need to export each one separately or merge them into a single document.
Step 2: Create a Scalar Account
Scalar has a free tier, and you can get quite a lot done with it. No credit card needed or gimmick trials that are hard to cancel, just register over here.
Step 3: Upload OpenAPI Document
Once you've created your Scalar account:
- Click Create Documentation in the dashboard
- Choose Upload File or GitHub Sync (if you want to store your OpenAPI in Git)
- Upload the exported OpenAPI file from Zuplo
- Scalar will automatically parse and display your API reference
If you're using GitHub Sync, you can commit your OpenAPI file to a repository and Scalar will automatically sync it.
Step 4: Set Up Scalar Config
If you're using GitHub Sync, create a scalar.config.json file in your repository root to configure your documentation:
{
"$schema": "https://cdn.scalar.com/schema/scalar-config-next.json",
"scalar": "2.0.0",
"publishOnMerge": true,
"siteConfig": {
"subdomain": "name-of-your-api"
},
"navigation": {
"routes": {
"/": {
"type": "group",
"title": "Your API",
"children": {
"/api": {
"type": "openapi",
"url": "openapi.yaml",
"title": "API Reference"
}
}
}
}
}
}
The "publishOnMerge": true setting tells Scalar to automatically publish your documentation when a branch is merged into your main branch.
Step 5: Migrate Custom Styling
If you've customized your Zuplo developer portal with CSS, you can just pass this as customCss in the configuration or migrate those styles to Scalar using CSS variables. Scalar provides extensive theming options:
:root {
--scalar-font: 'Your Font', sans-serif;
--scalar-color-accent: #your-color;
--scalar-background-1: #ffffff;
--scalar-color-1: #121212;
}
.dark-mode {
--scalar-background-1: #1a1a1a;
--scalar-color-1: rgba(255, 255, 255, 0.9);
}
Scalar also includes 11 built-in themes that you can use as a starting point:
default,alternate,moon,purple,solarized,bluePlanet,saturn,kepler,mars,deepSpace,laserwave
Step 6: (Optional) Migrate Markdown Guides
If you have Markdown guides in your Zuplo developer portal:
- Export any MDX or Markdown content from Zuplo
- If using MDX, convert JSX components to standard Markdown (Scalar uses standard Markdown)
- Add your guides to Scalar using the Guides tab in your documentation project
- Or, if using GitHub Sync, add them to your repository and reference them in
scalar.config.json:
{
"navigation": {
"routes": {
"/": {
"type": "group",
"title": "Your API",
"children": {
"/guides": {
"type": "group",
"title": "Guides",
"children": {
"getting-started": {
"type": "page",
"filepath": "docs/getting-started.md",
"title": "Getting Started"
}
}
},
"/api": {
"type": "openapi",
"url": "openapi.yaml",
"title": "API Reference"
}
}
}
}
}
}
Step 7: (Optional) Point Custom Domain to Scalar
If you're using a custom domain with Zuplo (e.g., developers.example.com), you can point it to Scalar:
- Add the custom domain to your Scalar config:
{
"siteConfig": {
"subdomain": "name-of-your-api",
"customDomain": "developers.example.com"
}
}
- Update your DNS CNAME record to point to
dns.scalar.com - Wait a few minutes for DNS propagation
Learn more about custom domains.
Step 8: (Optional) Set Up Redirects
If you had traffic going to your Zuplo developer portal, you might want to set up redirects to ensure existing links keep working. Scalar supports redirects via the siteConfig.routing.redirects configuration:
{
"siteConfig": {
"routing": {
"redirects": [{
"from": "/old-path/:wildcard",
"to": "/new-path/:wildcard"
}]
}
}
}
Learn more about redirects.
Using Zuplo Gateway with Scalar Documentation
Since Zuplo and Scalar have different architectures, they work together:
- Zuplo handles your API traffic
- Scalar lives alongside your API
If your OpenAPI document is hosted by Zuplo's gateway, you can link to it directly from Scalar:
{
"navigation": {
"routes": {
"/api": {
"type": "openapi",
"url": "https://your-zuplo-gateway.com/openapi.json",
"title": "API Reference"
}
}
}
}
This way, your documentation stays in sync with your gateway configuration automatically.
Summary
The biggest advantage in this migration is that both tools are fundamentally OpenAPI-based, which means your core specifications will transfer cleanly.
Scalar's team is happy to offer migration assistance and consultation to help streamline this process, particularly for teams with complex Zuplo implementations.