HTTP & APIs / LOCAL TOOL

HAR Inspector

Open a browser HAR file locally to summarize requests, timings, sizes, and response details without uploading the archive.

Runs locally — input is never uploaded
Drop or paste a HAR file
CaptureReady when you are
Status
Method
Host
Type
View
Prepare a redacted HAR for sharing

Removes headers, cookies, queries, credentials, bodies, timestamps, page metadata, and extension fields from every entry. Hosts and timing information remain: review before sharing.

WHAT IT DOES

A browser network log, without the browser noise.

Drop a standard HTTP Archive file or paste its JSON to see a bounded, searchable summary of the requests it contains. The inspector shows method, URL, status, duration, transfer size, and failure details while masking common credentials and keeping the original archive in your browser.

Why use it?

A network capture contains more evidence than a screenshot, but it can also contain credentials and bodies. Local inspection helps find relevant failures and delays before deciding what is appropriate to share.

How to use this tool

  1. Paste or load a HAR capture locally and inspect it.
  2. Filter the requests and review status, timing, and request details without treating missing measurements as zero.
  3. For sharing, prepare a redacted HAR, review its exact preview and remaining information, then download. Masking the table alone does not sanitize the original file.

Details and limitations

  • HAR files are validated for the log and entries structure before a table is shown; malformed JSON and missing fields become actionable diagnostics.
  • Search and status filters operate on the parsed entries locally, with a bounded rendered window so a very large capture does not create one DOM row per request.
  • Request and response headers, query strings, and cookie headers are summarized with sensitive values masked rather than repeated into the results table.
  • Timings and byte sizes are kept as the archive reports them; a missing timing or size is shown as unavailable instead of treated as zero.
  • The tool accepts a local .har or JSON file up to the shared rendered-file limit and never sends the archive to a server.
  • Prepare a separate allowlist-based redacted HAR, review the exact JSON, then download. Headers, cookies, queries, bodies, credentials, custom fields, and original timestamps are removed; URL paths are removed unless explicitly retained.
  • Redaction exports all entries, not just filtered rows. Hostnames, ports, methods, statuses, sizes, and timings remain and can still be sensitive; the export is not a guarantee of anonymity.

Diagnose a slow request and prepare a HAR for sharing

Treat the original capture as private

HAR archives can include credentials, cookies, query parameters, and complete request and response bodies. Open the capture locally in the inspector rather than posting it to a chat. The table masks common sensitive values, but a masked display does not modify the original file and is not a sanitized download. Keep the original available privately if you need to revisit evidence removed during redaction.

Find the request that matters

Inspect the total capture and filter by host, method, status, or the Slow view. A long duration does not by itself identify the cause. A request with a 1500ms wait and a 20ms receive phase spent far more reported time waiting than receiving bytes, but wait time can include network and server effects. Do not call it database latency without server-side evidence. Missing HAR timing fields remain unknown rather than zero.

Reported example: send 0ms + wait 1500ms + receive 20ms = 1520ms
Interpretation: investigate waiting first; this does not prove the server's internal cause.

Prepare, review, then download

Open Prepare a redacted HAR for sharing. The default export removes headers, cookies, query strings, credentials, fragments, bodies, redirect targets, original timestamps, page metadata, IP fields, and custom extensions. Paths are replaced with /. You may retain paths explicitly, but an identifier or token inside a path will then remain. Review the exact JSON preview before downloading. Every entry is exported, not just the rows visible under the current filters.

Understand what remains

Hostnames, ports, methods, status codes, byte counts, and durations still reveal information. The export uses a fixed placeholder timestamp, so it is not suitable for reconstructing the original waterfall chronology. It also cannot preserve a response body's content type or reproduce authenticated requests after removing headers. These losses are deliberate: use the original for private debugging and the redacted file only after deciding its remaining fields are safe for the recipient.

References

WORKED EXAMPLES

A request that spends most of its time waiting

A synthetic capture with no private data. Inspect it, then prepare and review a redacted export.

HAR

{"log":{"version":"1.2","creator":{"name":"tool4.dev example","version":"1"},"entries":[{"startedDateTime":"2026-01-01T00:00:00Z","time":1520,"request":{"method":"GET","url":"https://api.example.com/items?token=DEMO_ONLY","httpVersion":"HTTP/1.1","headers":[],"cookies":[],"queryString":[{"name":"token","value":"DEMO_ONLY"}],"headersSize":-1,"bodySize":0},"response":{"status":200,"statusText":"OK","httpVersion":"HTTP/1.1","headers":[],"cookies":[],"content":{"size":20,"mimeType":"application/json"},"redirectURL":"","headersSize":-1,"bodySize":20},"cache":{},"timings":{"send":0,"wait":1500,"receive":20}}]}}

Expected result

One request, HTTP 200, duration 1.52s. The Slow view includes it. Default redaction removes the query and path, leaving https://api.example.com/.

COMMON QUESTIONS

HAR Inspector questions

Is a HAR file uploaded?
No. Dropping, pasting, parsing, filtering, and rendering happen in your browser. The file is read into local memory and is not sent to the page server.
Can it open a HAR with many requests?
It parses the archive with a bounded rendered table and keeps the summary counts separate from the visible rows. This prevents the page from creating an unbounded DOM for a large capture, though the browser still has to parse the JSON itself.
Does the inspector show cookies and authorization values?
It can identify those fields for the request summary, but values are masked in the displayed interpretation. Clear the input after inspecting a capture if the tab is shared.