invenio-rest
REST API module for Invenio.
What it is and what it does
Invenio-REST is a Flask extension that bundles REST API infrastructure for the Invenio digital library framework. It handles common REST concerns—error responses, HTTP semantics—and integrates Flask-CORS to support cross-origin requests when needed. The module is designed to be used within the broader Invenio ecosystem, where it provides a foundation for building REST endpoints on top of Invenio's data models and services.
The package depends on marshmallow for serialization, webargs for request parsing, and several other Invenio core modules. It is actively maintained and classified as production-stable. It is most useful if you are building a REST API within an Invenio application; standalone REST API projects would typically use Flask or a more general-purpose REST framework instead.
Use it for:
- Set up error handling and CORS for a REST API in an Invenio digital repository application.
- Initialize Flask-CORS conditionally in an Invenio app without manual middleware configuration.
- Provide a standardized REST foundation when extending Invenio with custom API endpoints.
- Integrate marshmallow-based request/response validation in an Invenio REST service.
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
Invenio-REST provides Flask-based REST API infrastructure with built-in error handling and optional CORS support for Invenio applications.
Yes, if you are building or extending an Invenio application with REST endpoints. The module is actively maintained, has low install friction, carries a permissive MIT license, and solves a real problem within the Invenio ecosystem. Not recommended for standalone REST projects outside Invenio.
Install
invenio-rest on PyPI
pip
pip install invenio-restuv
uv add invenio-restpoetry
poetry add invenio-restInstalling invenio-rest
Before you install
Low install friction with a wheel distribution and seven runtime dependencies. Active maintenance with a recent release 29 days ago; last commit on 2026-07-21.
License in practice
MIT license permits commercial and private use with minimal restrictions—include a copy of the license and copyright notice.
Quickstart
pip install invenio-rest
from invenio_rest import InvenioREST
from flask import Flask
app = Flask(__name__)
InvenioREST(app)
Requires Python >=3.8.
Verify before relying
- Whether CORS is enabled by default or requires explicit configuration beyond InvenioREST initialization.
- Whether error handling covers all common REST scenarios or requires additional middleware setup.
Package facts
| License | MIT (permissive) |
| Python support | supports the current Python release (>=3.8) |
| Install friction | low — pure-Python wheel |
| Runtime dependencies | 7 — flask-cors, invenio-base, invenio-logging, itsdangerous, marshmallow-utils, marshmallow, webargs |
| Maintenance | actively maintained — 29 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 73,597/month — #14,963 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: invenio_rest-4.0.1-py3-none-any.whl
Keywords: api, invenio, module, rest
Tags
More Dynamic Content packages
MarkupSafe provides a text object that escapes…
permissive · top 100 on PyPI
Jinja2Jinja2 is a templating engine that renders…
permissive · top 100 on PyPI
soupsieveSoupsieve is a CSS selector library designed to…
permissive · top 100 on PyPI
WerkzeugWerkzeug is a WSGI utility library providing…
permissive · top 1,000 on PyPI
FlaskFlask is a lightweight WSGI web application…
permissive · top 1,000 on PyPI
MakoMako compiles Python-embedded templates into…
permissive · top 1,000 on PyPI
flask-corsFlask-CORS handles Cross-Origin Resource…
permissive · top 1,000 on PyPI
invenio-records-permissionsDefines and enforces permission policies for…
permissive · top 15,000 on PyPI
Sanic-CorsSanic-CORS is a Sanic extension that adds…
permissive · top 15,000 on PyPI
cherrypy-corsAdds Cross-Origin Resource Sharing (CORS)…
permissive · top 15,000 on PyPI
aiohttp-corsAdds Cross-Origin Resource Sharing (CORS)…
permissive · top 5,000 on PyPI
fastapi-corsConfigures CORS settings for FastAPI…
permissive · top 15,000 on PyPI
django-cors-headersAdds Cross-Origin Resource Sharing (CORS)…
permissive · top 1,000 on PyPI
quart-corsQuart-CORS adds Cross-Origin Resource Sharing…
permissive · top 15,000 on PyPI
types-Flask-CorsProvides type stubs for Flask-Cors to enable…
permissive · top 5,000 on PyPI
httpbinhttpbin is a Flask-based HTTP request and…
permissive · top 15,000 on PyPI