diff --git a/src/newsletter/newsletter.controller.ts b/src/newsletter/newsletter.controller.ts
index 0d28fb0c46dfc657d75d5b670d90015d568c0344..68800a6eda64ceddd7a35b24c70a7c0b45f81ac6 100644
--- a/src/newsletter/newsletter.controller.ts
+++ b/src/newsletter/newsletter.controller.ts
@@ -9,7 +9,7 @@ export class NewsletterController {
 
   @Get()
   public async findOne(@Query('email') email: string) {
-    return this.newsletterService.findOne(email);
+    return this.newsletterService.findNewsletterSubscription(email);
   }
 
   @Post('subscribe')
diff --git a/src/newsletter/newsletter.service.ts b/src/newsletter/newsletter.service.ts
index 4d44ac9441880c1978cf9219fde5b899f551b72c..1af9ef47bd2bd5b9dbe987d54ae7cbb86e82a6c5 100644
--- a/src/newsletter/newsletter.service.ts
+++ b/src/newsletter/newsletter.service.ts
@@ -102,6 +102,21 @@ export class NewsletterService {
     return newsletterSubscription;
   }
 
+  public async findNewsletterSubscription(email: string): Promise<object> {
+    try {
+      // The actual subscription info is in mailchimp, we actually don't need to maintain a mapping in newsletterSubscription : cf. https://mailchimp.com/developer/marketing/docs/methods-parameters/#path-parameters
+      const mailchimpUser = await mailchimp.lists.getListMember(this.LIST_ID, md5(email));
+      return mailchimpUser.status === 'unsubscribed' ? null : { email };
+    } catch (e) {
+      if (e.status === 404) {
+        return null;
+      } else {
+        this.logger.error(`findNewsletterSubscription: ${e.status} - ${e}`);
+        throw new HttpException('find Newsletter Subscription', HttpStatus.INTERNAL_SERVER_ERROR);
+      }
+    }
+  }
+
   public async findOne(mail: string): Promise<INewsletterSubscription | undefined> {
     this.logger.debug('findOne');
     return this.newsletterSubscriptionModel.findOne({ email: mail }).exec();