{"id":32747425,"url":"https://github.com/abhinandan-khurana/httpx-visualizer","last_synced_at":"2026-01-12T11:29:53.808Z","repository":{"id":288244992,"uuid":"967333622","full_name":"Abhinandan-Khurana/httpx-visualizer","owner":"Abhinandan-Khurana","description":"A browser-based, single-file tool to visually parse, filter, sort, and explore HTTPx JSON output. This enhanced version provides a more refined UI and advanced features for efficient analysis of web scan results.","archived":false,"fork":false,"pushed_at":"2025-04-16T09:51:41.000Z","size":155,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-04-16T12:47:37.828Z","etag":null,"topics":["bugbounty","cyber-security","cybersecurity","httpx","httpx-toolkit","json-visualizer","recon","reconnaissance","tool","ui","visualization","visualizer"],"latest_commit_sha":null,"homepage":"","language":"HTML","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Abhinandan-Khurana.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-04-16T09:44:15.000Z","updated_at":"2025-04-16T09:53:28.000Z","dependencies_parsed_at":"2025-04-16T12:48:55.994Z","dependency_job_id":null,"html_url":"https://github.com/Abhinandan-Khurana/httpx-visualizer","commit_stats":null,"previous_names":["abhinandan-khurana/httpx-visualizer"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/Abhinandan-Khurana/httpx-visualizer","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Abhinandan-Khurana%2Fhttpx-visualizer","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Abhinandan-Khurana%2Fhttpx-visualizer/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Abhinandan-Khurana%2Fhttpx-visualizer/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Abhinandan-Khurana%2Fhttpx-visualizer/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Abhinandan-Khurana","download_url":"https://codeload.github.com/Abhinandan-Khurana/httpx-visualizer/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Abhinandan-Khurana%2Fhttpx-visualizer/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28338971,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-12T10:58:46.209Z","status":"ssl_error","status_checked_at":"2026-01-12T10:58:42.742Z","response_time":98,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["bugbounty","cyber-security","cybersecurity","httpx","httpx-toolkit","json-visualizer","recon","reconnaissance","tool","ui","visualization","visualizer"],"created_at":"2025-11-03T19:26:31.012Z","updated_at":"2026-01-12T11:29:53.803Z","avatar_url":"https://github.com/Abhinandan-Khurana.png","language":"HTML","funding_links":[],"categories":[],"sub_categories":[],"readme":"# HTTPx Visualizer\n\nA browser-based, single-file tool to visually parse, filter, sort, and explore HTTPx JSON output. This enhanced version provides a more refined UI and advanced features for efficient analysis of web scan results.\n\n\u003e [!NOTE]\n\u003e MADE BY : Claude 3.7 Sonnet (Thinking) and enhanced by Gemini 2.5 pro 😝\n\n---\n\n## Features\n\n- **Modern UI/UX:** Clean, responsive interface built with vanilla HTML, CSS, and JavaScript.\n- **Drag \u0026 Drop Upload:** Easily load your HTTPx JSON files.\n- **Statistical Overview:** Quickly grasp key metrics (total domains, endpoints, status code counts).\n- **Advanced Filtering:**\n  - Filter by Domain, Status Code (ranges like 2xx, 3xx), Web Server, Content Type, and Page Title.\n  - **Multi-Select Technology Filter:** Filter results based on detected technologies using a searchable dropdown and visual pills.\n- **Interactive Results Table:**\n  - **Sortable Columns:** Sort data by Domain, URL, Status Code, Title, Web Server, Content Type, Technology Count, and Response Time.\n  - **Pagination:** Handles large datasets efficiently with navigation controls.\n  - **Detailed View:** Expand rows to see all fields from the JSON data, including request/response details and a response body preview.\n  - **Tech Tags:** See detected technologies directly in the table.\n  - **Clear Status Indicators:** Color-coded status code pills.\n- **CSV Export:** Export the currently _visible_ filtered and sorted data to a CSV file.\n- **Standalone:** Runs entirely in the browser – no server-side components needed. Just a single HTML file.\n\n## How to Use\n\n1. **Get the File:** Download the `httpx-visualizer.html` file from this repository.\n2. **Open in Browser:** Open the downloaded HTML file in your web browser (Firefox, Chrome, Edge, etc.).\n3. **Upload Data:**\n   - Run your `httpx` scan with the `-json` flag:\n\n```bash\ncat input.txt | httpx -nc -silent -random-agent -probe -cdn -asn -extract-fqdn -cname -ip -td -server -favicon -j \u003e results.json\n```\n\n- Drag and drop the generated `results.json` file onto the upload area in the visualizer, or click the area to browse and select the file.\n\n4. **Explore:** The visualizer will process the file and display the results. Use the filters, sorting, pagination, and expandable rows to analyze your data.\n\n## Input Format\n\nThis tool requires JSON output generated by the [HTTPx tool](https://github.com/projectdiscovery/httpx) using the `-json` flag. Ensure your `httpx` command includes flags for the data you want to visualize (e.g., `-tech-detect`, `-title`, `-status-code`, etc.).\n\n```json\n{\n  \"tool_name\": \"httpx\",\n  \"results\": [\n    {\n      \"domain_name\": \"www.xablekart.com\",\n      \"results\": [\n        {\n          \"timestamp\": \"2025-04-16T14:41:47.387616028+05:30\",\n          \"port\": \"443\",\n          \"url\": \"https://www.xablekart.com\",\n          \"input\": \"www.xablekart.com\",\n          \"location\": \"https://xablekart.com/\",\n          \"title\": \"301 Moved Permanently\",\n          \"scheme\": \"https\",\n          \"webserver\": \"nginx/1.24.0 (Ubuntu)\",\n          \"content_type\": \"text/html\",\n          \"method\": \"GET\",\n          \"host\": \"206.19.140.188\",\n          \"path\": \"/\",\n          \"time\": \"428.021993ms\",\n          \"a\": [\"206.19.140.188\"],\n          \"tech\": [\"Nginx:1.24.0\", \"Ubuntu\"],\n          \"words\": 6,\n          \"lines\": 7,\n          \"status_code\": 301,\n          \"content_length\": 178,\n          \"failed\": false,\n          \"knowledgebase\": {\n            \"PageType\": \"error\",\n            \"pHash\": 0\n          },\n          \"resolvers\": [\"8.8.8.8:53\", \"172.20.0.10:53\"],\n          \"body_domains\": [\"xablekart.com\"]\n        }\n      ]\n    },\n    {\n      \"domain_name\": \"www.xablekart.com\",\n      \"results\": [\n        {\n          \"timestamp\": \"2025-04-16T14:41:47.387616028+05:30\",\n          \"port\": \"443\",\n          \"url\": \"https://www.xablekart.com\",\n          \"input\": \"www.xablekart.com\",\n          \"location\": \"https://xablekart.com/\",\n          \"title\": \"301 Moved Permanently\",\n          \"scheme\": \"https\",\n          \"webserver\": \"nginx/1.24.0 (Ubuntu)\",\n          \"content_type\": \"text/html\",\n          \"method\": \"GET\",\n          \"host\": \"206.19.140.188\",\n          \"path\": \"/\",\n          \"time\": \"428.021993ms\",\n          \"a\": [\"206.19.140.188\"],\n          \"tech\": [\"Nginx:1.24.0\", \"Ubuntu\"],\n          \"words\": 6,\n          \"lines\": 7,\n          \"status_code\": 301,\n          \"content_length\": 178,\n          \"failed\": false,\n          \"knowledgebase\": {\n            \"PageType\": \"error\",\n            \"pHash\": 0\n          },\n          \"resolvers\": [\"8.8.8.8:53\", \"172.20.0.10:53\"],\n          \"body_domains\": [\"xablekart.com\"]\n        }\n      ]\n    }\n  ]\n}\n```\n\n#### OR\n\n```json\n{\"timestamp\":\"2025-04-17T17:04:44.911489+05:30\",\"url\":\"http://atos.example.com\",\"input\":\"atos.example.com\",\"error\":\"cause=\\\"no address found for host\\\"\",\"words\":0,\"lines\":0,\"status_code\":0,\"content_length\":0,\"failed\":true}\n\n{\"timestamp\":\"2025-04-17T17:04:44.911727+05:30\",\"url\":\"http://ati.example.com\",\"input\":\"ati.example.com\",\"error\":\"cause=\\\"no address found for host\\\"\",\"words\":0,\"lines\":0,\"status_code\":0,\"content_length\":0,\"failed\":true}\n\n{\"timestamp\":\"2025-04-17T17:04:44.973633+05:30\",\"url\":\"http://aegis.example.com\",\"input\":\"aegis.example.com\",\"error\":\"cause=\\\"no address found for host\\\"\",\"words\":0,\"lines\":0,\"status_code\":0,\"content_length\":0,\"failed\":true}\n\n{\"timestamp\":\"2025-04-17T17:04:45.003663+05:30\",\"url\":\"http://archiva.example.com\",\"input\":\"archiva.example.com\",\"error\":\"cause=\\\"no address found for host\\\"\",\"words\":0,\"lines\":0,\"status_code\":0,\"content_length\":0,\"failed\":true}\n\n{\"timestamp\":\"2025-04-17T17:04:45.037881+05:30\",\"url\":\"http://anon.example.com\",\"input\":\"anon.example.com\",\"error\":\"cause=\\\"no address found for host\\\"\",\"words\":0,\"lines\":0,\"status_code\":0,\"content_length\":0,\"failed\":true}\n\n{\"timestamp\":\"2025-04-17T17:04:45.049445+05:30\",\"url\":\"http://aig.example.com\",\"input\":\"aig.example.com\",\"error\":\"cause=\\\"no address found for host\\\"\",\"words\":0,\"lines\":0,\"status_code\":0,\"content_length\":0,\"failed\":true}\n\n{\"timestamp\":\"2025-04-17T17:04:45.277696+05:30\",\"cdn_name\":\"aws\",\"cdn_type\":\"cloud\",\"port\":\"443\",\"url\":\"https://amzn.example.com\",\"input\":\"amzn.example.com\",\"scheme\":\"https\",\"content_type\":\"text/html\",\"method\":\"GET\",\"host\":\"1.1.1.210\",\"path\":\"/\",\"time\":\"357.767917ms\",\"a\":[\"18.1.1.210\"],\"cname\":[\"ec2-18-143-1-210.ap-southeast-1.compute.amazonaws.com\"],\"tech\":[\"HSTS\"],\"words\":964,\"lines\":50,\"status_code\":404,\"content_length\":2967,\"failed\":false,\"knowledgebase\":{\"PageType\":\"error\",\"pHash\":0},\"resolvers\":[\"10.2.0.1:53\",\"8.8.8.8:53\"],\"body_fqdn\":[\"www.example.com\"],\"body_domains\":[\"example.s3.ap-southeast-1.amazonaws.com\",\"example.com\"]}\n\n{\"timestamp\":\"2025-04-17T17:04:45.27781+05:30\",\"cdn_name\":\"aws\",\"cdn_type\":\"cloud\",\"port\":\"443\",\"url\":\"https://accenture.example.com\",\"input\":\"accenture.example.com\",\"scheme\":\"https\",\"content_type\":\"text/html\",\"method\":\"GET\",\"host\":\"1.1.11.119\",\"path\":\"/\",\"time\":\"409.31775ms\",\"a\":[\"18.1.11.119\"],\"cname\":[\"ec2-18-1-11-119.ap-southeast-1.compute.amazonaws.com\"],\"tech\":[\"HSTS\"],\"words\":964,\"lines\":50,\"status_code\":404,\"content_length\":2967,\"failed\":false,\"knowledgebase\":{\"PageType\":\"error\",\"pHash\":0},\"resolvers\":[\"8.8.4.4:53\"],\"body_fqdn\":[\"www.example.com\"],\"body_domains\":[\"example.s3.ap-southeast-1.amazonaws.com\",\"example.com\"]}\n\n{\"timestamp\":\"2025-04-17T17:04:45.279179+05:30\",\"cdn_name\":\"aws\",\"cdn_type\":\"cloud\",\"port\":\"443\",\"url\":\"https://adidas.example.com\",\"input\":\"adidas.example.com\",\"scheme\":\"https\",\"content_type\":\"text/html\",\"method\":\"GET\",\"host\":\"1.215.74.222\",\"path\":\"/\",\"time\":\"404.198333ms\",\"a\":[\"1.215.74.222\"],\"cname\":[\"ec2-1-215-74-222.ap-southeast-1.compute.amazonaws.com\"],\"tech\":[\"HSTS\"],\"words\":964,\"lines\":50,\"status_code\":404,\"content_length\":2967,\"failed\":false,\"knowledgebase\":{\"PageType\":\"error\",\"pHash\":0},\"resolvers\":[\"8.8.8.8:53\"],\"body_fqdn\":[\"www.example.com\"],\"body_domains\":[\"example.s3.ap-southeast-1.amazonaws.com\",\"example.com\"]}\n\n{\"timestamp\":\"2025-04-17T17:04:45.279279+05:30\",\"cdn_name\":\"aws\",\"cdn_type\":\"cloud\",\"port\":\"443\",\"url\":\"https://airindia1.example.com\",\"input\":\"airindia1.example.com\",\"scheme\":\"https\",\"content_type\":\"text/html\",\"method\":\"GET\",\"host\":\"1.251.39.217\",\"path\":\"/\",\"time\":\"31.770834ms\",\"a\":[\"1.251.39.217\"],\"cname\":[\"ec2-1-251-39-217.ap-southeast-1.compute.amazonaws.com\"],\"tech\":[\"HSTS\"],\"words\":964,\"lines\":50,\"status_code\":404,\"content_length\":2967,\"failed\":false,\"knowledgebase\":{\"PageType\":\"error\",\"pHash\":0},\"resolvers\":[\"8.8.8.8:53\"],\"body_fqdn\":[\"www.example.com\"],\"body_domains\":[\"example.s3.ap-southeast-1.amazonaws.com\",\"example.com\"]}\n```\n\n## UI look\n\n![UI](./example.png)\n\n### Example `httpx` command\n\n```bash\ncat input.txt | httpx -nc -silent -random-agent -probe -cdn -asn -extract-fqdn -cname -ip -td -server -favicon -j \u003e results.json\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fabhinandan-khurana%2Fhttpx-visualizer","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fabhinandan-khurana%2Fhttpx-visualizer","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fabhinandan-khurana%2Fhttpx-visualizer/lists"}