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

FieldTypeRequiredDescription
harTextstringrequiredThe raw HAR JSON text.
sanitizebooleanoptionalWhether to return a sanitized HAR copy in addition to the analysis.
sanitizeOptionsobjectoptionalSanitization options.

Response

FieldTypeRequiredDescription
analysisunknownrequiredParsed HAR summary, request rows, diagnostics, and metadata.
sanitizedHarunknownoptionalSanitized HAR object, if requested.
redactionReportunknownoptionalRedaction counts and sample paths, if sanitization was requested.
markdownReportstringoptionalMarkdown 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.