Free HAR File Viewer
Open a HAR from your browser’s Network panel to see every request, what failed and what was slow, then redact its secrets before you share it.
What is a HAR File Viewer?
A HAR file is a recording of everything a page asked the network for: each request, its timing, its response and its headers. This viewer turns one into a waterfall, a summary and a list of failures, without a browser’s dev tools.
It reads HAR 1.2 from Chrome, Edge, Firefox, Safari, Charles and Fiddler, including Chrome’s transfer sizes and blocked-request errors. Because HAR files carry cookies and auth headers, it also finds those values and writes a redacted copy you can safely attach to a ticket.
Key Features
Request Waterfall
Every request on one timeline, with its start offset, duration and status, and the wait for the first byte shaded.
Page Load Summary
Totals, DOMContentLoaded and load times, status classes, bytes by type, and the slowest and largest requests.
Failures in One List
4xx and 5xx responses plus requests that never got an answer, such as ones blocked by an ad blocker.
Secrets Found and Removed
Cookies, Authorization headers and tokens in URLs or bodies are listed by name, and Redact replaces their values.
Opened Locally
The HAR is read in your browser and never uploaded, which matters for a file full of session cookies.
Perfect for everyone
- Developers and QA engineers debugging slow or failing pages
- Support teams who receive HAR files
- Anyone asked to send one
How to Use the HAR File Viewer
Export a HAR, open it here, and read it from the waterfall to the secrets.
Export the HAR
In the Network panel, tick Preserve log, reload, reproduce the problem, then choose Save all as HAR or Export HAR.
Open It
Use Open .har file or paste the JSON. Large exports with response bodies can run to tens of megabytes.
Find the Problem
Waterfall shows what was slow and what waited on what. Errors lists every failed request with its reason.
Redact Before Sharing
Check Sensitive for cookies and tokens, then switch to Redact and download the cleaned copy to send.
HAR Files, Read
Each row is a HAR file, trimmed to the fields that matter, and each answer is this viewer’s output in the mode on the chip. Find the slow request before you reveal it.
“{"log":{"version":"1.2","entries":[{"startedDateTime":"2026-10-25T09:14:02.000Z","time":312.4,"request":{"method":"GET","url":"https://news.example.org/"},"response":{"status":200,"content":{"size":0,"mimeType":"text/html"},"_transferSize":18250},"_resourceType":"document","timings":{"blocked":1,"dns":-1,"connect":-1,"send":0,"wait":240.1,"receive":71.29999999999998}},{"startedDateTime":"2026-10-25T09:14:02.340Z","time":96.2,"request":{"method":"GET","url":"https://news.example.org/main.js"},"response":{"status":200,"content":{"size":0,"mimeType":"application/javascript"},"_transferSize":71420},"_resourceType":"script","timings":{"blocked":1,"dns":-1,"connect":-1,"send":0,"wait":31.0,"receive":64.2}},{"startedDateTime":"2026-10-25T09:14:02.351Z","time":58.7,"request":{"method":"GET","url":"https://fonts.example.net/inter.woff2"},"response":{"status":200,"content":{"size":0,"mimeType":"font/woff2"},"_transferSize":48112},"_resourceType":"font","timings":{"blocked":1,"dns":-1,"connect":-1,"send":0,"wait":20.4,"receive":37.300000000000004}}]}}”
“{"log":{"version":"1.2","creator":{"name":"WebInspector","version":"537.36"},"pages":[{"id":"page_1","title":"https://news.example.org/","pageTimings":{"onContentLoad":455.0,"onLoad":702.3}}],"entries":[{"startedDateTime":"2026-10-25T09:14:02.000Z","time":312.4,"request":{"method":"GET","url":"https://news.example.org/"},"response":{"status":200,"content":{"size":0,"mimeType":"text/html"},"_transferSize":18250},"_resourceType":"document"},{"startedDateTime":"2026-10-25T09:14:02.340Z","time":96.2,"request":{"method":"GET","url":"https://news.example.org/main.js"},"response":{"status":200,"content":{"size":0,"mimeType":"application/javascript"},"_transferSize":71420},"_resourceType":"script"},{"startedDateTime":"2026-10-25T09:14:02.520Z","time":1840.0,"request":{"method":"GET","url":"https://news.example.org/api/headlines"},"response":{"status":500,"content":{"size":0,"mimeType":"application/json"},"_transferSize":310,"statusText":"Internal Server Error"},"_resourceType":"fetch"}]}}”
“{"log":{"version":"1.2","entries":[{"startedDateTime":"2026-10-25T09:14:02.000Z","time":140.0,"request":{"method":"GET","url":"https://app.example.com/dashboard"},"response":{"status":200,"content":{"size":0,"mimeType":"text/html"}},"_resourceType":"document"},{"startedDateTime":"2026-10-25T09:14:02.300Z","time":88.5,"request":{"method":"GET","url":"https://app.example.com/api/me"},"response":{"status":401,"content":{"size":0,"mimeType":"application/json"},"statusText":"Unauthorized"},"_resourceType":"fetch"},{"startedDateTime":"2026-10-25T09:14:02.310Z","time":41.0,"request":{"method":"GET","url":"https://cdn.example.com/logo.svg"},"response":{"status":404,"content":{"size":0,"mimeType":"text/html"},"statusText":"Not Found"},"_resourceType":"image"},{"startedDateTime":"2026-10-25T09:14:02.400Z","time":0.3,"request":{"method":"GET","url":"https://tracker.example.net/pixel.gif"},"response":{"status":0,"content":{"size":0,"mimeType":""},"_error":"net::ERR_BLOCKED_BY_CLIENT"},"_resourceType":"image"}]}}”
“{"log":{"version":"1.2","entries":[{"startedDateTime":"2026-10-25T09:14:02.000Z","time":120.0,"request":{"method":"GET","url":"https://api.example.com/v2/orders?access_token=ya29.a0Af","headers":[{"name":"Authorization","value":"Basic YWRhOmh1bnRlcjI="},{"name":"Accept","value":"application/json"}],"cookies":[{"name":"csrftoken","value":"Xk2"}],"queryString":[{"name":"access_token","value":"ya29.a0Af"}]},"response":{"status":200,"content":{"size":0,"mimeType":"application/json"}},"_resourceType":"fetch"}]}}”
“{"log":{"version":"1.2","entries":[{"startedDateTime":"2026-10-25T09:14:02.000Z","time":95.0,"request":{"method":"POST","url":"https://auth.example.com/login","postData":{"mimeType":"application/json","text":"{\"email\":\"ada@example.com\",\"password\":\"hunter2\"}"}},"response":{"status":302,"content":{"size":0,"mimeType":"text/html"},"cookies":[{"name":"session","value":"abc123"}]}}]}}”
“{"log":{"version":"1.2","creator":{"name":"Firefox","version":"133.0"},"entries":[{"startedDateTime":"2026-10-25T11:14:02.000+02:00","time":205,"request":{"method":"GET","url":"https://docs.example.dev/"},"response":{"status":200,"bodySize":9120,"headersSize":410,"content":{"size":33100,"mimeType":"text/html; charset=utf-8"}},"timings":{"blocked":0,"dns":12,"connect":30,"ssl":18,"send":0,"wait":140,"receive":23}},{"startedDateTime":"2026-10-25T11:14:02.260+02:00","time":61,"request":{"method":"GET","url":"https://docs.example.dev/style.css"},"response":{"status":304,"bodySize":0,"headersSize":280,"content":{"size":15200,"mimeType":"text/css"}},"timings":{"blocked":0,"dns":-1,"connect":-1,"send":0,"wait":58,"receive":3}}]}}”
“{"log":{"version":"1.2","creator":{"name":"WebInspector","version":"537.36"},"pages":[{"id":"page_1","title":"https://news.example.org/","pageTimings":{"onContentLoad":455.0,"onLoad":702.3}}],"entries":[{"startedDateTime":"2026-10-25T09:14:02.000Z","time":312.4,"request":{"method":"GET","url":"https://news.example.org/"},"response":{"status":200,"content":{"size":0,"mimeType":"text/html"},"_transferSize":18250},"_resourceType":"document"},{"startedDateTime":"2026-10-25T09:14:02.340Z","time":96.2,"request":{"method":"GET","url":"https://news.example.org/main.js"},"response":{"status":200,"content":{"size":0,"mimeType":"application/javascript"},"_transferSize":71420},"_resourceType":"script"},{"startedDateTime":"2026-10-25T09:14:02.520Z","time":1840.0,"request":{"method":"GET","url":"https://news.example.org/api/headlines"},"response":{"status":500,"content":{"size":0,"mimeType":"application/json"},"_transferSize":310,"statusText":"Internal Server Error"},"_resourceType":"fetch"}]}}”
“{"log":{"version":"1.2","creator":{"name":"WebInspector","version":"537.36"},"pages":[],"entries":[]}}”
“[{"url":"https://example.com/","status":200,"time":120}]”
“{"log":{"version":"1.2","entries":[{"startedDateTime":"25/10/2026 09:14:02","time":50,"request":{"method":"GET","url":"https://example.com/"},"response":{"status":200}}]}}”
What’s Inside a HAR File
HAR is JSON with one log object. These ten fields are the ones this viewer reads and that you’ll look at most.
log.version and log.creator
The format version, almost always 1.2, and the tool that wrote the file, such as WebInspector for Chrome.
“Which creator name does Chrome write?”
pages and pageTimings
One entry per page load, with onContentLoad and onLoad in milliseconds from the page’s start.
“Which page timing matches DOMContentLoaded?”
entries
One object per request, in the order the browser recorded them. Everything else in this list sits inside an entry.
“Where is each request stored?”
startedDateTime
When the request started, as an ISO 8601 date with milliseconds and a time zone offset.
“What date format does HAR use?”
time
The request’s total time in milliseconds, the sum of its timings except ssl, which is already inside connect.
“Is ssl added to time separately?”
request
Method, URL, HTTP version, headers, query string, cookies and any posted body.
“Where are posted form fields?”
response
Status, headers, cookies and the content object, whose size is the decoded body and mimeType its type.
“What does content.size measure?”
timings
blocked, dns, connect, ssl, send, wait and receive, in milliseconds. A value of -1 means the phase didn’t happen.
“What does -1 mean in timings?”
_transferSize
Chrome’s extension for bytes over the network, headers included. Other browsers leave it out, so bodySize and headersSize stand in.
“Is _transferSize part of HAR 1.2?”
_error
Chrome’s reason for a request with no response, such as net::ERR_BLOCKED_BY_CLIENT or net::ERR_NAME_NOT_RESOLVED.
“What status does such a request have?”
What Each Timing Phase Means
A request’s time is split into phases, recorded in milliseconds. Knowing which phase is long tells you whether to look at the network, the connection or the server.
blocked
Time queued before the request could start, often waiting for a free connection or behind higher-priority requests.
dns
Looking up the host name. It’s -1 when the browser already knew the address.
connect and ssl
Opening the TCP connection, with the TLS handshake counted inside it. Reused connections show -1.
send
Sending the request. It’s near zero unless the request uploads a large body.
wait
Time to first byte: the server thinking. A long wait points at the backend, not the network.
receive
Downloading the response. A long receive points at a large body or a slow connection.
Exporting a HAR File
Every major browser and debugging proxy can save one. A few settings make the file far more useful.
Chrome and Edge
Open DevTools, go to Network, and use the download arrow. Recent Chrome versions leave out cookies and auth headers unless you allow sensitive data in settings.
Firefox
In the Network panel, right-click any request and choose Save All As HAR. Firefox includes cookies and headers.
Safari
Turn on the Develop menu, open Web Inspector’s Network tab, and use Export. Safari’s HAR includes headers.
Preserve Log
Tick Preserve log before reproducing a problem, or a redirect or reload clears the requests you needed.
Disable Cache
With Disable cache ticked, timings reflect a first visit instead of files served from the browser’s cache.
Charles and Fiddler
Proxies record every app on the machine, not just one tab, and both export HAR from their File menus.
Reading Sizes in a HAR
A HAR records two sizes for most responses, and they rarely match. Knowing which is which explains most surprises in a page’s weight, and why the numbers differ from the file sizes on the server.
Transferred Versus Content
Transferred counts bytes on the wire, headers included, after compression. Content is the decoded body, so a well-compressed script shows a much larger content size.
304 Not Modified
A revalidated file transfers only headers, a few hundred bytes, while its content size still shows the cached body. That’s the cache working, not a missing file.
Served From Cache
Responses from the memory or disk cache transfer nothing at all. Chrome marks them with a zero transfer size, so they drop out of the transferred total.
Compression
Text such as HTML, CSS and JavaScript should be served with gzip or Brotli. A text file whose transferred size is close to its content size probably isn’t compressed.
Unknown Sizes
Firefox and Safari don’t write _transferSize, and bodySize is -1 when the browser doesn’t know it. Such requests are left out of the transferred total rather than guessed.
What Redact Changes, and What It Doesn’t
Redact is a fast first pass, not a guarantee. Read the Sensitive list, then skim the redacted file yourself before it leaves your hands, especially for apps with custom auth schemes.
Headers and Cookies
Values of Authorization, Cookie, Set-Cookie, API key and CSRF headers are replaced, along with every cookie in the request and response cookie lists. Their names stay, so the file still explains itself.
URLs and Query Strings
Parameters named like tokens, keys, sessions, codes or signatures are replaced in both the URL and the queryString list. Other parameters, such as page numbers, are kept.
Posted Bodies
Form fields and JSON keys with sensitive names, such as password or client_secret, are replaced inside request bodies. Bodies in other formats are left as they are, so check them.
Response Bodies
Every response body is removed, because pages and API replies often contain personal data. Status, headers and sizes stay, which is enough for most debugging.
Custom Header Names
A token in a header with an unusual name, such as X-Shop-Session, isn’t recognised. Search the redacted file for your own app’s header names before sharing it.
Tokens Inside Paths
Secrets placed in the URL path itself, such as a reset link like /reset/abc123, aren’t detected. Replace those by hand or remove the request.
When to Open a HAR File
Whenever someone hands you a recording of a page instead of access to it.
Support Tickets
Read the HAR a customer sent to find the failing request, without opening dev tools on their behalf.
Before Sending One
Check your own HAR for cookies and tokens and redact them before attaching it to a ticket or forum post.
Slow Page Investigations
See whether the delay is the server’s wait, a heavy script, or a chain of requests that run one after another.
Third-Party Audits
List every host a page contacts, with what each one sent, to review trackers and dependencies.
QA Bug Reports
Attach a redacted HAR to a bug so developers can see the exact requests and responses.
HAR File Pitfalls
HAR files are easy to misread, and riskier to share than they look.
Sharing Live Session Cookies
A HAR can hold cookies that log anyone in as you. In 2023, attackers used session tokens taken from HAR files uploaded to Okta’s support system.
Redacting Only Headers
Tokens also hide in URLs, posted JSON and response bodies. Check every place, which is what Sensitive does.
Reading Cached Requests as Fast
Responses from the memory or disk cache show tiny times that say nothing about the server.
Blaming the Network for Wait
A long wait phase is server time. Faster hosting or a CDN won’t fix a slow database query.
Counting Blocked Requests as Outages
Status 0 with ERR_BLOCKED_BY_CLIENT means an extension stopped it, usually an ad blocker, not that the server failed.
Comparing Different Network Conditions
Throttling, VPNs and Wi-Fi change every timing. Record before and after on the same connection.
Huge Files With Bodies
Response bodies can make a HAR hundreds of megabytes. Clear the panel and record only the steps that show the problem.