diff --git a/README.md b/README.md
index 6602c7d17be2ee3d18d1320bedd0ce839b6e8065..7f61c0131b2db6771ac43889f408f759f7c76236 100644
--- a/README.md
+++ b/README.md
@@ -34,6 +34,8 @@ export host_vars_dir=/path/to/base/hostvars/dir
 export hosts_file_dir=/path/to/base/hosts/dir
 ## Full path where this tool will save the WFO variables
 export vars_file_name=wfo_vars.yaml
+## Token provided by each GSO instance admin (varies per environment)
+export gso_api_key=<fill_with_gso_token>
 
 # Execution of the command to generate the Ansible inventory files
 ansible_inventory_generator
@@ -43,7 +45,24 @@ Ansible inventory files will be available under the path stated under `hosts_fil
 
 ## Troubleshooting
 
-### 403 error
+### Issues when installing the PIP package
+
+When experiencing an error like the following, switch to the user that has permissions over `/usr/local/bin`:
+```bash
+PermissionError: [Errno 13] Permission denied: '/usr/local/bin/ansible_inventory_generator'
+```
+
+If facing an error like the following, it may suggest a compatibility issue (maybe with the version of setuptools, wheels or pip):
+```bash
+AttributeError: install_layout. Did you mean: 'install_platlib'?
+```
+To try to address it, run the following:
+```bash
+pip install -U pip setuptools wheel 
+```
+
+### 403 error when running the `ansible_inventory_generator` command
 
 This tool cannot reach the WFO API because it is authenticated.
 Correct it by redeploying WFO by first running `export OAUTH2_ACTIVE=false` and then re-running WFO.
+Alternatively, change `export api_url` to an authenticated instance of GSO.
\ No newline at end of file
diff --git a/ansible_inventory_generator/app.py b/ansible_inventory_generator/app.py
index 7c4d1fb39384a5de3f4c8793403e13e0683255ce..7b535c2bb502d6fec84aed0f996a3591affffbfb 100644
--- a/ansible_inventory_generator/app.py
+++ b/ansible_inventory_generator/app.py
@@ -100,7 +100,9 @@ def safe_write(temp_dir: Path, old_vars_dir: Path, old_hosts_file: Path) -> Gene
 def generate_inventory_from_api() -> None:
     settings = load_settings()
     """Generate Ansible inventory from API."""
-    response = requests.get(settings.api_url, timeout=API_TIMEOUT_SEC)
+    response = requests.get(
+        settings.api_url, timeout=API_TIMEOUT_SEC, headers={"Authorization": f"Bearer {settings.gso_api_key}"}
+    )
     response.raise_for_status()
     try:
         router_subscriptions = response.json()
diff --git a/ansible_inventory_generator/config.py b/ansible_inventory_generator/config.py
index b94b8cea5a84c29b74c8e9ec5703a0d08dfb09cf..35e125bbb4ee077de6b67c84969c847accd404d8 100644
--- a/ansible_inventory_generator/config.py
+++ b/ansible_inventory_generator/config.py
@@ -6,6 +6,7 @@ class Settings(BaseSettings):
     host_vars_dir: str
     vars_file_name: str
     hosts_file_dir: str
+    gso_api_key: str
 
     class Config:
         env_file = "../.env"
diff --git a/example.env b/example.env
index 4654690ac5af327c2b4afe1d4ab6fd79f5e86921..59005596d63d1d67b373cb73b9e6efd39b2667ce 100644
--- a/example.env
+++ b/example.env
@@ -2,3 +2,4 @@ api_url=http://127.0.0.1:8080/api/v1/subscriptions/routers
 host_vars_dir=/path/to/base/hostvars/dir
 vars_file_name=wfo_vars.yaml
 hosts_file_dir=/path/to/base/hosts/dir
+gso_api_key=askjdhaskhdaksjhdkajshdkashd
diff --git a/setup.py b/setup.py
index f676b0fc3fdabae9eb5fab80d2f44fe00ad7ba44..7ffd35e4350862b3146a98a0d3a5e1c77c363f83 100644
--- a/setup.py
+++ b/setup.py
@@ -4,7 +4,7 @@ setup(
     name="ansible_inventory_generator",
     version="0.1",
     author="GEANT",
-    author_email="swd@geant.org",
+    author_email="gap@geant.org",
     description="Ansible inventory generator for WFO",
     url="https://gitlab.software.geant.org/goat/gap/ansible_inventory_generator",
     packages=find_packages(),
diff --git a/tests/test_inventory_generator.py b/tests/test_inventory_generator.py
index a309c7bc4938394cf3b3e2cb9ed05ead2f11f916..2b5fc13d7cf81cebbb60480724bff4b7af42e950 100644
--- a/tests/test_inventory_generator.py
+++ b/tests/test_inventory_generator.py
@@ -157,6 +157,7 @@ def setup_test(tmp_dir, mocked_subscription_api_data):
             host_vars_dir=str(tmp_dir),
             vars_file_name="wfo_vars.yaml",
             hosts_file_dir=str(tmp_dir),
+            gso_api_key="random_gso_api_key",
         )
 
         mock_get.return_value.json.return_value = mocked_subscription_api_data