{"adoption": {"forks": 167, "observed_at": "2026-08-28T04:04:38.267666+00:00", "stars": 1406}, "canonical_url": "https://ross.abutalabs.com/products/webargs", "card": {"archived": false, "artifact_type": "library", "description": "A friendly library for parsing HTTP request arguments, with built-in support for popular web frameworks, including Flask, Django, Bottle, Tornado, Pyramid, webapp2, Falcon, and aiohttp.", "domain": ["web-development", "backend", "apis"], "enriched": true, "function": ["web-framework", "middleware", "form-handling", "serialization"], "health_score": 78, "homepage": "https://webargs.readthedocs.io/", "language": "Python", "license": "MIT", "license_family": "permissive", "maturity": "stable", "member_repos": ["marshmallow-code/webargs"], "name": "marshmallow-code/webargs", "platform": ["python"], "pushed_at": "2026-08-13T23:48:02+00:00", "repo": "marshmallow-code/webargs", "stars": 1406, "tags": ["request-parsing", "validation", "marshmallow", "flask", "django", "aiohttp", "falcon", "tornado", "pyramid", "rest-api", "web-server"], "topics": ["python", "django", "flask", "aiohttp", "pyramid", "falcon", "bottlepy", "marshmallow", "validation", "request-validation", "hacktoberfest"], "urls": [], "use_cases": ["parse and validate query parameters in a Flask endpoint", "validate JSON request bodies in Django views", "declaratively define request argument schemas for a REST API", "parse uploaded files and form data in aiohttp handlers", "return consistent 422 error responses for invalid request arguments", "share request-parsing schemas across multiple Python web frameworks"], "what_it_is": "webargs is a Python library for declarative parsing and validation of HTTP request arguments (query, form, JSON, headers, files), built on marshmallow schemas. It integrates with popular web frameworks including Flask, Django, Bottle, Tornado, Pyramid, Falcon, and aiohttp.", "when_to_avoid": ["you use FastAPI or another framework with built-in request validation via type hints", "you only need simple manual access to request data without validation", "your project does not use marshmallow and you want zero extra dependencies"], "when_to_choose": ["you use Flask, Django, Falcon, aiohttp, or another supported framework and want schema-based request validation", "you already use marshmallow and want consistent serialization and validation for request inputs", "you need to parse arguments from multiple locations (query, form, JSON, headers, files) with one API"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/webargs", "repo": "marshmallow-code/webargs", "role": "main", "score": 76}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:04:38.267666+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T04:38:42.894916+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "3288bc5a50335199f1d4eea4b84b8e82cdfc87c6412c70d0b32767f181b5b5a8", "fetched_at": "2026-08-28T04:04:38.267666+00:00", "kind": "readme", "missing": false, "url": "https://github.com/marshmallow-code/webargs"}, {"content_hash": "41a9e424f50d138836b054438b66aa6cd0623914a419395958419058bc3b5bff", "fetched_at": "2026-08-29T11:53:05.172101+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/webargs/json"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:04:38.267666+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T04:38:42.894916+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "3288bc5a50335199f1d4eea4b84b8e82cdfc87c6412c70d0b32767f181b5b5a8", "fetched_at": "2026-08-28T04:04:38.267666+00:00", "kind": "readme", "missing": false, "url": "https://github.com/marshmallow-code/webargs"}, {"content_hash": "41a9e424f50d138836b054438b66aa6cd0623914a419395958419058bc3b5bff", "fetched_at": "2026-08-29T11:53:05.172101+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/webargs/json"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T04:38:42.894916+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "3288bc5a50335199f1d4eea4b84b8e82cdfc87c6412c70d0b32767f181b5b5a8", "fetched_at": "2026-08-28T04:04:38.267666+00:00", "kind": "readme", "missing": false, "url": "https://github.com/marshmallow-code/webargs"}, {"content_hash": "41a9e424f50d138836b054438b66aa6cd0623914a419395958419058bc3b5bff", "fetched_at": "2026-08-29T11:53:05.172101+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/webargs/json"}], "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:04:38.267666+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:04:38.267666+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:04:38.267666+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T04:38:42.894916+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "3288bc5a50335199f1d4eea4b84b8e82cdfc87c6412c70d0b32767f181b5b5a8", "fetched_at": "2026-08-28T04:04:38.267666+00:00", "kind": "readme", "missing": false, "url": "https://github.com/marshmallow-code/webargs"}, {"content_hash": "41a9e424f50d138836b054438b66aa6cd0623914a419395958419058bc3b5bff", "fetched_at": "2026-08-29T11:53:05.172101+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/webargs/json"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:04:38.267666+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:04:38.267666+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T04:38:42.894916+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "3288bc5a50335199f1d4eea4b84b8e82cdfc87c6412c70d0b32767f181b5b5a8", "fetched_at": "2026-08-28T04:04:38.267666+00:00", "kind": "readme", "missing": false, "url": "https://github.com/marshmallow-code/webargs"}, {"content_hash": "41a9e424f50d138836b054438b66aa6cd0623914a419395958419058bc3b5bff", "fetched_at": "2026-08-29T11:53:05.172101+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/webargs/json"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:04:38.267666+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:04:38.267666+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:04:38.267666+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T04:38:42.894916+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "3288bc5a50335199f1d4eea4b84b8e82cdfc87c6412c70d0b32767f181b5b5a8", "fetched_at": "2026-08-28T04:04:38.267666+00:00", "kind": "readme", "missing": false, "url": "https://github.com/marshmallow-code/webargs"}, {"content_hash": "41a9e424f50d138836b054438b66aa6cd0623914a419395958419058bc3b5bff", "fetched_at": "2026-08-29T11:53:05.172101+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/webargs/json"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:04:38.267666+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:04:38.267666+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T04:38:42.894916+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "3288bc5a50335199f1d4eea4b84b8e82cdfc87c6412c70d0b32767f181b5b5a8", "fetched_at": "2026-08-28T04:04:38.267666+00:00", "kind": "readme", "missing": false, "url": "https://github.com/marshmallow-code/webargs"}, {"content_hash": "41a9e424f50d138836b054438b66aa6cd0623914a419395958419058bc3b5bff", "fetched_at": "2026-08-29T11:53:05.172101+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/webargs/json"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T04:38:42.894916+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "3288bc5a50335199f1d4eea4b84b8e82cdfc87c6412c70d0b32767f181b5b5a8", "fetched_at": "2026-08-28T04:04:38.267666+00:00", "kind": "readme", "missing": false, "url": "https://github.com/marshmallow-code/webargs"}, {"content_hash": "41a9e424f50d138836b054438b66aa6cd0623914a419395958419058bc3b5bff", "fetched_at": "2026-08-29T11:53:05.172101+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/webargs/json"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T04:38:42.894916+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "3288bc5a50335199f1d4eea4b84b8e82cdfc87c6412c70d0b32767f181b5b5a8", "fetched_at": "2026-08-28T04:04:38.267666+00:00", "kind": "readme", "missing": false, "url": "https://github.com/marshmallow-code/webargs"}, {"content_hash": "41a9e424f50d138836b054438b66aa6cd0623914a419395958419058bc3b5bff", "fetched_at": "2026-08-29T11:53:05.172101+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/webargs/json"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T04:38:42.894916+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "3288bc5a50335199f1d4eea4b84b8e82cdfc87c6412c70d0b32767f181b5b5a8", "fetched_at": "2026-08-28T04:04:38.267666+00:00", "kind": "readme", "missing": false, "url": "https://github.com/marshmallow-code/webargs"}, {"content_hash": "41a9e424f50d138836b054438b66aa6cd0623914a419395958419058bc3b5bff", "fetched_at": "2026-08-29T11:53:05.172101+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/webargs/json"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 97, "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": 4581, "days_push": 20, "days_rel": null, "gap_med": null, "n_releases_24m": 0}, "score": 76, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}