{"adoption": {"forks": 86, "observed_at": "2026-08-28T04:08:41.704582+00:00", "stars": 4304}, "canonical_url": "https://ross.abutalabs.com/products/openapi-devtools", "card": {"archived": false, "artifact_type": "plugin", "description": "Browser extension that generates API specs for any app or website", "domain": ["apis", "developer-tools", "web-development", "documentation"], "enriched": true, "function": ["api-documentation", "developer-tools", "http-client", "json"], "health_score": 33, "homepage": "https://chrome.google.com/webstore/detail/openapi-devtools/jelghndoknklgabjgaeppjhommkkmdii", "language": "TypeScript", "license": "MIT", "license_family": "permissive", "maturity": "maintenance", "member_repos": ["AndrewWalsh/openapi-devtools"], "name": "AndrewWalsh/openapi-devtools", "platform": ["browser-extension", "browser"], "pushed_at": "2025-03-19T04:42:24+00:00", "repo": "AndrewWalsh/openapi-devtools", "stars": 4304, "tags": ["openapi", "openapi31", "devtools", "api-specification", "reverse-engineering", "chrome-extension", "firefox-addon", "network-requests", "typescript"], "topics": ["api", "devtools", "generator", "openapi", "specification", "openapi31", "chrome-extension", "openapi3"], "urls": [], "use_cases": ["reverse engineer an undocumented api from a website", "generate openapi spec from browser network traffic", "discover api endpoints of any web app", "create api documentation without backend access", "capture http requests and turn them into an openapi 3.1 spec", "export api specification from devtools"], "what_it_is": "A browser extension for Chrome and Firefox that automatically generates OpenAPI 3.1 specifications in real time from network requests observed in DevTools. It merges headers, bodies, and query parameters per endpoint, detects path parameters, and lets users view specs with Redoc and export or share sessions.", "when_to_avoid": ["you need a desktop proxy-based capture for non-browser traffic - use the successor project demystify or mitm2swagger", "you want to generate specs from HAR files via CLI", "the project is superseded by a rewritten version, so new feature development happens elsewhere"], "when_to_choose": ["you need to document or understand an undocumented HTTP API by observing real traffic", "you want a zero-setup browser-based tool for spec generation", "you work with OpenAPI 3.1 and want automatic merging of request/response data"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/openapi-devtools", "repo": "AndrewWalsh/openapi-devtools", "role": "main", "score": 23}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:08:41.704582+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-29T18:21:49.286421+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "4f864a83b39fcee36e3ec9f8d3cd45e35b2271184b2b8dc1422c657e21bc27ef", "fetched_at": "2026-08-28T04:08:41.704582+00:00", "kind": "readme", "missing": false, "url": "https://github.com/AndrewWalsh/openapi-devtools"}, {"content_hash": "04727eeb4d9adb07006c4c85aeb7db8e683590d1d97f83ce9827054bd70d0cf9", "fetched_at": "2026-08-29T09:11:15.513019+00:00", "kind": "homepage", "missing": false, "url": "https://chrome.google.com/webstore/detail/openapi-devtools/jelghndoknklgabjgaeppjhommkkmdii"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:08:41.704582+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-29T18:21:49.286421+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "4f864a83b39fcee36e3ec9f8d3cd45e35b2271184b2b8dc1422c657e21bc27ef", "fetched_at": "2026-08-28T04:08:41.704582+00:00", "kind": "readme", "missing": false, "url": "https://github.com/AndrewWalsh/openapi-devtools"}, {"content_hash": "04727eeb4d9adb07006c4c85aeb7db8e683590d1d97f83ce9827054bd70d0cf9", "fetched_at": "2026-08-29T09:11:15.513019+00:00", "kind": "homepage", "missing": false, "url": "https://chrome.google.com/webstore/detail/openapi-devtools/jelghndoknklgabjgaeppjhommkkmdii"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-29T18:21:49.286421+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "4f864a83b39fcee36e3ec9f8d3cd45e35b2271184b2b8dc1422c657e21bc27ef", "fetched_at": "2026-08-28T04:08:41.704582+00:00", "kind": "readme", "missing": false, "url": "https://github.com/AndrewWalsh/openapi-devtools"}, {"content_hash": "04727eeb4d9adb07006c4c85aeb7db8e683590d1d97f83ce9827054bd70d0cf9", "fetched_at": "2026-08-29T09:11:15.513019+00:00", "kind": "homepage", "missing": false, "url": "https://chrome.google.com/webstore/detail/openapi-devtools/jelghndoknklgabjgaeppjhommkkmdii"}], "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:41.704582+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:08:41.704582+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:08:41.704582+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-29T18:21:49.286421+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "4f864a83b39fcee36e3ec9f8d3cd45e35b2271184b2b8dc1422c657e21bc27ef", "fetched_at": "2026-08-28T04:08:41.704582+00:00", "kind": "readme", "missing": false, "url": "https://github.com/AndrewWalsh/openapi-devtools"}, {"content_hash": "04727eeb4d9adb07006c4c85aeb7db8e683590d1d97f83ce9827054bd70d0cf9", "fetched_at": "2026-08-29T09:11:15.513019+00:00", "kind": "homepage", "missing": false, "url": "https://chrome.google.com/webstore/detail/openapi-devtools/jelghndoknklgabjgaeppjhommkkmdii"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:08:41.704582+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:08:41.704582+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-29T18:21:49.286421+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "4f864a83b39fcee36e3ec9f8d3cd45e35b2271184b2b8dc1422c657e21bc27ef", "fetched_at": "2026-08-28T04:08:41.704582+00:00", "kind": "readme", "missing": false, "url": "https://github.com/AndrewWalsh/openapi-devtools"}, {"content_hash": "04727eeb4d9adb07006c4c85aeb7db8e683590d1d97f83ce9827054bd70d0cf9", "fetched_at": "2026-08-29T09:11:15.513019+00:00", "kind": "homepage", "missing": false, "url": "https://chrome.google.com/webstore/detail/openapi-devtools/jelghndoknklgabjgaeppjhommkkmdii"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:08:41.704582+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:08:41.704582+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:08:41.704582+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-29T18:21:49.286421+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "4f864a83b39fcee36e3ec9f8d3cd45e35b2271184b2b8dc1422c657e21bc27ef", "fetched_at": "2026-08-28T04:08:41.704582+00:00", "kind": "readme", "missing": false, "url": "https://github.com/AndrewWalsh/openapi-devtools"}, {"content_hash": "04727eeb4d9adb07006c4c85aeb7db8e683590d1d97f83ce9827054bd70d0cf9", "fetched_at": "2026-08-29T09:11:15.513019+00:00", "kind": "homepage", "missing": false, "url": "https://chrome.google.com/webstore/detail/openapi-devtools/jelghndoknklgabjgaeppjhommkkmdii"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:08:41.704582+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:08:41.704582+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-29T18:21:49.286421+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "4f864a83b39fcee36e3ec9f8d3cd45e35b2271184b2b8dc1422c657e21bc27ef", "fetched_at": "2026-08-28T04:08:41.704582+00:00", "kind": "readme", "missing": false, "url": "https://github.com/AndrewWalsh/openapi-devtools"}, {"content_hash": "04727eeb4d9adb07006c4c85aeb7db8e683590d1d97f83ce9827054bd70d0cf9", "fetched_at": "2026-08-29T09:11:15.513019+00:00", "kind": "homepage", "missing": false, "url": "https://chrome.google.com/webstore/detail/openapi-devtools/jelghndoknklgabjgaeppjhommkkmdii"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-29T18:21:49.286421+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "4f864a83b39fcee36e3ec9f8d3cd45e35b2271184b2b8dc1422c657e21bc27ef", "fetched_at": "2026-08-28T04:08:41.704582+00:00", "kind": "readme", "missing": false, "url": "https://github.com/AndrewWalsh/openapi-devtools"}, {"content_hash": "04727eeb4d9adb07006c4c85aeb7db8e683590d1d97f83ce9827054bd70d0cf9", "fetched_at": "2026-08-29T09:11:15.513019+00:00", "kind": "homepage", "missing": false, "url": "https://chrome.google.com/webstore/detail/openapi-devtools/jelghndoknklgabjgaeppjhommkkmdii"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-29T18:21:49.286421+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "4f864a83b39fcee36e3ec9f8d3cd45e35b2271184b2b8dc1422c657e21bc27ef", "fetched_at": "2026-08-28T04:08:41.704582+00:00", "kind": "readme", "missing": false, "url": "https://github.com/AndrewWalsh/openapi-devtools"}, {"content_hash": "04727eeb4d9adb07006c4c85aeb7db8e683590d1d97f83ce9827054bd70d0cf9", "fetched_at": "2026-08-29T09:11:15.513019+00:00", "kind": "homepage", "missing": false, "url": "https://chrome.google.com/webstore/detail/openapi-devtools/jelghndoknklgabjgaeppjhommkkmdii"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-29T18:21:49.286421+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "4f864a83b39fcee36e3ec9f8d3cd45e35b2271184b2b8dc1422c657e21bc27ef", "fetched_at": "2026-08-28T04:08:41.704582+00:00", "kind": "readme", "missing": false, "url": "https://github.com/AndrewWalsh/openapi-devtools"}, {"content_hash": "04727eeb4d9adb07006c4c85aeb7db8e683590d1d97f83ce9827054bd70d0cf9", "fetched_at": "2026-08-29T09:11:15.513019+00:00", "kind": "homepage", "missing": false, "url": "https://chrome.google.com/webstore/detail/openapi-devtools/jelghndoknklgabjgaeppjhommkkmdii"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 12, "longevity": 74, "rhythm": 8}, "computed_at": "2026-09-03T02:20:16.233290+00:00", "flags": [], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 1044, "days_push": 532, "days_rel": null, "gap_med": null, "n_releases_24m": 0}, "score": 23, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}