# IndieHAR

> Inspect failed and slow requests in a HAR file, entirely in your browser. Free, no account, no upload.

Drop a HAR file. Find failed and slow requests. Everything stays in your browser.

The canonical page is https://indiehar.com/.

## Use the tool

Open [IndieHAR](https://indiehar.com/) to complete the job. The questions below describe the supported input, result, and limits. Every answer names its source next to it.

Source: [Your HAR recording · HAR 1.2 format](https://github.com/ahmadnassri/har-spec/blob/master/versions/1.2.md).

## Questions and limits

### What is a HAR file?

A HAR file, short for HTTP Archive, is a JSON recording of every request a browser made while you used a page: address, method, status, timing phases, sizes, headers, and often the bodies. Browser developer tools export it from the Network panel. IndieHAR reads [HAR 1.2](https://github.com/ahmadnassri/har-spec/blob/master/versions/1.2.md) files up to 20 MiB and 20,000 requests, and shows which requests failed and which were slow.

### How do I export a HAR file from Chrome or Firefox?

In Chrome, open DevTools, go to the Network panel, reproduce the problem, then press the export arrow or right-click the list and choose Export HAR. Recent Chrome versions offer a sanitized export that drops cookies and sensitive headers; pick it when you can. In Firefox, open the Network panel, right-click any request, and choose Save All As HAR. Safari's Web Inspector has Export in its Network tab.

### What counts as a failed request in a HAR?

IndieHAR calls a request an HTTP error when its recorded status is 400 through 599: not found, forbidden, server error, and the rest. A request with no valid status at all, often recorded as `0`, is listed as unresolved instead. That happens when the browser cancelled the request, a CORS check stopped it, a blocker refused it, or the recording ended first. Unresolved is not proof of failure, so the filter keeps the two apart.

### What do the timing phases of a request mean?

Each request records the phases the HAR format defines: blocked is queue and proxy wait, dns is the name lookup, connect is opening the socket and includes the TLS handshake, ssl is the TLS part of that on its own, send is uploading the request, wait is the time to first byte, and receive is downloading the response. A phase recorded as `-1` was not measured and shows as not recorded. Zero is a real measurement.

### Can I use IndieHAR to sanitize a HAR before sharing it?

No. The report hides query strings, fragments, and URL credentials, and it never renders headers or bodies, but that is the report on your screen, not the file. The file on your disk is unchanged and still holds every cookie, token, and body the browser recorded. Paths can be private too. To share a recording, use your browser's sanitized export or strip it with a dedicated tool.

### Does IndieHAR tell me why my page is slow?

It tells you where the time went on the network: which requests were slowest, which phase of each took longest, and how they line up on one timeline from the first request. It does not diagnose a root cause, measure rendering or script execution, or give a performance score. A long wait on one API call points at the server; many small requests point at the page's structure. The reading is yours.

## Promises

- The core is free: no account, no card, no premium plan, no upgrade nag, no hidden paywall.
- Private lookup activity is never published.
- Analytics is currently off. Private lookup activity is never published or sent to a tracker. No lookup history becomes public inventory.

## More

- [Notes](https://indiehar.com/blog.md): posts by the maker, newest first
- [More tools](https://indiehar.com/tools.md): the other tools by turushan
- [security.txt](https://indiehar.com/.well-known/security.txt): how to report a vulnerability

Made by turushan, https://twitter.com/turushan.
