Get started in 3 minutes. No, really.
Everything you need to design, test, and share OpenAPI specs.
Quick Start
Sign in
Use GitHub OAuth or create an account with email and password.
Create a workspace
Workspaces are containers for your specs and team members.
Create or import a spec
Start from scratch, upload a file, paste a URL, or import from Postman.
Explore the flow builder
Your API paths are visualized as an interactive node graph. Zoom, pan, and click.
Edit an endpoint
Click any endpoint node to open the editor. Three tabs: Edit, Run, History.
Test an endpoint
Switch to the Run tab. Set parameters, headers, and body. Click Execute.
Invite your team
Go to workspace settings. Add members as Owner, Editor, or Viewer.
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.