NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
PyPI · #3545 most downloaded on PyPI
Flask + marshmallow for beautiful APIs
Last release 5 months ago
16 Apr 2026
Release timing varies
gaps range from 3 weeks to 2.5 years
Nearly every release is documented
notes for 26 of 26 stable releases
Nothing withdrawn
no release was ever pulled
12 years old
26 releases · first in 2014
Bump version and update changelog
Bump version and update changelog
Bug fixes:
Fix setting of scoped session on SQLAlchemyAuto (382). Thanks galuszkak for the PR.
Other changes:
Drop support for marshmallow 3, which is EOL.
Bump minimum version of marshmallow-sqlalchemy to 1.4.0 for the sqlalchemy extra.
Bump version and update changelog
One column per quarter.
Bug fixes:
Add missing commas in error message for validate.FileType (374).
Support:
Support Python 3.10-3.14 (376).
Bump version and update changelog
Bump version and update changelog
Support:
Support Python 3.9-3.13 (347).
Support marshmallow 4.0.0 (347).
Bump version and update changelog
Bump version and update changelog
Bug fixes:
Fix File field when it receives an empty value (301, apiflask/apiflask#551). Thanks uncle-lv.
Fix validate.FileSize to handle SpooledTemporaryFile (300). Thanks again uncle-lv.
Bump version and update changelog
Bump version and update changelog
Features:
Performance improvement to validate.FileSize (293). Thanks uncle-lv.
Bump version and update changelog
Bump version and update changelog
Bump version and update changelog
Bump version and update changelog
Features:
Add field fields.File, validate.FileType, and validate.FileSize for deserializing uploaded files (280, 282). Thanks uncle-lv for the PR
Add field Config for serializing Flask configuration values (280, 281). Thanks greyli for the PR.
Support:
Support marshmallow-sqlalchemy>=0.29.0.
Test against Python 3.12.
Drop support for Python 3.7.
Other changes:
Backwards-incompatible: Remove `flask_marshmallow.__version__ and flask_marshmallow.__version_info__ attributes (284). Use feature detection or importlib.metadata.version("flask-marshmallow") instead.
Solve deprecation flask sqlalchemy 3 by @woutervanoorschot in https://github.com/marshmallow-code/flask-marshmallow/pull/249
Full Changelog: https://github.com/marshmallow-code/flask-marshmallow/compare/0.14.0...0.15.0
Full Changelog: 0.14.0...0.15.0
Changes to supported software versions.
python3.6 or later and marshmallow>=3.0.0 are now required
Add support for python3.11
For sqlalchemy integration, marshmallow-sqlalchemy>=0.28.2 and flask-sqlalchemy>=3.0.0 are now required
Backwards-incompatible: URLFor and AbsoluteURLFor now do not accept parameters for flask.url_for as top-level parameters. They must always be passed in the values dictionary, as explained in the v0.14.0 changelog.
Bug fixes:
Address distutils deprecation warning in Python 3.10 (242). Thanks GabrielLins64 for the PR.
Bump version and update changelog
Bump version and update changelog
Add values argument to URLFor and AbsoluteURLFor for passing values to flask.url_for. This prevents unrelated parameters from getting passed (52, 67). Thanks AlrasheedA for the PR.
Deprecation:
Passing params to flask.url_for via URLFor's and AbsoluteURLFor's constructor params is deprecated. Pass values instead.
# flask-marshmallow<0.14.0
class UserSchema(ma.Schema):
_links = ma.Hyperlinks(
{
"self": ma.URLFor("user_detail", id="<id>"),
}
)
# flask-marshmallow>=0.14.0
class UserSchema(ma.Schema):
_links = ma.Hyperlinks(
{
"self": ma.URLFor("user_detail", values=dict(id="<id>")),
}
)
Bump version and update changelog
Bump version and update changelog
Bug fixes:
Fix compatibility with marshmallow-sqlalchemy<0.22.0 (189). Thanks PatrickRic for reporting.
Other changes:
Remove unused flask_marshmallow.sqla.SchemaOpts.
*Breaking change*: ma.ModelSchema and ma.TableSchema are removed, since these are deprecated upstream.
Breaking change: ma.ModelSchema and ma.TableSchema are removed, since these are deprecated upstream.
Warning
It is highly recommended that you use the newer ma.SQLAlchemySchema and ma.SQLAlchemyAutoSchema classes instead of ModelSchema and TableSchema. See the release notes for marshmallow-sqlalchemy 0.22.0 for instructions on how to migrate.
If you need to use ModelSchema and TableSchema for the time being, you'll need to import these directly from marshmallow_sqlalchemy.
from flask import Flask
from flask_sqlalchemy import SQLAlchemy
from flask_marshmallow import Marshmallow
app = Flask(__name__)
app.config["SQLALCHEMY_DATABASE_URI"] = "sqlite:////tmp/test.db"
db = SQLAlchemy(app)
ma = Marshmallow(app)
# flask-marshmallow<0.12.0
class AuthorSchema(ma.ModelSchema):
class Meta:
model = Author
# flask-marshmallow>=0.12.0 (recommended)
class AuthorSchema(ma.SQLAlchemyAutoSchema):
class Meta:
model = Author
load_instance = True
# flask-marshmallow>=0.12.0 (not recommended)
from marshmallow_sqlalchemy import ModelSchema
class AuthorSchema(ModelSchema):
class Meta:
model = Author
sql_session = db.session
Bug fixes:
Fix binding Flask-SQLAlchemy's scoped session to ma.SQLAlchemySchema and ma.SQLAlchemyAutoSchema. (180). Thanks fnalonso for reporting.
Add support for SQLAlchemySchema, SQLAlchemyAutoSchema, and auto_field from marshmallow-sqlalchemy>=0.22.0 (166).
Features:
Add support for SQLAlchemySchema, SQLAlchemyAutoSchema, and auto_field from marshmallow-sqlalchemy>=0.22.0 (166).
Bug fixes:
Properly restrict marshmallow-sqlalchemy version based on Python version (158).
Other changes:
Test against Python 3.8.
marshmallow 3.0.0rc6 compatibility (134).
Bug fixes:
marshmallow 3.0.0rc6 compatibility (134).
SQLAlchemy requirements can be installed with pip install 'flask-marshmallow[sqlalchemy]'.
Features:
Add ma.TableSchema (124).
SQLAlchemy requirements can be installed with pip install 'flask-marshmallow[sqlalchemy]'.
Bug fixes:
URLFor, AbsoluteURLFor, and HyperlinkRelated serialize to None if a passed attribute value is None (18, 68, 72). Thanks RobinRamuel, ocervell, and feigner for reporting.
Support:
Test against Python 3.7.
Drop support for Python 3.4. Only Python 2.7 and >=3.5 are supported.
Add support for marshmallow 3 beta. Thanks SBillion for the PR.
Add support for marshmallow 3 beta. Thanks SBillion for the PR.
Drop support for Python 3.3. Only Python 2.7 and >=3.4 are supported.
Updated documentation to fix example ma.URLFor target.
Fix compatibility with marshmallow>=3.0.
Fix compatibility with marshmallow>=3.0.
Support:
Backwards-incompatible: Drop support for marshmallow<=2.0.0.
Test against Python 3.6.
many argument to Schema.jsonify defaults to value of the Schema instance's many attribute (42). Thanks singingwolfboy.
many argument to Schema.jsonify defaults to value of the Schema instance's many attribute (42). Thanks singingwolfboy.
Attach HyperlinkRelated to Marshmallow instances. Thanks singingwolfboy for reporting.
Support:
Upgrade to invoke>=0.13.0.
Updated documentation to reference HyperlinkRelated instead of HyperlinkModelSchema. Thanks singingwolfboy.
Updated documentation links to readthedocs.io subdomain. Thanks adamchainz.
many argument to Schema.jsonify defaults to value of the Schema instance’s many attribute ( #42 ). Thanks @singingwolfboy .
Attach HyperlinkRelated to Marshmallow instances. Thanks @singingwolfboy for reporting.
Support:
Upgrade to invoke>=0.13.0.
Updated documentation to reference HyperlinkRelated instead of HyperlinkModelSchema . Thanks @singingwolfboy .
Updated documentation links to readthedocs.io subdomain. Thanks @adamchainz .
Fix compatibility with marshmallow>=2.0.0rc2.
Fix compatibility with marshmallow>=2.0.0rc2.
Support:
Tested against Python 3.5.
Fix compatibility with marshmallow-sqlalchemy>=0.4.0 (25). Thanks svenstaro for reporting.
Fix compatibility with marshmallow-sqlalchemy>=0.4.0 (25). Thanks svenstaro for reporting.
Support:
Include docs in release tarballs.
Fix compatibility with marshmallow-sqlalchemy>=0.4.0 ( #25 ). Thanks @svenstaro for reporting.
Support:
Include docs in release tarballs.
Add Flask-SQLAlchemy/marshmallow-sqlalchemy support via the ModelSchema and HyperlinkModelSchema classes.
Features:
Add Flask-SQLAlchemy/marshmallow-sqlalchemy support via the ModelSchema and HyperlinkModelSchema classes.
Schema.jsonify now takes the same arguments as marshmallow.Schema.dump. Additional keyword arguments are passed to flask.jsonify.
Hyperlinks field supports serializing a list of hyperlinks (11). Thanks royrusso for the suggestion.
Deprecation/Removal:
Remove support for MARSHMALLOW_DATEFORMAT and MARSHMALLOW_STRICT config options.
Other changes:
Drop support for marshmallow<1.2.0.
Fix compatibility with marshmallow>=2.0.0.
Fix compatibility with marshmallow>=2.0.0.
*Backwards-incompatible*: Remove flask_marshmallow.SchemaOpts class and remove support for MARSHMALLOW_DATEFORMAT and MARSHMALLOW_STRICT (8). Prevents
Backwards-incompatible: Remove flask_marshmallow.SchemaOpts class and remove support for MARSHMALLOW_DATEFORMAT and MARSHMALLOW_STRICT (8). Prevents a RuntimeError when instantiating a Schema outside of a request context.
Schema.jsonify is deprecated. Use flask.jsonify on the result of Schema.dump instead.
Backwards-incompatible: Rename URL and AbsoluteURL to URLFor and AbsoluteURLFor, respectively, to prevent overriding marshmallow's URL field (6). Thanks svenstaro for the suggestion.
Fix bug that raised an error when deserializing Hyperlinks and URL fields (9). Thanks raj-kesavan for reporting.
Deprecation:
Schema.jsonify is deprecated. Use flask.jsonify on the result of Schema.dump instead.
The MARSHMALLOW_DATEFORMAT and MARSHMALLOW_STRICT config values are deprecated. Use a base Schema class instead (8).
Supports marshmallow >= 1.0.0-a.
Supports marshmallow >= 1.0.0-a.
Implementation as a proper class-based Flask extension.
Implementation as a proper class-based Flask extension.
Serializer and fields classes are available from the Marshmallow object.
Hyperlinks, URL, and AbsoluteURL fields implemented.
First release.
Hyperlinks, URL, and AbsoluteURL fields implemented.
Serializer#jsonify implemented.
Your coding agent can read these notes before it upgrades. Set up the MCP server →