diff --git a/New_APIs/QR_Code_Generator_API/README.md b/New_APIs/QR_Code_Generator_API/README.md
new file mode 100644
index 0000000..6dd5110
--- /dev/null
+++ b/New_APIs/QR_Code_Generator_API/README.md
@@ -0,0 +1,14 @@
+# QR Code Generator API
+
+A lightweight API for generating QR codes using HTML, CSS, and JavaScript.
+
+## Features
+
+- Generates QR codes from text
+- Simple interface
+- Easy to use and integrate
+
+## Screenshots
+
+![image](https://github.com/user-attachments/assets/32b4aefa-9015-4796-91b3-bc00d90a1d04)
+
diff --git a/New_APIs/QR_Code_Generator_API/generator/index.html b/New_APIs/QR_Code_Generator_API/generator/index.html
new file mode 100644
index 0000000..e60db97
--- /dev/null
+++ b/New_APIs/QR_Code_Generator_API/generator/index.html
@@ -0,0 +1,25 @@
+
+
+
+
+
+ QR Code Generator
+
+
+
+
+
+
+
+ Generate QR Code
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/New_APIs/QR_Code_Generator_API/generator/qr-code.png b/New_APIs/QR_Code_Generator_API/generator/qr-code.png
new file mode 100644
index 0000000..207702a
Binary files /dev/null and b/New_APIs/QR_Code_Generator_API/generator/qr-code.png differ
diff --git a/New_APIs/QR_Code_Generator_API/generator/script.js b/New_APIs/QR_Code_Generator_API/generator/script.js
new file mode 100644
index 0000000..35eafa7
--- /dev/null
+++ b/New_APIs/QR_Code_Generator_API/generator/script.js
@@ -0,0 +1,24 @@
+const wrapper = document.querySelector(".wrapper"),
+ qrInput = wrapper.querySelector(".form input"),
+ generateBtn = wrapper.querySelector(".form button"),
+ qrImg = wrapper.querySelector(".qr-code img");
+let preValue;
+
+generateBtn.addEventListener("click", () => {
+ let qrValue = qrInput.value.trim();
+ if (!qrValue || preValue === qrValue) return;
+ preValue = qrValue;
+ generateBtn.innerText = "Generating QR Code...";
+ qrImg.src = `https://api.qrserver.com/v1/create-qr-code/?size=200x200&data=${qrValue}`;
+ qrImg.addEventListener("load", () => {
+ wrapper.classList.add("active");
+ generateBtn.innerText = "Generate QR Code";
+ });
+});
+
+qrInput.addEventListener("keyup", () => {
+ if (!qrInput.value.trim()) {
+ wrapper.classList.remove("active");
+ preValue = "";
+ }
+});
\ No newline at end of file
diff --git a/New_APIs/QR_Code_Generator_API/generator/style.css b/New_APIs/QR_Code_Generator_API/generator/style.css
new file mode 100644
index 0000000..abd88ca
--- /dev/null
+++ b/New_APIs/QR_Code_Generator_API/generator/style.css
@@ -0,0 +1,112 @@
+@import url('https://fonts.googleapis.com/css2?family=Poppins:wght@400;500;600&display=swap');
+
+* {
+ margin: 0;
+ padding: 0;
+ box-sizing: border-box;
+ font-family: "Poppins", sans-serif;
+}
+
+body {
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ min-height: 100vh;
+ background: #927dfc;
+}
+
+.wrapper {
+ height: 207px;
+ max-width: 370px;
+ background: #fff;
+ border-radius: 5px;
+ padding: 16px 20px;
+ box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);
+ transition: height 0.2s ease;
+}
+
+.wrapper.active {
+ height: 475px;
+}
+
+header h1 {
+ font-size: 22px;
+ font-weight: 600;
+}
+
+header p {
+ font-size: 15px;
+ color: #474747;
+ /* color: #9b88f9; */
+ margin-top: 4px;
+}
+
+.wrapper .form {
+ margin: 20px 0 25px;
+}
+
+.form :where(input, button) {
+ width: 100%;
+ height: 45px;
+ border: none;
+ outline: none;
+ border-radius: 4px;
+}
+
+.form input {
+ font-size: 17px;
+ border: 1px solid #999;
+ padding: 0 10px;
+}
+
+.form input:focus {
+ border-color: #927dfc;
+}
+
+.form button {
+ background-color: #927dfc;
+ color: #fff;
+ font-size: 17px;
+ margin-top: 15px;
+ cursor: pointer;
+}
+
+.wrapper .qr-code {
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ padding: 30px 0;
+ border: 1px solid #ccc;
+ border-radius: 4px;
+ opacity: 0;
+ pointer-events: none;
+}
+
+.wrapper.active .qr-code {
+ opacity: 1;
+ pointer-events: auto;
+ transition: opacity 0.5s 0.05s ease;
+}
+
+.qr-code img {
+ max-height: 180px;
+}
+
+@media (max-width: 430px) {
+ .wrapper {
+ height: 220px;
+ padding: 16px 20px;
+ }
+ .wrapper.active {
+ height: 486px;
+ }
+ header p {
+ color: #696969;
+ }
+ .form :where(input, button) {
+ height: 50px;
+ }
+ .qr-code img {
+ width: 180px;
+ }
+}
diff --git a/New_APIs/QR_Code_Generator_API/index.html b/New_APIs/QR_Code_Generator_API/index.html
new file mode 100644
index 0000000..cea8b3d
--- /dev/null
+++ b/New_APIs/QR_Code_Generator_API/index.html
@@ -0,0 +1,37 @@
+
+
+
+
+
+
+ QR Code Generator & Scanner
+
+
+
+
+
+
+
+
+ QR Code Generator & Scanner
+
+
+
+
+
+
\ No newline at end of file
diff --git a/New_APIs/QR_Code_Generator_API/scanner/index.html b/New_APIs/QR_Code_Generator_API/scanner/index.html
new file mode 100644
index 0000000..16b9aff
--- /dev/null
+++ b/New_APIs/QR_Code_Generator_API/scanner/index.html
@@ -0,0 +1,34 @@
+
+
+
+
+
+ QR Code Scanner
+
+
+
+
+
+
+
+
+
+
+ Close
+ Copy Text
+
+
+
+
+
+
\ No newline at end of file
diff --git a/New_APIs/QR_Code_Generator_API/scanner/qr-code.svg b/New_APIs/QR_Code_Generator_API/scanner/qr-code.svg
new file mode 100644
index 0000000..f410b69
--- /dev/null
+++ b/New_APIs/QR_Code_Generator_API/scanner/qr-code.svg
@@ -0,0 +1,480 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/New_APIs/QR_Code_Generator_API/scanner/script.js b/New_APIs/QR_Code_Generator_API/scanner/script.js
new file mode 100644
index 0000000..e7a6397
--- /dev/null
+++ b/New_APIs/QR_Code_Generator_API/scanner/script.js
@@ -0,0 +1,39 @@
+const wrapper = document.querySelector('.wrapper'),
+ form = wrapper.querySelector('form'),
+ fileInp = form.querySelector('input'),
+ infoText = form.querySelector('p'),
+ closeBtn = wrapper.querySelector(".close"),
+ copyBtn = wrapper.querySelector(".copy");
+
+function fetchRequest(formData, file) {
+ infoText.innerText = "Scanning QR Code...";
+ fetch("https://api.qrserver.com/v1/read-qr-code/", {
+ method: "POST", body: formData
+ }).then(res => res.json()).then(result => {
+ result = result[0].symbol[0].data;
+ infoText.innerText = result ? "Upload QR Code to Scan" : "Couldn't Scan QR Code";
+ if (!result) return;
+ wrapper.querySelector("textarea").innerText = result;
+ form.querySelector("img").src = URL.createObjectURL(file);
+ wrapper.classList.add("active");
+ }).catch(() => {
+ infoText.innerText = "Couldn't Scan QR Code";
+ });
+}
+
+fileInp.addEventListener('change', e => {
+ let file = e.target.files[0];
+ if (!file) return;
+ let formData = new FormData();
+ formData.append("file", file);
+ fetchRequest(formData, file);
+});
+
+copyBtn.addEventListener("click", () => {
+ let text = wrapper.querySelector("textarea").textContent;
+ navigator.clipboard.writeText(text);
+
+});
+
+form.addEventListener('click', () => fileInp.click());
+closeBtn.addEventListener('click', () => wrapper.classList.remove("active"));
\ No newline at end of file
diff --git a/New_APIs/QR_Code_Generator_API/scanner/style.css b/New_APIs/QR_Code_Generator_API/scanner/style.css
new file mode 100644
index 0000000..2d9ea03
--- /dev/null
+++ b/New_APIs/QR_Code_Generator_API/scanner/style.css
@@ -0,0 +1,137 @@
+@import url('https://fonts.googleapis.com/css2?family=Poppins:wght@400;500;600&display=swap');
+
+* {
+ margin: 0;
+ padding: 0;
+ box-sizing: border-box;
+ font-family: "Poppins", sans-serif;
+}
+
+body {
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ min-height: 100vh;
+ background: #927dfc;
+}
+
+.wrapper {
+ height: 295px;
+ width: 420px;
+ border-radius: 4px;
+ background: #fff;
+ padding: 30px 30px 35px;
+ box-shadow: 0 5px 10px rgba(0, 0, 0, 0.1);
+ transition: height 0.3s ease;
+}
+
+.wrapper.active {
+ height: 100%;
+}
+
+.wrapper form {
+ margin-top: 10px;
+ height: 200px;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ text-align: center;
+ border: 1px dashed #999;
+ border-radius: 4px;
+ cursor: pointer;
+}
+
+.wrapper.active form {
+ height: 215px;
+ pointer-events: none;
+}
+
+form img {
+ display: none;
+ max-width: 150px;
+}
+
+.wrapper.active form img {
+ display: block;
+}
+
+.wrapper.active form .content {
+ display: none;
+}
+
+form .content i {
+ color: #927dfc;
+ font-size: 45px;
+}
+
+form .content p {
+ color: #927dfc;
+ font-size: 16px;
+ margin-top: 10px;
+}
+
+.wrapper .details {
+ opacity: 0;
+ pointer-events: none;
+ margin-top: 20px;
+}
+
+.wrapper.active .details {
+ opacity: 1;
+ pointer-events: auto;
+ transition: opacity 0.5s 0.05s ease;
+}
+
+.details textarea {
+ width: 100%;
+ height: 100px;
+ background: none;
+ color: #000;
+ border: 1px solid #999;
+ border-radius: 5px;
+ outline: none;
+ padding: 10px 15px;
+ font-size: 15px;
+ resize: none;
+}
+
+textarea::-webkit-scrollbar {
+ width: 0px;
+}
+textarea:hover::-webkit-scrollbar-track {
+ background: none;
+}
+textarea:hover::-webkit-scrollbar-thumb {
+ background: #fff;
+ border-radius: 8px;
+}
+
+.details .buttons {
+ display: flex;
+ align-items: center;
+ justify-content: space-between;
+ margin-top: 15px;
+}
+
+.buttons button {
+ height: 40px;
+ width: calc(100% / 2 - 20px);
+ border-radius: 5px;
+ border: none;
+ outline: none;
+ color: #fff;
+ background: #927dfc;
+ cursor: pointer;
+ font-size: 15px;
+ font-weight: 500;
+}
+
+@media (max-width: 450px) {
+ .wrapper {
+ padding: 15px;
+ height: 270px;
+ }
+ .wrapper.active {
+ height: 100%;
+ }
+}
diff --git a/New_APIs/QR_Code_Generator_API/style.css b/New_APIs/QR_Code_Generator_API/style.css
new file mode 100644
index 0000000..8a1db29
--- /dev/null
+++ b/New_APIs/QR_Code_Generator_API/style.css
@@ -0,0 +1,77 @@
+@import url('https://fonts.googleapis.com/css2?family=Poppins:wght@400;500;600&display=swap');
+
+* {
+ margin: 0;
+ padding: 0;
+ box-sizing: border-box;
+ font-family: "Poppins", sans-serif;
+}
+
+body {
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ min-height: 100vh;
+}
+
+.wrapper {
+ height: 100%;
+ width: 420px;
+ border-radius: 4px;
+ background: #927dfc;
+ padding: 30px 30px 35px;
+ box-shadow: 0 5px 10px rgba(0, 0, 0, 0.1);
+}
+
+header h2 {
+ font-size: 22px;
+ font-weight: 600;
+ color: #000;
+ margin-bottom: 10px;
+}
+
+.column {
+ display: flex;
+ flex-direction: column;
+ text-align: center;
+ gap: 30px;
+}
+
+.grid {
+ display: flex;
+ justify-content: center;
+ align-items: center;
+ margin-top: 20px;
+ width: 100%;
+ background: #fff;
+ height: 150px;
+ cursor: pointer;
+ border-radius: 5px;
+ box-shadow: 0 5px 10px rgba(0, 0, 0, 0.1);
+}
+
+.grid i {
+ font-size: 35px;
+ color: #927dfc;
+}
+
+.grid h3 {
+ margin: 20px;
+ color: #000;
+}
+
+.footer {
+ text-align: center;
+ margin-top: 50px;
+}
+
+.grid a {
+ text-decoration: none;
+ font-size: 17px;
+ margin-top: 20px;
+}
+
+.footer a {
+ color: #000;
+ text-decoration: none;
+}
diff --git a/New_APIs/README.md b/New_APIs/README.md
index 015aa72..454e9c3 100644
--- a/New_APIs/README.md
+++ b/New_APIs/README.md
@@ -22,6 +22,7 @@
|[Temperature_API](./Temperature_API/)| Real-time global temperature data via HTTP requests from reliable weather sources
|[Cryptocurrency_API](./Cryptocurrency_API/)|This demonstrates how a convert Cryptocurrency and spefic currency to dollars only|
|[Weather_Forecast_API](./Weather_Forecast_API/)|This demonstrates we can know weather report via api and spefic locactions only|
+|[QR_Code_Generator_API](./QR_Code_Generator_API/)|A lightweight API for generating QR codes using HTML, CSS, and JavaScript.|