HAR File Analyzer
Paste a HAR file to get an instant performance summary: total requests, transfer size and time, a breakdown by status code, type and domain, and the slowest and largest requests. Everything runs in your browser.
How to analyze a HAR file
- In your browser dev tools, open the Network tab and export the requests as a HAR file.
- Paste the HAR JSON into the box below.
- Read the dashboard and copy the summary, or scan the slowest and largest requests.
Examples
Two requests
{"log":{"entries":[{"request":{"url":"https://example.com/app.js"},"response":{"status":200,"content":{"mimeType":"application/javascript"},"_transferSize":12000},"time":80},{"request":{"url":"https://example.com/style.css"},"response":{"status":404,"content":{"mimeType":"text/css"},"_transferSize":500},"time":20}]}}2 requests, 12.2 KB, 100 ms. Status: 200 x1, 404 x1. 1 error. Slowest: app.js (80 ms).
Frequently asked questions
What is a HAR file?
A HAR (HTTP Archive) file is a JSON log of the network activity for a page. Browsers and tools like Chrome, Firefox, Edge and Charles can export one. It records every request and response, including the URL, status code, MIME type, transfer size and timing, which makes it useful for debugging performance and failed requests.
How do I export a HAR file?
Open your browser dev tools, go to the Network tab, reload the page so requests are captured, then right-click the request list and choose 'Save all as HAR' (or use the download icon). That produces a .har file you can paste here.
Is my HAR file uploaded to a server?
No. The HAR is parsed and analyzed entirely in your browser with JavaScript. Nothing is uploaded, stored or sent anywhere, which matters because HAR files can contain sensitive data like cookies, tokens and headers.
How is transfer size measured?
For each request the analyzer uses the transfer size recorded by the browser when available, then falls back to the response body size or content size. HAR uses -1 for unknown values, which the tool treats as zero, so totals reflect only the sizes the capture actually recorded.
How are requests grouped by type?
Each request is bucketed by its response MIME type into js, css, image, html, json, font or other. The match ignores any charset suffix, so 'text/html; charset=utf-8' counts as html. This gives a quick view of what kinds of assets a page loads.
What counts as an error?
Any response with a status code of 400 or higher counts as an error, covering client errors like 404 and server errors like 500. Aborted or failed requests that have a status of 0 are listed separately and are not counted as errors.
Related tools
JSON Formatter
Format, validate and minify JSON online. Pretty-print with custom indentation, sort keys and catch syntax errors. Runs in your browser.
JSON Path Finder
Find and extract values from JSON by path. Paste JSON, type a path like $.users[0].name, and get the value. Lists every leaf path. Runs in your browser.
HTTP Status Codes
Searchable list of HTTP status codes from 1xx to 5xx. Look up any code by number or name and see what 200, 301, 404 and 500 mean.
.env to JSON
Convert a .env file to JSON, or JSON back to .env. Parses KEY=value lines, comments, quotes and export. Runs entirely in your browser.
Aspect Ratio Calculator
Calculate aspect ratios fast. Enter a ratio like 16:9 and one dimension to get the other, or enter width and height to simplify the ratio.
Base58 Encoder
Encode and decode Base58 online with the Bitcoin alphabet. Convert text to Base58 or back, UTF-8 safe, no confusing 0 O I l. Runs in your browser.