Get started in 3 minutes. No, really.

Everything you need to design, test, and share OpenAPI specs.

Quick Start

1

Sign in

Use GitHub OAuth or create an account with email and password.

2

Create a workspace

Workspaces are containers for your specs and team members.

3

Create or import a spec

Start from scratch, upload a file, paste a URL, or import from Postman.

4

Explore the flow builder

Your API paths are visualized as an interactive node graph. Zoom, pan, and click.

5

Edit an endpoint

Click any endpoint node to open the editor. Three tabs: Edit, Run, History.

6

Test an endpoint

Switch to the Run tab. Set parameters, headers, and body. Click Execute.

7

Invite your team

Go to workspace settings. Add members as Owner, Editor, or Viewer.

8

Publish a hotlink

Enable public hotlink in spec settings. Share the URL as JSON or YAML.

Core Concepts

Workspaces

Containers for specs and team members. Each workspace has its own member list and permissions.

Specs

OpenAPI 3.0 documents. The core object you create, edit, and share.

Flow Builder

Visual path tree. Each API path is decomposed into segments and endpoint leaf nodes.

Editor Panel

Form-based editing for all OpenAPI fields. Opens when you click an endpoint in the flow.

API Execution

Server-side proxy that sends requests to target APIs. No CORS, full response viewer.

Hotlinks

Public URLs that serve your spec as JSON or YAML. Edge-cached via Cloudflare KV.

Roles

Owner (full access), Editor (read/write), Viewer (read-only). Managed per workspace.

Keyboard Shortcuts

Shortcut Action
Ctrl+Z Undo
Ctrl+Shift+Z Redo
Ctrl+S Save
Escape Close panel
+ / - Zoom in / out
Ctrl+0 Reset zoom

Self-Hosting

Prerequisites

  • Node.js 18+
  • pnpm package manager
  • Cloudflare account (free tier works)
  • Wrangler CLI

Installation

git clone https://github.com/omazyai/openapi-studio.git
cd openapi-studio
pnpm install
cp .env.example .env
# Edit .env with your values
pnpm dev

Environment Variables

Variable Required Description
SESSION_SECRET Required Random string for JWT signing
SUPERADMIN_EMAIL Required Email of the superadmin user
GITHUB_CLIENT_ID Optional GitHub OAuth app client ID
GITHUB_CLIENT_SECRET Optional GitHub OAuth app client secret

Cloudflare Resources

  • D1 Database — Create via wrangler d1 create openapi-studio-db
  • KV Namespace — Create via wrangler kv namespace create CACHE
  • R2 Bucket — Create in the Cloudflare dashboard

API Reference

Auth

Method Route Description
POST /api/auth/login Email/password sign in
GET /api/auth/github GitHub OAuth redirect
GET /api/auth/me Get current user
POST /api/auth/logout Sign out

Workspaces

Method Route Description
GET /api/workspaces List workspaces
POST /api/workspaces Create workspace
GET /api/workspaces/:id Get workspace
PUT /api/workspaces/:id Update workspace
DELETE /api/workspaces/:id Delete workspace

Specs

Method Route Description
GET /api/specs List specs
POST /api/specs Create spec
GET /api/specs/:id Get spec
PUT /api/specs/:id Update spec
DELETE /api/specs/:id Delete spec
POST /api/specs/import Import spec

Execution

Method Route Description
POST /api/execute Execute API request
GET /api/specs/:id/executions Get execution history

Hotlinks

Method Route Description
GET /v1/specs/:slug.json Serve spec as JSON
GET /v1/specs/:slug.yaml Serve spec as YAML

Tools

Method Route Description
POST /api/tools/convert Convert Swagger 2.0 → OpenAPI 3.0
POST /api/tools/validate Validate OpenAPI spec

Support

GitHub Issues: Report bugs and request features

In-app feedback: Use the feedback button inside the app to report issues directly.

Pro email support: Priority email support for Pro tier users.