{"id":23765,"library":"fray","title":"Fray","description":"Fray is an open-source WAF (Web Application Firewall) security testing platform. Version 3.5.235 includes 7,200+ attack payloads, 98 WAF/CDN fingerprints, an AI-powered bypass engine, a recon pipeline, and beautiful CLI output. It supports Python >=3.8 and is actively maintained.","status":"active","version":"3.5.235","language":"python","source_language":"en","source_url":"https://github.com/dalisecurity/fray","tags":["security","WAF","penetration-testing","CLI","AI"],"install":[{"cmd":"pip install fray","lang":"bash","label":"Install from PyPI"}],"dependencies":[],"imports":[{"note":"Main class for running WAF tests and scanning.","symbol":"Fray","correct":"from fray import Fray"}],"quickstart":{"code":"from fray import Fray\n\n# Initialize scanner\nscanner = Fray(\n    target=\"http://example.com\",\n    api_key=os.environ.get(\"FRAY_API_KEY\", \"\"),\n    threads=10\n)\n\n# Run scan\nresult = scanner.scan()\nprint(result.summary())","lang":"python","description":"Basic usage of Fray to scan a target URL. Requires an optional API key for certain features."},"warnings":[{"fix":"Use the `threads` parameter to limit concurrency, or set rate limits via `max_rps`.","message":"Fray uses multithreading and can generate a high volume of requests. Ensure you have permission to test the target and that your network/rate limits are not exceeded.","severity":"gotcha","affected_versions":"all"},{"fix":"Upgrade to 3.x and use `from fray import Fray` and the instance-based `scan()` method.","message":"Older versions (before 3.0) used `from fray import FrayScanner` and `fray.scan()` function. These patterns are deprecated.","severity":"deprecated","affected_versions":"<3.0.0"},{"fix":"Check the 'bypass' module configuration in the fray documentation.","message":"The AI bypass engine may require an internet connection and may incur costs if using third-party APIs. Check the documentation for configuration.","severity":"gotcha","affected_versions":"all"}],"env_vars":null,"last_verified":"2026-05-01T00:00:00.000Z","next_check":"2026-07-30T00:00:00.000Z","problems":[{"fix":"Run `pip install fray` and ensure you are using the correct Python interpreter.","cause":"Fray is not installed or installed in a different environment.","error":"ModuleNotFoundError: No module named 'fray'"},{"fix":"Upgrade fray to the latest version: `pip install --upgrade fray`. Alternatively, omit the `api_key` parameter if not needed.","cause":"Using an older version of fray that does not support the `api_key` parameter.","error":"TypeError: Fray() got an unexpected keyword argument 'api_key'"},{"fix":"Ensure the URL includes the protocol, e.g., 'https://example.com'.","cause":"The target URL provided is malformed or missing a scheme (http/https).","error":"ValueError: Invalid target URL"}],"ecosystem":"pypi","meta_description":null,"install_score":null,"install_tag":null,"quickstart_score":null,"quickstart_tag":null}