← Back to Tools

HAR File Viewer & Analyzer

Open a .har file to see every request your browser made: status codes, sizes, timings and a waterfall, plus headers, cookies and bodies for each call. A built-in scan flags cookies and tokens, and one click downloads a sanitized copy you can attach to a ticket. Everything runs in your browser and nothing is uploaded.

Drop a HAR file here or click to open one

.har or .json exports from Chrome, Edge, Firefox, Safari and proxy tools, up to 500 MB

No HAR file at hand?

Your file is read in this browser tab and never uploaded.

Frequently Asked Questions

Is my HAR file uploaded anywhere?+
No. The file is read and parsed by JavaScript in this browser tab, and nothing is sent to a server. That makes it safe to open captures from internal tools and staging sites. Closing or reloading the tab discards the data.
How do I open a HAR file?+
A HAR file is plain JSON, so any text editor can open it, but thousands of lines of nested JSON are hard to read. Drop it into the viewer above to get a sortable request table, a waterfall and full details for each request. Chrome and Edge DevTools can also import a HAR: drag it onto the Network panel.
How large a HAR file can this viewer handle?+
Files of tens of megabytes with thousands of requests open quickly, and the table only draws the rows on screen, so scrolling stays smooth. The limit is 500 MB per file. Huge captures usually mean recording ran too long, so if you can, record only the steps that reproduce the problem.
What does Sanitize do, and is Chrome's sanitized export enough?+
Sanitize downloads a copy in which cookie values, Set-Cookie values, Authorization headers, and headers, query parameters and JSON fields with secret-looking names (token, key, session, password, csrf and similar) are replaced with [REDACTED]. You can also strip every response body. Recent Chrome and Edge versions leave cookies and Authorization headers out of their default export, but API keys in URLs, custom token headers and form data in request bodies stay in the file, so a second pass is still worth it.
What is the difference between a HAR file and a console log?+
A HAR file records network traffic: every request and response with headers, bodies and timings. A console log records what the page's JavaScript printed, such as errors, warnings and debug messages. They answer different questions, which is why support teams often ask for both: the failing API call shows up in the HAR with its status and response body, and the error it caused shows up in the console.
Why are some sizes 0 and some timings n/a?+
HAR files use -1 for values that do not apply or were not recorded, and this viewer shows those as n/a. DNS, Connect and SSL are -1 when the browser reused an open connection, and SSL is -1 for plain HTTP. Sizes are 0 for responses served from the memory or disk cache and for blocked or failed requests. Firefox and Safari also fill some size fields differently from Chrome, so totals can differ slightly between browsers.

Learn More

Turning a HAR file into a bug that gets fixed? These guides help:

What Is a HAR File?

HAR stands for HTTP Archive. It is a JSON file that records the network activity of a browser tab: every request the page made, what came back, and how long each step took. The format was written up as a draft specification, and version 1.2 is what Chrome, Edge, Firefox and Safari export today, along with proxies such as Charles and Fiddler.

Inside the log object you will find:

  • pages: one record per page load with its DOMContentLoaded and load times.
  • entries: one record per request, with the method, URL, HTTP version, headers, cookies, query string and any posted data.
  • response: status code, headers, cookies set, MIME type, sizes and often the body itself (binary bodies are stored as base64).
  • timings: how long the request spent blocked, on DNS, connecting, on TLS, sending, waiting and receiving.
  • Browser extras: fields that start with an underscore, such as Chrome's _resourceType and _transferSize, which this viewer uses when they are present.

How to Generate a HAR File in Chrome, Edge, Firefox and Safari

The routine is the same everywhere: open the developer tools, keep the log across page loads, reproduce the problem, then export.

Chrome

  1. Open DevTools with F12, Ctrl+Shift+I on Windows or Cmd+Option+I on Mac.
  2. Go to the Network tab and tick Preserve log.
  3. Reload the page and reproduce the problem.
  4. Click the Export HAR button (the download arrow) in the Network toolbar.

