← Back to Overview

GETTING STARTED

UI Overview

A detailed walkthrough of every UI component in API Studio — modes, sidebar, tabs, request builder, response viewer, layout options, and shortcuts.

Simple Mode vs Advanced Mode

API Studio starts in Simple Mode — a clean, focused interface for everyday API testing. Toggle Advanced Mode in the settings menu to unlock the full feature set.

FeatureSimpleAdvanced
Top-level viewsRequests onlyRequests + Mock+MCP + Vault
Request tabsParams, Headers, Body, Auth+ Tests, Scripts, MCP, Settings
Mock serversHiddenFull access
Secret vaultLockedFull access
Collection editor tabsOverview, Auth+ Scripts, Runs, MCP, Settings
Settings menu with Advanced Mode checkbox enabled

Settings → check "Advanced Mode"

Top bar showing Requests, Mock+MCP, and Vault tabs in Advanced Mode

Top bar after enabling Advanced Mode

Tab Bar

Each request, collection editor, and folder editor opens in its own tab. Tabs persist across sessions — reopen VS Code and your tabs are still there.

Grouping — Tabs group by collection (collapsible). Toggle via settings.
Dirty indicator — A dot (●) shows unsaved changes. Closing prompts to save.
Context menu — Right-click a tab for: Close, Close Others, Copy Request, Add to Group.
Stacked view — Compact mode that shows tabs vertically when space is tight.
Tab bar with grouped tabs

Grouped tabs — one open, one collapsed

Tab right-click context menu

Right-click context menu

Request Builder Tabs

Below the URL bar are sub-tabs for configuring different parts of the request.

TabModePurpose
ParamsSimpleQuery parameters — synced bidirectionally with the URL bar
HeadersSimpleCustom request headers with autocomplete for standard HTTP headers
BodySimpleRequest body — JSON, form-data, urlencoded, raw, XML, GraphQL, binary
AuthSimpleAuthentication config — 7 types with inherit-from-parent option
TestsAdvancedGUI test rules (assertions) and response variable extraction
ScriptsAdvancedPre-request and test JavaScript in a sandboxed VM
MCPAdvancedMCP tool description and input schema when exposed as AI tool
SettingsAdvancedPer-request proxy selection and TLS certificate configuration
Tests tab with assertions and set variables

Tests tab showing GUI assertions and a set-variable extraction rule

Response Viewer

The response area appears after sending a request. Available tabs depend on the response type:

Body — Pretty (syntax-highlighted CodeMirror with Ctrl+F search), Raw, and Tree (collapsible JSON) views. A-/A+ zoom controls.
Headers — Response headers table. Click to copy individual values.
Cookies — Parsed cookie fields (name, value, domain, path, expires, flags).
Request — The actual resolved request sent over the wire (formatted + raw HTTP views).
Tests — Pass/fail results from GUI test rules and script assertions.
Stream — Live SSE events with id, event type, data, and timestamps (appears for SSE responses).
WebSocket — Message log with ↑/↓ direction, timestamps, and JSON formatting (appears for WS connections).
Response viewer showing time breakdown

Click the response time to see the timing breakdown (DNS, TCP, TLS, TTFB, download)

Layout Options

Side-by-side — Request on left, response on right. Best on wide screens. Drag the splitter to resize.
Stacked — Request on top, response below. Better on narrow panels. Auto-switches on small widths.
Collapsed sidebar — Hide the left sidebar to maximize request/response space. Toggle via the collapse button.
Compact tabs — Enable in settings to reduce tab bar height for more vertical space.
Stacked layout with request on top and response below

Stacked view — request builder on top, response viewer below

Protocol Selector

The dropdown left of the URL bar switches between protocols. Each protocol changes the available tabs and the action button:

ProtocolButtonTabs
HTTPSendAll tabs, method selector visible
GraphQLSendBody (first), Headers, Auth, Tests, Scripts, Settings
WebSocketConnect / DisconnectParams, Headers, Auth only
gRPCInvoke / CancelMetadata, Auth, Settings only
Protocol selector dropdown

Environment Dropdown

The top bar shows the active environment. Click to switch. Variables in the active environment resolve wherever you use {{variable}} syntax.

Local environments are workspace-specific (stored in .openpost/)
Global environments are shared across all workspaces (stored in ~/.openpost/global/)
Hover over a {{variable}} in the URL to see its resolved value and source
Environment dropdown showing local environments

Keyboard Shortcuts

ActionmacOSWindows / Linux
Open API StudioCmd+Alt+PCtrl+Alt+P
Send RequestCmd+EnterCtrl+Enter
Save RequestCmd+SCtrl+S
New Request TabCmd+TCtrl+T
Close TabCmd+WCtrl+W
Search in ResponseCmd+FCtrl+F
Ko-fi