HAR File Inspector API
Open HAR files online: inspect network requests, analyze failures, detect slow responses, redact secrets, and export sanitized bug reports. 100% client-side.
The HAR File Inspector is also available as a free REST API. Send a POST request with a JSON body to https://dot.tools/api/tools/har-viewer — no authentication, no API key, CORS enabled. Successful calls return { "ok": true, "result": { … } }; failures return HTTP 400 or 422 with an error body.
Request body
| Field | Type | Required | Description |
|---|---|---|---|
harText | string | required | The raw HAR JSON text. |
sanitize | boolean | optional | Whether to return a sanitized HAR copy in addition to the analysis. |
sanitizeOptions | object | optional | Sanitization options. |
Response
| Field | Type | Required | Description |
|---|---|---|---|
analysis | unknown | required | Parsed HAR summary, request rows, diagnostics, and metadata. |
sanitizedHar | unknown | optional | Sanitized HAR object, if requested. |
redactionReport | unknown | optional | Redaction counts and sample paths, if sanitization was requested. |
markdownReport | string | optional | Markdown bug report summary. |
Example request
curl -X POST https://dot.tools/api/tools/har-viewer \
-H 'Content-Type: application/json' \
-d '{
"harText": "{\n \"log\": {\n \"version\": \"1.2\",\n \"creator\": {\n \"name\": \"Chrome DevTools\",\n \"version\": \"126.0\"\n },\n \"browser\": {\n \"name\": \"Chrome\",\n \"version\": \"126.0\"\n },\n \"pages\": [\n {\n \"id\": \"page_1\",\n \"title\": \"https://app.example.com/dashboard\",\n \"startedDateTime\": \"2026-04-25T20:12:00.000Z\"\n }\n ],\n \"entries\": [\n {\n \"pageref\": \"page_1\",\n \"startedDateTime\": \"2026-04-25T20:12:00.050Z\",\n \"time\": 184,\n \"request\": {\n \"method\": \"GET\",\n \"url\": \"https://app.example.com/dashboard?session=abc123\",\n \"httpVersion\": \"HTTP/2\",\n \"cookies\": [\n {\n \"name\": \"session\",\n \"value\": \"super-secret-cookie\"\n }\n ],\n \"headers\": [\n {\n \"name\": \"Accept\",\n \"value\": \"text/html\"\n },\n {\n \"name\": \"Cookie\",\n \"value\": \"session=super-secret-cookie\"\n }\n ],\n \"queryString\": [\n {\n \"name\": \"session\",\n \"value\": \"abc123\"\n }\n ],\n \"headersSize\": 420,\n \"bodySize\": 0\n },\n \"response\": {\n \"status\": 200,\n \"statusText\": \"OK\",\n \"httpVersion\": \"HTTP/2\",\n \"headers\": [\n {\n \"name\": \"content-type\",\n \"value\": \"text/html; charset=utf-8\"\n },\n {\n \"name\": \"cache-control\",\n \"value\": \"no-cache\"\n },\n {\n \"name\": \"set-cookie\",\n \"value\": \"sid=server-cookie; HttpOnly\"\n }\n ],\n \"content\": {\n \"size\": 42112,\n \"mimeType\": \"text/html\",\n \"text\": \"<html>Dashboard</html>\"\n },\n \"headersSize\": 680,\n \"bodySize\": 42112,\n \"_transferSize\": 15940\n },\n \"cache\": {},\n \"timings\": {\n \"blocked\": 2,\n \"dns\": 4,\n \"connect\": 18,\n \"ssl\": 28,\n \"send\": 1,\n \"wait\": 102,\n \"receive\": 29\n },\n \"serverIPAddress\": \"172.16.0.42\"\n },\n {\n \"pageref\": \"page_1\",\n \"startedDateTime\": \"2026-04-25T20:12:00.320Z\",\n \"time\": 86,\n \"request\": {\n \"method\": \"GET\",\n \"url\": \"https://cdn.example.com/assets/app.91f3.js\",\n \"httpVersion\": \"HTTP/2\",\n \"headers\": [\n {\n \"name\": \"Accept\",\n \"value\": \"*/*\"\n }\n ],\n \"queryString\": [],\n \"headersSize\": 260,\n \"bodySize\": 0\n },\n \"response\": {\n \"status\": 200,\n \"statusText\": \"OK\",\n \"httpVersion\": \"HTTP/2\",\n \"headers\": [\n {\n \"name\": \"content-type\",\n \"value\": \"application/javascript\"\n }\n ],\n \"content\": {\n \"size\": 1482340,\n \"mimeType\": \"application/javascript\",\n \"text\": \"console.log('bundle')\"\n },\n \"headersSize\": 210,\n \"bodySize\": 1482340,\n \"_transferSize\": 486210\n },\n \"cache\": {},\n \"timings\": {\n \"blocked\": 1,\n \"dns\": 0,\n \"connect\": 0,\n \"ssl\": 0,\n \"send\": 1,\n \"wait\": 40,\n \"receive\": 44\n }\n },\n {\n \"pageref\": \"page_1\",\n \"startedDateTime\": \"2026-04-25T20:12:00.680Z\",\n \"time\": 4260,\n \"request\": {\n \"method\": \"POST\",\n \"url\": \"https://api.example.com/v1/search?api_key=pk_live_123456789\",\n \"httpVersion\": \"HTTP/2\",\n \"headers\": [\n {\n \"name\": \"content-type\",\n \"value\": \"application/json\"\n },\n {\n \"name\": \"authorization\",\n \"value\": \"Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.demo.signature\"\n }\n ],\n \"queryString\": [\n {\n \"name\": \"api_key\",\n \"value\": \"pk_live_123456789\"\n }\n ],\n \"postData\": {\n \"mimeType\": \"application/json\",\n \"text\": \"{\\\"query\\\":\\\"invoices\\\",\\\"client_secret\\\":\\\"shhh\\\",\\\"page\\\":1}\"\n },\n \"headersSize\": 540,\n \"bodySize\": 58\n },\n \"response\": {\n \"status\": 500,\n \"statusText\": \"Internal Server Error\",\n \"httpVersion\": \"HTTP/2\",\n \"headers\": [\n {\n \"name\": \"content-type\",\n \"value\": \"application/json\"\n }\n ],\n \"content\": {\n \"size\": 73,\n \"mimeType\": \"application/json\",\n \"text\": \"{\\\"error\\\":\\\"database timeout\\\"}\"\n },\n \"headersSize\": 220,\n \"bodySize\": 73,\n \"_transferSize\": 293\n },\n \"cache\": {},\n \"timings\": {\n \"blocked\": 3,\n \"dns\": 12,\n \"connect\": 18,\n \"ssl\": 22,\n \"send\": 2,\n \"wait\": 4170,\n \"receive\": 33\n }\n },\n {\n \"pageref\": \"page_1\",\n \"startedDateTime\": \"2026-04-25T20:12:01.100Z\",\n \"time\": 0,\n \"request\": {\n \"method\": \"GET\",\n \"url\": \"https://analytics.vendor.test/collect?id_token=secret-id-token\",\n \"httpVersion\": \"HTTP/2\",\n \"headers\": [\n {\n \"name\": \"Accept\",\n \"value\": \"*/*\"\n }\n ],\n \"queryString\": [\n {\n \"name\": \"id_token\",\n \"value\": \"secret-id-token\"\n }\n ],\n \"headersSize\": 250,\n \"bodySize\": 0\n },\n \"response\": {\n \"status\": 0,\n \"statusText\": \"\",\n \"httpVersion\": \"HTTP/2\",\n \"headers\": [],\n \"content\": {\n \"size\": 0,\n \"mimeType\": \"\",\n \"text\": \"\"\n },\n \"headersSize\": -1,\n \"bodySize\": -1\n },\n \"cache\": {},\n \"timings\": {\n \"blocked\": 0,\n \"dns\": -1,\n \"connect\": -1,\n \"ssl\": -1,\n \"send\": 0,\n \"wait\": 0,\n \"receive\": 0\n }\n },\n {\n \"pageref\": \"page_1\",\n \"startedDateTime\": \"2026-04-25T20:12:01.300Z\",\n \"time\": 72,\n \"request\": {\n \"method\": \"GET\",\n \"url\": \"https://app.example.com/api/me\",\n \"httpVersion\": \"HTTP/2\",\n \"headers\": [\n {\n \"name\": \"authorization\",\n \"value\": \"Bearer demo-token\"\n }\n ],\n \"queryString\": [],\n \"headersSize\": 320,\n \"bodySize\": 0\n },\n \"response\": {\n \"status\": 401,\n \"statusText\": \"Unauthorized\",\n \"httpVersion\": \"HTTP/2\",\n \"headers\": [\n {\n \"name\": \"content-type\",\n \"value\": \"application/json\"\n }\n ],\n \"content\": {\n \"size\": 34,\n \"mimeType\": \"application/json\",\n \"text\": \"{\\\"error\\\":\\\"token expired\\\"}\"\n },\n \"headersSize\": 190,\n \"bodySize\": 34,\n \"_transferSize\": 224\n },\n \"cache\": {},\n \"timings\": {\n \"blocked\": 1,\n \"dns\": 0,\n \"connect\": 0,\n \"ssl\": 0,\n \"send\": 1,\n \"wait\": 66,\n \"receive\": 4\n }\n }\n ]\n }\n}",
"sanitize": true,
"sanitizeOptions": {
"redactCookies": true,
"redactHeaders": true,
"redactQueryParams": true,
"redactPostData": true,
"stripResponseContent": true,
"stripRequestBodies": false,
"redactLocalIps": true
}
}'Sample response
{
"ok": true,
"result": {
"analysis": {
"har": {
"log": {
"version": "1.2",
"creator": {
"name": "Chrome DevTools",
"version": "126.0"
},
"browser": {
"name": "Chrome",
"version": "126.0"
},
"pages": [
{
"id": "page_1",
"title": "https://app.example.com/dashboard",
"startedDateTime": "2026-04-25T20:12:00.000Z"
}
],
"entries": [
{
"pageref": "page_1",
"startedDateTime": "2026-04-25T20:12:00.050Z",
"time": 184,
"request": {
"method": "GET",
"url": "https://app.example.com/dashboard?session=abc123",
"httpVersion": "HTTP/2",
"cookies": [
{
"name": "session",
"value": "super-secret-cookie"
}
],
"headers": [
{
"name": "Accept",
"value": "text/html"
},
{
"name": "Cookie",
"value": "session=super-secret-cookie"
}
],
"queryString": [
{
"name": "session",
"value": "abc123"
}
],
"headersSize": 420,
"bodySize": 0
},
"response": {
"status": 200,
"statusText": "OK",
"httpVersion": "HTTP/2",
"headers": [
{
"name": "content-type",
"value": "text/html; charset=utf-8"
},
{
"name": "cache-control",
"value": "no-cache"
},
{
"name": "set-cookie",
"value": "sid=server-cookie; HttpOnly"
}
],
"content": {
"size": 42112,
"mimeType": "text/html",
"text": "<html>Dashboard</html>"
},
"headersSize": 680,
"bodySize": 42112,
"_transferSize": 15940
},
"cache": {},
"timings": {
"blocked": 2,
"dns": 4,
"connect": 18,
"ssl": 28,
"send": 1,
"wait": 102,
"receive": 29
},
"serverIPAddress": "172.16.0.42"
},
{
"pageref": "page_1",
"startedDateTime": "2026-04-25T20:12:00.320Z",
"time": 86,
"request": {
"method": "GET",
"url": "https://cdn.example.com/assets/app.91f3.js",
"httpVersion": "HTTP/2",
"headers": [
{
"name": "Accept",
"value": "*/*"
}
],
"queryString": [],
"headersSize": 260,
"bodySize": 0
},
"response": {
"status": 200,
"statusText": "OK",
"httpVersion": "HTTP/2",
"headers": [
{
"name": "content-type",
"value": "application/javascript"
}
],
"content": {
"size": 1482340,
"mimeType": "application/javascript",
"text": "console.log('bundle')"
},
"headersSize": 210,
"bodySize": 1482340,
"_transferSize": 486210
},
"cache": {},
"timings": {
"blocked": 1,
"dns": 0,
"connect": 0,
"ssl": 0,
"send": 1,
"wait": 40,
"receive": 44
}
},
{
"pageref": "page_1",
"startedDateTime": "2026-04-25T20:12:00.680Z",
"time": 4260,
"request": {
"method": "POST",
"url": "https://api.example.com/v1/search?api_key=pk_live_123456789",
"httpVersion": "HTTP/2",
"headers": [
{
"name": "content-type",
"value": "application/json"
},
{
"name": "authorization",
"value": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.demo.signature"
}
],
"queryString": [
{
"name": "api_key",
"value": "pk_live_123456789"
}
],
"postData": {
"mimeType": "application/json",
"text": "{\"query\":\"invoices\",\"client_secret\":\"shhh\",\"page\":1}"
},
"headersSize": 540,
"bodySize": 58
},
"response": {
"status": 500,
"statusText": "Internal Server Error",
"httpVersion": "HTTP/2",
"headers": [
{
"name": "content-type",
"value": "application/json"
}
],
"content": {
"size": 73,
"mimeType": "application/json",
"text": "{\"error\":\"database timeout\"}"
},
"headersSize": 220,
"bodySize": 73,
"_transferSize": 293
},
"cache": {},
"timings": {
"blocked": 3,
"dns": 12,
"connect": 18,
"ssl": 22,
"send": 2,
"wait": 4170,
"receive": 33
}
},
{
"pageref": "page_1",
"startedDateTime": "2026-04-25T20:12:01.100Z",
"time": 0,
"request": {
"method": "GET",
"url": "https://analytics.vendor.test/collect?id_token=secret-id-token",
"httpVersion": "HTTP/2",
"headers": [
{
"name": "Accept",
"value": "*/*"
}
],
"queryString": [
{
"name": "id_token",
"value": "secret-id-token"
}
],
"headersSize": 250,
"bodySize": 0
},
"response": {
"status": 0,
"statusText": "",
"httpVersion": "HTTP/2",
"headers": [],
"content": {
"size": 0,
"mimeType": "",
"text": ""
},
"headersSize": -1,
"bodySize": -1
},
"cache": {},
"timings": {
"blocked": 0,
"dns": -1,
"connect": -1,
"ssl": -1,
"send": 0,
"wait": 0,
"receive": 0
}
},
{
"pageref": "page_1",
"startedDateTime": "2026-04-25T20:12:01.300Z",
"time": 72,
"request": {
"method": "GET",
"url": "https://app.example.com/api/me",
"httpVersion": "HTTP/2",
"headers": [
{
"name": "authorization",
"value": "Bearer demo-token"
}
],
"queryString": [],
"headersSize": 320,
"bodySize": 0
},
"response": {
"status": 401,
"statusText": "Unauthorized",
"httpVersion": "HTTP/2",
"headers": [
{
"name": "content-type",
"value": "application/json"
}
],
"content": {
"size": 34,
"mimeType": "application/json",
"text": "{\"error\":\"token expired\"}"
},
"headersSize": 190,
"bodySize": 34,
"_transferSize": 224
},
"cache": {},
"timings": {
"blocked": 1,
"dns": 0,
"connect": 0,
"ssl": 0,
"send": 1,
"wait": 66,
"receive": 4
}
}
]
}
},
"version": "1.2",
"creator": "Chrome DevTools 126.0",
"browser": "Chrome 126.0",
"pages": [
{
"id": "page_1",
"title": "https://app.example.com/dashboard",
"startedDateTime": "2026-04-25T20:12:00.000Z"
}
],
"summary": {
"totalRequests": 5,
"failedRequests": 3,
"blockedRequests": 1,
"redirectRequests": 0,
"slowRequests": 1,
"largeResponses": 0,
"sensitiveRequests": 4,
"cacheableWithoutCacheHints": 1,
"totalTransferSize": 502667,
"totalRequestBodySize": 58,
"totalResponseBodySize": 1524559,
"totalDurationMs": 4890,
"firstStartedAt": "2026-04-25T20:12:00.050Z",
"lastFinishedAt": "2026-04-25T20:12:04.940Z",
"uniqueHosts": 4,
"uniqueRootDomains": 2,
"thirdPartyRequests": 1,
"firstPartyHost": "app.example.com",
"firstPartyRootDomain": "example.com"
},
"entries": [
{
"id": 0,
"method": "GET",
"url": "https://app.example.com/dashboard?session=abc123",
"host": "app.example.com",
"rootDomain": "example.com",
"path": "/dashboard?session=abc123",
"protocol": "https:",
"status": 200,
"statusText": "OK",
"mimeType": "text/html",
"startedDateTime": "2026-04-25T20:12:00.050Z",
"startOffsetMs": 0,
"timeMs": 184,
"transferSize": 15940,
"requestBodySize": 0,
"responseBodySize": 42112,
"fromCache": false,
"isThirdParty": false,
"hasSensitiveData": true,
"cacheableWithoutCacheHints": false,
"redirectUrl": "",
"timing": {
"blocked": 2,
"dns": 4,
"connect": 18,
"ssl": 28,
"send": 1,
"wait": 102,
"receive": 29,
"other": 0,
"total": 184
},
"warnings": [
{
"code": "sensitive-data",
"severity": "warning",
"message": "Sensitive request data candidate found."
}
]
},
{
"id": 1,
"method": "GET",
"url": "https://cdn.example.com/assets/app.91f3.js",
"host": "cdn.example.com",
"rootDomain": "example.com",
"path": "/assets/app.91f3.js",
"protocol": "https:",
"status": 200,
"statusText": "OK",
"mimeType": "application/javascript",
"startedDateTime": "2026-04-25T20:12:00.320Z",
"startOffsetMs": 270,
"timeMs": 86,
"transferSize": 486210,
"requestBodySize": 0,
"responseBodySize": 1482340,
"fromCache": false,
"isThirdParty": false,
"hasSensitiveData": false,
"cacheableWithoutCacheHints": true,
"redirectUrl": "",
"timing": {
"blocked": 1,
"dns": 0,
"connect": 0,
"ssl": 0,
"send": 1,
"wait": 40,
"receive": 44,
"other": 0,
"total": 86
},
"warnings": [
{
"code": "missing-cache",
"severity": "info",
"message": "Static-looking asset without obvious cache headers."
}
]
},
{
"id": 2,
"method": "POST",
"url": "https://api.example.com/v1/search?api_key=pk_live_123456789",
"host": "api.example.com",
"rootDomain": "example.com",
"path": "/v1/search?api_key=pk_live_123456789",
"protocol": "https:",
"status": 500,
"statusText": "Internal Server Error",
"mimeType": "application/json",
"startedDateTime": "2026-04-25T20:12:00.680Z",
"startOffsetMs": 630,
"timeMs": 4260,
"transferSize": 293,
"requestBodySize": 58,
"responseBodySize": 73,
"fromCache": false,
"isThirdParty": false,
"hasSensitiveData": true,
"cacheableWithoutCacheHints": false,
"redirectUrl": "",
"timing": {
"blocked": 3,
"dns": 12,
"connect": 18,
"ssl": 22,
"send": 2,
"wait": 4170,
"receive": 33,
"other": 0,
"total": 4260
},
"warnings": [
{
"code": "server-error",
"severity": "error",
"message": "Server error (500)."
},
{
"code": "slow",
"severity": "warning",
"message": "Slow request (4.26 s)."
},
{
"code": "sensitive-data",
"severity": "warning",
"message": "Sensitive request data candidate found."
}
]
},
{
"id": 3,
"method": "GET",
"url": "https://analytics.vendor.test/collect?id_token=secret-id-token",
"host": "analytics.vendor.test",
"rootDomain": "vendor.test",
"path": "/collect?id_token=secret-id-token",
"protocol": "https:",
"status": 0,
"statusText": "",
"mimeType": "",
"startedDateTime": "2026-04-25T20:12:01.100Z",
"startOffsetMs": 1050,
"timeMs": 0,
"transferSize": 0,
"requestBodySize": 0,
"responseBodySize": 0,
"fromCache": false,
"isThirdParty": true,
"hasSensitiveData": true,
"cacheableWithoutCacheHints": false,
"redirectUrl": "",
"timing": {
"blocked": 0,
"dns": 0,
"connect": 0,
"ssl": 0,
"send": 0,
"wait": 0,
"receive": 0,
"other": 0,
"total": 0
},
"warnings": [
{
"code": "no-status",
"severity": "error",
"message": "No HTTP status code. This often means a blocked, cancelled, CORS-failed, or network-failed request."
},
{
"code": "sensitive-data",
"severity": "warning",
"message": "Sensitive request data candidate found."
}
]
},
{
"id": 4,
"method": "GET",
"url": "https://app.example.com/api/me",
"host": "app.example.com",
"rootDomain": "example.com",
"path": "/api/me",
"protocol": "https:",
"status": 401,
"statusText": "Unauthorized",
"mimeType": "application/json",
"startedDateTime": "2026-04-25T20:12:01.300Z",
"startOffsetMs": 1250,
"timeMs": 72,
"transferSize": 224,
"requestBodySize": 0,
"responseBodySize": 34,
"fromCache": false,
"isThirdParty": false,
"hasSensitiveData": true,
"cacheableWithoutCacheHints": false,
"redirectUrl": "",
"timing": {
"blocked": 1,
"dns": 0,
"connect": 0,
"ssl": 0,
"send": 1,
"wait": 66,
"receive": 4,
"other": 0,
"total": 72
},
"warnings": [
{
"code": "client-error",
"severity": "warning",
"message": "Client error (401)."
},
{
"code": "sensitive-data",
"severity": "warning",
"message": "Sensitive request data candidate found."
}
]
}
],
"diagnostics": [
{
"id": "failed-requests",
"severity": "error",
"title": "Failed requests found",
"message": "3 requests returned 0, 4xx, or 5xx status codes.",
"count": 3,
"rowIds": [
2,
3,
4
]
},
{
"id": "blocked-or-cancelled",
"severity": "warning",
"title": "Blocked, cancelled, or CORS-looking requests",
"message": "1 request had status 0. Browsers use this for failed/cancelled network activity and opaque CORS failures.",
"count": 1,
"rowIds": [
3
]
},
{
"id": "slow-requests",
"severity": "warning",
"title": "Slow requests",
"message": "1 request took at least 3.00 s.",
"count": 1,
"rowIds": [
2
]
},
{
"id": "sensitive-data",
"severity": "warning",
"title": "Sensitive data candidates",
"message": "4 requests contained cookies, auth headers, tokens, or secret-looking parameters. Export a sanitized HAR before sharing.",
"count": 4,
"rowIds": [
0,
2,
3,
4
]
},
{
"id": "cache-hints",
"severity": "info",
"title": "Cache hints missing on static assets",
"message": "1 static-looking asset had no obvious Cache-Control, ETag, or Expires header.",
"count": 1,
"rowIds": [
1
]
}
],
"securityFindings": [
{
"entryId": 0,
"method": "GET",
"url": "https://app.example.com/dashboard?session=abc123",
"type": "header",
"name": "Cookie",
"path": "log.entries[0].request.headers[1]"
},
{
"entryId": 0,
"method": "GET",
"url": "https://app.example.com/dashboard?session=abc123",
"type": "cookie",
"name": "session",
"path": "log.entries[0].request.cookies[0]"
},
{
"entryId": 0,
"method": "GET",
"url": "https://app.example.com/dashboard?session=abc123",
"type": "query",
"name": "session",
"path": "log.entries[0].request.queryString[0]"
},
{
"entryId": 0,
"method": "GET",
"url": "https://app.example.com/dashboard?session=abc123",
"type": "url",
"name": "query string",
"path": "log.entries[0].request.url"
},
{
"entryId": 2,
"method": "POST",
"url": "https://api.example.com/v1/search?api_key=pk_live_123456789",
"type": "header",
"name": "authorization",
"path": "log.entries[2].request.headers[1]"
},
{
"entryId": 2,
"method": "POST",
"url": "https://api.example.com/v1/search?api_key=pk_live_123456789",
"type": "query",
"name": "api_key",
"path": "log.entries[2].request.queryString[0]"
},
{
"entryId": 2,
"method": "POST",
"url": "https://api.example.com/v1/search?api_key=pk_live_123456789",
"type": "url",
"name": "query string",
"path": "log.entries[2].request.url"
},
{
"entryId": 2,
"method": "POST",
"url": "https://api.example.com/v1/search?api_key=pk_live_123456789",
"type": "body",
"name": "postData.text",
"path": "log.entries[2].request.postData.text"
},
{
"entryId": 3,
"method": "GET",
"url": "https://analytics.vendor.test/collect?id_token=secret-id-token",
"type": "query",
"name": "id_token",
"path": "log.entries[3].request.queryString[0]"
},
{
"entryId": 3,
"method": "GET",
"url": "https://analytics.vendor.test/collect?id_token=secret-id-token",
"type": "url",
"name": "query string",
"path": "log.entries[3].request.url"
},
{
"entryId": 4,
"method": "GET",
"url": "https://app.example.com/api/me",
"type": "header",
"name": "authorization",
"path": "log.entries[4].request.headers[0]"
}
],
"domainStats": [
{
"host": "app.example.com",
"rootDomain": "example.com",
"requests": 2,
"failed": 1,
"transferSize": 16164,
"totalTimeMs": 256,
"slowestMs": 184,
"isThirdParty": false
},
{
"host": "cdn.example.com",
"rootDomain": "example.com",
"requests": 1,
"failed": 0,
"transferSize": 486210,
"totalTimeMs": 86,
"slowestMs": 86,
"isThirdParty": false
},
{
"host": "api.example.com",
"rootDomain": "example.com",
"requests": 1,
"failed": 1,
"transferSize": 293,
"totalTimeMs": 4260,
"slowestMs": 4260,
"isThirdParty": false
},
{
"host": "analytics.vendor.test",
"rootDomain": "vendor.test",
"requests": 1,
"failed": 1,
"transferSize": 0,
"totalTimeMs": 0,
"slowestMs": 0,
"isThirdParty": true
}
],
"statusBuckets": {
"0": 1,
"1xx": 0,
"2xx": 2,
"3xx": 0,
"4xx": 1,
"5xx": 1
},
"methodCounts": {
"GET": 4,
"POST": 1
},
"mimeCounts": {
"json": 2,
"html": 1,
"javascript": 1,
"unknown": 1
}
},
"sanitizedHar": {
"log": {
"version": "1.2",
"creator": {
"name": "Chrome DevTools",
"version": "126.0"
},
"browser": {
"name": "Chrome",
"version": "126.0"
},
"pages": [
{
"id": "page_1",
"title": "https://app.example.com/dashboard",
"startedDateTime": "2026-04-25T20:12:00.000Z"
}
],
"entries": [
{
"pageref": "page_1",
"startedDateTime": "2026-04-25T20:12:00.050Z",
"time": 184,
"request": {
"method": "GET",
"url": "https://app.example.com/dashboard?session=%5BREDACTED%5D",
"httpVersion": "HTTP/2",
"cookies": [
{
"name": "session",
"value": "[REDACTED]"
}
],
"headers": [
{
"name": "Accept",
"value": "text/html"
},
{
"name": "Cookie",
"value": "[REDACTED]"
}
],
"queryString": [
{
"name": "session",
"value": "[REDACTED]"
}
],
"headersSize": 420,
"bodySize": 0
},
"response": {
"status": 200,
"statusText": "OK",
"httpVersion": "HTTP/2",
"headers": [
{
"name": "content-type",
"value": "text/html; charset=utf-8"
},
{
"name": "cache-control",
"value": "no-cache"
},
{
"name": "set-cookie",
"value": "[REDACTED]"
}
],
"content": {
"size": 42112,
"mimeType": "text/html",
"text": ""
},
"headersSize": 680,
"bodySize": 42112,
"_transferSize": 15940
},
"cache": {},
"timings": {
"blocked": 2,
"dns": 4,
"connect": 18,
"ssl": 28,
"send": 1,
"wait": 102,
"receive": 29
},
"serverIPAddress": "[REDACTED]"
},
{
"pageref": "page_1",
"startedDateTime": "2026-04-25T20:12:00.320Z",
"time": 86,
"request": {
"method": "GET",
"url": "https://cdn.example.com/assets/app.91f3.js",
"httpVersion": "HTTP/2",
"headers": [
{
"name": "Accept",
"value": "*/*"
}
],
"queryString": [],
"headersSize": 260,
"bodySize": 0
},
"response": {
"status": 200,
"statusText": "OK",
"httpVersion": "HTTP/2",
"headers": [
{
"name": "content-type",
"value": "application/javascript"
}
],
"content": {
"size": 1482340,
"mimeType": "application/javascript",
"text": ""
},
"headersSize": 210,
"bodySize": 1482340,
"_transferSize": 486210
},
"cache": {},
"timings": {
"blocked": 1,
"dns": 0,
"connect": 0,
"ssl": 0,
"send": 1,
"wait": 40,
"receive": 44
}
},
{
"pageref": "page_1",
"startedDateTime": "2026-04-25T20:12:00.680Z",
"time": 4260,
"request": {
"method": "POST",
"url": "https://api.example.com/v1/search?api_key=%5BREDACTED%5D",
"httpVersion": "HTTP/2",
"headers": [
{
"name": "content-type",
"value": "application/json"
},
{
"name": "authorization",
"value": "[REDACTED]"
}
],
"queryString": [
{
"name": "api_key",
"value": "[REDACTED]"
}
],
"postData": {
"mimeType": "application/json",
"text": "{\n \"query\": \"invoices\",\n \"client_secret\": \"[REDACTED]\",\n \"page\": 1\n}"
},
"headersSize": 540,
"bodySize": 58
},
"response": {
"status": 500,
"statusText": "Internal Server Error",
"httpVersion": "HTTP/2",
"headers": [
{
"name": "content-type",
"value": "application/json"
}
],
"content": {
"size": 73,
"mimeType": "application/json",
"text": ""
},
"headersSize": 220,
"bodySize": 73,
"_transferSize": 293
},
"cache": {},
"timings": {
"blocked": 3,
"dns": 12,
"connect": 18,
"ssl": 22,
"send": 2,
"wait": 4170,
"receive": 33
}
},
{
"pageref": "page_1",
"startedDateTime": "2026-04-25T20:12:01.100Z",
"time": 0,
"request": {
"method": "GET",
"url": "https://analytics.vendor.test/collect?id_token=%5BREDACTED%5D",
"httpVersion": "HTTP/2",
"headers": [
{
"name": "Accept",
"value": "*/*"
}
],
"queryString": [
{
"name": "id_token",
"value": "[REDACTED]"
}
],
"headersSize": 250,
"bodySize": 0
},
"response": {
"status": 0,
"statusText": "",
"httpVersion": "HTTP/2",
"headers": [],
"content": {
"size": 0,
"mimeType": "",
"text": ""
},
"headersSize": -1,
"bodySize": -1
},
"cache": {},
"timings": {
"blocked": 0,
"dns": -1,
"connect": -1,
"ssl": -1,
"send": 0,
"wait": 0,
"receive": 0
}
},
{
"pageref": "page_1",
"startedDateTime": "2026-04-25T20:12:01.300Z",
"time": 72,
"request": {
"method": "GET",
"url": "https://app.example.com/api/me",
"httpVersion": "HTTP/2",
"headers": [
{
"name": "authorization",
"value": "[REDACTED]"
}
],
"queryString": [],
"headersSize": 320,
"bodySize": 0
},
"response": {
"status": 401,
"statusText": "Unauthorized",
"httpVersion": "HTTP/2",
"headers": [
{
"name": "content-type",
"value": "application/json"
}
],
"content": {
"size": 34,
"mimeType": "application/json",
"text": ""
},
"headersSize": 190,
"bodySize": 34,
"_transferSize": 224
},
"cache": {},
"timings": {
"blocked": 1,
"dns": 0,
"connect": 0,
"ssl": 0,
"send": 1,
"wait": 66,
"receive": 4
}
}
]
}
},
"redactionReport": {
"total": 17,
"byType": {
"url-query": 3,
"header": 4,
"cookie": 1,
"query": 3,
"response-content": 4,
"local-ip": 1,
"json-body": 1
},
"samples": [
{
"type": "url-query",
"path": "log.entries[0].request.url?session",
"name": "session"
},
{
"type": "header",
"path": "log.entries[0].request.headers[1].value",
"name": "Cookie"
},
{
"type": "cookie",
"path": "log.entries[0].request.cookies[0].value",
"name": "session"
},
{
"type": "query",
"path": "log.entries[0].request.queryString[0].value",
"name": "session"
},
{
"type": "header",
"path": "log.entries[0].response.headers[2].value",
"name": "set-cookie"
},
{
"type": "response-content",
"path": "log.entries[0].response.content.text",
"name": "response body"
},
{
"type": "local-ip",
"path": "log.entries[0].serverIPAddress",
"name": "serverIPAddress"
},
{
"type": "response-content",
"path": "log.entries[1].response.content.text",
"name": "response body"
},
{
"type": "url-query",
"path": "log.entries[2].request.url?api_key",
"name": "api_key"
},
{
"type": "header",
"path": "log.entries[2].request.headers[1].value",
"name": "authorization"
},
{
"type": "query",
"path": "log.entries[2].request.queryString[0].value",
"name": "api_key"
},
{
"type": "json-body",
"path": "log.entries[2].request.postData.text.client_secret",
"name": "client_secret"
},
{
"type": "response-content",
"path": "log.entries[2].response.content.text",
"name": "response body"
},
{
"type": "url-query",
"path": "log.entries[3].request.url?id_token",
"name": "id_token"
},
{
"type": "query",
"path": "log.entries[3].request.queryString[0].value",
"name": "id_token"
},
{
"type": "header",
"path": "log.entries[4].request.headers[0].value",
"name": "authorization"
},
{
"type": "response-content",
"path": "log.entries[4].response.content.text",
"name": "response body"
}
]
},
"markdownReport": "# HAR Network Report\n\nGenerated by Bitgate Tools HAR File Inspector.\n\n## Summary\n\n| Metric | Value |\n| --- | ---: |\n| Requests | 5 |\n| Failed / error requests | 3 |\n| Redirects | 0 |\n| Slow requests (> 3.00 s) | 1 |\n| Large responses (> 1.00 MB) | 0 |\n| Total transfer | 490.9 KB |\n| Capture duration | 4.89 s |\n| Hosts | 4 |\n| Third-party requests | 1 |\n| Requests with sensitive data candidates | 4 |\n\n## Findings\n\n- **ERROR** — Failed requests found: 3 requests returned 0, 4xx, or 5xx status codes.\n- **WARNING** — Blocked, cancelled, or CORS-looking requests: 1 request had status 0. Browsers use this for failed/cancelled network activity and opaque CORS failures.\n- **WARNING** — Slow requests: 1 request took at least 3.00 s.\n- **WARNING** — Sensitive data candidates: 4 requests contained cookies, auth headers, tokens, or secret-looking parameters. Export a sanitized HAR before sharing.\n- **INFO** — Cache hints missing on static assets: 1 static-looking asset had no obvious Cache-Control, ETag, or Expires header.\n\n## Failed Requests\n\n| Status | Method | URL | Time | Transfer |\n| ---: | --- | --- | ---: | ---: |\n| 500 | POST | https://api.example.com/v1/search?api_key=pk_live_123456789 | 4.26 s | 293 B |\n| 0 | GET | https://analytics.vendor.test/collect?id_token=secret-id-token | 0 ms | 0 B |\n| 401 | GET | https://app.example.com/api/me | 72 ms | 224 B |\n\n## Slowest Requests\n\n| Status | Method | URL | Time | Transfer |\n| ---: | --- | --- | ---: | ---: |\n| 500 | POST | https://api.example.com/v1/search?api_key=pk_live_123456789 | 4.26 s | 293 B |\n| 200 | GET | https://app.example.com/dashboard?session=abc123 | 184 ms | 15.6 KB |\n| 200 | GET | https://cdn.example.com/assets/app.91f3.js | 86 ms | 474.8 KB |\n| 401 | GET | https://app.example.com/api/me | 72 ms | 224 B |\n| 0 | GET | https://analytics.vendor.test/collect?id_token=secret-id-token | 0 ms | 0 B |\n\n## Largest Responses\n\n| Status | Method | URL | Time | Transfer |\n| ---: | --- | --- | ---: | ---: |\n| 200 | GET | https://cdn.example.com/assets/app.91f3.js | 86 ms | 474.8 KB |\n| 200 | GET | https://app.example.com/dashboard?session=abc123 | 184 ms | 15.6 KB |\n| 500 | POST | https://api.example.com/v1/search?api_key=pk_live_123456789 | 4.26 s | 293 B |\n| 401 | GET | https://app.example.com/api/me | 72 ms | 224 B |\n| 0 | GET | https://analytics.vendor.test/collect?id_token=secret-id-token | 0 ms | 0 B |\n\n## Top Domains\n\n| Host | Requests | Failed | Transfer | Total Time |\n| --- | ---: | ---: | ---: | ---: |\n| app.example.com | 2 | 1 | 15.8 KB | 256 ms |\n| cdn.example.com | 1 | 0 | 474.8 KB | 86 ms |\n| api.example.com | 1 | 1 | 293 B | 4.26 s |\n| analytics.vendor.test | 1 | 1 | 0 B | 0 ms |\n\n## Sanitization\n\n- Total redactions: **17**\n- url-query: 3\n- header: 4\n- cookie: 1\n- query: 3\n- response-content: 4\n- local-ip: 1\n- json-body: 1\n\n## Notes\n\nThis report summarizes request metadata only. If you share a HAR file, export the sanitized copy first and review it before sending."
}
}Use the free HAR File Inspector in your browser, read the HAR File Inspector guide, or import the full OpenAPI specification.