diff --git a/nomad/app_fastapi/main.py b/nomad/app_fastapi/main.py
index b2802d715cab8f633582b416ec82923a09222ec7..a33da40685071b6563f3c97c21aad98e32a825a8 100644
--- a/nomad/app_fastapi/main.py
+++ b/nomad/app_fastapi/main.py
@@ -1,3 +1,21 @@
+#
+# Copyright The NOMAD Authors.
+#
+# This file is part of NOMAD. See https://nomad-lab.eu for further info.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
 from fastapi import FastAPI, status, Request
 from fastapi.responses import JSONResponse
 from fastapi.middleware.wsgi import WSGIMiddleware
diff --git a/nomad/app_fastapi/models.py b/nomad/app_fastapi/models.py
index 64175667803f80a4559c97c8e9366450e257e31a..03e4479c9e03c15742103690800dcd5ac467c2fc 100644
--- a/nomad/app_fastapi/models.py
+++ b/nomad/app_fastapi/models.py
@@ -1,3 +1,21 @@
+#
+# Copyright The NOMAD Authors.
+#
+# This file is part of NOMAD. See https://nomad-lab.eu for further info.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
 from typing import List, Dict, Optional, Union, Any
 import enum
 from fastapi import Body, Request, HTTPException, Query as FastApiQuery
diff --git a/nomad/app_fastapi/routers/auth.py b/nomad/app_fastapi/routers/auth.py
index 3e5cd25072af77bbee32fb6a2fb3689e14e1894f..e2801c312caaff3f85424a9fda8fed652e948989 100644
--- a/nomad/app_fastapi/routers/auth.py
+++ b/nomad/app_fastapi/routers/auth.py
@@ -1,3 +1,21 @@
+#
+# Copyright The NOMAD Authors.
+#
+# This file is part of NOMAD. See https://nomad-lab.eu for further info.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
 from fastapi import Depends, APIRouter, HTTPException, status
 from fastapi.security import OAuth2PasswordBearer, OAuth2PasswordRequestForm
 from pydantic import BaseModel
diff --git a/nomad/app_fastapi/routers/entries.py b/nomad/app_fastapi/routers/entries.py
index df83e5b3cea59e073e9be564838fe05895810b5b..d3e1835784956f912d11f84cdda299e92224f4de 100644
--- a/nomad/app_fastapi/routers/entries.py
+++ b/nomad/app_fastapi/routers/entries.py
@@ -1,3 +1,21 @@
+#
+# Copyright The NOMAD Authors.
+#
+# This file is part of NOMAD. See https://nomad-lab.eu for further info.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
 from typing import Dict, Iterator, Any, List, Set, cast
 from fastapi import APIRouter, Depends, Path, status, HTTPException
 from fastapi.responses import StreamingResponse
diff --git a/nomad/app_fastapi/routers/users.py b/nomad/app_fastapi/routers/users.py
index 8ac94b2020db938f20f922cae4b60f1efb638302..b6d54b2fe07061fa1d787714f9246b06a004a8bb 100644
--- a/nomad/app_fastapi/routers/users.py
+++ b/nomad/app_fastapi/routers/users.py
@@ -1,3 +1,21 @@
+#
+# Copyright The NOMAD Authors.
+#
+# This file is part of NOMAD. See https://nomad-lab.eu for further info.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
 from fastapi import Depends, APIRouter, status
 
 from nomad.app_fastapi.routers.auth import get_required_user
diff --git a/nomad/app_fastapi/utils.py b/nomad/app_fastapi/utils.py
index b5b07f9ad875229eea2fc098e64503c07fe93f53..5f7969ed1e77fa9bc6b844424c4c734747067869 100644
--- a/nomad/app_fastapi/utils.py
+++ b/nomad/app_fastapi/utils.py
@@ -1,3 +1,21 @@
+#
+# Copyright The NOMAD Authors.
+#
+# This file is part of NOMAD. See https://nomad-lab.eu for further info.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
 from typing import Dict, Iterator, Any
 from types import FunctionType
 import sys
diff --git a/tests/app_fastapi/routers/conftest.py b/tests/app_fastapi/routers/conftest.py
index cc7f31e1e9d057c723c83cb69c42fee11775821f..2ab410ef8a0e548329a49cd867b3b89082df63e6 100644
--- a/tests/app_fastapi/routers/conftest.py
+++ b/tests/app_fastapi/routers/conftest.py
@@ -1,3 +1,21 @@
+#
+# Copyright The NOMAD Authors.
+#
+# This file is part of NOMAD. See https://nomad-lab.eu for further info.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
 import pytest
 from fastapi.testclient import TestClient
 
diff --git a/tests/app_fastapi/routers/test_auth.py b/tests/app_fastapi/routers/test_auth.py
index 3efb27d6c6948a44a27c1aa87c22bd1726535e3c..49b434165eed1e9afec538f7860e4e59ec5fe23e 100644
--- a/tests/app_fastapi/routers/test_auth.py
+++ b/tests/app_fastapi/routers/test_auth.py
@@ -1,3 +1,21 @@
+#
+# Copyright The NOMAD Authors.
+#
+# This file is part of NOMAD. See https://nomad-lab.eu for further info.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
 import pytest
 from urllib.parse import urlencode
 
diff --git a/tests/app_fastapi/routers/test_entries.py b/tests/app_fastapi/routers/test_entries.py
index 6d5f73f5ce7352cdf1adaeccd278c13afc3a01e9..1a41913ce524874d53e3f91640b59d1b052d798b 100644
--- a/tests/app_fastapi/routers/test_entries.py
+++ b/tests/app_fastapi/routers/test_entries.py
@@ -1,3 +1,21 @@
+#
+# Copyright The NOMAD Authors.
+#
+# This file is part of NOMAD. See https://nomad-lab.eu for further info.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
 from typing import List
 import pytest
 from devtools import debug
diff --git a/tests/app_fastapi/routers/test_users.py b/tests/app_fastapi/routers/test_users.py
index 83812d1bcc5de0849294cccf5b3ed14e84af9dad..f1c513e6dfc2b726d4043b4abf840d40e06aee77 100644
--- a/tests/app_fastapi/routers/test_users.py
+++ b/tests/app_fastapi/routers/test_users.py
@@ -1,4 +1,22 @@
 
+#
+# Copyright The NOMAD Authors.
+#
+# This file is part of NOMAD. See https://nomad-lab.eu for further info.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
 def test_me(client, test_user_auth):
     response = client.get('users/me', headers=test_user_auth)
     assert response.status_code == 200
diff --git a/tests/app_fastapi/test_utils.py b/tests/app_fastapi/test_utils.py
index d9a25496da39d85142ee966a6697ae446f99bd60..901c850181995eb7981bed7e928eb2842671150d 100644
--- a/tests/app_fastapi/test_utils.py
+++ b/tests/app_fastapi/test_utils.py
@@ -1,3 +1,21 @@
+#
+# Copyright The NOMAD Authors.
+#
+# This file is part of NOMAD. See https://nomad-lab.eu for further info.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
 from typing import Iterator
 import os.path
 import zipfile