Response Viewer
After sending a request, the response panel appears in the lower or right half of the workspace (depending on your layout). It shows every detail of the server's response: status, timing, size, headers, body, test results, and cookies.
States
| State | Description |
|---|---|
| Empty | No request has been sent yet. Shows "Send a request to see the response." |
| Sending | Request is in flight. Shows a spinner. Once any data arrives the spinner is replaced by live content. |
| SSE stream | For Server-Sent Events, events are streamed live into the body as they arrive. |
| Response loaded | Full response is shown with all tabs and the toolbar. |
Status Bar
The status bar sits at the very top of the response panel. Every element is interactive — hover to get more detail.
HTTP Status Code
Displays the status code and reason phrase (e.g., 200 OK, 404 Not Found, 500 Internal Server Error) in a color-coded badge:
| Color | Range | Meaning |
|---|---|---|
| Green | 2xx | Success |
| Blue | 3xx | Redirect |
| Orange | 4xx | Client error |
| Red | 5xx | Server error |
| Gray | 0 / error | Network error or cancelled |
Hover the status badge to see a plain-English description of the specific code. For example, hovering 429 shows: "Too many requests. You are being rate limited."
If a network error occurs (e.g., DNS failure, connection refused, timeout), the badge shows the error message directly instead of a numeric code.
Response Time
Shows the total elapsed time from sending the request to receiving the full response, formatted as milliseconds (45 ms) or seconds (1.23 s).
Hover to see a waterfall timing breakdown:
| Phase | Description |
|---|---|
| DNS Lookup | Time to resolve the hostname to an IP address |
| TCP Connect | Time to establish the TCP connection |
| TLS Handshake | Time to negotiate TLS/SSL (HTTPS requests only) |
| Waiting (TTFB) | Time to first byte — server processing time |
| Download | Time to transfer the response body |
| Total | End-to-end elapsed time |
Each phase is shown with its absolute duration and a proportional colored bar.
Response Size
Shows the response body size, formatted as bytes (512 B), kilobytes (14.2 KB), or megabytes (3.1 MB).
Hover to see a full breakdown:
| Row | Description |
|---|---|
| Response — Headers | Size of all response headers in bytes |
| Response — Body | Size of the response body in bytes |
| Response Total | Headers + body combined |
| Request — Headers | Size of request headers sent (when available) |
Network Info (Globe Icon)
A globe icon appears when network connection metadata is available. Hover to see:
| Field | Example |
|---|---|
| HTTP Version | HTTP/2.0 |
| Remote Address | 93.184.216.34:443 |
| TLS Protocol | TLSv1.3 |
| Cipher | TLS_AES_128_GCM_SHA256 |
| Certificate CN | *.example.com |
| Issuer | DigiCert Inc |
| Valid Until | 2026-01-15 |
Click the copy icon in the popover to copy all network details as plain text.
All status bar popovers stay open when you move the mouse into them, so you can select and copy text freely.
Toolbar
The toolbar in the status bar row provides quick actions:
| Icon | Shortcut | Description |
|---|---|---|
| Search | Open/close the search bar to find text within the response body | |
| Wrap Lines | Toggle word wrapping in the Pretty and Raw body views | |
| Download | Save the response body to a file (extension is inferred from Content-Type) | |
| Bookmark | Save the current response as a named Example (only visible for saved requests) | |
| Copy | Copy the entire response body to clipboard | |
| Trash | Clear the current response from the panel |
Save Response to File
When you click Download, the file is saved with an extension based on Content-Type:
| Content-Type | Extension |
|---|---|
application/json | .json |
application/xml / text/xml | .xml |
text/html | .html |
image/png | .png |
image/jpeg | .jpg |
application/pdf | .pdf |
| Binary / other | .bin |
For binary responses (images, PDFs, video, audio), the file is saved as a binary file. For text responses, it is saved as UTF-8 text.
Save as Example (Bookmark)
Click the Bookmark icon to save the current request + response pair as a named example. An inline input field appears in the toolbar row:
- Type an example name (defaulted to
"Example 200"or similar based on status). - Press Enter or click Save. Press Escape to cancel.
The example is attached to the current saved request and appears in the Examples sub-tab of the request builder.
Search Bar
Click the Search icon to open the search bar below the toolbar:
- Type a query to find matches in the response body.
- Match count is shown in real-time (e.g.,
12 matches). - In Pretty mode, matching text is highlighted directly in the Monaco editor with yellow decorations and overview ruler markers. The editor automatically scrolls to the first match.
- In Raw mode, matching text is highlighted inline.
- Press
Escapeor click the X to close the search bar and clear highlights.
Response Tabs
Body
The Body tab shows the response content with multiple view modes.
View Mode Selector
A segmented control in the top-right of the tab bar lets you switch views. Available views depend on the response content type:
| View | When Available | Description |
|---|---|---|
| Visual | Binary responses (images, video, audio, PDF, CSV, SVG) | Media-specific viewer (see below) |
| Pretty | Always | Syntax-highlighted, formatted view with code folding |
| Raw | Always | Plain unformatted text |
| Preview | Always | Rendered HTML in a sandboxed iframe |
| Table | JSON arrays; CSV responses | Tabular view with sticky headers |
Rostyman automatically selects the best view when a new response arrives:
- Binary content → Visual
text/html→ Previewapplication/jsonarray → Table- All other JSON → Pretty
- Everything else → Pretty
Pretty View
Uses a Monaco editor (the same engine as VS Code) with:
- Syntax highlighting for JSON, XML, HTML, and other text formats
- JSON is auto-formatted (pretty-printed with 2-space indentation)
- Line numbers and code folding
- Bracket pair colorization
- Indentation guides
- Word wrap toggle (via the Wrap Lines toolbar button)
- Search highlighting (via the Search toolbar button)
- Right-click context menu → Set as Variable — select any text in the editor, right-click, and save the selected value directly as an environment variable, collection variable, or global variable without leaving the response panel.
Raw View
Shows the response body exactly as received, with no formatting. Useful for:
- Inspecting raw whitespace and encoding
- Viewing non-JSON/XML text formats
- Copying exact byte-for-byte content
Word wrap and search both work in Raw view.
Preview View
Renders the response body as HTML in a sandboxed <iframe>. The preview inherits the current Rostyman theme's background and foreground colors so it blends with the UI. JavaScript execution and external navigation are disabled (sandbox mode).
Table View
Available for:
- JSON arrays — if the response is a JSON array of objects, each object is a row and each unique key across all objects is a column. Up to 500 rows are shown.
- CSV responses — the first row is treated as headers, subsequent rows are data. Quoted fields and commas within quotes are handled correctly.
Columns have sticky headers so you can scroll horizontally and vertically while keeping headers visible.
Visual (Binary) Viewer
Automatically activated for binary responses (bodyEncoding: 'base64'). The viewer adapts based on the MIME type:
Images (PNG, JPEG, GIF, WebP, SVG, ICO, BMP, TIFF):
- Rendered inline at full fidelity
- Zoom controls —
–to zoom out,+to zoom in (in 25% steps, range 10%–500%),1:1to reset to actual size - At zoom > 200%, pixel rendering switches to
pixelatedfor crisp display of small images - Current zoom percentage shown between the controls
- Save File button to download the image
Video (MP4, WebM, OGG):
- Native browser
<video>element with full playback controls (play/pause, seek, volume, fullscreen) - Save File button
Audio (MP3, WAV, OGG, AAC, WebM audio):
- File type label and size shown
- Native browser
<audio>element with playback controls - Save File button
PDF (application/pdf):
- Rendered in an embedded
<iframe>using the system PDF viewer - Full browser PDF viewer controls (zoom, navigation, print)
- Save File button
CSV (text/csv):
- Parsed and displayed as a scrollable table with sticky column headers
- Save File button
Unsupported binary types (ZIP, GZIP, Excel, Word, PowerPoint, etc.):
- Shows a file type card with the extension, MIME type, and size
- Save File button (you can still download the file, just not preview it)
Headers
Shows all headers returned by the server in a two-column table.
- Each row shows header name (lowercase) and header value.
- Some headers have an (i) info icon — hover to see a description of what the header does and links to relevant standards (sourced from the built-in header info database).
- Click any value to copy it to clipboard.
- A Content-Type badge in the toolbar area shows the detected content type at a glance.
Request headers section — shown in a separate collapsible group below the response headers. These are the exact headers that were sent, including auto-generated headers (User-Agent, Content-Type from body mode, Authorization from auth config, etc.).
Tests
Shows the results of JavaScript assertions from the post-request script.
When tests exist:
| Element | Description |
|---|---|
| Pass/fail summary | "N passed, M failed" with a count badge on the tab label |
| Progress indicator | Green dot (all passed) or red dot (any failed) next to the tab name |
| Test list | Each test shows its name and a green checkmark (pass) or red X (fail) |
| Error messages | For failed tests, the assertion error message is shown below the test name |
When no tests are defined:
- An empty state shows a "Generate Tests" button.
- Clicking it creates a basic test template pre-filled with assertions based on the current response's status code and body structure.
- The generated script is inserted into the post-request Scripts tab.
- Rostyman immediately runs the new tests against the current response and shows results.
Cookies
Shows all cookies set by the server via Set-Cookie response headers.
| Column | Description |
|---|---|
| Name | Cookie name |
| Value | Cookie value |
| Domain | The domain the cookie applies to |
| Path | The path the cookie applies to |
| Expires | Expiration date/time, or "Session" for session cookies |
| Secure | Whether the cookie is sent over HTTPS only |
| HttpOnly | Whether the cookie is inaccessible to JavaScript |
| SameSite | Cross-site request behavior (Strict / Lax / None) |
Cookies shown here are automatically added to the global Cookie Jar for the matching domain and will be sent with future requests to that domain.
Code (Response Code Snippets)
The Code tab in the response panel is a shortcut to the Code Snippets tab in the request builder. It generates ready-to-paste code for the current request in all 17 supported languages, with variables fully resolved and auth headers injected.
See Code Snippets for the full language list and details.
Response History (Clock Icon)
The clock icon appears in the tab bar when the current request is a saved request. Clicking it opens a dropdown showing the last 10 responses for this specific request.
Each entry shows:
- Timestamp — formatted as "Today, 5:02 AM" or "Mar 24, 3:15 PM"
- Status code badge — color-coded (green/orange/red)
- "Current" label on the most recent entry
Click any entry to load that historical response into the response viewer for inspection. This does not replace the current response in the panel permanently — switching tabs or sending a new request restores the current response.
SSE (Server-Sent Events) Mode
When Rostyman detects an SSE stream (based on Content-Type: text/event-stream or body format), the response body tab switches to a dedicated SSE event log:
- Each event is shown as a timestamped entry with its
eventtype anddatapayload. - A connection-open event is added automatically when the stream opens.
- A connection-closed event is added when the stream ends or is cancelled.
- The response status shows the live event count (e.g.,
SSE — 14 event(s)). - The X button in the toolbar cancels the stream.
Schema Change Detection
When viewing the History tab (the full per-request history, not the clock dropdown), Rostyman compares the JSON structure of the current response against previous responses. A banner appears when:
- New fields were added to the response (shown in green)
- Fields were removed from the response (shown in red)
This helps catch unintentional API breaking changes early.