{"adoption": {"forks": 658, "observed_at": "2026-08-28T04:08:49.385244+00:00", "stars": 4439}, "canonical_url": "https://ross.abutalabs.com/products/linkfinder", "card": {"archived": false, "artifact_type": "cli-tool", "description": "A python script that finds endpoints in JavaScript files", "domain": ["security", "penetration-testing", "web-development", "developer-tools"], "enriched": true, "function": ["web-scraping", "parser", "security", "penetration-testing"], "health_score": 20, "homepage": "https://gerbenjavado.com/discovering-hidden-content-using-linkfinder", "language": "Python", "license": "MIT", "license_family": "permissive", "maturity": "stable", "member_repos": ["GerbenJavado/LinkFinder"], "name": "GerbenJavado/LinkFinder", "platform": ["python", "cli", "cross-platform"], "pushed_at": "2024-04-13T09:53:27+00:00", "repo": "GerbenJavado/LinkFinder", "stars": 4439, "tags": ["bug-bounty", "endpoint-discovery", "javascript-analysis", "recon", "osint"], "topics": ["infosec", "endpoints"], "urls": [], "use_cases": ["find endpoints in a javascript file", "discover hidden api routes on a website", "extract urls from js files for bug bounty recon", "analyze all javascript files on a domain for endpoints", "parse endpoints from burp saved items", "enumerate javascript files in a folder for links"], "what_it_is": "LinkFinder is a Python CLI script that discovers endpoints and their parameters in JavaScript files using jsbeautifier and regular expressions. It helps penetration testers and bug hunters uncover hidden endpoints on websites they are testing, with output in HTML or plaintext.", "when_to_avoid": ["you need a full web crawler or vulnerability scanner rather than endpoint extraction", "you need a GUI-based analysis tool", "you need to parse non-JavaScript sources for endpoints"], "when_to_choose": ["you need to quickly extract endpoints from JavaScript during a pentest or bug bounty", "you want CLI or HTML output of URLs found in JS files", "you need to analyze an entire domain's JS files for hidden routes"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/linkfinder", "repo": "GerbenJavado/LinkFinder", "role": "main", "score": 32}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:08:49.385244+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-29T18:20:50.637372+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "d23ec8b8304e0e26d13236969ecc58600f329e6bc042031324d2c733ff6705e0", "fetched_at": "2026-08-28T04:08:49.385244+00:00", "kind": "readme", "missing": false, "url": "https://github.com/GerbenJavado/LinkFinder"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:08:49.385244+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-29T18:20:50.637372+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "d23ec8b8304e0e26d13236969ecc58600f329e6bc042031324d2c733ff6705e0", "fetched_at": "2026-08-28T04:08:49.385244+00:00", "kind": "readme", "missing": false, "url": "https://github.com/GerbenJavado/LinkFinder"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-29T18:20:50.637372+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "d23ec8b8304e0e26d13236969ecc58600f329e6bc042031324d2c733ff6705e0", "fetched_at": "2026-08-28T04:08:49.385244+00:00", "kind": "readme", "missing": false, "url": "https://github.com/GerbenJavado/LinkFinder"}], "taxonomy_version": 1}, "health_score": {"inputs": ["days_since_push", "days_since_release", "archived"], "kind": "computed", "method": "health_v1"}, "homepage": {"kind": "observed", "observed_at": "2026-08-28T04:08:49.385244+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:08:49.385244+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:08:49.385244+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-29T18:20:50.637372+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "d23ec8b8304e0e26d13236969ecc58600f329e6bc042031324d2c733ff6705e0", "fetched_at": "2026-08-28T04:08:49.385244+00:00", "kind": "readme", "missing": false, "url": "https://github.com/GerbenJavado/LinkFinder"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:08:49.385244+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:08:49.385244+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-29T18:20:50.637372+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "d23ec8b8304e0e26d13236969ecc58600f329e6bc042031324d2c733ff6705e0", "fetched_at": "2026-08-28T04:08:49.385244+00:00", "kind": "readme", "missing": false, "url": "https://github.com/GerbenJavado/LinkFinder"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:08:49.385244+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:08:49.385244+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:08:49.385244+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-29T18:20:50.637372+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "d23ec8b8304e0e26d13236969ecc58600f329e6bc042031324d2c733ff6705e0", "fetched_at": "2026-08-28T04:08:49.385244+00:00", "kind": "readme", "missing": false, "url": "https://github.com/GerbenJavado/LinkFinder"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:08:49.385244+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:08:49.385244+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-29T18:20:50.637372+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "d23ec8b8304e0e26d13236969ecc58600f329e6bc042031324d2c733ff6705e0", "fetched_at": "2026-08-28T04:08:49.385244+00:00", "kind": "readme", "missing": false, "url": "https://github.com/GerbenJavado/LinkFinder"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-29T18:20:50.637372+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "d23ec8b8304e0e26d13236969ecc58600f329e6bc042031324d2c733ff6705e0", "fetched_at": "2026-08-28T04:08:49.385244+00:00", "kind": "readme", "missing": false, "url": "https://github.com/GerbenJavado/LinkFinder"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-29T18:20:50.637372+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "d23ec8b8304e0e26d13236969ecc58600f329e6bc042031324d2c733ff6705e0", "fetched_at": "2026-08-28T04:08:49.385244+00:00", "kind": "readme", "missing": false, "url": "https://github.com/GerbenJavado/LinkFinder"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-29T18:20:50.637372+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "d23ec8b8304e0e26d13236969ecc58600f329e6bc042031324d2c733ff6705e0", "fetched_at": "2026-08-28T04:08:49.385244+00:00", "kind": "readme", "missing": false, "url": "https://github.com/GerbenJavado/LinkFinder"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 0, "longevity": 100, "rhythm": 35}, "computed_at": "2026-09-02T17:46:02.011165+00:00", "flags": ["no_releases"], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 3372, "days_push": 872, "days_rel": null, "gap_med": null, "n_releases_24m": 0}, "score": 32, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}