Edge

  1. Press F12 or Ctrl+Shift+I to open DevTools.
  2. Open the Network tab and tick Preserve log.
  3. Reproduce the problem.
  4. Use Export HAR in the Network toolbar. Edge shares Chrome's DevTools, so the options match.

Firefox

  1. Open the Network Monitor with Ctrl+Shift+E on Windows or Cmd+Option+E on Mac.
  2. Turn on Persist Logs in the Network settings (gear) menu.
  3. Reload and reproduce the problem.
  4. Right-click any request and choose Save All As HAR.

Safari

  1. Turn on the developer features in Safari Settings, under Advanced.
  2. Open Web Inspector with Cmd+Option+I and pick the Network tab.
  3. Enable Preserve Log, then reproduce the problem.
  4. Click Export in the Network tab to save a .har file.

Chrome and Edge sanitize by default. Recent versions leave cookies and Authorization headers out of the exported file. If whoever is debugging needs them (for a login or session bug, say), open DevTools Settings, go to Preferences, find the Network section and turn on Allow to generate HAR with sensitive data. The export menu then offers a version with sensitive data. Only send that file to someone you trust, and sanitize what they do not need.

How to Read the Waterfall and Timings

Each bar in the waterfall starts when the request started and is as long as the request took, on one shared timeline that begins with the first request in the file. The blue line marks DOMContentLoaded (the HTML is parsed) and the red line marks load (images, styles and scripts are done). The colored segments inside a bar are the timing phases:

  • Blocked: time spent in the queue before the request could leave. Long blocked times usually mean too many requests to one host at once (browsers open about six connections per host over HTTP/1.1) or a lower-priority request waiting its turn.
  • DNS: looking up the server's IP address. Only the first request to a host pays it.
  • Connect and SSL: opening the TCP connection and negotiating TLS. In a HAR file the SSL time is counted inside Connect, so the viewer draws them as separate segments without double counting.
  • Send: uploading the request. Near zero unless you are posting a large body.
  • Wait (TTFB): time to first byte, from the end of sending to the first byte of the response. This is server think time plus one network round trip. A long wait on an API call points at the backend, not the browser.
  • Receive: downloading the response. Long receive times mean a big payload or a slow connection.

Patterns worth spotting: a staircase of requests that each wait for the previous one (a dependency chain you may be able to parallelize), a gap with no network activity (JavaScript busy before the next fetch), and one slow request that everything after it depends on. Sort by Time to find the slowest calls, or click the Slowest tile.

HAR Files and Security

A HAR file is a full copy of what your browser sent and received, and that includes the keys to your account:

  • Session cookies: anyone holding them can often act as you until the session expires, no password needed.
  • Bearer tokens and API keys: in Authorization headers, custom headers like X-API-Key, and query strings.
  • Form data: whatever you typed into a form while recording, including passwords on a login page.
  • Personal data: names, emails, addresses and order details inside response bodies.

This is not theoretical. In October 2023, attackers who got into Okta's support case system took session tokens from HAR files that customers had uploaded with their tickets. Before you share a HAR: record only the steps you need, use a test account if you can, run it through Sanitize above, send it through the support portal rather than a public channel, and log out afterwards so any session that slipped through stops working.

Using HAR Files in Bug Reports

A HAR shows what the network did. On its own it does not show what the user saw, so pair it with context:

  • A screenshot or screen recording of the error message or broken state, so the engineer knows which request matters.
  • The exact time and time zone you reproduced it, so the backend team can find the same moment in server logs.
  • The steps you took while recording, in order.
  • The failing request: turn on Errors only, note the URL, status and any request ID header from the response, and quote the error body.
  • Browser and version, plus whether it also fails in a private window.

Copy as cURL turns a request into a command a developer can rerun from a terminal. It copies the original headers, tokens included, so trim those before you paste it anywhere shared.

Related Tools