diff --git a/LICENSE b/LICENSE
new file mode 100644
index 0000000000000000000000000000000000000000..6941a349fb9befea4b9c12b88df59c16a7e3bd99
--- /dev/null
+++ b/LICENSE
@@ -0,0 +1,5 @@
+MIT License
+
+Copyright (c) 2024 GÉANT
+
+Permission is hereby granted, free of charge, to any person obtaining a copy...
\ No newline at end of file
diff --git a/MANIFEST.in b/MANIFEST.in
new file mode 100644
index 0000000000000000000000000000000000000000..74215c3ee42cae82d98383c9cea51b08d4551d2a
--- /dev/null
+++ b/MANIFEST.in
@@ -0,0 +1,2 @@
+include README.md
+include LICENSE
\ No newline at end of file
diff --git a/mapping_provider/__init__.py b/mapping_provider/__init__.py
new file mode 100644
index 0000000000000000000000000000000000000000..b71618451ed5806e10d1944861e055734ca84ea6
--- /dev/null
+++ b/mapping_provider/__init__.py
@@ -0,0 +1,14 @@
+"""Initializes the FastAPI application."""
+from xml.sax.handler import version
+
+from fastapi import FastAPI
+from mapping_provider.api.common import router as version_router
+
+def create_app():
+    """Create a FastAPI application."""
+    app = FastAPI(
+        title="Mapping provider",
+        description="Mapping provider endpoints for GÉANT maps",
+    )
+    app.include_router(version_router)
+    return app
diff --git a/mapping_provider/api/__ini__.py b/mapping_provider/api/__ini__.py
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/mapping_provider/api/common.py b/mapping_provider/api/common.py
new file mode 100644
index 0000000000000000000000000000000000000000..f1395f2d77a509e02adf4a55c965cd14fec40d1a
--- /dev/null
+++ b/mapping_provider/api/common.py
@@ -0,0 +1,14 @@
+from importlib.metadata import version, PackageNotFoundError
+
+from fastapi import APIRouter
+
+router = APIRouter()
+
+
+@router.get("/version")
+def get_version():
+    """Get the version of the package."""
+    try:
+        return {"version": version("mapping_provider")}
+    except PackageNotFoundError:
+        return {"version": "unknown"}
diff --git a/mapping_provider/main.py b/mapping_provider/main.py
new file mode 100644
index 0000000000000000000000000000000000000000..dfcd3b48ae2aeb815081e1cf6fe07e90020d8eff
--- /dev/null
+++ b/mapping_provider/main.py
@@ -0,0 +1,6 @@
+"""The main module that runs the application."""
+
+from mapping_provider import create_app
+
+app = create_app()
+
diff --git a/requirements.txt b/requirements.txt
new file mode 100644
index 0000000000000000000000000000000000000000..8e0578a0c2cb636e21d871d5ae4fdbb81887bee2
--- /dev/null
+++ b/requirements.txt
@@ -0,0 +1,2 @@
+fastapi
+uvicorn[standard]
\ No newline at end of file
diff --git a/setup.py b/setup.py
new file mode 100644
index 0000000000000000000000000000000000000000..5a84dbf65238b60c9c29ced773c89c572fc5ffb4
--- /dev/null
+++ b/setup.py
@@ -0,0 +1,26 @@
+from setuptools import setup, find_packages
+
+setup(
+    name="mapping-provider",
+    version="0.1",
+    description="A FastAPI app to provide mapping services for GEANT maps.",
+    author="GÉANT",
+    author_email="info@geant.org",
+    license="MIT",
+    packages=find_packages(where="mapping_provider"),
+    package_dir={"": "mapping_provider"},
+    include_package_data=True,
+    python_requires=">=3.10",
+    install_requires=[
+        "fastapi",
+        "uvicorn[standard]"
+    ],
+    long_description=open("README.md", encoding="utf-8").read(),
+    long_description_content_type="text/markdown",
+    classifiers=[
+        "Programming Language :: Python :: 3",
+        "Framework :: FastAPI",
+        "License :: OSI Approved :: MIT License",
+        "Operating System :: OS Independent",
+    ],
+)
\ No newline at end of file