diff --git a/mailchimp.module b/mailchimp.module
index 6b4cc52..3f0d39a 100644
--- a/mailchimp.module
+++ b/mailchimp.module
@@ -75,11 +75,31 @@ function mailchimp_get_api_object($classname = 'Mailchimp') {
     \Drupal::logger('mailchimp')->error('Mailchimp Error: API Key cannot be blank.');
     return NULL;
   }
-
-  $timeout = 60;
-
-  $mailchimp = new $classname($api_key, 'apikey', $timeout);
-
+    
+  $http_options = [
+    'timeout' => 60,
+  ];
+  if ($proxy_server = \Drupal\Core\Site\Settings::get('proxy_server')) {
+    $proxy_url = sprintf(
+      'tcp://%s:%d',
+      preg_replace("(^https?://)", "", $proxy_server),
+      \Drupal\Core\Site\Settings::get('proxy_port')
+    );
+    $http_options += [
+      'proxy' => [
+        'http' => $proxy_url,
+        'https' => $proxy_url
+      ]
+    ];
+    if ($proxy_username = \Drupal\Core\Site\Settings::get('proxy_username')) {
+      $proxy_password = \Drupal\Core\Site\Settings::get('proxy_password');
+      $http_options['headers']['Proxy-Authorization'] = 'Basic ' . base64_encode(
+        $proxy_username . (!empty($proxy_password) ? ":" . $proxy_password : '')
+      );
+    }
+  }
+  
+  $mailchimp = new $classname($api_key, 'apikey', $http_options);
   return $mailchimp;
 }
 
