diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 6d8ff33238c6b2d5e20bab97b463ad991db13894..c8992eb0387c78436d0dcd5dbe869b5b59457ac4 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -31,11 +31,12 @@ run-tox-pipeline:
     - pip install virtualenv
     - virtualenv venv
     - . venv/bin/activate
+    - pip install tox
 
   script:
-    - pip install tox
     - tox
 
   artifacts:
     paths:
       - htmlcov
+      - docs/source/_static/openapi.json
diff --git a/docs/.gitlab-ci.yml b/docs/.gitlab-ci.yml
index 02cfc2d9b3514a9a2deeca1e36f673e79b029e12..221a7277606d622b88a43f91661ef352c128bfc4 100644
--- a/docs/.gitlab-ci.yml
+++ b/docs/.gitlab-ci.yml
@@ -5,10 +5,12 @@ build-documentation:
   tags:
     - docker-executor
   image: sphinxdoc/sphinx:latest
+  needs:
+    - job: run-tox-pipeline
+      artifacts: true
 
   before_script:
-    - pip install sphinx_rtd_theme fastapi
-    - python docs/dump-openapi-spec.py
+    - pip install sphinx_rtd_theme
   script:
     - sphinx-apidoc lso lso/app.py -o docs/source -d 2 -f
     - sphinx-build -b html docs/source docs/build
diff --git a/tox.ini b/tox.ini
index 2ae2ffcdd108e0afd730378c8dd22f311b32b4db..ec1dbc51dbeb6383da63d9e736f239f70c5480a0 100644
--- a/tox.ini
+++ b/tox.ini
@@ -29,3 +29,4 @@ commands =
     black --check .
     mypy .
     flake8
+    python docs/dump-openapi-spec.py