diff --git a/README.md b/README.md
index 8374817a..e9da513a 100644
--- a/README.md
+++ b/README.md
@@ -42,7 +42,7 @@ this list is not final and keeps expanding over time. if support for a service y
 | service    | notes or features                                                                                                    |
 | :--------  | :-----                                                                                                               |
 | instagram  | supports photos, videos, and stories. lets you pick what to save from multi-media posts.                             |
-| pinterest  | supports videos and stories.                                                                                         |
+| pinterest  | supports photos, gifs, videos and stories.                                                                           |
 | reddit     | supports gifs and videos.                                                                                            |
 | soundcloud | supports private links.                                                                                              |
 | tiktok     | supports videos with or without watermark, images from slideshow without watermark, and full (original) audios.      |
diff --git a/src/modules/processing/services/pinterest.js b/src/modules/processing/services/pinterest.js
index 2364b729..23d9f4d8 100644
--- a/src/modules/processing/services/pinterest.js
+++ b/src/modules/processing/services/pinterest.js
@@ -1,6 +1,7 @@
 import { genericUserAgent } from "../../config.js";
 
-const linkRegex = /"url":"(https:\/\/v1.pinimg.com\/videos\/.*?)"/g;
+const videoRegex = /"url":"(https:\/\/v1.pinimg.com\/videos\/.*?)"/g;
+const imageRegex = /src="(https:\/\/i\.pinimg\.com\/.*\.(jpg|gif))"/g;
 
 export default async function(o) {
     let id = o.id;
@@ -19,15 +20,24 @@ export default async function(o) {
 
     if (!html) return { error: 'ErrorCouldntFetch' };
 
-    let videoLink = [...html.matchAll(linkRegex)]
+    let videoLink = [...html.matchAll(videoRegex)]
                     .map(([, link]) => link)
-                    .filter(a => a.endsWith('.mp4') && a.includes('720p'))[0];
+                    .find(a => a.endsWith('.mp4') && a.includes('720p'));
 
-    if (!videoLink) return { error: 'ErrorEmptyDownload' };
-
-    return {
+    if (videoLink) return {
         urls: videoLink,
         filename: `pinterest_${o.id}.mp4`,
         audioFilename: `pinterest_${o.id}_audio`
     }
+
+    let imageLink = [...html.matchAll(imageRegex)]
+                    .map(([, link]) => link)
+                    .find(a => a.endsWith('.jpg') || a.endsWith('.gif'));
+                    
+    if (imageLink) return {
+        urls: imageLink,
+        isPhoto: true
+    }
+
+    return { error: 'ErrorEmptyDownload' };
 }
diff --git a/src/modules/processing/servicesConfig.json b/src/modules/processing/servicesConfig.json
index 0b32016c..eaea0167 100644
--- a/src/modules/processing/servicesConfig.json
+++ b/src/modules/processing/servicesConfig.json
@@ -91,7 +91,7 @@
             "enabled": true
         },
         "pinterest": {
-            "alias": "pinterest videos & stories",
+            "alias": "pinterest (all media)",
             "patterns": ["pin/:id", "pin/:id/:garbage", "url_shortener/:shortLink"],
             "enabled": true
         },
diff --git a/src/test/tests.json b/src/test/tests.json
index 95c95a65..a0ef8e6b 100644
--- a/src/test/tests.json
+++ b/src/test/tests.json
@@ -976,6 +976,38 @@
             "code": 200,
             "status": "redirect"
         }
+    }, {
+        "name": "regular picture",
+        "url": "https://www.pinterest.com/pin/412994228343400946/",
+        "params": {},
+        "expected": {
+            "code": 200,
+            "status": "redirect"
+        }
+    }, {
+        "name": "regular picture (.ca TLD)",
+        "url": "https://www.pinterest.ca/pin/412994228343400946/",
+        "params": {},
+        "expected": {
+            "code": 200,
+            "status": "redirect"
+        }
+    }, {
+        "name": "regular gif",
+        "url": "https://www.pinterest.com/pin/814447913881127862/",
+        "params": {},
+        "expected": {
+            "code": 200,
+            "status": "redirect"
+        }
+    }, {
+        "name": "regular gif (.ca TLD)",
+        "url": "https://www.pinterest.ca/pin/814447913881127862/",
+        "params": {},
+        "expected": {
+            "code": 200,
+            "status": "redirect"
+        }
     }],
     "streamable": [{
         "name": "regular video",