{"adoption": {"forks": 331, "observed_at": "2026-08-28T04:07:30.972639+00:00", "stars": 2939}, "canonical_url": "https://ross.abutalabs.com/products/restler-fuzzer", "card": {"archived": false, "artifact_type": "cli-tool", "description": "RESTler is the first stateful REST API fuzzing tool for automatically testing cloud services through their REST APIs and finding security and reliability bugs in these services.", "domain": ["security", "testing", "apis", "developer-tools"], "enriched": true, "function": ["fuzzing", "testing", "security", "vulnerability-scanning", "http-client"], "health_score": 72, "homepage": null, "language": "Python", "license": "MIT", "license_family": "permissive", "maturity": "active", "member_repos": ["microsoft/restler-fuzzer"], "name": "microsoft/restler-fuzzer", "platform": ["windows", "python", "cli"], "pushed_at": "2026-06-10T13:05:25+00:00", "repo": "microsoft/restler-fuzzer", "stars": 2939, "tags": ["rest-api", "openapi", "stateful-fuzzing", "api-testing", "microsoft-research", "linux", "macos", "docker"], "topics": [], "urls": [], "use_cases": ["fuzz a rest api for security bugs", "automatically test cloud service endpoints from an openapi spec", "find crashes and reliability bugs in rest apis", "generate stateful api request sequences for testing", "regression testing for rest apis", "check security properties of api endpoints"], "what_it_is": "RESTler is the first stateful REST API fuzzing tool, automatically testing cloud services through their REST APIs to find security and reliability bugs. It infers producer-consumer dependencies from OpenAPI specifications and generates request sequences that explore deeper service states.", "when_to_avoid": ["your service has no OpenAPI specification available", "you need to test GraphQL, gRPC, or non-REST interfaces", "you want simple load or performance testing rather than bug finding", "you need a GUI-driven manual API testing tool like Postman"], "when_to_choose": ["you have an OpenAPI/Swagger specification for a REST API you want to test", "you need automated discovery of security and reliability bugs in cloud services", "you want stateful fuzzing that explores multi-request sequences", "you need a research-backed fuzzing tool with multiple test generation strategies"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/restler-fuzzer", "repo": "microsoft/restler-fuzzer", "role": "main", "score": 71}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:07:30.972639+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T07:32:58.319604+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "9ca0ad6a6bf7e07ab3e0577a5a7f36b4eac57a9c40f6894d13b72d09c62c82e7", "fetched_at": "2026-08-28T04:07:30.972639+00:00", "kind": "readme", "missing": false, "url": "https://github.com/microsoft/restler-fuzzer"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:07:30.972639+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T07:32:58.319604+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "9ca0ad6a6bf7e07ab3e0577a5a7f36b4eac57a9c40f6894d13b72d09c62c82e7", "fetched_at": "2026-08-28T04:07:30.972639+00:00", "kind": "readme", "missing": false, "url": "https://github.com/microsoft/restler-fuzzer"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T07:32:58.319604+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "9ca0ad6a6bf7e07ab3e0577a5a7f36b4eac57a9c40f6894d13b72d09c62c82e7", "fetched_at": "2026-08-28T04:07:30.972639+00:00", "kind": "readme", "missing": false, "url": "https://github.com/microsoft/restler-fuzzer"}], "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:07:30.972639+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:07:30.972639+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:07:30.972639+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T07:32:58.319604+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "9ca0ad6a6bf7e07ab3e0577a5a7f36b4eac57a9c40f6894d13b72d09c62c82e7", "fetched_at": "2026-08-28T04:07:30.972639+00:00", "kind": "readme", "missing": false, "url": "https://github.com/microsoft/restler-fuzzer"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:07:30.972639+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:07:30.972639+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T07:32:58.319604+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "9ca0ad6a6bf7e07ab3e0577a5a7f36b4eac57a9c40f6894d13b72d09c62c82e7", "fetched_at": "2026-08-28T04:07:30.972639+00:00", "kind": "readme", "missing": false, "url": "https://github.com/microsoft/restler-fuzzer"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:07:30.972639+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:07:30.972639+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:07:30.972639+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T07:32:58.319604+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "9ca0ad6a6bf7e07ab3e0577a5a7f36b4eac57a9c40f6894d13b72d09c62c82e7", "fetched_at": "2026-08-28T04:07:30.972639+00:00", "kind": "readme", "missing": false, "url": "https://github.com/microsoft/restler-fuzzer"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:07:30.972639+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:07:30.972639+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T07:32:58.319604+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "9ca0ad6a6bf7e07ab3e0577a5a7f36b4eac57a9c40f6894d13b72d09c62c82e7", "fetched_at": "2026-08-28T04:07:30.972639+00:00", "kind": "readme", "missing": false, "url": "https://github.com/microsoft/restler-fuzzer"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T07:32:58.319604+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "9ca0ad6a6bf7e07ab3e0577a5a7f36b4eac57a9c40f6894d13b72d09c62c82e7", "fetched_at": "2026-08-28T04:07:30.972639+00:00", "kind": "readme", "missing": false, "url": "https://github.com/microsoft/restler-fuzzer"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T07:32:58.319604+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "9ca0ad6a6bf7e07ab3e0577a5a7f36b4eac57a9c40f6894d13b72d09c62c82e7", "fetched_at": "2026-08-28T04:07:30.972639+00:00", "kind": "readme", "missing": false, "url": "https://github.com/microsoft/restler-fuzzer"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T07:32:58.319604+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "9ca0ad6a6bf7e07ab3e0577a5a7f36b4eac57a9c40f6894d13b72d09c62c82e7", "fetched_at": "2026-08-28T04:07:30.972639+00:00", "kind": "readme", "missing": false, "url": "https://github.com/microsoft/restler-fuzzer"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 86, "longevity": 100, "rhythm": 35}, "computed_at": "2026-09-03T02:20:16.233290+00:00", "flags": ["no_releases"], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 2231, "days_push": 84, "days_rel": null, "gap_med": null, "n_releases_24m": 0}, "score": 71, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}