documentation/migration/zuplo.md
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 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.
Scalar offers a more accessible entry point with a free tier and simpler pricing compared to Zuplo.
| Plan | Scalar | Zuplo |
|---|---|---|
| Free | ✓ | limited requests |
| Paid | $72/mo (3-seat min) | usage-based |
| Enterprise | custom pricing | custom pricing |
For detailed pricing information, visit Scalar Pricing and Zuplo Pricing.
| 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 |
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.
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.
Validate and lint your OpenAPI documents using Spectral rules. Spectral rules can be managed in the Registry alongside your OpenAPI documents and JSON Schemas.
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 Mock Server documentation.
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.
Zuplo stores your API configuration in OpenAPI format. To export your OpenAPI document:
routes.oas.json file (or similar OpenAPI document)[!NOTE] Zuplo uses vendor extensions like
x-zuplo-route,x-zuplo-path, andx-zuplo-routefor 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.
Scalar has a free tier, and you can get quite a lot done with it. No credit card needed, just register over here.
Once you've created your Scalar account:
If you're using GitHub Sync, you can commit your OpenAPI file to a repository and Scalar will automatically sync it.
If you're using GitHub Sync, create a scalar.config.json file in your repository root to configure your documentation:
{
"$schema": "https://registry.scalar.com/@scalar/schemas/config",
"scalar": "2.0.0",
"siteConfig": {
"subdomain": "name-of-your-api"
},
"navigation": {
"routes": {
"/": {
"type": "group",
"title": "Your API",
"children": {
"/api": {
"type": "openapi",
"url": "openapi.yaml",
"title": "API Reference"
}
}
}
}
}
}
Configure automatic deployment (publish when a branch is merged into your main branch) in the Scalar Dashboard under your project settings.
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, laserwaveIf you have Markdown guides in your Zuplo developer portal:
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"
}
}
}
}
}
}
If you're using a custom domain with Zuplo (e.g., developers.example.com), you can point it to Scalar:
{
"siteConfig": {
"subdomain": "name-of-your-api",
"customDomain": "developers.example.com"
}
}
dns.scalar.comLearn more about custom domains.
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.
Since Zuplo and Scalar have different architectures, they work together:
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.
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.