# marshmallow-code/webargs

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.

Repository: https://github.com/marshmallow-code/webargs
Canonical: https://ross.abutalabs.com/products/webargs
Homepage: https://webargs.readthedocs.io/
Language: Python
License: MIT
License Family: permissive
Topics: python, django, flask, aiohttp, pyramid, falcon, bottlepy, marshmallow, validation, request-validation, hacktoberfest
Last push: 2026-08-13T23:48:02+00:00

## Health v2 (maintenance only)
Score: 76/100 (v2, computed 2026-09-03T02:20:16.233290+00:00)
- activity 97, release rhythm 35, longevity 100
- inputs: {"age_days": 4581, "days_push": 20, "days_rel": null, "gap_med": null, "n_releases_24m": 0}
- flags: no_releases
- formula: round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)

## Adoption (not part of the score)
Stars 1406, forks 167 (observed 2026-08-28T04:04:38.267666+00:00)

## 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.

## 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

## 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

## 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

## Facets
- artifact type: library
- maturity: stable
- function: web-framework, middleware, form-handling, serialization
- domain: web-development, backend, apis
- platform: python
- tags: request-parsing, validation, marshmallow, flask, django, aiohttp, falcon, tornado, pyramid, rest-api, web-server

## Member repositories
- marshmallow-code/webargs (main) score 76

## Provenance
- Observed fields: from GitHub, fetched 2026-08-28T04:04:38.267666+00:00.
- Health v2: computed from the inputs above; adoption is never an input.
- Inferred fields (summary, facets, guidance): AI-extracted, prompt v1, taxonomy v1, on 2026-08-30T04:38:42.894916+00:00, confidence not recorded.
  - readme: https://github.com/marshmallow-code/webargs (fetched 2026-08-28T04:04:38.267666+00:00, sha 3288bc5a5033)
  - registry_pypi: https://pypi.org/pypi/webargs/json (fetched 2026-08-29T11:53:05.172101+00:00, sha 41a9e424f50d)
- Data as of 2026-08-30T08:39:29.467469+00:00.
