Package: lidl-plus
This python package is unofficial and is not related in any way to Lidl. It was developed by reversed engineered requests and can stop working at anytime!Python Lidl Plus APIFetch receipts and more from Lidl Plus.Installationpipinstalllidl-plusAuthenticationTo login in Lidl Plus we need to simulate the app login.
This is a bit complicated, we need a web browser and some additional python packages.
After we have received the token once, we can use it for further requestes and we don't need a browser anymore.PrerequisitesCheck you have installed one of the supported web browserChromiumGoogle ChromeMozilla FirefoxMicrosoft EdgeInstall additional python packagespipinstall"lidl-plus[auth]"Commandline-Tool$lidl-plusauth
Enteryourlanguage(de,en,...):de
Enteryourcountry(DE,AT,...):AT
Enteryourlidlplususername(phonenumber):+4915784632296
Enteryourlidlpluspassword:
Entertheverifycodeyoureceivedviaphone:590287-------------------------refreshtoken------------------------
2D4FC2A699AC703CAB8D017012658234917651203746021A4AA3F735C8A53B7F
----------------------------------------------------------------PythonfromlidlplusimportLidlPlusApilidl=LidlPlusApi(language="de",country="AT")lidl.login(phone="+4915784632296",password="password",verify_token_func=lambda:input("Insert code: "))print(lidl.refresh_token)UsageCurrently, the only features are fetching receipts and activating couponsReceiptsGet your receipts as json and receive a list of bought items like:{"currentUnitPrice":"2,19","quantity":"1","isWeight":false,"originalAmount":"2,19","name":"Vegane Frikadellen","taxGroup":"1","taxGroupName":"A","codeInput":"4023456245134","discounts":[{"description":"5€ Coupon","amount":"0,21"}],"deposit":null,"giftSerialNumber":null},Commandline-Tool$lidl-plus--language=de--country=AT--refresh-token=XXXXXreceipt--all>data.jsonPythonfromlidlplusimportLidlPlusApilidl=LidlPlusApi("de","AT",refresh_token="XXXXXXXXXX")forreceiptinlidl.tickets():pprint(lidl.ticket(receipt["id"]))CouponsYou can list all coupons and activate/deactivate them by id{"sections":[{"name":"FavoriteStore","coupons":[]},{"name":"AllStores","coupons":[{"id":"2c9b3554-a09c-412c-8be4-d41cbff13572","image":"https://lidlplusprod.blob.core.windows.net/images/coupons/LT/IDISC0000254911.png?t=1695452076","type":"Standard","offerTitle":"1 + 1","title":"👨🏻‍🍳 Frozen 👨🏻‍🍳","offerDescriptionShort":"FREE","isSegmented":false,"startValidityDate":"2023-09-24T21:00:00Z","endValidityDate":"2023-10-01T20:59:59Z","isActivated":false,"apologizeText":"Xxxxxxxxxxxxxxxxx","apologizeStatus":false,"apologizeTitle":"Xxxxxxxxxxxxxxxxxxx","promotionId":"DISC0000254911","tagSpecial":"","firstColor":"#ffc700","secondaryColor":null,"firstFontColor":"#4a4a4a","secondaryFontColor":null,"isSpecial":false,"hasAsterisk":false,"isHappyHour":false,"stores":[]},.......]},{"name":"OtherStores","coupons":[]}]}Commandline-ToolActivate all available coupons$lidl-plus--language=de--country=AT--refresh-token=XXXXXcoupon--allPythonfromlidlplusimportLidlPlusApilidl=LidlPlusApi("de","AT",refresh_token="XXXXXXXXXX")forsectioninlidl.coupons()["sections"]:forcouponinsection["coupons"]:print("found coupon: ",coupon["title"],coupon["id"])HelpCommandline-ToolLidl Plus API

options:
  -h, --help                show this help message and exit
  -c CC, --country CC       country (DE, BE, NL, AT, ...)
  -l LANG, --language LANG  language (de, en, fr, it, ...)
  -u USER, --user USER      Lidl Plus login username
  -p XXX, --password XXX    Lidl Plus login password
  --2fa {phone,email}       choose two factor auth method
  -r TOKEN, --refresh-token TOKEN
                            refresh token to authenticate
  --skip-verify             skip ssl verification
  --not-accept-legal-terms  not auto accept legal terms updates
  -d, --debug               debug mode

commands:
  auth                      authenticate and get token
  receipt                   output last receipts as json
  coupon                    activate couponsSupportIf you find this project helpful and would like to support its development, you can buy me a coffee! ☕Don't forget to star the repository if you found it useful! ⭐