Quick answer
A HAR (HTTP Archive) file is a JSON log of the network requests a browser made while loading a page, including URLs, headers, cookies, bodies, status codes and per-request timings. It is exported from browser developer tools for troubleshooting.
What is a HAR file?
A HAR file (HTTP Archive) is a JSON file that records every network request a browser made while loading or using a web page: the URL, method, headers, cookies, request and response bodies, status codes and a timing breakdown for each request. Browsers export it from their developer tools, and support teams ask for one because it shows exactly what happened between a browser and a server.
The format was defined by Jan Odvarko and the W3C Web Performance working group; version 1.2 is what browsers produce today. The file extension is .har.
What is inside a HAR file
A simplified excerpt (sample):
{
"log": {
"version": "1.2",
"creator": { "name": "WebInspector", "version": "537.36" },
"pages": [{ "id": "page_1", "title": "https://example.com/pricing" }],
"entries": [{
"startedDateTime": "2026-11-06T09:14:03.120Z",
"time": 199.4,
"request": { "method": "POST", "url": "https://example.com/api/v1/pulse", "headers": [], "postData": {} },
"response": { "status": 202, "headers": [], "content": { "size": 0 } },
"timings": { "blocked": 2, "dns": 18, "connect": 31, "ssl": 22, "send": 0.4, "wait": 142, "receive": 6 }
}]
}
}
- pages: one entry per page load in the capture.
- entries: one per request, in order, each with
request,response,cacheandtimings. - timings: how long each phase took, in milliseconds.
Reading the timings
| Phase | What it measures | When it is large |
|---|---|---|
| blocked | Waiting in the browser queue | Too many requests to one host, low priority |
| dns | Domain name lookup | New domain, slow resolver |
| connect | TCP connection (includes TLS) | New connection, distant server |
| ssl | TLS handshake (part of connect) | New HTTPS connection |
| send | Sending the request | Large uploads |
| wait | Waiting for the first byte of the response | Slow server or backend work; this is the request's time to first byte |
| receive | Downloading the response | Large responses, slow network |
In the example, time = 2 + 18 + 31 + 0.4 + 142 + 6 = 199.4 ms, and most of it is wait: the server took 142 ms to answer. A request dominated by blocked or dns points to the page or network rather than the server. See time to first byte.
How to create a HAR file
In every major browser the steps are similar:
- Open developer tools (F12, or Cmd+Option+I on a Mac) and go to the Network tab.
- Turn on Preserve log so requests survive page navigation.
- Reproduce the problem: reload the page and click through the steps.
- Export: right-click the request list (or use the download icon) and choose Save all as HAR / Export HAR.
Recent versions of Chrome offer a sanitized export by default that leaves out cookies and authorization headers; exporting with sensitive data requires turning on a separate setting. For browser-specific steps and what to check before sending one, see how to capture a HAR file.
HAR files contain sensitive data
A full HAR can include everything the browser sent and received:
- Cookies and session tokens, which can let someone act as you if they are still valid
- Authorization headers and API keys
- Form data, including anything typed into fields during the capture
- Personal data in URLs, request bodies and responses
Before you share one: use a sanitized export where available, capture in a private window with a test account, log out afterwards to invalidate session cookies, and open the file in a text editor to search for tokens or emails. Only send HAR files to support teams you trust, through their official channel.
How HAR files help with analytics problems
When a tracking setup reports nothing, too little or doubled data, a HAR file shows what the browser actually did:
- Did the script load? Look for the analytics script request (for TapCub,
client.js) and its status. - Was the hit sent? Look for the collect request (for TapCub, a POST to
/api/v1/pulseon the script's origin). No request means the event never left the browser. - Was it blocked? Entries that fail with a blocked status usually mean an ad blocker or a content security policy stopped them; see do ad blockers block TapCub.
- What did the server answer? TapCub's collector returns 202 both for stored hits and for hits it drops (for example, an unregistered domain), so check the realtime report alongside the HAR; see check installation.
- Is anything sent twice? Two collect requests per page view usually mean the snippet is installed twice.
Tools for viewing HAR files
- Browser developer tools can import a HAR into the Network tab for a familiar view.
- Google's Admin Toolbox HAR Analyzer visualizes timings and can redact some fields.
- Any JSON viewer or text editor works for searching.
Sources
- W3C Web Performance Working Group. HTTP Archive (HAR) format.
- Odvarko, J. HAR 1.2 spec.
- Chrome for Developers. Network features reference: save all network requests to a HAR file.
Was this explanation clear?
We use your answers to fix and expand this page.
Couldn’t send. Please try again in a minute.
Thanks for the feedback. We’ll use it to improve this page.You’ve already sent feedback on this page. Thanks.

Technical Engineer
Focuses on tracking code, SDKs, and API integrations, with practical guidance on implementation checks and troubleshooting.