diff --git a/lib/instance_billing_flavor_check/utils.py b/lib/instance_billing_flavor_check/utils.py
index 2e3ef4c..7bc3dce 100644
--- a/lib/instance_billing_flavor_check/utils.py
+++ b/lib/instance_billing_flavor_check/utils.py
@@ -19,6 +19,7 @@
 import configparser
 import ipaddress
 import logging
+import os
 import sys
 import requests
 
@@ -40,6 +41,7 @@
 REGION_SRV_CLIENT_CONFIG_PATH = '/etc/regionserverclnt.cfg'
 BASEPRODUCT_PATH = '/etc/products.d/baseproduct'
 ETC_HOSTS_PATH = '/etc/hosts'
+PROXY_CONFIG_PATH = '/etc/sysconfig/proxy'
 
 requests.packages.urllib3.disable_warnings(
     requests.packages.urllib3.exceptions.InsecureRequestWarning
@@ -139,6 +141,42 @@ def get_rmt_ip_addr():
     logger.info('Could not determine update server IP address')
 
 
+def _get_proxies():
+    """
+    Get proxy info.
+
+    If any proxy has been set up,
+    this method returns the proxy info in a dictionary.
+
+    Otherwise, returns None
+    """
+    if os.environ.get('http_proxy') or os.environ.get('https_proxy'):
+        logger.info('Using proxy settings present on the environment.')
+        # by default/if None requests relies on the environment variables
+        # HTTP_PROXY and HTTPS_PROXY
+        return None
+
+    proxies = {}
+    proxy_config = []
+    try:
+        with open(PROXY_CONFIG_PATH, 'r') as proxy_file:
+            proxy_config = proxy_file.readlines()
+    except FileNotFoundError:
+        logging.info('No proxy config file found on %s', PROXY_CONFIG_PATH)
+
+    for entry in proxy_config:
+        if 'PROXY_ENABLED' in entry and 'no' in entry:
+            return None
+        if 'HTTP_PROXY' in entry:
+            proxies['http_proxy'] = entry.split('"')[1]
+        if 'HTTPS_PROXY' in entry:
+            proxies['https_proxy'] = entry.split('"')[1]
+        if 'NO_PROXY' in entry:
+            proxies['no_proxy'] = entry.split('"')[1]
+
+    return proxies or None
+
+
 def make_request(rmt_ip_addr, metadata, identifier):
     """Return the flavour from the RMT server request."""
     instance_check_url = 'https://{}/api/instance/check'.format(rmt_ip_addr)
@@ -147,12 +185,14 @@ def make_request(rmt_ip_addr, metadata, identifier):
         'metadata': metadata,
         'identifier': identifier
     }
+    proxies = _get_proxies()
     try:
         response = requests.get(
             instance_check_url,
             timeout=2,
             verify=False,
-            params=billing_check_params
+            params=billing_check_params,
+            proxies=proxies
         )
     except requests.exceptions.HTTPError as err:
         message = 'Http Error:{}'.format(err)
diff --git a/pytest.ini b/pytest.ini
new file mode 100644
index 0000000..082e7b7
--- /dev/null
+++ b/pytest.ini
@@ -0,0 +1,5 @@
+[pytest]
+pythonpath = lib
+addopts = --cov lib/instance_billing_flavor_check --cov-report term-missing
+testpaths =
+    tests
diff --git a/tests/test_utils.py b/tests/test_utils.py
new file mode 100644
index 0000000..d949b13
--- /dev/null
+++ b/tests/test_utils.py
@@ -0,0 +1,46 @@
+import logging
+import os
+
+from unittest import mock
+from unittest.mock import patch
+from requests import exceptions
+from instance_billing_flavor_check import utils
+
+FAKE_PROXY = {'http_proxy': 'foo', 'https_proxy': 'bar', 'no_proxy': 'foobar'}
+
+@patch.dict(os.environ, FAKE_PROXY, clear=True)
+def test_get_proxies(caplog):
+    """Test proxy settings are the same as environment, if any."""
+    with caplog.at_level(logging.INFO):
+        assert utils._get_proxies() is None
+    expected_message = 'Using proxy settings present on the environment.'
+    assert expected_message in caplog.text
+
+
+def test_get_proxies_no_proxy_env_no_proxy_file(caplog):
+    """Test proxy value is the same as set on the proxy file."""
+    with patch('builtins.open', create=True) as mock_open:
+        mock_open.side_effect = FileNotFoundError('oh no')
+        with caplog.at_level(logging.INFO):
+            assert utils._get_proxies() is None
+        expected_message = 'No proxy config file found on /etc/sysconfig/proxy'
+        assert expected_message  in caplog.text
+
+
+def test_get_proxies_no_proxy_env_proxy_file(caplog):
+    """Test proxy value is the same as set on the file."""
+    with patch('builtins.open', create=True) as mock_open:
+        proxy_content = """
+        HTTP_PROXY="http://foo.com"
+        HTTPS_PROXY="https://foo.com"
+        NO_PROXY="localhost, 127.0.0.1"
+        """
+        with mock.patch(
+            'builtins.open',
+            mock.mock_open(read_data=proxy_content)
+        ):
+            assert utils._get_proxies() == {
+                'http_proxy': 'http://foo.com',
+                'https_proxy': 'https://foo.com',
+                'no_proxy': 'localhost, 127.0.0.1'
+            }
