Free tools

Free HAR Viewer

Open HAR files, inspect requests, status codes, domains, and timing to debug web performance and API issues.

Copy-paste outputs

Win high-intent buyers from ChatGPT, Gemini, Claude, Perplexity, and AI Overviews before your competitors do.

One operating layer for monitoring, measurement, content action, and technical cleanup.

AI Visibility TrackingCompetitive RankingSentiment by ModelSource CitationsAI Overviews TrackingPrompt MonitoringAI Visibility TrackingCompetitive RankingSentiment by ModelSource CitationsAI Overviews TrackingPrompt Monitoring
Content GapsAI InsightsAdvanced AnalyticsData CopilotBlog GenerationUGC CampaignsLLM CouncilContent GapsAI InsightsAdvanced AnalyticsData CopilotBlog GenerationUGC CampaignsLLM Council
Shopping IntelligenceCrawler MonitoringGEO OptimizationMulti-Brand ManagementShopping IntelligenceCrawler MonitoringGEO OptimizationMulti-Brand Management

Tool 01

HAR Viewer

Inspect HTTP Archive data with request, status, timing, and domain-level summaries.

HAR Viewer
Paste HAR JSON and inspect requests, status codes, domains, and timing.

How it works

HAR Viewer: methodology and worked example

How this tool computes its result

Parses pasted HAR JSON and requires a log.entries array to be present, otherwise showing an explicit format error. From the entries it computes summary statistics — total request count, average entry.time across all entries, count of 2xx responses, count of 4xx/5xx responses, and the top 8 domains by request count (parsed via new URL(entry.request.url).hostname, silently skipping any entry whose URL fails to parse). The request table supports a free-text filter matched as a substring against method, URL, and stringified status code together, and renders at most the first 1,000 filtered entries regardless of how many match.

Worked example

A HAR with 250 entries, 210 returning 2xx and 15 returning 4xx/5xx, an average entry.time of 340ms, and api.example.com as the dominant domain (140 requests) produces summary cards reading '250 total requests / 340.0ms avg / 210 2xx responses / 15 4xx/5xx responses'. Typing '404' into the filter box narrows the request table to only entries whose status code stringifies to include '404'.

When not to use this tool

Only the first 1,000 matching entries are ever rendered in the request table — HAR captures from long browsing sessions or request-heavy single-page apps routinely exceed that, so entries beyond the cap are invisible in the table even though they're still counted in the summary statistics above it.

Common mistakes

  • - Pasting a bare array of entries instead of the full HAR wrapper object ({"log":{"entries":[...]}}) — the parser explicitly checks for data.log.entries and shows 'Invalid HAR format: expected log.entries array' if that shape is missing.
  • - Expecting the filter box to support structured queries like method:GET or status:200 — it's a single plain substring match tested against method, URL, and status text combined, not field-scoped.
  • - Assuming the Size column reflects on-the-wire, compressed transfer size — toKb() reads response.content.size, which per the HAR spec is the decoded content size, not transferSize.

Ready to dominate AI search visibility?

Track where your brand shows up in AI answers, close the content gaps that cost conversions, and stay visible across ChatGPT, Claude, Gemini, Perplexity, and Grok.